Back to Blog

Cara Membuat Docker Compose untuk n8n: Panduan Lengkap

12/29/2025
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_data ke 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_data ke direktori data PostgreSQL di dalam container, sehingga data persisten.
  • 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 TZ untuk 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!

Thanks for reading!