OffshoreVps
آموزش‌ها10 اکتبر 20269 دقیقه مطالعهنوشته‌ی تیم OffshoreVps

میزبانی Nextcloud روی VPS با Docker Compose

ابر خصوصی خودتان را برای فایل‌ها، تقویم‌ها و مخاطبان راه بیندازید: فایل Compose، پراکسی معکوس HTTPS، دامنه‌های مورد اعتماد، cron jobها و پشتیبان‌گیری.

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

پیش از اجرا هر سه رمز عبور را عوض کنید. از رشته‌های تصادفی بلند استفاده کنید.

گام‌های این راهنما به ترتیب: ۱. پیش از شروع؛ ۲. ۱. فایل Compose؛ ۳. ۲. HTTPS را جلویش بگذارید؛ ۴. ۳. راه‌اندازی را تمام کنید؛ ۵. ۴. آن را سالم نگه دارید
گام‌های این راهنما به ترتیب.

2. HTTPS را جلوی آن بگذارید

یک server block در 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، هر بار یک نسخه major.
  • کارهای پس‌زمینه: در تنظیمات مدیر به Cron تغییر دهید و یک ورودی cron میزبان اضافه کنید که cron.php را هر پنج دقیقه اجرا کند.
  • پشتیبان‌گیری: هر دو volume و یک خروجی پایگاه داده را ذخیره کنید. چگونه از VPS پشتیبان بگیریم را ببینید.
  • ورود دومرحله‌ای: برنامه TOTP را برای هر حساب فعال کنید.