Dunia digital yang terus berkembang menuntut efisiensi dan otomatisasi dalam setiap aspek. Di sinilah n8n hadir sebagai solusi low-code yang powerful untuk membangun alur kerja otomatisasi yang kompleks. Namun, menjalanka8n di lingkungan produksi membutuhkan konfigurasi yang tepat, terutama dalam hal aksesibilitas dan keamanan.
Panduan ini akan membawa Anda langkah demi langkah dalam melakukan setup n8n menggunakan Docker, dikombinasikan dengan Nginx Proxy Manager (NPM). Kombinasi ini tidak hanya memudahkan deployment n8n, tetapi juga memberikan manajemen reverse proxy yang intuitif serta sertifikat SSL gratis melalui Let’s Encrypt, memastikan aplikasi Anda aman dan dapat diakses melalui domain kustom Anda.
Mengapa Menggunakan Kombinasi n8n, Docker, daginx Proxy Manager?
- n8n: Fleksibel, open-source, dan mampu mengotomatisasi berbagai tugas mulai dari integrasi API hingga manipulasi data.
- Docker: Menyediakan lingkungan terisolasi untuk n8n, memastikan konsistensi di berbagai server dan memudahkan manajemen dependensi. Deployment menjadi lebih cepat dan risiko konflik antar aplikasi diminimalkan.
- Nginx Proxy Manager (NPM): Antarmuka web yang user-friendly untuk mengelola konfigurasi Nginx. Ini menghilangkan kebutuhan untuk mengedit file konfigurasi Nginx secara manual, menyederhanakan proses penambahan proxy host, dan yang terpenting, otomatisasi penerbitan dan perpanjangan sertifikat SSL Let’s Encrypt.
Prasyarat
Sebelum memulai, pastikan Anda memiliki hal-hal berikut:
- Server Ubuntu/Debian (atau distro Linux lain yang didukung Docker) dengan akses SSH dan root privileges.
- Docker dan Docker Compose sudah terinstal.
- Sebuah domain atau subdomain yang mengarah ke alamat IP publik server Anda (misalnya,
n8n.yourdomain.com
). - Port 80 dan 443 terbuka di firewall server Anda.
Langkah 1: Setup Nginx Proxy Manager (NPM)
Kita akan memulai dengan menyiapkaginx Proxy Manager.
Buat Folder untuk Konfigurasi
Buat sebuah folder untuk menyimpan konfigurasi Docker Compose Anda. Misalnya, ~/docker-apps/npm
:
mkdir -p ~/docker-apps/npm
cd ~/docker-apps/npm
Buat File docker-compose.yml
untuk NPM
Buat file bernama docker-compose.yml
di dalam folder ~/docker-apps/npm
dan isi dengan konten berikut:
version: '3.8'services:
nginx-proxy-manager:
image: 'jc21/nginx-proxy-manager:latest'
container_name: nginx-proxy-manager
restart: unless-stopped
ports:
- '80:80' # HTTP
- '443:443' # HTTPS
- '81:81' # Nginx Proxy Manager UI
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
networks:
- default_proxy_network
networks:
default_proxy_network:
name: default_proxy_network
Penjelasan:
ports:
Bagian ini memaparkan port 80 (HTTP), 443 (HTTPS) ke publik untuk menangani traffic web, dan port 81 untuk mengakses antarmuka web NPM.volumes:
Direktori./data
dan./letsencrypt
akan digunakan untuk menyimpan konfigurasi NPM dan sertifikat SSL Let’s Encrypt secara persisten.networks:
Kita membuat jaringan Docker kustom bernamadefault_proxy_network
. Ini penting agar NPM da8n (nantinya) dapat berkomunikasi satu sama lain di dalam jaringan Docker tanpa perlu memaparkan port n8n ke publik.
Jalankaginx Proxy Manager
Dari direktori ~/docker-apps/npm
, jalankan perintah berikut:
docker compose up -d
Tunggu beberapa saat hingga container berjalan. Anda dapat memverifikasinya dengan docker ps
.
Akses Antarmuka Web Nginx Proxy Manager
Buka browser Anda daavigasikan ke http://[IP_SERVER_ANDA]:81
. Anda akan melihat halaman logiPM.
- Email default:
admin@example.com
- Password default:
changeme
Setelah login, Anda akan diminta untuk mengubah email dan password. Lakukan segera untuk keamanan.
Langkah 2: Setup n8n
Sekarang kita akan menyiapkan container n8n.
Buat Folder untuk Konfigurasi n8n
Buat folder baru untuk n8n, misalnya ~/docker-apps/n8n
:
mkdir -p ~/docker-apps/n8n
cd ~/docker-apps/n8n
Buat File docker-compose.yml
untuk n8n
Buat file bernama docker-compose.yml
di dalam folder ~/docker-apps/n8n
dan isi dengan konten berikut:
version: '3.8'services:
n8n:
image: 'n8nio/n8n'
container_name: n8n
restart: unless-stopped
environment:
- N8N_HOST=n8n.yourdomain.com # Ganti dengan subdomain Anda
- N8N_PORT=5678
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://n8n.yourdomain.com/ # Ganti dengan subdomain Anda
- GENERIC_TIMEZONE=Asia/Jakarta # Sesuaikan timezone Anda
- TZ=Asia/Jakarta # Sesuaikan timezone Anda
volumes:
- ~/.n8n:/home/node/.n8etworks:
- default_proxy_network
networks:
default_proxy_network:
external: true
name: default_proxy_network
Penjelasan Penting:
image: 'n8nio/n8n'
: Menggunakan image Docker resmi n8n.environment:
Variabel-variabel ini sangat penting untuk n8n agar berfungsi dengan benar di balik reverse proxy.N8N_HOST
,N8N_PROTOCOL
, danWEBHOOK_URL
harus diatur ke URL publik (domain kustom Anda) yang akan diakses oleh pengguna. Nginx Proxy Manager akan menangani HTTPS.N8N_PORT=5678
adalah port internal n8n di dalam container. Kita tidak akan memaparkan port ini ke publik secara langsung.volumes:
Direktori~/.n8n
di host Anda akan digunakan untuk menyimpan data persiste8n (workflow, kredensial, dll).networks:
Ini adalah bagian krusial. Kita menggunakan jaringandefault_proxy_network
yang sama yang telah kita buat untuk Nginx Proxy Manager. Karena kita tidak membuat jaringan baru di sini, kita menandainya sebagaiexternal: true
untuk memberi tahu Docker Compose bahwa jaringan tersebut sudah ada. Ini memungkinka8n daPM berkomunikasi dengan lancar.
Jalanka8n
Dari direktori ~/docker-apps/n8n
, jalankan perintah berikut:
docker compose up -d
Pastikan container n8n berjalan dengan docker ps
.
Langkah 3: Konfigurasi Nginx Proxy Manager untuk n8n
Sekarang, saatnya mengarahkaginx Proxy Manager ke container n8n Anda.
Buat Proxy Host Baru
- Masuk ke antarmuka web Nginx Proxy Manager (
http://[IP_SERVER_ANDA]:81
). - Klik pada menu Hosts > Proxy Hosts di navigasi atas.
- Klik tombol Add Proxy Host.
- Isi detail berikut:
- Domaiames: Masukkan domain atau subdomain Anda untuk n8n (misalnya,
n8n.yourdomain.com
). - Scheme: Pilih
http
. (NPM akan berkomunikasi denga8n secara internal melalui HTTP). - Forward Hostname / IP: Masukkaama layanan Docker n8n Anda, yaitu
n8n
. Karena keduanya berada di jaringan Docker yang sama (default_proxy_network
), NPM dapat menemuka8n berdasarkaama layanaya. - Forward Port: Masukkan port internal n8n, yaitu
5678
. - Centang Block Common Exploits.
- Centang Websockets Support (penting untuk n8n agar UI dan fitur real-time-nya berfungsi dengan baik).
- Domaiames: Masukkan domain atau subdomain Anda untuk n8n (misalnya,
- Pindah ke tab SSL.
- Di bawah ‘SSL Certificate’, pilih Request a new SSL Certificate.
- Centang Force SSL.
- Centang HTTP/2 Support (direkomendasikan).
- Centang kotak ‘I Agree to the Let’s Encrypt Terms of Service’.
- Masukkan alamat email yang valid untuk notifikasi perpanjangan sertifikat.
- Klik Save.
NPM akan mencoba untuk mendapatkan sertifikat SSL dari Let’s Encrypt dan mengonfigurasi Nginx. Proses ini mungkin membutuhkan waktu beberapa detik.
Verifikasi dan Pengujian
Setelah konfigurasi selesai, buka browser Anda daavigasikan ke https://n8n.yourdomain.com
(gunakan domain atau subdomain Anda).
- Anda seharusnya melihat antarmuka web n8n.
- Pastikan ada ikon gembok di bilah alamat browser Anda, menandakan bahwa koneksi aman dengan sertifikat SSL yang valid.
- Coba buat alur kerja sederhana, misalnya, alur kerja yang hanya menggunakaode “Webhook” dan “Respond to Webhook” untuk memastikan bahwa webhook berfungsi dengan benar.
Kesimpulan
Dengan mengikuti panduan ini, Anda telah berhasil menginstal dan mengkonfigurasi n8n menggunakan Docker daginx Proxy Manager. Kombinasi ini memberikan fondasi yang kokoh untuk otomatisasi Anda: n8n yang fleksibel, deployment yang mudah dan konsisten dengan Docker, serta manajemen reverse proxy yang sederhana dan aman dengaginx Proxy Manager. Anda kini siap untuk mulai membangun alur kerja otomatisasi tanpa batas!
Selamat mencoba dan menjelajahi potensi penuh n8n!
Leave a Reply