Nextcloud, dosyalarınızı büyük bir bulut sağlayıcısına vermek yerine, kontrol ettiğiniz bir sunucuda dosya eşitleme, takvim, kişi ve belge düzenleme sunar. İşte Docker Compose ile bir VPS'te nasıl çalıştırılacağı.
Başlamadan önce
- 2 vCPU ve 4 GB RAM'li bir VPS rahat bir başlangıçtır. Asıl kısıt depolamadır, bu yüzden dosyalarınıza yetecek bir disk boyutu seçin.
- Sunucuya işaret eden bir alan adı; DNS rehberimizde anlatılıyor.
- Docker kurulu olmalı, bkz. Ubuntu'ya Docker kurulumu.
1. Compose dosyası
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
Çalıştırmadan önce üç parolanın hepsini değiştirin. Uzun rastgele diziler kullanın.
2. Önüne HTTPS koyun
127.0.0.1:8080 adresine proxy yapan bir Nginx server bloğu ekleyin, ardından Nginx rehberimizdeki gibi Certbot'u çalıştırın. Nextcloud'un doğru protokolü görmesi ve büyük yüklemelerin çalışması için proxy bloğunda şu satırlar gerekir:
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. Kurulumu tamamlayın
Alan adınızı açın ve yönetici hesabını oluşturun. Sonra alan adınızı güvenilenler listesine ekleyin ve proxy ayrıntılarını ayarlayın:
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. Sağlıklı tutun
- Güncellemeler:
docker compose pull && docker compose up -d, her seferinde bir ana sürüm. - Arka plan işleri: yönetici ayarlarında Cron'a geçin ve beş dakikada bir
cron.phpçalıştıran bir ana makine cron girdisi ekleyin. - Yedekler: her iki birimi ve bir veritabanı dökümünü kaydedin. Bkz. VPS nasıl yedeklenir.
- İki faktörlü giriş: her hesap için TOTP uygulamasını etkinleştirin.