Advertisement
Shlink هي خدمة اختصار روابط ذاتية الاستضافة قوية لنظام Linux. وهي توفر إطار عمل بسيط وفعال حيث يمكنك استخدام اسم المجال الخاص بك كجذر لروابطك المختصرة. ستوضح لك هذه المقالة كيفية تثبيت نسخة Shlink الخاصة بك على Ubuntu Linux باستخدام Docker وNginx.
Advertisement
لماذا يتم اختصار الروابط باستخدام Shlink؟
من أهم نقاط البيع التي يتميز بها Shlink أنه يمكنك استخدام نطاق مخصص خاص بك لإنشاء روابط مختصرة مع إمكانية الاستضافة الذاتية. وهذا بدوره يمنحك مرونة خدمة اختصار الروابط SaaS بالإضافة إلى خصوصية تشغيل البرامج على جهازك.
Advertisement
وبصرف النظر عن ذلك،
من فضلك قم , تسجيل الدخول أو تسجيل لعرض المحتوى
كما يتميز أيضًا بمجموعة متنوعة من الميزات مثل القدرة على إنشاء أكواد QR وإعادة توجيه استعلامات الروابط تلقائيًا وإنشاء عناوين مخصصة متعددة الأجزاء. وهذا يجعل Shlink أداة مفيدة إذا كنت تبحث عن خدمة اختصار الروابط في Linux حيث يمكنك تعديل مظهر الروابط وسلوكها.Advertisement
الحصول على Docker لـ Shlink
افتراض: تفترض هذه المقالة أنك تقوم بتثبيت Shlink على VPS Ubuntu 22.04 وأنك تمتلك اسم نطاق حاليًا.
Advertisement
الخطوة الأولى في نشر Shlink على Linux هي الحصول على نسخة من Docker. للقيام بذلك، قم بجلب مفتاح التوقيع الخاص بمشروع Docker من موقعه على الويب:
Advertisement
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
تثبيت التبعيات لـ 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
الحصول على مفتاح ترخيص Geolite2
من بين الميزات المميزة الأخرى لـ Shlink أنه يمكنه تتبع الموقع العام للمستخدم الذي نقر على الروابط الخاصة بك. لاستخدام هذا، افتح
من فضلك قم , تسجيل الدخول أو تسجيل لعرض المحتوى
صفحة.Advertisement
قم بملء النموذج بتفاصيلك ثم اضغط يكمل.
Advertisement
افتح صندوق الوارد في بريدك الإلكتروني، ثم ابحث عن رسالة التأكيد من MaxMind.
انقر فوق الرابط الموجود في البريد الإلكتروني، ثم قم بتوفير كلمة المرور لحساب MaxMind الجديد الخاص بك.
Advertisement
قم بتسجيل الدخول إلى حساب MaxMind الخاص بك، ثم انقر فوق إدارة مفاتيح الترخيص على لوحة التحكم الخاصة بك.
Advertisement
انقر إنشاء مفتاح ترخيص جديد، ثم اضغط يتأكد لإنشاء مفتاح Geolite2 الخاص بك.
Advertisement
انسخ مفتاح ترخيص Geolite2 إلى ملف نصي على جهازك ثم احفظه.
Advertisement
الحصول على Shlink وتثبيته
لتثبيت Shlink، تحتاج أولاً إلى إنشاء شبكة Docker افتراضية. ستعمل هذه الشبكة كشبكة خاصة للتطبيق حيث يمكنه التواصل مع الحاويات الأخرى التي ستنشرها:
Advertisement
sudo docker network create -d bridge \
--subnet=10.0.0.0/24 \
--gateway=10.0.0.1 \
Advertisement
قم بنشر قاعدة بيانات PostgreSQL وربطها بشبكة Docker الافتراضية الجديدة الخاصة بك:
Advertisement
sudo docker run -d \
--name shlink-db \
-e POSTGRES_PASSWORD=!REPLACE_ME! \
Advertisement
-e POSTGRES_DB=shlink \
-p 127.0.0.1:5432:5432 \
--restart always \
Advertisement
postgres:12.1
قم بتغيير قيمة متغير البيئة “POSTGRES_PASSWORD” بسلسلة نصية عشوائية.
Advertisement
ملحوظة: يمكنك إنشاء هذه السلسلة العشوائية من النص باستخدام “/dev/urandom”:
cat /dev/urandom | tr -dc 'A-Za-z0-9' | fold -w 32 | head -n 1Advertisement
قم بلصق الأمر التالي في جلسة محطة طرفية جديدة:
Advertisement
--name shlink-stable \
-p 8081:8080 \
-e DEFAULT_DOMAIN=YOUR-ROOT.DOMAIN \
Advertisement
-e GEOLITE_LICENSE_KEY=!REPLACE_ME! \
-e DB_DRIVER=postgres \
-e DB_USER=postgres \
Advertisement
-e DB_HOST=shlink-db \
--network="shlink-network" \
shlinkio/shlink:stable
Advertisement
استبدل قيمة المتغير DEFAULT_DOMAIN باسم المجال الخاص بك.
Advertisement
ملحوظة: تأكد من أن المجال الخاص بك يحتوي على سجل A يشير إلى عنوان IP الخاص بجهازك.
قم بتغيير قيمة المتغير “GEOLITE_LICENSE_KEY” باستخدام مفتاح الترخيص الشخصي الخاص بك.
Advertisement
استبدل المتغير “DB_PASSWORD” بكلمة مرور قاعدة بيانات PostgreSQL الخاصة بك.
Advertisement
يضعط يدخل لبدء تشغيل مثيل 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
-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” الموجود في الحاوية الخلفية.
Advertisement
قم بلصق مفتاح API الخاص بك كقيمة لـ “SHLINK_SERVER_API_KEY”.
Advertisement
يضعط يدخل لبدء واجهة Shlink الأمامية.
تأكد من أن قاعدة البيانات الخاصة بك وبرنامج Shlink الخلفي وبرنامج Shlink الأمامي تعمل بشكل صحيح عن طريق إدراج جميع الحاويات النشطة حاليًا في النظام:
Advertisement
sudo docker container list
Advertisement
إنشاء وكيل عكسي SSL باستخدام Nginx
في هذه المرحلة، لديك الآن مجموعة برامج Shlink تعمل على الخادم الخاص بك. ولكن للوصول إليها، لا يزال يتعين عليك إنشاء وكيل ويب SSL يفوض الحاويتين الخاصتين بك على نطاقات مختلفة.
للبدء، قم بإنشاء سجل A جديد لواجهة Shlink الأمامية. في حالتي، سأقوم بتعيين سجل A للواجهة الأمامية على “admin”.
Advertisement
قم بإنشاء ملف تكوين الموقع لنسخة Shlink الخاصة بك باستخدام محرر النصوص المفضل لديك:
Advertisement
sudo nano /etc/nginx/sites-available/shlink
Advertisement
server {
Advertisement
server_name YOUR-ROOT.DOMAIN;
location / {
Advertisement
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
Advertisement
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 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
قم بإعادة تحميل برنامج Nginx الخاص بك لتطبيق الإعدادات الجديدة:
Advertisement
sudo systemctl reload nginx
قم بتسجيل خادمك في مؤسسة الحدود الإلكترونية:
Advertisement
sudo certbot register --agree-tos -m YOUR@EMAIL.ADDRESS
Advertisement
sudo certbot --nginx -d YOUR-ROOT.DOMAIN -d SUBDOMAIN.YOUR-ROOT.DOMAIN
Advertisement
تأكد من أن خادم Shlink الخاص بك يعمل بشكل صحيح من خلال الانتقال إلى وحدة التحكم الإدارية الخاصة بمثيلك. في حالتي، يكون الأمر “
Advertisement
جيد ان تعلم: تعرف على المزيد حول تشفير الويب عن طريق إنشاء شهادات SSL الخاصة بك باستخدام OpenSSL.
إنشاء رابطك الأول باستخدام Shlink
Advertisement
Advertisement
قم بتوفير بعض البيانات الوصفية لرابطك القصير، ثم انقر فوق يحفظ لإنشاء الرابط الخاص بك.
Advertisement
افتح عنوان URL القصير الجديد الخاص بك في علامة تبويب جديدة للمتصفح، ثم انقر فوق الزيارات انقر فوق الزر الموجود على لوحة معلومات Shlink الخاصة بك لاختبار ما إذا كان يعمل بشكل صحيح.
Advertisement
إن تثبيت ونشر خدمة اختصار الروابط الخاصة بك ما هو إلا الخطوة الأولى لاستعادة خصوصيتك على الإنترنت. تعرف على الكيفية التي يمكن أن يساعدك بها Linux في استعادة خصوصيتك بشكل أكبر من خلال استضافة موقع الويب الخاص بك المجهول في Ubuntu باستخدام Tor.
Advertisement
Advertisement