OffshoreVps
الشروحات10 أكتوبر 20269 دقيقة للقراءةبقلم فريق OffshoreVps

استضف Nextcloud بنفسك على VPS باستخدام Docker Compose

شغّل سحابتك الخاصة للملفات والتقويمات وجهات الاتصال: ملف Compose، ووكيل عكسي HTTPS، والنطاقات الموثوقة، ومهام cron، والنسخ الاحتياطية.

يمنحك Nextcloud مزامنة الملفات والتقويمات وجهات الاتصال وتحرير المستندات على خادم تتحكم فيه، بدلاً من تسليم ملفاتك إلى مزوّد سحابي كبير. إليك كيفية تشغيله على VPS باستخدام Docker Compose.

نافذة طرفية على VPS تعرض الأوامر المستخدمة لاستضافة Nextcloud بنفسك، تبدأ بـ “mkdir -p ~/nextcloud && cd ~/nextcloud”
نوع الأوامر التي ستشغّلها على خادمك في هذا الدليل.

قبل أن تبدأ

  • VPS بمعالجين افتراضيين 2 vCPU وذاكرة 4 GB من RAM بداية مريحة. التخزين هو القيد الرئيسي، لذا اختر حجم قرص يناسب ملفاتك.
  • نطاق موجَّه إلى الخادم، وهو مشروح في دليل DNS لدينا.
  • Docker مثبّت، راجع تثبيت Docker على Ubuntu.

1. ملف Compose

mkdir -p ~/nextcloud && cd ~/nextcloud
cat > compose.yaml <<'EOF'
services:
  db:
    image: mariadb:11
    restart: unless-stopped
    command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
    environment:
      MYSQL_ROOT_PASSWORD: change-me-root
      MYSQL_PASSWORD: change-me-db
      MYSQL_DATABASE: nextcloud
      MYSQL_USER: nextcloud
    volumes:
      - db:/var/lib/mysql
  redis:
    image: redis:7-alpine
    restart: unless-stopped
  app:
    image: nextcloud:stable
    restart: unless-stopped
    depends_on: [db, redis]
    ports:
      - "127.0.0.1:8080:80"
    environment:
      MYSQL_HOST: db
      MYSQL_DATABASE: nextcloud
      MYSQL_USER: nextcloud
      MYSQL_PASSWORD: change-me-db
      REDIS_HOST: redis
    volumes:
      - nc:/var/www/html
volumes:
  db:
  nc:
EOF
docker compose up -d

غيّر كلمات المرور الثلاث كلها قبل التشغيل. استخدم سلاسل عشوائية طويلة.

خطوات هذا الدليل بالترتيب: 1. قبل أن تبدأ؛ 2. 1. ملف Compose؛ 3. 2. ضع HTTPS في الواجهة؛ 4. 3. أكمل الإعداد؛ 5. 4. حافظ على سلامته
خطوات هذا الدليل بالترتيب.

2. ضع HTTPS في الواجهة

أضف كتلة خادم Nginx تمرّر الطلبات إلى 127.0.0.1:8080، ثم شغّل Certbot كما في دليل Nginx لدينا. تحتاج كتلة الوكيل إلى هذه الأسطر ليرى Nextcloud البروتوكول الصحيح وتعمل عمليات الرفع الكبيرة:

client_max_body_size 2G;
location / {
    proxy_pass http://127.0.0.1:8080;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;
}

3. أنهِ الإعداد

افتح نطاقك وأنشئ حساب المسؤول. ثم أضف نطاقك إلى القائمة الموثوقة واضبط تفاصيل الوكيل:

docker compose exec -u www-data app php occ config:system:set trusted_domains 1 --value=cloud.example.com
docker compose exec -u www-data app php occ config:system:set overwriteprotocol --value=https

4. حافظ على سلامته

  • التحديثات: docker compose pull && docker compose up -d، إصداراً رئيسياً واحداً في كل مرة.
  • المهام الخلفية: بدّل إلى Cron في إعدادات المسؤول وأضف مُدخل cron على المضيف يشغّل cron.php كل خمس دقائق.
  • النسخ الاحتياطية: احفظ المجلدين (volumes) معاً مع تفريغ لقاعدة البيانات. راجع كيفية النسخ الاحتياطي لـ VPS.
  • تسجيل الدخول بخطوتين: فعّل تطبيق TOTP لكل حساب.