OffshoreVps
Tutorial10 Okt 20269 menit bacaOleh tim OffshoreVps

Self-Host Nextcloud di VPS dengan Docker Compose

Jalankan cloud pribadi Anda sendiri untuk file, kalender, dan kontak: file Compose, reverse proxy HTTPS, domain tepercaya, cron job, dan cadangan.

Nextcloud memberi Anda sinkronisasi file, kalender, kontak, dan pengeditan dokumen di server yang Anda kendalikan, alih-alih menyerahkan file Anda kepada penyedia cloud besar. Berikut cara menjalankannya di VPS dengan Docker Compose.

Jendela terminal di VPS yang menampilkan perintah untuk hosting mandiri Nextcloud, diawali dengan “mkdir -p ~/nextcloud && cd ~/nextcloud”
Jenis perintah yang akan Anda jalankan di server dalam panduan ini.

Sebelum memulai

  • VPS dengan 2 vCPU dan RAM 4 GB adalah awal yang nyaman. Penyimpanan adalah kendala utama, jadi pilih ukuran disk yang sesuai dengan file Anda.
  • Domain yang mengarah ke server, dibahas di panduan DNS kami.
  • Docker terpasang, lihat pasang Docker di Ubuntu.

1. File 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

Ganti ketiga kata sandi sebelum menjalankannya. Gunakan string acak yang panjang.

Langkah-langkah panduan ini secara berurutan: 1. Sebelum memulai; 2. 1. File Compose; 3. 2. Pasang HTTPS di depan; 4. 3. Selesaikan penyiapan; 5. 4. Jaga agar tetap sehat
Langkah-langkah dalam panduan ini, secara berurutan.

2. Pasang HTTPS di depan

Tambahkan blok server Nginx yang memproksi ke 127.0.0.1:8080, lalu jalankan Certbot seperti di panduan Nginx kami. Blok proksi membutuhkan baris-baris ini agar Nextcloud melihat protokol yang benar dan unggahan besar berfungsi:

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. Selesaikan pengaturan

Buka domain Anda dan buat akun admin. Lalu tambahkan domain Anda ke daftar tepercaya dan atur detail proksi:

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. Jaga tetap sehat

  • Pembaruan: docker compose pull && docker compose up -d, satu versi mayor pada satu waktu.
  • Tugas latar belakang: beralih ke Cron di pengaturan admin dan tambahkan entri cron host yang menjalankan cron.php setiap lima menit.
  • Backup: simpan kedua volume dan dump database. Lihat cara backup VPS.
  • Login dua faktor: aktifkan aplikasi TOTP untuk setiap akun.