الوصول
- افتح متصفحك وزُر:
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 مع نطاق
1. وجِّه نطاقك إلى 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
6. شغّل الأمر التالي لإصدار شهادة 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 قبل ذلك بشكل صحيح.