frendi triarista
Instal n8n Self-Hosted di VPS dengan Docker & HTTPS
Gambaran Cepat
Docker (n8n) ←reverse proxy→ Caddy (HTTPS otomatis)
Storage pakai SQLite (cukup buat solo/kecil, upgrade ke Postgres nanti kalau perlu).
Prasyarat
Langkah Instalasi (copy–paste)
1) Pasang Docker
bashcurl -fsSL https://get.docker.com | sh sudo usermod -aG docker $USER && newgrp docker
2) Siapkan folder proyek
bashsudo mkdir -p /opt/n8n && sudo chown -R $USER:$USER /opt/n8n cd /opt/n8n mkdir -p data/n8n data/caddy data/caddy-config
3) Buat file .env
bashcat > .env << 'EOF' TZ=Asia/Jakarta DOMAIN=n8n.example.com # Basic Auth buat gerbang depan N8N_BASIC_AUTH_USER=admin N8N_BASIC_AUTH_PASSWORD=GantiDenganPasswordKuat # Secret untuk enkripsi kredensial node N8N_ENCRYPTION_KEY=GantiDenganSecretPanjangBanget EOF
openssl rand -base64 32 → tempel ke N8N_ENCRYPTION_KEY.
4) docker-compose.yml
yamlversion: "3.8" services: n8n: image: n8nio/n8n:latest restart: unless-stopped environment: N8N_HOST: ${DOMAIN} N8N_PORT: 5678 N8N_PROTOCOL: https WEBHOOK_URL: https://${DOMAIN} N8N_EDITOR_BASE_URL: https://${DOMAIN} GENERIC_TIMEZONE: ${TZ} # Security N8N_BASIC_AUTH_ACTIVE: "true" N8N_BASIC_AUTH_USER: ${N8N_BASIC_AUTH_USER} N8N_BASIC_AUTH_PASSWORD: ${N8N_BASIC_AUTH_PASSWORD} N8N_ENCRYPTION_KEY: ${N8N_ENCRYPTION_KEY} N8N_SECURE_COOKIE: "true" N8N_DIAGNOSTICS_ENABLED: "false" volumes: - ./data/n8n:/home/node/.n8n # Tidak expose port; semua lewat caddy caddy: image: caddy:2 restart: unless-stopped depends_on: - n8n ports: - "80:80" - "443:443" volumes: - ./Caddyfile:/etc/caddy/Caddyfile:ro - ./data/caddy:/data - ./data/caddy-config:/config
5) Caddyfile (HTTPS otomatis)
plain text{ email you@example.com } {$DOMAIN} { encode gzip reverse_proxy n8n:5678 }
6) Jalankan
bashdocker compose pull docker compose up -d docker compose ps
Tunggu ~30 detik sampai sertifikat TLS siap.
Buka: https://n8n.example.com → login dengan Basic Auth (user/pass dari .env) → lanjut buat akun n8n pertama.
Cara Pakai (5 Menit)
bashcurl -X POST https://n8n.example.com/webhook/test -d '{"ok":true}' -H "Content-Type: application/json"
Maintenance Mudah
bashcd /opt/n8n docker compose pull n8n && docker compose up -d n8n
bashtar czf /opt/n8n-backup-$(date +%F).tgz -C /opt/n8n/data n8n
File DB ada di data/n8n/database.sqlite (tersimpan otomatis dalam arsip di atas).
Troubleshooting
Naik Kelas (untuk trafik lebih tinggi)
Checklist Akhir
Itu saja. Copy–paste, hidupkan, langsung ngoprek automations.
workflowautomationhttpsvpsdockerself-hostedn8ntutorial