Deployment

Adi Purnama

Adi Purnama

Deployment bisa dilakukan dengan 2 cara: deploy via Continuous Integration (CI) seperti GitHub Action atau GitLab CI, atau deploy manual.

Di buku kali ini, saya coba batasi di deployment secara manual dulu. Kalau pembaca tertarik untuk deploy via CI, dokumentasinya di sini.

Untuk deploy secara manual, kita perlu menambah remote baru di repository kita.

git remote add dokku dokku@10.0.0.1:app-name

Ganti `10.0.0.1` dengan IP server/domain pembaca yang sudah disiapkan. Setelah itu, ketik command berikut untuk deploy ke server kita.

git push dokku main

Ganti `main` dengan nama branch utama dari repository. Biasanya, namanya `main` atau `master`.

Tunggu hingga aplikasi berhasil ter-deploy. Di tahap ini, Dokku akan menentukan jenis builder yang dipakai untuk build dan deploy aplikasi, seperti yang sudah dijelaskan di Chapter Deployment Tools.

Setelah deployment berhasil, kita perlu set domain dan TLS untuk aplikasi kita.

Setup Domain

Untuk memasang domain ke aplikasi, bisa gunakan command berikut:

dokku domains:set app-name domain.com

Kita perlu install plugin Let's Encrypt untuk enable HTTPS. Sebelum enable HTTPS, kita perlu set email dulu.

dokku letsencrypt:set app-name email email@example.com

Biasanya ini dipakai Let's Encrypt untuk remind kita via email kalau ada suatu hal, misal TLS nya mau kadaluarsa.

Setelah set email, kita bisa langsung enable HTTPS dengan command berikut:

dokku letsencrypt:enable app-name

Oiya, pastikan port 80 kita udah ke-expose ya. Kalau port container yang di-expose beda dengan port 80, perlu lakukan port mapping dulu.

dokku ports:add http:80:

Misal, container kita ternyata expose port 3000, maka replace `` di atas dengan `3000`.

Kita juga perlu set auto-renew HTTPS, sehingga kita nggak perlu repot lagi renew HTTPS tiap interval waktu tertentu.

dokku letsencrypt:auto-renew app-name

Selesai, aplikasimu udah live!

Coba kunjungi domain kamu, untuk memastikan bahwa aplikasi kamu sudah berhasil ter-deploy dan sudah enable HTTPS. Selamat! Aplikasi pertama kamu udah live 🚀