GNU/Linux, Ubuntu

Integrasi Nextcloud dengan Docker

Integrasi Nextcloud dengan Docker menurut saya adalah yang paling fleksibel. Berbekal docker dan custom image kita bisa melakukan kustomisasi sesuai dengan yang kita inginkan. Bagi yang ingin tahu mana lebih mudah untuk memasang Nextcloud bisa cek artikel saya sebelumnya tentang memasang Nextcloud pada GNU/Linux Lubuntu.

Alasan yang paling mendasar kenapa saya beralih dari Dropbox ke Nextcloud sudah saya paparkan pada artikel sebelumnya. Saya pikir penjelasan tersebut sudah cukup untuk mewakili beralih ke yang lain. Sebenarnya di awal-awal saya termasuk pengguna Owncloud dan sempat memasang sendiri pada VPS. Tapi untuk kali ini sepertinya Nextcloud menjadi pilihan.

Pada artikel singkat kali ini saya akan coba berbagi bagaiman integrasi Nextcloud yang sudah kita pasang pada server agar dapat diakses dari luar. Adapun jika hanya memiliki satu buah server dan server yang kita miliki tidak memiliki akses publik IP maka ini menjadi masalah. Meminta IP publik bukan perkara yang mudah maka solusi yang paling cepat adalah dengan memiliki VPS sendiri. Saya menyarankan untuk menggunakan Digital Ocean bisa disini. Dengan menggunakan VPS kita bisa lebih fleksibel untuk kontrol server.

Dari sini sebenarnya mudah kita memberikan informasi bahwa kebutuhan dasar dari memiliki layanan Nextcloud cukup dengan berbekal VPS dengan IP publik. Tentunya akan lebih baik lagi jika kita memiliki server tersendiri yang bisa kita kelola.

Melanjutkan kembali tentang integrasi Nextcloud dengan docker, maka langkah penting yang harus dilakukan tentu saja kita harus sudah memiliki docker pada VPS kita. Untuk cara bisa cek artikel sebelumnya. Sebagai informasi berikut saya tunjukkan bagaimana docker saya berjalan.

docker ps
Gambar 1. Perintah dengan docker ps

Pada baris kedua terlihat Nextcloud saya sudah berjalan. Saya memilih untuk menggunakan docker-compose karena kita bisa melakukan kustomisasi lebih banyak. Sebagai contoh, secara default, image yang digunakan oleh Nextcloud pada docker adalah GNU/Linux Ubuntu. Base image docker untuk GNU/Linux Ubuntu terbilang cukup besar. Saya memilih untuk menggunakan base image yang lebih kecil yakni GNU/Linux Alpine.

Prinsip dari docker adalah, satu layanan adalah satu container. Ini bukan saklek tapi sebenarnya untuk mempermudah dalam mengelolanya. Dengan menggunakan docker-compose ada tiga bagian yang dibutuhkan yakni, aplikasi Nextcloud, web server, dan database server. Saya akan membahas satu per satu.

1. Aplikasi Nextcloud

Aplikasi Nextcloud yang dimaksud disini adalah kode sumber dari Nextcloud yang biasanya terletak pada public_html atau kalau di GNU/Linux pada /var/www/html. Ada banyak pilihan image yang bisa digunakan. Dalam hal ini saya menggunakan nextcloud:fpm-alpine sebagai image docker saya. Alasannya jelas pertama dengan menggunakan GNU/Linux Alpine otomatis base image kita kecil, kedua saya hanya menggunakan fpm saja untuk aplikasi Nextcloud karena saya sudah memiliki web server yang sudah berjalan secara publik. Jadi saya tinggal integrasi saja.

2. Web Server

Untuk web server, kita bebas memilih. Sekali lagi berbekal semangat slim maka saya menggunakan nginx yang tergolong kecil. Adapun untuk base image silakan bebas untuk memilih. Sahabat yang tidak terbiasa dengan Nginx web server akan lebih baik jika memilih Apache Web server.

3. Database Server

Terakhir untuk database server, Nextcloud menawarkan tiga jenis database server yang digunakan. Defaultnya jika kita hanya ingin uji coba maka cukup dengan menggunakan SQLite. Adapun jika kita berniat untuk menggunakan lebih serius saran saya bisa dipilih diantara 2 yakni MySQL (atau MariaDB) dan PostgreSQL. Kali ini saya menggunakan MariaDB.

Sampai disini semuanya sudah dimiliki tinggal eksekusi docker-compose. Untuk script docker-compose bisa menggunakan yang saya miliki dan sahabat bebas untuk melakukan kustomisasi sendiri. Script ini bisa dicek disini docker-compose.yml. Ada beberapa bagian di script yang harus saya ubah untuk memudahkan copy-paste.

Ada beberapa hal yang perlu diperhatikan dalam implementasi kode docker-compose.yml diatas. Pertama pada bagian db, sahabat harus mengisi sendiri MYSQL_ROOT_PASSWORD, MYSQL_PASSWORD, MYSQL_USER, dan MYSQL_DATABASE. Silakan diisi karena nanti harus sama dengan aplikasi Nextcloudnya ketika selesai dipasang.

Jika semua sudah selesai ada hal lain yang perlu diperhatikan jika menginginkan docker-compose script kita berhasil dijalankan. Sahabat harus cek terlebih dahulu konfigurasi nginx.conf yang dimiliki. Silakan perhatikan baris 35 dari gist diatas. Selanjutnya silakan dieksekusi dengan cara

$ docker-compose up

Selamat mencoba.

3 thoughts on “Integrasi Nextcloud dengan Docker”

Leave a Reply

Your email address will not be published. Required fields are marked *