Komputer lamamu bisa digunakan sebagai cloud storage menggunakan Nextcloud. Hari ini kita praktik cara install Nextcloud dengan Docker di Linux
Apa itu Nextcloud?
Nextcloud adalah program yang memungkinkan kamu membuat cloud storage di server kamu.
Nextcloud semacam Google Drive dan Dropbox, tetapi Open Source. Yup, Nextcloud dapat diunduh gratis yang didistribusikan di bawah lisensi AGPLv3.

Saya memasang Nextcloud di Intel NUC bertenaga Intel Atom dan RAM 4 GB. Selain Nextcloud, ada juga WordPress, Syncthing, dan Pihole yang berjalan. Nextcloud masih bisa digunakan, meskipun agak lambat.
Install Nextcloud dengan Docker
Docker memudahkan kita untuk memasang sesuatu. Saya akui saya telat menggunakannya. Begitu juga dengan instalasi Nextcloud yang lebih mudah dengan Docker.
Jika kamu pengguna Alpine Linux dan belum memasang Docker, kamu bisa membaca artikel “Cara Install Docker di Alpine Linux“.
Pertama buat berkas “.env” dengan aplikasi text editor favoritmu.
$ vim .env
TZ=Asia/Jakarta
PUID=1000
PGID=1000
MYSQL_DATABASE=nextcloud
MYSQL_USER=nextcloud
MYSQL_PASSWORD=nextcloud
Lalu buat berkas “msmtpd.env“
$ vim msmtpd.env
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_TLS=on
SMTP_STARTTLS=on
SMTP_TLS_CHECKCERT=on
SMTP_AUTH=on
SMTP_USER=foo
SMTP_PASSWORD=bar
[email protected]
Buat berkas baru bernama “nextcloud.env“
$ vim nextcloud.env
MEMORY_LIMIT=512M
UPLOAD_MAX_SIZE=512M
OPCACHE_MEM_SIZE=128
APC_SHM_SIZE=128M
REAL_IP_FROM=0.0.0.0/32
REAL_IP_HEADER=X-Forwarded-For
LOG_IP_VAR=remote_addr
HSTS_HEADER=max-age=15768000; includeSubDomains
RP_HEADER=strict-origin
SUBDIR=
Terakhir, buat berkas docker-compose.yml yang berisi konfigurasi Docker Nextcloud. Pastikan kamu sudah memasang Docker Compose.
$ vim docker-compose.yml
version: "3.2"
services:
db:
image: mariadb:10.5
container_name: nextcloud_db
volumes:
- "db:/var/lib/mysql"
environment:
- "MYSQL_ALLOW_EMPTY_PASSWORD=yes"
- "MYSQL_DATABASE"
- "MYSQL_USER"
- "MYSQL_PASSWORD"
restart: always
redis:
image: redis:6-alpine
container_name: nextcloud_redis
environment:
- "TZ"
restart: always
msmtpd:
image: crazymax/msmtpd:latest
container_name: nextcloud_msmtpd
env_file:
- "./msmtpd.env"
environment:
- "TZ"
restart: always
nextcloud:
image: crazymax/nextcloud:latest
container_name: nextcloud
depends_on:
- db
- redis
- msmtpd
ports:
- target: 8000
published: 8000
protocol: tcp
volumes:
- "nextcloud:/data"
env_file:
- "./nextcloud.env"
environment:
- "TZ"
- "PUID"
- "PGID"
- "DB_TYPE=mysql"
- "DB_HOST=db"
- "DB_NAME=${MYSQL_DATABASE}"
- "DB_USER=${MYSQL_USER}"
- "DB_PASSWORD=${MYSQL_PASSWORD}"
restart: always
cron:
image: crazymax/nextcloud:latest
container_name: nextcloud_cron
depends_on:
- nextcloud
volumes:
- "nextcloud:/data"
env_file:
- "./nextcloud.env"
environment:
- "TZ"
- "PUID"
- "PGID"
- "DB_TYPE=mysql"
- "DB_HOST=db"
- "DB_NAME=${MYSQL_DATABASE}"
- "DB_USER=${MYSQL_USER}"
- "DB_PASSWORD=${MYSQL_PASSWORD}"
- "SIDECAR_CRON=1"
- "CRON_PERIOD=*/5 * * * *"
restart: always
previewgen:
image: crazymax/nextcloud:latest
container_name: nextcloud_previewgen
depends_on:
- nextcloud
volumes:
- "nextcloud:/data"
env_file:
- "./nextcloud.env"
environment:
- "TZ"
- "PUID"
- "PGID"
- "DB_TYPE=mysql"
- "DB_HOST=db"
- "DB_NAME=${MYSQL_DATABASE}"
- "DB_USER=${MYSQL_USER}"
- "DB_PASSWORD=${MYSQL_PASSWORD}"
- "SIDECAR_PREVIEWGEN=1"
- "PREVIEWGEN_PERIOD=0 * * * *"
restart: always
news_updater:
image: crazymax/nextcloud:latest
container_name: nextcloud_news_updater
depends_on:
- nextcloud
volumes:
- "nextcloud:/data"
env_file:
- "./nextcloud.env"
environment:
- "TZ"
- "PUID"
- "PGID"
- "DB_TYPE=mysql"
- "DB_HOST=db"
- "DB_NAME=${MYSQL_DATABASE}"
- "DB_USER=${MYSQL_USER}"
- "DB_PASSWORD=${MYSQL_PASSWORD}"
- "SIDECAR_NEWSUPDATER=1"
- "NC_NEWSUPDATER_THREADS=10"
- "NC_NEWSUPDATER_TIMEOUT=300"
- "NC_NEWSUPDATER_INTERVAL=900"
- "NC_NEWSUPDATER_LOGLEVEL=error"
restart: always
volumes:
db:
nextcloud:
Code language: JavaScript (javascript)
Setelah itu jalankan docker-compose. Nextcloud akan berjalan di port 8000.
$ docker-compose up -d
Selamat, kamu berhasil install Nextcloud dengan Docker di Linux.
Leave a Reply