الوصول
- افتح المتصفح وانتقل إلى:
https://<SERVER_IP> - تحذير SSL في المتصفح متوقع (شهادة موقّعة ذاتيًا)
- انقر على تسجيل الدخول
- أنشئ حساب المسؤول
الملفات والمجلدات الرئيسية
- دليل تثبيت Kener:
/root/kener - ملف البيئة:
/root/kener/.env - ملف Docker Compose:
/root/kener/docker-compose.yml - وحدة تخزين بيانات Redis:
/var/lib/docker/volumes/kener_redis/_data - وحدة تخزين بيانات PostgreSQL:
/var/lib/docker/volumes/kener_postgres/_data - إعداد موقع NGINX:
/etc/nginx/sites-available/kener - الموقع المفعّل:
/etc/nginx/sites-enabled/kener - شهادات SSL:
/etc/nginx/ssl/fullchain.pemو/etc/nginx/ssl/privkey.pem
إدارة الخدمة
# View logs
docker compose -f /root/kener/docker-compose.yml logs -f
# Restart services
docker compose -f /root/kener/docker-compose.yml restart
# Stop services
docker compose -f /root/kener/docker-compose.yml down
# Start again
docker compose -f /root/kener/docker-compose.yml up -d
تفعيل SSL مع نطاق خاص
١. أشر نطاقك إلى عنوان IP الخادم.
٢. تحرير /root/kener/.env لتعيين نطاقك على أنه ORIGIN: ORIGIN=https://yourdomain.com
٣. أعد إنشاء الخدمات:
cd /root/kener/
docker compose up -d
٤. عدّل إعدادات Nginx واستبدل كلاً من server_name <IP>; بنطاقك (<your-domain>) لكلٍّ من كتلتَي HTTP (المنفذ 80) وHTTPS (المنفذ 443):
vim /etc/nginx/sites-available/kener
٥. ثبّت Certbot:
apt install -y certbot python3-certbot-nginx
٦. نفّذ الأمر التالي لإنشاء شهادة Let's Encrypt صالحة:
certbot certonly --nginx --non-interactive --agree-tos --email [email protected] -d yourdomain.com
٧. استبدل مسارات SSL في إعدادات Nginx:
vim /etc/nginx/sites-available/kener
# Before:
# ssl_certificate /etc/nginx/ssl/fullchain.pem;
# ssl_certificate_key /etc/nginx/ssl/privkey.pem;
# After:
# ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
# ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
8. أعد تشغيل Nginx لتطبيق التغييرات:
systemctl restart nginx
9. افتح المتصفح وانتقل إلى: https://yourdomain.com
١٠. بعد تسجيل الدخول، انتقل إلى إعدادات الموقع وحدّث حقل URL الخاص بالموقع ليطابق نطاقك (https://yourdomain.com).
ملاحظات
- Redis مخصص للطوابير والتخزين المؤقت
- PostgreSQL يخزّن جميع بيانات التطبيق
- يُعرَّف URL العام عبر
ORIGINin.env(مطلوب لحماية CSRF) - Nginx يتولى HTTPS والوكيل العكسي
- بمجرد إعداد نطاق صحيح وشهادة SSL، حدّث URL الخاص بموقع Kener ليطابق نطاقك. تأكد أولاً من أن النطاق والشهادة SSL نشطان، إذ قد لا يعمل تحديث URL قبل ذلك بشكل صحيح.