• Thu. Nov 21st, 2024

كيفية استضافة خادم bit.ly الخاص بك باستخدام Shlink في Linux

Byadmin

Aug 6, 2024

صورة لجهاز كمبيوتر محمول فوق طاولة.

Shlink هي خدمة اختصار روابط ذاتية الاستضافة قوية لنظام Linux. وهي توفر إطار عمل بسيط وفعال حيث يمكنك استخدام اسم المجال الخاص بك كجذر لروابطك المختصرة. ستوضح لك هذه المقالة كيفية تثبيت نسخة Shlink الخاصة بك على Ubuntu Linux باستخدام Docker وNginx.

من أهم نقاط البيع التي يتميز بها Shlink أنه يمكنك استخدام نطاق مخصص خاص بك لإنشاء روابط مختصرة مع إمكانية الاستضافة الذاتية. وهذا بدوره يمنحك مرونة خدمة اختصار الروابط SaaS بالإضافة إلى خصوصية تشغيل البرامج على جهازك.

لقطة شاشة تظهر تشغيل Shlink على خادم تجريبي.

وبصرف النظر عن ذلك، شلينك كما يتميز أيضًا بمجموعة متنوعة من الميزات مثل القدرة على إنشاء أكواد QR وإعادة توجيه استعلامات الروابط تلقائيًا وإنشاء عناوين مخصصة متعددة الأجزاء. وهذا يجعل Shlink أداة مفيدة إذا كنت تبحث عن خدمة اختصار الروابط في Linux حيث يمكنك تعديل مظهر الروابط وسلوكها.

جيد ان تعلم: تعرف على المزيد حول الاستضافة الذاتية عن طريق إنشاء خادم عناوين البريد الإلكتروني الخاص بك باستخدام SimpleLogin.

الحصول على Docker لـ Shlink

افتراض: تفترض هذه المقالة أنك تقوم بتثبيت Shlink على VPS Ubuntu 22.04 وأنك تمتلك اسم نطاق حاليًا.

الخطوة الأولى في نشر Shlink على Linux هي الحصول على نسخة من Docker. للقيام بذلك، قم بجلب مفتاح التوقيع الخاص بمشروع Docker من موقعه على الويب:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

قم بإنشاء ملف المستودع لملفات Docker الثنائية الخاصة بك:

sudo nano /etc/apt/sources.list.d/docker.list

قم بلصق سطر التعليمات البرمجية التالي داخل ملف المستودع الجديد الخاص بك:

deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable

قم بإعادة تحميل قائمة مستودع النظام الخاص بك عن طريق القيام بما يلي apt update:

sudo apt update && sudo apt upgrade

تثبيت التبعيات لـ Shlink

مع تشغيل مستودعات Docker، يمكنك الآن استخدام apt للحصول على التبعيات الخاصة بـ Shlink:

sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin nginx

تأكد من أن حزمة snap “core” متوفرة في نظامك:

احصل على حزمة snap “certbot” من مؤسسة Frontier Foundation وقم بتثبيتها:

sudo snap install certbot --classic

الحصول على مفتاح ترخيص Geolite2

من بين الميزات المميزة الأخرى لـ Shlink أنه يمكنه تتبع الموقع العام للمستخدم الذي نقر على الروابط الخاصة بك. لاستخدام هذا، افتح التسجيل للحصول على ترخيص Geolite2 صفحة.

لقطة شاشة تظهر صفحة التسجيل للحصول على ترخيص GeoLite.

قم بملء النموذج بتفاصيلك ثم اضغط يكمل.

افتح صندوق الوارد في بريدك الإلكتروني، ثم ابحث عن رسالة التأكيد من MaxMind.

انقر فوق الرابط الموجود في البريد الإلكتروني، ثم قم بتوفير كلمة المرور لحساب MaxMind الجديد الخاص بك.

لقطة شاشة تظهر رابط إنشاء كلمة المرور لـ MaxMind.

قم بتسجيل الدخول إلى حساب MaxMind الخاص بك، ثم انقر فوق إدارة مفاتيح الترخيص على لوحة التحكم الخاصة بك.

لقطة شاشة تسلط الضوء على

انقر إنشاء مفتاح ترخيص جديد، ثم اضغط يتأكد لإنشاء مفتاح Geolite2 الخاص بك.

لقطة شاشة تسلط الضوء على

