Masdika Loading..
Masdika.BIZ.ID

DevOps Engineer

Cloud Engineer

System Administrator

  • Home
  • Portofolio
  • Services
  • Resume
  • Skills
  • Blog
  • Contact
Masdika.BIZ.ID

DevOps Engineer

Cloud Engineer

System Administrator

Download CV

Recent Posts

  • Cara Deploy WordPress di Kubernetes Lengkap dengan SSL Let’s Encrypt
  • Panduan Lengkap Install MetalLB di Kubernetes (VPS/Bare Metal) dengan IP Publik
  • Panduan Lengkap Deploy Ingress NGINX dan Cert-Manager Kubernetes dengan HTTPS Otomatis (Let’s Encrypt)
  • Cara Install Kubernetes dengan Ansible di 2 Server (Master dan Worker)
  • Monitoring Docker Container dengan CAdvisor, Node Exporter, Prometheus, dan Grafana

Recent Comments

  1. Masdika.BIZ.ID on Cara Install Kubernetes dengan Ansible di 2 Server (Master dan Worker)
  2. wwqqs on Cara Install Kubernetes dengan Ansible di 2 Server (Master dan Worker)
  3. Rio Ardiansyah on Panduan Lengkap Redis Docker untuk WordPress
  4. Masdika.BIZ.ID on Cara Monitoring Status Disk RAID di Server Dell Menggunakan Bash Script dan PercCLI
  5. fafiki on Cara Monitoring Status Disk RAID di Server Dell Menggunakan Bash Script dan PercCLI

Archives

  • July 2025
  • June 2025

Categories

  • Tutorial

Masddika.BIZ.ID

  • About
  • Terms & Conditions
  • Privacy Policy
Blog Post

Cara Instal n8n Menggunakan Docker dan Reverse Proxy Caddy dengan HTTPS (SSL Otomatis)

June 23, 2025 Tutorial by Masdika.BIZ.ID
Cara Instal n8n Menggunakan Docker dan Reverse Proxy Caddy dengan HTTPS (SSL Otomatis)

n8n adalah platform otomasi alur kerja open-source yang sangat fleksibel dan dapat dihosting sendiri. Untuk memastikan keamanan dan kinerja terbaik, banyak pengguna memilih untuk menjalankan n8n menggunakan Docker dan reverse proxy seperti Caddy yang menyediakan HTTPS secara otomatis melalui Let’s Encrypt.

Dalam panduan ini, Anda akan mempelajari cara menginstal dan mengonfigurasi n8n dengan Docker Compose, PostgreSQL sebagai database, dan Caddy sebagai reverse proxy dengan SSL otomatis. ๐Ÿ”

โœ… Keuntungan Menggunakan Docker dan Caddy

  • ๐Ÿงฉ Isolasi lingkungan: Docker menjaga aplikasi tetap terpisah dari sistem host.
  • โš™๏ธ Kemudahan deployment: Konfigurasi dapat dilakukan dalam satu file YAML.
  • ๐Ÿ”’ SSL otomatis: Caddy akan mengelola sertifikat HTTPS secara otomatis.
  • ๐Ÿ“ˆ Skalabilitas: Mudah ditingkatkan sesuai kebutuhan bisnis Anda.

๐Ÿ› ๏ธ Prasyarat

Sebelum mulai, pastikan Anda telah:

  • โœ… Menginstal Docker dan Docker Compose
  • ๐ŸŒ Memiliki nama domain (misalnya: n8n.domainkamu.com)
  • ๐Ÿงญ A record domain mengarah ke IP server

๐Ÿ“ Struktur Folder

n8n-setup/
โ”œโ”€โ”€ docker-compose.yml
โ”œโ”€โ”€ Caddyfile
โ””โ”€โ”€ .env

๐Ÿงพ 1. Buat File .env

โš ๏ธ Gantilah nilai DOMAIN, BASIC_AUTH_USER, BASIC_AUTH_PASSWORD, POSTGRES_USER, dan POSTGRES_PASSWORD dengan kredensial dan domain yang sesuai sebelum digunakan di lingkungan produksi.

DOMAIN=n8n.domainkamu.com
BASIC_AUTH_USER=user
BASIC_AUTH_PASSWORD=ganti_passwordku123
POSTGRES_USER=n8n
POSTGRES_PASSWORD=n8npass
POSTGRES_DB=n8ndb

๐Ÿงฑ 2. Buat File docker-compose.yml

services:
  postgres:
    image: postgres:15
    container_name: n8n_postgres
    restart: unless-stopped
    environment:
      POSTGRES_USER: ${POSTGRES_USER}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
      POSTGRES_DB: ${POSTGRES_DB}
    volumes:
      - postgres_data:/var/lib/postgresql/data

  n8n:
    image: docker.n8n.io/n8nio/n8n:1.98.2
    container_name: n8n
    restart: unless-stopped
    environment:
      - DB_TYPE=postgresdb
      - DB_POSTGRESDB_HOST=postgres
      - DB_POSTGRESDB_PORT=5432
      - DB_POSTGRESDB_DATABASE=${POSTGRES_DB}
      - DB_POSTGRESDB_USER=${POSTGRES_USER}
      - DB_POSTGRESDB_PASSWORD=${POSTGRES_PASSWORD}
      - DB_POSTGRESDB_SCHEMA=public
      - N8N_BASIC_AUTH_ACTIVE=true
      - N8N_BASIC_AUTH_USER=${BASIC_AUTH_USER}
      - N8N_BASIC_AUTH_PASSWORD=${BASIC_AUTH_PASSWORD}
      - N8N_HOST=${DOMAIN}
      - N8N_PORT=5678
      - WEBHOOK_URL=https://${DOMAIN}/
      - N8N_SECURE_COOKIE=true
      - GENERIC_TIMEZONE=Asia/Jakarta
      - TZ=Asia/Jakarta
    volumes:
      - n8n_data:/home/node/.n8n
    depends_on:
      - postgres
    networks:
      - caddy_net

  caddy:
    image: caddy:2
    container_name: caddy
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - caddy_data:/data
      - caddy_config:/config
    networks:
      - caddy_net

volumes:
  postgres_data:
  n8n_data:
  caddy_data:
  caddy_config:

networks:
  caddy_net:
    driver: bridge

โš™๏ธ 3. Buat File Caddyfile

${DOMAIN} {
  reverse_proxy n8n:5678
  encode gzip
  log
}

๐Ÿ’ก Catatan: Caddy akan otomatis mengurus HTTPS dari Let’s Encrypt selama domain valid.

โ–ถ๏ธ 4. Menjalankan Docker Compose

docker compose up -d

๐ŸŒ 5. Akses n8n

Buka browser ke https://n8n.domainkamu.com, lalu login dengan:

  • ๐Ÿ‘ค Username: user
  • ๐Ÿ”‘ Password: ganti_passwordku123

โœ… Penutup

Dengan setup ini, Anda telah berhasil menjalankan n8n dalam lingkungan Docker yang aman dan modern. Reverse proxy Caddy membuat pengelolaan HTTPS sangat mudah tanpa konfigurasi rumit. Setup ini cocok untuk produksi dan dapat diperluas dengan monitoring, backup otomatis, dan integrasi lainnya. ๐Ÿ“ฆ

Untuk keamanan tambahan, pertimbangkan juga menambahkan firewall, fail2ban, dan backup ke Google Drive atau S3. ๐Ÿ”

Share:
Tags: dockern8n

Post navigation

Prev
Next
Write a comment Cancel Reply

ยฉ 2025 www.masdika.biz.id โ€” Semua Hak Dilindungi