Cara Membuat Docker Compose untuk n8n: Panduan Lengkap

Cara Membuat Docker Compose untuk n8n: Panduan Lengkap
Docker Compose adalah alat yang sangat berguna untuk mendefinisikan dan menjalankan aplikasi multi-container Docker. Dalam panduan ini, kita akan membahas cara membuat file docker-compose.yml untuk menjalankan n8n, sebuah platform otomatisasi alur kerja yang hebat.
Mengapa Menggunakan Docker Compose untuk n8n?
Menggunakan Docker Compose untuk n8n menawarkan beberapa keuntungan:
- Kemudahan Pengelolaan: Anda dapat mendefinisikan semua layanan yang dibutuhkan n8n (seperti database) dalam satu file.
- Reproducibility: Konfigurasi yang sama dapat digunakan di berbagai lingkungan.
- Isolasi: Aplikasi n8n berjalan dalam container terisolasi, mencegah konflik dengan sistem host.
- Portabilitas: Mudah dipindahkan dan dijalankan di server lain yang mendukung Docker.
Langkah 1: Membuat File docker-compose.yml
Buat sebuah file bernama docker-compose.yml di direktori proyek Anda. Gunakan editor teks favorit Anda.
Langkah 2: Mendefinisikan Layanan
Berikut adalah contoh file docker-compose.yml yang mendefinisikan layanan n8n dan database PostgreSQL:
yaml
version: '3.9'
services:
n8n:
image: n8nio/n8n
ports:
- "5678:5678"
environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=n8n
- DB_POSTGRESDB_PASSWORD=n8n
- N8N_HOST=${N8N_HOST:-localhost}
- N8N_PORT=${N8N_PORT:-5678}
- N8N_PROTOCOL=${N8N_PROTOCOL:-http}
- N8N_PAYLOAD_SIZE_MAX=100
volumes:
- n8n_data:/home/node/.n8n
depends_on:
- postgres
restart: unless-stopped
postgres:
image: postgres:13
ports:
- "5432:5432"
environment:
- POSTGRES_DB=n8n
- POSTGRES_USER=n8n
- POSTGRES_PASSWORD=n8n
volumes:
- postgres_data:/var/lib/postgresql/data
restart: unless-stopped
volumes:
n8n_data:
postgres_data:
Penjelasan Konfigurasi:
- version: Menentukan versi Docker Compose yang digunakan.
- services: Mendefinisikan layanan-layanan yang akan dijalankan.
- n8n: Layanan untuk n8n.
- image: Image Docker yang akan digunakan (n8nio/n8n).
- ports: Memetakan port 5678 di container ke port 5678 di host.
- environment: Variabel lingkungan yang dibutuhkan n8n untuk konfigurasi database dan lainnya.
- volumes: Memetakan volume
n8n_datake direktori data n8n di dalam container, sehingga data persisten. - depends_on: Menentukan bahwa layanan n8n bergantung pada layanan postgres.
- restart: Menentukan kebijakan restart container (dalam hal ini, kecuali dihentikan secara manual).
- postgres: Layanan untuk database PostgreSQL.
- image: Image Docker yang akan digunakan (postgres:13).
- ports: Memetakan port 5432 di container ke port 5432 di host.
- environment: Variabel lingkungan untuk konfigurasi database PostgreSQL.
- volumes: Memetakan volume
postgres_datake direktori data PostgreSQL di dalam container, sehingga data persisten.
- n8n: Layanan untuk n8n.
- volumes: Mendefinisikan volume yang digunakan untuk menyimpan data persisten.
Langkah 3: Menjalankan Docker Compose
Buka terminal, navigasikan ke direktori tempat Anda menyimpan file docker-compose.yml, dan jalankan perintah berikut:
bash
docker-compose up -d
Perintah ini akan mengunduh image yang diperlukan (jika belum ada), membuat dan menjalankan container sesuai dengan konfigurasi di file docker-compose.yml. Opsi -d menjalankan container di background (detached mode).
Langkah 4: Mengakses n8n
Setelah container berjalan, Anda dapat mengakses n8n melalui browser di http://localhost:5678 (atau sesuai dengan konfigurasi N8N_HOST, N8N_PORT, dan N8N_PROTOCOL yang Anda tentukan).
Konfigurasi Tambahan
Anda mungkin perlu menyesuaikan konfigurasi sesuai dengan kebutuhan Anda. Beberapa konfigurasi yang umum termasuk:
- Mengatur domain dan SSL: Gunakan variabel lingkungan seperti
N8N_HOST,N8N_PROTOCOL, dan konfigurasi reverse proxy seperti Nginx atau Traefik untuk mengamankan n8n dengan SSL. - Konfigurasi Database: Pastikan kredensial database (
DB_POSTGRESDB_USER,DB_POSTGRESDB_PASSWORD) aman. - Mengatur Timezone: Atur variabel lingkungan
TZuntuk memastikan timezone yang benar.
Kesimpulan
Dengan Docker Compose, Anda dapat dengan mudah dan cepat mengatur lingkungan n8n yang konsisten dan terisolasi. File docker-compose.yml yang telah dibuat dapat digunakan di berbagai lingkungan, membuat deployment n8n menjadi lebih efisien dan terotomatisasi. Selamat mencoba!