تثبيت Uptime Kuma: مراقبة وقت التشغيل المستضافة ذاتياً
تثبيت Uptime Kuma مع Docker، مراقبة HTTP/TCP/DNS/ping، تكاملات الإشعارات (Telegram، Discord، البريد الإلكتروني)، إنشاء صفحة الحالة وتهيئة التنبيهات.
جدول المحتويات
تثبيت Uptime Kuma: مراقبة وقت التشغيل المستضافة ذاتياً
Uptime Kuma هو أداة مراقبة وقت التشغيل المستضافة ذاتياً التي تتتبع حالة تشغيل خدماتك ومواقعك الإلكترونية. بواجهة ويب جميلة وأنواع مراقبة متنوعة وتكاملات إشعارات غنية، يوفر بديلاً رائعاً لـ Uptime Robot.
ما هو Uptime Kuma؟
الميزات البارزة لـ Uptime Kuma:
- أنواع المراقبة: HTTP(S)، TCP، DNS، Ping، Docker Container، Steam Game Server
- قنوات الإشعارات: Telegram وDiscord وSlack والبريد الإلكتروني وPagerDuty وWebhook وأكثر من 90 تكاملاً
- صفحة الحالة: صفحة حالة قابلة للتخصيص
- مراقبة SSL: تتبع تاريخ انتهاء صلاحية الشهادات
- نافذة الصيانة: تحديد نوافذ الصيانة المخططة
- دعم 2FA: المصادقة الثنائية
- متعدد اللغات: أكثر من 40 لغة
التثبيت
التثبيت مع Docker (موصى به)
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
# 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
HTTPS مع Nginx Reverse Proxy
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
أنواع المراقبة
مراقب HTTP(S)
لمراقبة المواقع الإلكترونية ونقاط نهاية 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
مراقب TCP Port
Monitor Type: TCP Port
Friendly Name: قاعدة بيانات MySQL
Hostname: db.example.com
Port: 3306
Heartbeat Interval: 120 ثانية
مراقب DNS
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
مراقبة شهادة SSL
Monitor Type: HTTP(S)
URL: https://example.com
# في تبويب SSL:
Enable SSL Certificate Expiry Notification: تشغيل
Notify Before (days): 30
تكاملات الإشعارات
إشعار Telegram
# 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
إشعار Discord
# إنشاء Webhook في Discord:
# إعدادات الخادم → التكاملات → Webhooks → Webhook جديد
# نسخ URL الـ Webhook
Notification Type: Discord
Discord Webhook URL: https://discord.com/api/webhooks/...
Username: Uptime Kuma
إشعار البريد الإلكتروني (SMTP)
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
# إرسال إشعارات إلى أي خدمة بـ 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 Pages → New Status Page
- عيّن اسم الصفحة والـ slug:
status.example.com - أضف الشعار والعنوان
- أضف المراقبين إلى المجموعات
- احفظ بـ Save
# إعدادات صفحة الحالة:
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: جميع المراقبين
تحديث Uptime Kuma
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، ستُعلَم فوراً بأي انقطاع في الخدمة.
مقالات ذات صلة
تثبيت Coolify: نشر التطبيقات مع PaaS المستضاف ذاتياً
تثبيت Coolify، تكامل Docker وGit، نشر التطبيقات، إدارة قواعد البيانات، شهادات SSL، متغيرات البيئة وبديل PaaS المستضاف ذاتياً لـ Heroku/Netlify.
تثبيت Nextcloud: التخزين السحابي المستضاف ذاتياً والتعاون
تثبيت Nextcloud مع Docker، تهيئة Apache/Nginx، إعداد قاعدة البيانات، شهادة SSL، مزامنة الملفات، متجر التطبيقات وتحسين الأداء.
إدارة Docker مع Portainer: التحكم في الحاويات عبر واجهة الويب
تثبيت Portainer CE، إدارة Docker وKubernetes، نشر الـ stacks، إدارة الأحجام/الشبكات، تفويض المستخدمين، Webhooks وتكامل GitOps.