Nextcloud همگامسازی فایل، تقویم، مخاطبین و ویرایش اسناد را روی سروری که خودتان کنترل میکنید در اختیارتان میگذارد، به جای اینکه فایلهایتان را به یک ارائهدهنده ابری بزرگ بسپارید. در اینجا نحوه اجرای آن روی VPS با Docker Compose آمده است.
پیش از شروع
- یک 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
پیش از اجرا هر سه رمز عبور را عوض کنید. از رشتههای تصادفی بلند استفاده کنید.
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 را برای هر حساب فعال کنید.