Complete Tutorial on Deploying Dockhand with Docker Compose & Caddy + Error Solutions
Dockhand adalah salah satu tool manajemen stack Docker (alternatif Dockge/Portainer) yang sangat ringan dan efisien. Jika Anda ingin mengelola kontainer Docker dengan tampilan UI yang bersih namun tetap mempertahankan kontrol penuh atas file compose.yaml, Dockhand adalah pilihan yang tepat.
Dalam panduan ini, kita akan membahas cara melakukan deploy Dockhand menggunakan Docker Compose, mengamankannya dengan reverse proxy Caddy agar memiliki SSL (HTTPS), serta merangkum beberapa error umum yang sering terjadi selama proses instalasi beserta cara mengatasinya.
1. Persiapan Struktur Folder
Sebelum memulai, pastikan Anda sudah masuk ke server via SSH. Kita akan membuat folder khusus untuk menyimpan data proyek Dockhand.
Jalankan perintah berikut di terminal:
mkdir -p ~/dockhand/projects ~/dockhand/data
cd ~/dockhand
projects: Folder tempat menyimpan konfigurasi stack/kontainer lain yang akan dikelola oleh Dockhand.data: Folder untuk menyimpan database internal Dockhand.
2. Membuat File compose.yaml
Buat file konfigurasi Docker Compose untuk Dockhand:
nano compose.yaml
Salin dan tempel konfigurasi berikut:
services:
dockhand:
image: fnsys/dockhand:latest
container_name: dockhand
restart: unless-stopped
environment:
- AUTH_ENABLED=true # Memaksa autentikasi login aktif sejak awal
ports:
- "8008:3000" # Memetakan port eksternal 8008 ke port internal 3000
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./projects:/app/projects
- ./data:/app/data Simpan file dengan menekan Ctrl + O, lalu Enter, dan keluar menggunakan Ctrl + X.
Jalankan kontainer dengan perintah:
docker compose up -d
3. Konfigurasi Reverse Proxy dengan Caddy
Agar Dockhand bisa diakses menggunakan domain/subdomain dengan aman (HTTPS), kita akan mengarahkan trafik melalui Caddy Server.
Buka file konfigurasi Caddyfile Anda (misalnya di folder ~/n8n/Caddyfile atau tempat Caddy Anda berada):
nano Caddyfile
Tambahkan blok konfigurasi berikut untuk domain Anda:
dockersolo.biz.id {
reverse_proxy 172.17.0.1:8008
}
Catatan: 172.17.0.1 adalah IP standar Docker Bridge Gateway yang digunakan Caddy untuk berkomunikasi dengan port eksternal host.
Setelah disimpan, reload konfigurasi Caddy tanpa downtime:
docker compose exec caddy caddy reload --config /etc/caddy/Caddyfile
4. Troubleshooting: Error Umum & Cara Mengatasinya
Selama proses deploy, ada beberapa kendala teknis yang kerap muncul. Berikut adalah rangkuman error dan solusinya:
Error 1: 502 Bad Gateway atau Connection Refused
Gejala: Saat mengakses domain di browser, muncul pesan error 502 Bad Gateway. Di log Caddy (docker compose logs caddy) muncul pesan:
"msg":"dial tcp 172.17.0.1:5001: connect: connection refused"
Penyebab: Caddy mencoba menembak port lama (misalnya port 5001 bekas aplikasi lain seperti Dockge) atau port internal Dockhand salah diarahkan. Dockhand berjalan di port internal
3000, bukan8008atau5001.Solusi: 1. Pastikan bagian
portsdi filecompose.yamlDockhand tertulis"8008:3000". 2. PastikanCaddyfilemengarah ke port eksternal yang benar, yaitu172.17.0.1:8008. 3. Lakukan restart service Docker jika routing iptables tersangkut:systemctl restart docker.
Error 2: Dashboard Langsung Terbuka Tanpa Login (Auto-Login Pertama)
Gejala: Setelah berhasil deploy, sistem langsung masuk ke dashboard tanpa meminta password sama sekali.
Penyebab: Dockhand memiliki fitur keamanan awal yang secara otomatis mendeteksi instalasi baru (fresh install). Pada sesi pertama, sistem membiarkan admin masuk untuk melakukan setup awal. Namun, ini berbahaya jika domain sudah di-publish ke publik.
Solusi:
Segera masuk ke menu Settings > Auth di dashboard, lalu aktifkan sistem autentikasi dan buat user admin baru.
Atau paksa lewat environtment variabel dengan menambahkan
- AUTH_ENABLED=truedi dalam filecompose.yaml, lalu jalankan kembali perintahdocker compose up -d --force-recreate.
Error 3: Terjebak Cache Browser Lama / WebSocket Macet
Gejala: Konfigurasi di server sudah diperbaiki dan log Dockhand menunjukkan status Listening on http://0.0.0.0:3000/ with WebSocket, tetapi browser Anda tetap menampilkan halaman error atau halaman setup aplikasi lama.
Penyebab: Browser menyimpan cache keras (hard cache) dan mencoba mempertahankan sesi koneksi socket lama yang sudah mati.
Solusi: Tutup tab browser Anda, buka Jendela Penyamaran Baru (Incognito Window), dan akses kembali domain Anda. Ini memaksa browser meminta data segar langsung dari server.
Kesimpulan
Deploy Dockhand menggunakan Docker Compose dan Caddy sangatlah mudah asalkan kita memahami pemetaan port antara internal kontainer (3000) dan port luar host (8008). Dengan mengaktifkan AUTH_ENABLED=true sejak awal, Anda memastikan dashboard manajemen server Anda tetap aman dari akses pihak luar.



0 Response to "Complete Tutorial on Deploying Dockhand with Docker Compose & Caddy + Error Solutions"
Posting Komentar
Aturan Berkomentar :
1. Berbicara menggunakan bahasa yang enak didengar. Tidak Untuk menyinggung perasaan orang Lain.
2.Spamming (Spam Comment)
3.Kalau Mau ngopy-paste artikel disini, Berikan sumbernya