انسخ مفتاح ترخيص Geolite2 إلى ملف نصي على جهازك ثم احفظه.

لتثبيت Shlink، تحتاج أولاً إلى إنشاء شبكة Docker افتراضية. ستعمل هذه الشبكة كشبكة خاصة للتطبيق حيث يمكنه التواصل مع الحاويات الأخرى التي ستنشرها:

sudo docker network create -d bridge \
    --subnet=10.0.0.0/24 \
    --gateway=10.0.0.1 \
    shlink-network

قم بنشر قاعدة بيانات PostgreSQL وربطها بشبكة Docker الافتراضية الجديدة الخاصة بك:

sudo docker run -d \
    --name shlink-db \
    -e POSTGRES_PASSWORD=!REPLACE_ME! \
    -e POSTGRES_USER=postgres \
    -e POSTGRES_DB=shlink \
    -p 127.0.0.1:5432:5432 \
    --restart always \
    --network="shlink-network" \
    postgres:12.1

قم بتغيير قيمة متغير البيئة “POSTGRES_PASSWORD” بسلسلة نصية عشوائية.

محطة طرفية تعرض كلمة مرور قاعدة بيانات PostgreSQL عشوائية.

ملحوظة: يمكنك إنشاء هذه السلسلة العشوائية من النص باستخدام “/dev/urandom”: cat /dev/urandom | tr -dc 'A-Za-z0-9' | fold -w 32 | head -n 1

قم بلصق الأمر التالي في جلسة محطة طرفية جديدة:

sudo docker run -d \
    --name shlink-stable \
    -p 8081:8080 \
    -e DEFAULT_DOMAIN=YOUR-ROOT.DOMAIN \
    -e IS_HTTPS_ENABLED=true \
    -e GEOLITE_LICENSE_KEY=!REPLACE_ME! \
    -e DB_DRIVER=postgres \
    -e DB_USER=postgres \
    -e DB_PASSWORD=!REPLACE_ME! \
    -e DB_HOST=shlink-db \
    --network="shlink-network" \
    shlinkio/shlink:stable

استبدل قيمة المتغير DEFAULT_DOMAIN باسم المجال الخاص بك.

محطة طرفية تعرض قيمة المجال الافتراضية لخادم العرض التوضيحي.

ملحوظة: تأكد من أن المجال الخاص بك يحتوي على سجل A يشير إلى عنوان IP الخاص بجهازك.

قم بتغيير قيمة المتغير “GEOLITE_LICENSE_KEY” باستخدام مفتاح الترخيص الشخصي الخاص بك.

محطة طرفية تعرض ترخيص Geolite لخادم Shlink التجريبي.

استبدل المتغير “DB_PASSWORD” بكلمة مرور قاعدة بيانات PostgreSQL الخاصة بك.

محطة طرفية تعرض كلمة مرور قاعدة بيانات PostegreSQL لخادم العرض التوضيحي.

يضعط يدخل لبدء تشغيل مثيل Shlink الخاص بك.

تثبيت واجهة Shlink وربطها

احصل على مفتاح API من حاوية Shlink الخاصة بك، ثم انسخه إلى الحافظة الخاصة بك:

sudo docker exec -it shlink-stable shlink api-key:generate

قم بلصق الأمر التالي في جلسة محطة طرفية جديدة:

sudo docker run -d \
    --name shlink-client \
    -p 8080:8080 \
    -e SHLINK_SERVER_URL=https://YOUR-ROOT.DOMAIN \
    -e SHLINK_SERVER_API_KEY=!REPLACE-ME! \
    --network="shlink-network" shlinkio/shlink-web-client

استبدل “SHLINK_SERVER_URL” بالقيمة من متغير “DEFAULT_DOMAIN” الموجود في الحاوية الخلفية.

محطة طرفية تعرض عنوان URL الكامل لنسخة الواجهة الخلفية لـ Shlink.

قم بلصق مفتاح API الخاص بك كقيمة لـ “SHLINK_SERVER_API_KEY”.

محطة طرفية تعرض مفتاح واجهة برمجة التطبيقات الخلفية لـ Shlink.

يضعط يدخل لبدء واجهة Shlink الأمامية.

تأكد من أن قاعدة البيانات الخاصة بك وبرنامج Shlink الخلفي وبرنامج Shlink الأمامي تعمل بشكل صحيح عن طريق إدراج جميع الحاويات النشطة حاليًا في النظام:

