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

ديب لاب

ديب لاب

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

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

Advertisement

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


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

Rver shlink linux 01 shlink sample running 800x254
Advertisement

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

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

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


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

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


Advertisement
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 الثنائية الخاصة بك:
Advertisement


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


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


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

Advertisement

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


Advertisement
sudo apt update && sudo apt upgrade

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


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

Advertisement

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


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

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


Advertisement
sudo snap install certbot --classic

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


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

Erver shlink linux 02 geolite sign up form 800x597

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

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

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

 17 password creation link maxmind account 800x314

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

Link linux 03 select license key menu item 800x364

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

Er shlink linux 04 confirm new license key 800x300

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

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


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

Advertisement

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


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

Advertisement

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


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

Link linux 05 highlight random postgresql password

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

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


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

Advertisement

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

Tly server shlink linux 06 set default domain name
Advertisement

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

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

R shlink linux 07 set geolite license key variable

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

 linux 08 set postgresql db password main instance

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

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


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

Advertisement

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


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


sudo docker run -d \
--name shlink-client \
Advertisement
-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

Advertisement

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

 shlink linux 09 set full url shlink main instance
Advertisement

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

Hlink linux 10 shlink main instance api key sample
Advertisement

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

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


sudo docker container list

Er shlink linux 11 check docker containers running
Advertisement

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


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

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

Erver shlink linux 12 create dns a records 800x175

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


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


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


server {
Advertisement

server_name YOUR-ROOT.DOMAIN;

location / {
Advertisement
proxy_pass http://127.0.0.1:8081;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
Advertisement
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
}
}

Advertisement

server {

server_name SUBDOMAIN.YOUR-ROOT.DOMAIN;
Advertisement

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;
Advertisement
}
}


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

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


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


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

Advertisement

sudo systemctl reload nginx


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


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


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


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

Advertisement

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

Ly server shlink linux 13 shlink interface running
Advertisement

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

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


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

Rver shlink linux 16 shlink menu item landing page

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

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

Advertisement
Y server shlink linux 14 save new custom shortlink

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

Advertisement
Server shlink linux 15 sample analytics shortlinks

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