تثبيت Coolify: نشر التطبيقات مع PaaS المستضاف ذاتياً
تثبيت Coolify، تكامل Docker وGit، نشر التطبيقات، إدارة قواعد البيانات، شهادات SSL، متغيرات البيئة وبديل PaaS المستضاف ذاتياً لـ Heroku/Netlify.
تثبيت Uptime Kuma مع Docker، مراقبة HTTP/TCP/DNS/ping، تكاملات الإشعارات (Telegram، Discord، البريد الإلكتروني)، إنشاء صفحة الحالة وتهيئة التنبيهات.
Uptime Kuma هو أداة مراقبة وقت التشغيل المستضافة ذاتياً التي تتتبع حالة تشغيل خدماتك ومواقعك الإلكترونية. بواجهة ويب جميلة وأنواع مراقبة متنوعة وتكاملات إشعارات غنية، يوفر بديلاً رائعاً لـ Uptime Robot.
الميزات البارزة لـ Uptime Kuma:
docker run -d \
--name uptime-kuma \
--restart=always \
-p 3001:3001 \
-v uptime-kuma:/app/data \
louislam/uptime-kuma:latest
بعد التثبيت:
http://IP_الخادم:3001
# docker-compose.yml
version: '3.8'
services:
uptime-kuma:
image: louislam/uptime-kuma:latest
container_name: uptime-kuma
restart: unless-stopped
ports:
- "3001:3001"
volumes:
- uptime-kuma:/app/data
security_opt:
- no-new-privileges:true
volumes:
uptime-kuma:
docker compose up -d
server {
listen 80;
server_name uptime.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name uptime.example.com;
ssl_certificate /etc/letsencrypt/live/uptime.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/uptime.example.com/privkey.pem;
location / {
proxy_pass http://localhost:3001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_cache_bypass $http_upgrade;
}
}
sudo ln -s /etc/nginx/sites-available/uptime.example.com /etc/nginx/sites-enabled/
sudo certbot --nginx -d uptime.example.com
sudo nginx -t && sudo systemctl reload nginx
لمراقبة المواقع الإلكترونية ونقاط نهاية API:
Monitor Type: HTTP(S)
Friendly Name: الصفحة الرئيسية
URL: https://example.com
Heartbeat Interval: 60 ثانية
Retries: 3
Accepted Status Codes: 200-299
إعدادات HTTP المتقدمة:
# مراقبة الكلمات المفتاحية (البحث عن نص محدد في الصفحة)
Monitor Type: HTTP(S) - Keyword
Keyword: "مرحباً"
# مراقبة JSON Query (التحقق من استجابة API)
Monitor Type: HTTP(S) - JSON Query
JSON Path: $.status
Expected Value: ok
Monitor Type: TCP Port
Friendly Name: قاعدة بيانات MySQL
Hostname: db.example.com
Port: 3306
Heartbeat Interval: 120 ثانية
Monitor Type: DNS
Friendly Name: فحص DNS
Hostname: example.com
Resolver Server: 8.8.8.8
DNS Resolve Type: A
Expected Value: 1.2.3.4
Monitor Type: HTTP(S)
URL: https://example.com
# في تبويب SSL:
Enable SSL Certificate Expiry Notification: تشغيل
Notify Before (days): 30
# 1. أنشئ بوتاً من BotFather
# احصل على Bot Token: 1234567890:ABCdefGHIjklMNOpqrSTUvwxYZ
# 2. احصل على Chat ID
curl https://api.telegram.org/bot<TOKEN>/getUpdates
# سجّل قيمة "chat":{"id":123456789}
Notification Type: Telegram
Bot Token: 1234567890:ABCdefGHIjklMNOpqrSTUvwxYZ
Chat ID: 123456789
# إنشاء Webhook في Discord:
# إعدادات الخادم → التكاملات → Webhooks → Webhook جديد
# نسخ URL الـ Webhook
Notification Type: Discord
Discord Webhook URL: https://discord.com/api/webhooks/...
Username: Uptime Kuma
Notification Type: Email (SMTP)
From Email: alerts@example.com
To Email: admin@example.com
SMTP Host: smtp.gmail.com
SMTP Port: 587
SMTP Username: alerts@example.com
SMTP Password: كلمة-مرور-التطبيق
Security: STARTTLS
# إرسال إشعارات إلى أي خدمة بـ webhook مخصص
Notification Type: Webhook
Post URL: https://api.example.com/alerts
Content Type: application/json
# مثال على الـ payload:
{
"monitor": "{{monitorName}}",
"status": "{{status}}",
"message": "{{msg}}",
"time": "{{time}}"
}
status.example.com# إعدادات صفحة الحالة:
Title: حالة الخدمات
Description: الحالة الفورية لجميع خدماتنا
Theme: Auto (فاتح/داكن)
Custom Domain: status.example.com
# إنشاء حادثة في صفحة الحالة:
# Status Pages → Edit → Incidents → Create Incident
Title: صيانة مخططة
Content: ستُجرى صيانة بين 02:00-04:00.
Style: info / warning / danger
Maintenance → Add Maintenance
Title: الصيانة الأسبوعية
Strategy: Recurring
Start Time: الأحد 02:00
End Time: الأحد 04:00
Timezone: Asia/Riyadh
Affected Monitors: جميع المراقبين
docker stop uptime-kuma
docker rm uptime-kuma
docker pull louislam/uptime-kuma:latest
docker run -d \
--name uptime-kuma \
--restart=always \
-p 3001:3001 \
-v uptime-kuma:/app/data \
louislam/uptime-kuma:latest
# نسخ احتياطي لبيانات Uptime Kuma
docker exec uptime-kuma tar -czf /tmp/backup.tar.gz /app/data
docker cp uptime-kuma:/tmp/backup.tar.gz ./uptime-kuma-backup-$(date +%Y%m%d).tar.gz
# الاستعادة
docker cp ./uptime-kuma-backup.tar.gz uptime-kuma:/tmp/
docker exec uptime-kuma tar -xzf /tmp/backup.tar.gz -C /
يمكنك مراقبة جميع الخدمات التي تعمل على خوادم REXE باستخدام Uptime Kuma. مع إشعارات Telegram، ستُعلَم فوراً بأي انقطاع في الخدمة.
افتح المنفذ 3001 في جدار الحماية: 'ufw allow 3001/tcp'. تحقق من أن الحاوية تعمل: 'docker ps | grep uptime-kuma'. إذا كنت تستخدم Nginx reverse proxy، تحقق من إعدادات proxy_pass وشهادة SSL.
تحقق من صحة رمز البوت. قم بتشغيل 'curl https://api.telegram.org/bot<TOKEN>/getUpdates' للتحقق من Chat ID. يجب أن تكون قد أرسلت رسالة واحدة على الأقل للبوت. إذا كنت تستخدم مجموعة، أضف البوت إلى المجموعة واجعله مسؤولاً. استخدم زر 'Test' في إعدادات الإشعارات.
تحقق من إعداد 'Accepted Status Codes' (الافتراضي: 200-299). إذا كان موقعك يُرجع إعادة توجيه 301/302، أضفها أيضاً. إذا كان هناك خطأ في شهادة SSL، فعّل خيار 'Ignore TLS/SSL error'. زد مهلة الانتظار. تحقق من إمكانية الوصول إلى الموقع من الخادم الذي يعمل عليه Uptime Kuma.
أدخل اسم نطاقك في حقل 'Custom Domain' في إعدادات صفحة الحالة (مثلاً status.example.com). أنشئ سجل CNAME في DNS: status.example.com → uptime.example.com. إذا كنت تستخدم Nginx reverse proxy، أضف server block جديداً. احصل على شهادة SSL مع Let's Encrypt.
زد فترة heartbeat (120-300 ثانية بدلاً من 60). عطّل المراقبين غير الضروريين. خصص موارد أكثر لحاوية Uptime Kuma. قاعدة بيانات SQLite قد تتباطأ مع النمو؛ قم بتنظيف السجلات القديمة بانتظام. استخدم خيار 'Settings → Database → Shrink Database'.
عند إنشاء أو تحرير مراقب HTTP(S)، انتقل إلى تبويب 'SSL'. فعّل خيار 'Enable SSL Certificate Expiry Notification'. حدد عدد الأيام التي تريد الإشعار قبلها (مثلاً 30 يوماً). تأكد من تهيئة قناة الإشعارات (Telegram، البريد الإلكتروني، إلخ).
تثبيت Coolify، تكامل Docker وGit، نشر التطبيقات، إدارة قواعد البيانات، شهادات SSL، متغيرات البيئة وبديل PaaS المستضاف ذاتياً لـ Heroku/Netlify.
تثبيت Nextcloud مع Docker، تهيئة Apache/Nginx، إعداد قاعدة البيانات، شهادة SSL، مزامنة الملفات، متجر التطبيقات وتحسين الأداء.
تثبيت Portainer CE، إدارة Docker وKubernetes، نشر الـ stacks، إدارة الأحجام/الشبكات، تفويض المستخدمين، Webhooks وتكامل GitOps.