نشر خدمات SaaS الخاصة بك: دليل شامل للاستضافة الذاتية لخدمات السحابة الخاصة
⏱️ وقت القراءة المقدر: 15 دقيقة
المقدمة
في عصر أصبحت فيه خصوصية البيانات والتحكم فيها أمرًا بالغ الأهمية، قد يكون الاعتماد فقط على منصات SaaS (البرمجيات كخدمة) التابعة لجهات خارجية مصدر قلق. ماذا لو كان بإمكانك نشر نسخك الخاصة من الخدمات الشائعة مثل Dropbox وGoogle Docs وTrello، مع الحفاظ على التحكم الكامل في بياناتك؟
مشروع Deploy Your Own SaaS هو قائمة منسقة من البدائل مفتوحة المصدر القابلة للاستضافة الذاتية للخدمات السحابية الشائعة. سيرشدك هذا البرنامج التعليمي إلى فهم ما تعنيه الاستضافة الذاتية، وسبب أهميتها، وكيفية البدء في نشر البنية التحتية السحابية الخاصة بك.
ما ستتعلمه
- فهم الاستضافة الذاتية وفوائدها
- المتطلبات الأساسية لتشغيل الخدمات المستضافة ذاتيًا
- نشر الخدمات عبر فئات متعددة (VPN، التخزين، التحليلات، إلخ)
- أفضل ممارسات الأمان والصيانة
- أمثلة نشر عملية باستخدام Docker
لمن هذا الدليل
- الأفراد والمؤسسات المهتمون بالخصوصية
- المطورون الراغبون في تعلم إدارة البنية التحتية
- الفرق الصغيرة التي تبحث عن بدائل فعالة من حيث التكلفة
- أي شخص مهتم بامتلاك البنية التحتية الرقمية الخاصة به
لماذا الاستضافة الذاتية لخدماتك؟
1. خصوصية البيانات والتحكم فيها
عند الاستضافة الذاتية، لن تغادر بياناتك أبدًا البنية التحتية الخاصة بك. لن تخضع لسياسات بيانات الجهات الخارجية أو الانتهاكات المحتملة أو إغلاق الخدمات غير المتوقعة.
2. كفاءة التكلفة
في حين أن هناك استثمارًا أوليًا في البنية التحتية، يمكن أن تكون الاستضافة الذاتية أكثر فعالية من حيث التكلفة على المدى الطويل، خاصة للفرق أو المستخدمين الكثيفين.
3. حرية التخصيص
توفر حلول الاستضافة الذاتية مفتوحة المصدر تخصيصًا كاملاً. قم بتعديل الكود، أو الدمج مع أدوات أخرى، أو إضافة ميزات حسب الحاجة.
4. فرصة التعلم
توفر الاستضافة الذاتية خبرة عملية في:
- إدارة الخوادم
- Docker والحاويات
- الشبكات والأمان
- إدارة قواعد البيانات
- خطوط أنابيب CI/CD
5. عدم الارتباط بموردين محددين
لا ترتبط بياناتك وسير عملك بمنصة احتكارية. يمكنك الترحيل أو النسخ الاحتياطي أو التبديل بين الحلول دون قيود.
المتطلبات الأساسية
قبل الغوص في الاستضافة الذاتية، تأكد من أن لديك:
الأجهزة/البنية التحتية
- VPS أو خادم مخصص: خدمات مثل DigitalOcean، AWS، Linode، أو خادم منزلي
- المواصفات الدنيا: 2GB RAM، 20GB تخزين (يختلف حسب الخدمة)
- اسم نطاق: للوصول إلى الخدمات عبر عناوين URL مخصصة
- IP ثابت (موصى به): للوصول المتسق
المعرفة التقنية
- مهارات أساسية في سطر أوامر Linux
- فهم الشبكات (المنافذ، جدار الحماية، DNS)
- معرفة Docker (موصى به)
- الوصول إلى SSH وإدارة المفاتيح
متطلبات البرامج
- نظام التشغيل: Ubuntu 22.04 LTS أو مشابه
- Docker & Docker Compose: للنشر بالحاويات
- وكيل عكسي: Nginx أو Traefik لإدارة خدمات متعددة
- شهادات SSL: Let’s Encrypt لـ HTTPS
الفئات والخدمات الأساسية
دعونا نستكشف الفئات الأكثر شعبية من قائمة Deploy Your Own SaaS:
🔐 1. نشر VPN الخاص بك
لماذا: تأمين اتصال الإنترنت، تجاوز القيود الجغرافية، حماية الخصوصية على WiFi العامة.
التوصيات الرئيسية:
WireGuard (موصى به)
- بروتوكول VPN حديث وسريع وخفيف الوزن
- أسرع بكثير من OpenVPN
- يتطلب الحد الأدنى من التكوين
النشر باستخدام Docker:
# تثبيت WireGuard باستخدام Docker
docker run -d \
--name=wireguard \
--cap-add=NET_ADMIN \
--cap-add=SYS_MODULE \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Asia/Riyadh \
-e SERVERURL=your-domain.com \
-e SERVERPORT=51820 \
-e PEERS=5 \
-p 51820:51820/udp \
-v /path/to/config:/config \
-v /lib/modules:/lib/modules \
--sysctl="net.ipv4.conf.all.src_valid_mark=1" \
--restart unless-stopped \
linuxserver/wireguard
البديل: Algo VPN - إعداد WireGuard تلقائي باستخدام نصوص Ansible.
📁 2. نشر التخزين السحابي الخاص بك (بديل Dropbox)
لماذا: تخزين الملفات بشكل خاص، المزامنة عبر الأجهزة، المشاركة مع أعضاء الفريق.
التوصيات الرئيسية:
Nextcloud (الأكثر شمولاً)
- مزامنة ومشاركة الملفات
- مستندات المكتب (تكامل Collabora)
- التقويم، جهات الاتصال، البريد الإلكتروني
- تطبيقات للجوال iOS/Android
- نظام بيئي واسع من المكونات الإضافية
إعداد Docker Compose:
version: '3'
services:
nextcloud:
image: nextcloud:latest
container_name: nextcloud
ports:
- "8080:80"
volumes:
- nextcloud_data:/var/www/html
- ./data:/var/www/html/data
environment:
- MYSQL_HOST=nextcloud_db
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=secure_password
restart: unless-stopped
nextcloud_db:
image: mariadb:10
container_name: nextcloud_db
volumes:
- db_data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=root_password
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=secure_password
restart: unless-stopped
volumes:
nextcloud_data:
db_data:
البديل: Seafile - أسرع وأكثر كفاءة للملفات الكبيرة.
🔑 3. نشر مدير كلمات المرور الخاص بك
لماذا: تخزين كلمات المرور ومفاتيح API والمعلومات الحساسة بأمان.
التوصية الرئيسية:
Bitwarden (المعيار الصناعي)
- تشفير من طرف إلى طرف
- إضافات المتصفح لجميع المتصفحات الرئيسية
- تطبيقات الجوال
- مشاركة آمنة لكلمات المرور
- دعم المصادقة الثنائية
إعداد Docker:
# استخدام نشر Bitwarden الموحد
docker pull vaultwarden/server:latest
docker run -d \
--name vaultwarden \
-v /vw-data/:/data/ \
-e WEBSOCKET_ENABLED=true \
-p 8000:80 \
vaultwarden/server:latest
ملاحظة: Vaultwarden هو بديل خفيف ومتوافق مكتوب بلغة Rust.
📊 4. نشر أدوات التحليلات الخاصة بك (بديل Google Analytics)
لماذا: احترام خصوصية المستخدم مع فهم جمهورك.
التوصيات الرئيسية:
Matomo (الأكثر شمولاً)
- متوافق مع GDPR
- خرائط الحرارة وتسجيلات الجلسات
- قدرات اختبار A/B
- لوحة تحكم التحليلات في الوقت الفعلي
Docker Compose:
version: '3'
services:
matomo:
image: matomo:latest
container_name: matomo
ports:
- "8080:80"
volumes:
- matomo_data:/var/www/html
environment:
- MATOMO_DATABASE_HOST=matomo_db
- MATOMO_DATABASE_DBNAME=matomo
- MATOMO_DATABASE_USERNAME=matomo
- MATOMO_DATABASE_PASSWORD=secure_password
restart: unless-stopped
matomo_db:
image: mariadb:10
container_name: matomo_db
volumes:
- db_data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=root_password
- MYSQL_DATABASE=matomo
- MYSQL_USER=matomo
- MYSQL_PASSWORD=secure_password
restart: unless-stopped
volumes:
matomo_data:
db_data:
البديل الخفيف: Plausible - تحليلات بسيطة تركز على الخصوصية بدون ملفات تعريف الارتباط.
📷 5. نشر نظام إدارة الصور الخاص بك
لماذا: تخزين وتنظيم الصور بشكل خاص مع ميزات مدعومة بالذكاء الاصطناعي.
التوصية الرئيسية:
Immich (حديث وغني بالميزات)
- تطبيق الجوال مع النسخ الاحتياطي التلقائي
- التعرف على الوجوه والكشف عن الأشياء بالذكاء الاصطناعي
- عرض الجدول الزمني وميزة الذكريات
- دعم الصور المباشرة
- واجهة مستخدم سريعة وسريعة الاستجابة
إعداد Docker Compose:
version: '3.8'
services:
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:release
command: ['start.sh', 'immich']
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
env_file:
- .env
depends_on:
- redis
- database
restart: always
immich-microservices:
container_name: immich_microservices
image: ghcr.io/immich-app/immich-server:release
command: ['start.sh', 'microservices']
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
env_file:
- .env
depends_on:
- redis
- database
restart: always
immich-machine-learning:
container_name: immich_machine_learning
image: ghcr.io/immich-app/immich-machine-learning:release
volumes:
- model-cache:/cache
env_file:
- .env
restart: always
redis:
container_name: immich_redis
image: redis:6.2-alpine
restart: always
database:
container_name: immich_postgres
image: tensorchord/pgvecto-rs:pg14-v0.2.0
env_file:
- .env
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USERNAME}
POSTGRES_DB: ${DB_DATABASE_NAME}
volumes:
- pgdata:/var/lib/postgresql/data
restart: always
volumes:
pgdata:
model-cache:
🗂️ 6. نشر خادم Git الخاص بك
لماذا: استضافة مستودع خاص للمشاريع الشخصية أو الجماعية.
التوصيات الرئيسية:
Gitea (خفيف وسريع)
- مكتوب بلغة Go، يستخدم الحد الأدنى من الموارد
- واجهة على غرار GitHub
- تتبع المشكلات وطلبات السحب
- تكامل CI/CD
- يمكن تشغيله على Raspberry Pi
إعداد Docker:
version: '3'
services:
gitea:
image: gitea/gitea:latest
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=postgres
- GITEA__database__HOST=gitea_db:5432
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=secure_password
restart: always
volumes:
- ./gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "222:22"
depends_on:
- gitea_db
gitea_db:
image: postgres:14
restart: always
environment:
- POSTGRES_USER=gitea
- POSTGRES_PASSWORD=secure_password
- POSTGRES_DB=gitea
volumes:
- ./postgres:/var/lib/postgresql/data
البديل: GitLab CE - المزيد من الميزات ولكن يتطلب المزيد من الموارد.
📋 7. نشر لوحة كانبان الخاصة بك (بديل Trello)
لماذا: إدارة المشاريع وتتبع المهام للفرق.
التوصية الرئيسية:
Planka (نسخة Trello)
- يبدو ويعمل تمامًا مثل Trello
- تحديثات في الوقت الفعلي
- واجهة السحب والإفلات
- التسميات، تواريخ الاستحقاق، المرفقات
- سهل الاستخدام
Docker Compose:
version: '3'
services:
planka:
image: ghcr.io/plankanban/planka:latest
container_name: planka
restart: unless-stopped
volumes:
- user-avatars:/app/public/user-avatars
- project-background-images:/app/public/project-background-images
- attachments:/app/public/attachments
ports:
- "3000:1337"
environment:
- BASE_URL=http://your-domain.com
- DATABASE_URL=postgresql://planka:password@planka_db/planka
- SECRET_KEY=your_secret_key_here
depends_on:
- planka_db
planka_db:
image: postgres:14-alpine
container_name: planka_db
restart: unless-stopped
volumes:
- db-data:/var/lib/postgresql/data
environment:
- POSTGRES_DB=planka
- POSTGRES_USER=planka
- POSTGRES_PASSWORD=password
volumes:
user-avatars:
project-background-images:
attachments:
db-data:
🏠 8. نشر مركز المنزل الذكي الخاص بك
لماذا: التحكم في الأجهزة الذكية بشكل خاص بدون الاعتماد على السحابة.
التوصية الرئيسية:
Home Assistant
- يدعم أكثر من 2000 تكامل
- التحكم المحلي، لا حاجة للسحابة
- منشئ الأتمتة مع محرر مرئي
- تطبيقات الجوال لـ iOS/Android
- مجتمع نشط وتحديثات متكررة
إعداد Docker:
docker run -d \
--name homeassistant \
--privileged \
--restart=unless-stopped \
-e TZ=Asia/Riyadh \
-v /path/to/config:/config \
--network=host \
ghcr.io/home-assistant/home-assistant:stable
🎥 9. نشر نظام مؤتمرات الفيديو الخاص بك
لماذا: مكالمات فيديو خاصة بدون حدود المشاركين أو قيود الوقت.
التوصية الرئيسية:
Jitsi Meet
- لا حاجة لحساب
- مشاركة الشاشة
- إمكانية التسجيل
- تطبيقات الجوال متاحة
- قابل للتوسع للاجتماعات الكبيرة
Docker Compose: راجع مستودع Jitsi Docker الرسمي للإعداد الكامل.
💰 10. نشر متتبع المالية الشخصية الخاص بك
لماذا: تتبع النفقات والميزانيات دون مشاركة البيانات المالية.
التوصية الرئيسية:
Firefly III
- إدارة الميزانية
- دعم حسابات متعددة
- تتبع الفواتير والتذكيرات
- التقارير والرسوم البيانية
- API للأتمتة
Docker Compose:
version: '3.3'
services:
firefly_iii:
image: fireflyiii/core:latest
container_name: firefly_iii
restart: unless-stopped
volumes:
- firefly_iii_upload:/var/www/html/storage/upload
env_file: .env
ports:
- "8080:8080"
depends_on:
- firefly_iii_db
firefly_iii_db:
image: mariadb:10
container_name: firefly_iii_db
restart: unless-stopped
environment:
- MYSQL_RANDOM_ROOT_PASSWORD=yes
- MYSQL_USER=firefly
- MYSQL_PASSWORD=secret_firefly_password
- MYSQL_DATABASE=firefly
volumes:
- firefly_iii_db:/var/lib/mysql
volumes:
firefly_iii_upload:
firefly_iii_db:
دليل الإعداد الكامل للاستضافة الذاتية
الخطوة 1: تحضير الخادم الخاص بك
الخيار أ: VPS السحابي (موصى به للمبتدئين)
# مثال: DigitalOcean Droplet، AWS EC2، Linode، إلخ
# المواصفات الموصى بها: 4GB RAM، 2 vCPU، 80GB SSD
الخيار ب: خادم منزلي
- جهاز كمبيوتر محمول أو سطح مكتب قديم
- Raspberry Pi 4 (طراز 8GB)
- جهاز NAS (Synology، QNAP)
الخطوة 2: الإعداد الأولي للخادم
# تحديث النظام
sudo apt update && sudo apt upgrade -y
# تثبيت Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# تثبيت Docker Compose
sudo apt install docker-compose -y
# إضافة المستخدم إلى مجموعة docker
sudo usermod -aG docker $USER
# تثبيت fail2ban للأمان
sudo apt install fail2ban -y
# إعداد جدار الحماية
sudo ufw allow 22/tcp # SSH
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 443/tcp # HTTPS
sudo ufw enable
الخطوة 3: إعداد الوكيل العكسي (Traefik)
يتيح لك الوكيل العكسي استضافة خدمات متعددة على خادم واحد مع SSL التلقائي.
docker-compose.yml لـ Traefik:
version: '3'
services:
traefik:
image: traefik:v2.10
container_name: traefik
restart: unless-stopped
security_opt:
- no-new-privileges:true
networks:
- proxy
ports:
- "80:80"
- "443:443"
volumes:
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./traefik-data/traefik.yml:/traefik.yml:ro
- ./traefik-data/acme.json:/acme.json
- ./traefik-data/config.yml:/config.yml:ro
labels:
- "traefik.enable=true"
- "traefik.http.routers.traefik.entrypoints=http"
- "traefik.http.routers.traefik.rule=Host(`traefik.your-domain.com`)"
- "traefik.http.routers.traefik-secure.entrypoints=https"
- "traefik.http.routers.traefik-secure.rule=Host(`traefik.your-domain.com`)"
- "traefik.http.routers.traefik-secure.tls=true"
- "traefik.http.routers.traefik-secure.tls.certresolver=cloudflare"
- "traefik.http.routers.traefik-secure.service=api@internal"
networks:
proxy:
external: true
traefik.yml:
api:
dashboard: true
debug: true
entryPoints:
http:
address: ":80"
http:
redirections:
entryPoint:
to: https
scheme: https
https:
address: ":443"
certificatesResolvers:
cloudflare:
acme:
email: your-email@example.com
storage: acme.json
dnsChallenge:
provider: cloudflare
providers:
docker:
endpoint: "unix:///var/run/docker.sock"
exposedByDefault: false
file:
filename: /config.yml
الخطوة 4: نشر الخدمة الأولى
لنقم بنشر Bitwarden (Vaultwarden) كمثال:
version: '3'
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: unless-stopped
networks:
- proxy
volumes:
- ./vw-data:/data
environment:
- WEBSOCKET_ENABLED=true
- SIGNUPS_ALLOWED=true # تعطيل بعد إنشاء حسابك
- DOMAIN=https://vault.your-domain.com
labels:
- "traefik.enable=true"
- "traefik.http.routers.vaultwarden.entrypoints=https"
- "traefik.http.routers.vaultwarden.rule=Host(`vault.your-domain.com`)"
- "traefik.http.routers.vaultwarden.tls=true"
- "traefik.http.services.vaultwarden.loadbalancer.server.port=80"
networks:
proxy:
external: true
النشر:
docker-compose up -d
الوصول على: https://vault.your-domain.com
الخطوة 5: تكوين DNS
لكل خدمة، أنشئ سجل A يشير إلى IP الخادم الخاص بك:
vault.your-domain.com -> 123.456.789.0
cloud.your-domain.com -> 123.456.789.0
git.your-domain.com -> 123.456.789.0
سيقوم Traefik تلقائيًا بتوجيه حركة المرور إلى الحاوية الصحيحة.
أفضل ممارسات الأمان
1. تفعيل المصادقة الثنائية
- استخدم Authelia أو Authentik كوسيط مصادقة
- تفعيل 2FA على الخدمات الفردية
2. نسخ احتياطية منتظمة
#!/bin/bash
# مثال على نص النسخ الاحتياطي
BACKUP_DIR="/backups/$(date +%Y-%m-%d)"
mkdir -p $BACKUP_DIR
# نسخ احتياطي لـ Nextcloud
docker exec nextcloud_db mysqldump -u nextcloud -p'password' nextcloud > $BACKUP_DIR/nextcloud.sql
cp -r /path/to/nextcloud/data $BACKUP_DIR/nextcloud_data
# نسخ احتياطي لـ Bitwarden
cp -r /path/to/vw-data $BACKUP_DIR/vaultwarden
# رفع إلى التخزين البعيد (اختياري)
rclone sync $BACKUP_DIR remote:backups/
3. الحفاظ على تحديث البرامج
# تحديث جميع الحاويات
docker-compose pull
docker-compose up -d
# إزالة الصور القديمة
docker image prune -a
4. مراقبة خدماتك
نشر Uptime Kuma للمراقبة:
version: '3'
services:
uptime-kuma:
image: louislam/uptime-kuma:1
container_name: uptime-kuma
volumes:
- ./uptime-kuma-data:/app/data
ports:
- "3001:3001"
restart: unless-stopped
5. استخدام كلمات مرور قوية
# إنشاء كلمات مرور آمنة
openssl rand -base64 32
6. تقييد التعرض
- قم بتعريض المنافذ الضرورية فقط
- استخدم VPN لواجهات المسؤول
- قم بتنفيذ تحديد المعدل مع Traefik
تحليل التكلفة
التكاليف الشهرية لـ VPS السحابية
المزود | المواصفات | التكلفة الشهرية |
---|---|---|
DigitalOcean | 4GB RAM، 2 vCPU، 80GB SSD | $24/شهر |
Linode | 4GB RAM، 2 vCPU، 80GB SSD | $24/شهر |
Hetzner | 4GB RAM، 2 vCPU، 80GB SSD | ~€5/شهر |
AWS Lightsail | 2GB RAM، 1 vCPU، 60GB SSD | $12/شهر |
المقارنة مع تكاليف SaaS
الخدمة | التكلفة الشهرية لـ SaaS | تكلفة الاستضافة الذاتية |
---|---|---|
Dropbox (2TB) | $11.99 | مدرج في VPS |
Bitwarden Premium | $10 | مدرج في VPS |
Google Workspace | $12/مستخدم | مدرج في VPS |
Trello Power-Up | $5 | مدرج في VPS |
المجموع | $38.99+ | $24 (جميع الخدمات) |
التوفير: ~$180/سنة مع استضافة 10+ خدمات!
تكاليف الخادم المنزلي
- Raspberry Pi 4 (8GB): $75 لمرة واحدة
- استهلاك الطاقة: ~$2/شهر
- إجمالي السنة الأولى: ~$99
استكشاف الأخطاء الشائعة وإصلاحها
المشكلة 1: لن تبدأ الحاوية
# فحص السجلات
docker-compose logs -f service_name
# الإصلاحات الشائعة
docker-compose down
docker-compose up -d
المشكلة 2: رفض الإذن
# إصلاح أذونات الحجم
sudo chown -R 1000:1000 /path/to/volume
المشكلة 3: مشاكل شهادة SSL
# فحص سجلات Traefik
docker logs traefik
# التحقق من انتشار DNS
dig your-domain.com
المشكلة 4: نفاد مساحة القرص
# فحص استخدام القرص
df -h
# تنظيف Docker
docker system prune -a
# تنظيف السجلات
sudo journalctl --vacuum-time=3d
المشكلة 5: الأداء البطيء
# فحص استخدام الموارد
docker stats
# تحديد موارد الحاوية
services:
service_name:
mem_limit: 512m
cpus: 0.5
الموضوعات المتقدمة
1. إعداد التوافر العالي
للخدمات الحرجة، ضع في اعتبارك:
- مثيلات خادم متعددة
- موازنة التحميل مع Traefik
- نسخ قاعدة البيانات المتماثل
- التخزين الموزع (GlusterFS، Ceph)
2. نسخ احتياطية تلقائية إلى مواقع متعددة
# استخدم rclone للنسخ الاحتياطي إلى موفري سحابة متعددين
rclone sync /backups remote1:backups
rclone sync /backups remote2:backups
3. حزمة المراقبة
نشر Prometheus + Grafana:
version: '3'
services:
prometheus:
image: prom/prometheus
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
- prometheus_data:/prometheus
ports:
- "9090:9090"
grafana:
image: grafana/grafana
volumes:
- grafana_data:/var/lib/grafana
ports:
- "3000:3000"
environment:
- GF_SECURITY_ADMIN_PASSWORD=admin
volumes:
prometheus_data:
grafana_data:
4. التحديثات التلقائية مع Watchtower
services:
watchtower:
image: containrrr/watchtower
volumes:
- /var/run/docker.sock:/var/run/docker.sock
command: --cleanup --interval 86400
مصفوفة الخدمات الكاملة
إليك قائمة شاملة منظمة حسب الفئة:
التواصل والتعاون
- Rocket.Chat: دردشة الفريق (بديل Slack)
- Jitsi Meet: مؤتمرات الفيديو
- Mattermost: التواصل الجماعي
- Zulip: دردشة الفريق المترابطة
الإنتاجية
- Planka: لوحة كانبان (Trello)
- WeKan: خيار كانبان آخر
- Vikunja: إدارة المهام
- Bookstack: ويكي الوثائق
إدارة الوسائط
- Immich: إدارة الصور (Google Photos)
- Jellyfin: خادم الوسائط (بديل Plex)
- Navidrome: بث الموسيقى
- Paperless-ngx: إدارة المستندات
التطوير
- Gitea: خادم Git
- GitLab CE: منصة DevOps كاملة
- Drone: خط أنابيب CI/CD
- Harbor: سجل الحاويات
الأتمتة
- n8n: أتمتة سير العمل (Zapier)
- Activepieces: أداة أتمتة أخرى
- Home Assistant: أتمتة المنزل
الخصوصية والأمان
- Vaultwarden: مدير كلمات المرور
- Wireguard: VPN
- Authentik: SSO والمصادقة
التحليلات والمراقبة
- Matomo: تحليلات الويب
- Plausible: تحليلات بسيطة
- Uptime Kuma: مراقبة وقت التشغيل
نقطة البداية الموصى بها
للمبتدئين، أوصي بالبدء بهذه الحزمة:
- Vaultwarden (مدير كلمات المرور) - أساسي للأمان
- Nextcloud (التخزين السحابي) - الأكثر فائدة يوميًا
- Uptime Kuma (المراقبة) - مراقبة خدماتك
- Planka (لوحة كانبان) - تنظيم المهام
- Gitea (خادم Git) - إذا كنت تكتب الكود
إجمالي متطلبات الموارد: ~6GB RAM، 100GB تخزين
موارد التعلم
المجتمعات
- r/selfhosted - مجتمع Reddit نشط
- Self-Hosted Podcast - مناقشات أسبوعية
- Awesome Self-Hosted - قائمة شاملة
الوثائق
- LinuxServer.io - وثائق الحاويات
- وثائق Traefik - إعداد الوكيل
- وثائق Docker - أساسيات الحاويات
دروس الفيديو
- قناة TechnoTim على YouTube
- قناة DB Tech على YouTube
- قناة NetworkChuck على YouTube
الخلاصة
توفر الاستضافة الذاتية لخدماتك تحكمًا وخصوصية وفرص تعلم لا مثيل لها. بينما تتطلب إعدادًا أوليًا وصيانة مستمرة، فإن الفوائد تفوق التكاليف بكثير للعديد من المستخدمين والمؤسسات.
النقاط الرئيسية
- ابدأ صغيرًا: ابدأ بـ 1-2 من الخدمات الأساسية
- استخدم Docker: يبسط النشر والتحديثات
- طبّق الأمان: النسخ الاحتياطية و2FA والمراقبة من اليوم الأول
- انضم إلى المجتمعات: تعلم من المستضيفين الذاتيين ذوي الخبرة
- وثّق كل شيء: احتفظ بملاحظات حول إعدادك
الخطوات التالية
- اختر منصة الاستضافة الخاصة بك (VPS أو خادم منزلي)
- قم بإعداد Docker وTraefik
- انشر خدمتك الأولى (نوصي بـ Vaultwarden)
- قم بتكوين النسخ الاحتياطية
- أضف المزيد من الخدمات تدريجيًا
الأفكار الأخيرة
يعد مستودع Deploy Your Own SaaS موردًا لا يقدر بثمن لأي شخص مهتم بالاستضافة الذاتية. سواء كنت مهتمًا بالخصوصية أو مهتمًا بالتكلفة أو ببساطة فضولي بشأن البنية التحتية، فإن الاستضافة الذاتية تضعك في السيطرة على حياتك الرقمية.
تذكر: ابدأ ببساطة، وكرر بشكل متكرر، واستمتع برحلة التعلم!
الروابط المفيدة:
أسئلة أو مشاكل؟ انضم إلى مجتمع الاستضافة الذاتية ولا تتردد في طلب المساعدة!
استضافة ذاتية سعيدة! 🚀