sudo docker container list
محطة طرفية تُظهر الحاويات الثلاثة التي تقوم ببناء تطبيق الويب Shlink الكامل.

إنشاء وكيل عكسي SSL باستخدام Nginx

في هذه المرحلة، لديك الآن مجموعة برامج Shlink تعمل على الخادم الخاص بك. ولكن للوصول إليها، لا يزال يتعين عليك إنشاء وكيل ويب SSL يفوض الحاويتين الخاصتين بك على نطاقات مختلفة.

للبدء، قم بإنشاء سجل A جديد لواجهة Shlink الأمامية. في حالتي، سأقوم بتعيين سجل A للواجهة الأمامية على “admin”.

لقطة شاشة تظهر سجلي DNS لخادم Shlink التجريبي.

قم بإنشاء ملف تكوين الموقع لنسخة Shlink الخاصة بك باستخدام محرر النصوص المفضل لديك:

sudo nano /etc/nginx/sites-available/shlink

قم بلصق كتلة التعليمات البرمجية التالية داخل ملف التكوين الخاص بك:

server {
 
        server_name YOUR-ROOT.DOMAIN;
 
        location / {
                proxy_pass http://127.0.0.1:8081;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header Host $host;
        }
}
 
server {
 
        server_name SUBDOMAIN.YOUR-ROOT.DOMAIN;
 
        location / {
                proxy_pass http://127.0.0.1:8080;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header Host $host;
        }
}

استبدل المتغير “YOUR-ROOT.DOMAIN” بنطاق الجذر الخاص بك، و”SUBDOMAIN.YOUR-ROOT.DOMAIN” بالنطاق الفرعي لواجهة الواجهة الأمامية لديك.

احفظ ملف التكوين الخاص بك، ثم قم بتمكين تطبيق الويب الخاص بك في Nginx:

sudo ln -s /etc/nginx/sites-available/shlink /etc/nginx/sites-enabled/

قم بإعادة تحميل برنامج Nginx الخاص بك لتطبيق الإعدادات الجديدة:

sudo systemctl reload nginx

قم بتسجيل خادمك في مؤسسة الحدود الإلكترونية:

sudo certbot register --agree-tos -m YOUR@EMAIL.ADDRESS

اطلب شهادة SSL جديدة متعددة النطاقات لنسخة Shlink الخاصة بك:

sudo certbot --nginx -d YOUR-ROOT.DOMAIN -d SUBDOMAIN.YOUR-ROOT.DOMAIN

تأكد من أن خادم Shlink الخاص بك يعمل بشكل صحيح من خلال الانتقال إلى وحدة التحكم الإدارية الخاصة بمثيلك. في حالتي، يكون الأمر “

لقطة شاشة تعرض صفحة الوصول الافتراضية لنسخة Shlink.

جيد ان تعلم: تعرف على المزيد حول تشفير الويب عن طريق إنشاء شهادات SSL الخاصة بك باستخدام OpenSSL.

لاستخدام مثيلك الجديد، انقر فوق شلينك عنصر القائمة في صفحة الوصول.

لقطة شاشة تعرض عنصر قائمة Shlink على صفحة الوصول الخاصة بالمثيل.

قم بلصق عنوان URL الطويل الخاص بك على عنوان URL المراد اختصاره مربع النص تحت إنشاء عنوان URL قصير فئة.

قم بتوفير بعض البيانات الوصفية لرابطك القصير، ثم انقر فوق يحفظ لإنشاء الرابط الخاص بك.

لقطة شاشة توضح نموذج إنشاء رابط قصير في Shlink.

افتح عنوان URL القصير الجديد الخاص بك في علامة تبويب جديدة للمتصفح، ثم انقر فوق الزيارات انقر فوق الزر الموجود على لوحة معلومات Shlink الخاصة بك لاختبار ما إذا كان يعمل بشكل صحيح.

لقطة شاشة توضح التحليلات الأساسية لرابط العينة على Shlink.

إن تثبيت ونشر خدمة اختصار الروابط الخاصة بك ما هو إلا الخطوة الأولى لاستعادة خصوصيتك على الإنترنت. تعرف على الكيفية التي يمكن أن يساعدك بها Linux في استعادة خصوصيتك بشكل أكبر من خلال استضافة موقع الويب الخاص بك المجهول في Ubuntu باستخدام Tor.

By admin

Leave a Reply

Your email address will not be published. Required fields are marked *