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

ديب لاب

Moderator
مشـــرف
17 ديسمبر 2023
1,579
8
36
Advertisement
host-bitly-server-shlink-linux-00-featured-image.jpg

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

لماذا يتم اختصار الروابط باستخدام Shlink؟​


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

rver-shlink-linux-01-shlink-sample-running-800x254.png

وبصرف النظر عن ذلك،
من فضلك قم , تسجيل الدخول أو تسجيل لعرض المحتوى
كما يتميز أيضًا بمجموعة متنوعة من الميزات مثل القدرة على إنشاء أكواد 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​


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

erver-shlink-linux-02-geolite-sign-up-form-800x597.png

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

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

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

-17-password-creation-link-maxmind-account-800x314.png

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

link-linux-03-select-license-key-menu-item-800x364.png

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

er-shlink-linux-04-confirm-new-license-key-800x300.png

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

الحصول على Shlink وتثبيته​


لتثبيت 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” بسلسلة نصية عشوائية.

link-linux-05-highlight-random-postgresql-password.png

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

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


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 باسم المجال الخاص بك.

tly-server-shlink-linux-06-set-default-domain-name.png

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

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

r-shlink-linux-07-set-geolite-license-key-variable.png

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

-linux-08-set-postgresql-db-password-main-instance.png

يضعط يدخل لبدء تشغيل مثيل 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” الموجود في الحاوية الخلفية.
Advertisement

-shlink-linux-09-set-full-url-shlink-main-instance.png

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

hlink-linux-10-shlink-main-instance-api-key-sample.png

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

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


sudo docker container list

er-shlink-linux-11-check-docker-containers-running.png

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


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

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

erver-shlink-linux-12-create-dns-a-records-800x175.png

قم بإنشاء ملف تكوين الموقع لنسخة 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;
Advertisement
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 الخاص بك يعمل بشكل صحيح من خلال الانتقال إلى وحدة التحكم الإدارية الخاصة بمثيلك. في حالتي، يكون الأمر “

ly-server-shlink-linux-13-shlink-interface-running.png

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

إنشاء رابطك الأول باستخدام Shlink​


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

rver-shlink-linux-16-shlink-menu-item-landing-page.png

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

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

y-server-shlink-linux-14-save-new-custom-shortlink.png

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

server-shlink-linux-15-sample-analytics-shortlinks.png

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

AdBlock Detected

We apologize, but you must disable AdBlock to view this site.

We rely on advertisements to support the continuity of the site and provide the best content.