OffshoreVps
Eğitimler10 Eki 20269 dk okumaYazan: OffshoreVps ekibi

Docker Compose ile VPS’te kendi Nextcloud’unuzu barındırın

Dosyalar, takvimler ve kişiler için kendi özel bulutunuzu çalıştırın: Compose dosyası, HTTPS ters proxy, güvenilen alan adları, cron işleri ve yedekler.

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ğı.

Nextcloud’u kendiniz barındırmak için kullanılan komutları gösteren VPS üzerindeki terminal penceresi, “mkdir -p ~/nextcloud && cd ~/nextcloud” ile başlıyor
Bu rehberde sunucunuzda çalıştıracağınız komutlardan örnekler.

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.

Bu rehberin adımları sırasıyla: 1. Başlamadan önce; 2. 1. Compose dosyası; 3. 2. Önüne HTTPS koyun; 4. 3. Kurulumu tamamlayın; 5. 4. Sağlıklı tutun
Bu rehberdeki adımlar sırasıyla.

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.