لو بتدفع شهرياً لـ Statuspage.io أو Better Uptime علشان تعرض للعميل إن خدمتك شغّالة، الـ Gatus self-hosted بيعمل نفس الشغل بدولار واحد على VPS صغيرة. هتقوم تشغّله في 15 دقيقة بـ Docker Compose واحد، يفحص الـ endpoints بتاعتك كل 60 ثانية، ويرفعلك Status Page عام على دومين فرعي.
اعمل Status Page لخدماتك بـ Gatus وDocker بدون اشتراكات شهرية
المشكلة باختصار
أي خدمة SaaS بتاعك لازم تقول للعميل: "النظام شغّال أو في عطل دلوقتي". الطريقة الشائعة إنك تشترك في Statuspage.io بـ 29 دولار شهري للخطة الأساسية، أو Better Uptime بـ 24 دولار. على مدى سنة، الفاتورة بتتعدى 300 دولار لخدمة واحدة بسيطة بتعرض 5 صفحات HTML.
الـ trade-off هنا واضح: انت بتدفع للسهولة وتسليم المسؤولية لشركة تانية. لكن لو عندك بالفعل VPS صغيرة شغّالة (سواء Hetzner أو DigitalOcean أو Contabo)، Gatus بيعمل نفس الـ 90% من الفايدة في 200 سطر YAML، وبيعطيك تحكم كامل في شكل الصفحة والتنبيهات.
تخيّل الموقف بمثال للمبتدئ
تخيّل إن عندك مطعم وعايز تعلّق على باب المطعم لافتة بتقول: "المطبخ شغّال، الديليفري شغّال، التكييف معطّل". بدل ما تقعد كل ربع ساعة تقوم بنفسك تتأكد إن كل حاجة تمام، تحطّ موظف صغير عند الباب مهمته بس يفحص كل قسم كل دقيقة ويحدّث اللافتة.
Gatus هو الموظف ده. بيقعد في حلقة لا نهائية، يبعت طلبات HTTP لخدماتك، يقيس زمن الاستجابة، ويقرر إذا كانت "صحية" ولا "معطّلة" بناءً على شروط انت بتكتبها. وبعدين بيعرض النتيجة على صفحة ويب قابلة للمشاركة.
إيه هو Gatus بالظبط — التعريف العلمي
Gatus هو health-check engine مكتوب بـ Go، open-source تحت رخصة Apache 2.0. بيعتمد على فكرة الـ declarative monitoring: انت بتعرّف الخدمات في ملف YAML، وكل خدمة فيها conditions بتقول له إيه شكل الرد الصحيح.
الفرق بينه وبين Uptime Kuma أو Healthchecks.io إنه built بـ Go (binary واحد، استهلاك ذاكرة ~25MB)، وبيدعم سبعة أنواع فحوصات: HTTP, ICMP, TCP, DNS, STARTTLS, gRPC, و WebSocket. كمان بيخزّن النتايج في SQLite أو PostgreSQL لو عايز تاريخ طويل.
الخطوات: من صفر لـ Status Page شغّال
- جهّز VPS صغيرة. أي سيرفر بـ 1GB RAM و1 vCPU كافي. Hetzner CX11 بـ 4 يورو شهري بيعمل الشغل.
- ركّب Docker وDocker Compose لو مش متركبين. على Ubuntu:
curl -fsSL https://get.docker.com | sh. - اعمل مجلد للـ config.
mkdir -p /opt/gatus/configثمcd /opt/gatus. - اكتب ملف
docker-compose.yml(الكود تحت). - اكتب ملف
config/config.yamlفيه الـ endpoints اللي عايز تراقبها. - شغّل:
docker compose up -d.