Friday, May 29, 2026
AI N8N

Cara Install n8n self host 2026

n8n

Berikut cara install n8n self-hosted paling mudah menggunakan Docker di Ubuntu/Linux server. Metode ini cocok untuk VPS, server rumah, VM Proxmox, atau K3s node. n8n sendiri merekomendasikan Docker untuk self-hosting.

1. Install Docker

Update package:

sudo apt update && sudo apt upgrade -y

Install Docker:

curl -fsSL https://get.docker.com | sh

Cek Docker:

docker --version

Tambahkan user ke group docker:

sudo usermod -aG docker $USER
newgrp docker

2. Buat Volume Data n8n

Agar workflow dan credential tidak hilang:

docker volume create n8n_data

3. Jalankan n8n

Untuk timezone Indonesia gunakan Asia/Jakarta.

docker run -d \
--name n8n \
-p 5678:5678 \
-e TZ="Asia/Jakarta" \
-e GENERIC_TIMEZONE="Asia/Jakarta" \
-e N8N_RUNNERS_ENABLED=true \
-e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \
-v n8n_data:/home/node/.n8n \
--restart unless-stopped \
docker.n8n.io/n8nio/n8n

Konfigurasi ini mengikuti dokumentasi resmi n8n Docker install.


4. Akses n8n

Buka browser:

http://IP-SERVER:5678

Contoh:

http://192.168.1.10:5678

Jika berhasil akan muncul halaman setup account admin.


5. Cek Container

Lihat status:

docker ps

Lihat log:

docker logs -f n8n

Install Menggunakan Docker Compose (Recommended)

Lebih bagus untuk production.

1. Buat Folder

mkdir n8n
cd n8n

2. Buat File docker-compose.yml

nano docker-compose.yml

Isi:

services:
n8n:
image: docker.n8n.io/n8nio/n8n
container_name: n8n

restart: unless-stopped

ports:
- "5678:5678"

environment:
- TZ=Asia/Jakarta
- GENERIC_TIMEZONE=Asia/Jakarta
- N8N_RUNNERS_ENABLED=true
- N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true

volumes:
- n8n_data:/home/node/.n8n

volumes:
n8n_data:

3. Jalankan

docker compose up -d

4. Stop / Start

Stop:

docker compose down

Start:

docker compose up -d

Update n8n

Pull image terbaru:

docker compose pull
docker compose down
docker compose up -d

Atau jika pakai docker biasa:

docker pull docker.n8n.io/n8nio/n8n
docker restart n8n

Dokumentasi update resmi ada di: n8n Docker Docs


Setup Domain + HTTPS (Production)

Biasanya production memakai:

  • Nginx Proxy Manager
  • Traefik
  • Caddy
  • Cloudflare Tunnel

Contoh:

n8n.domain.com

Lalu reverse proxy ke:

localhost:5678

Port Penting

ServicePort
n8n5678
HTTPS443
HTTP80

Backup Workflow

Backup volume:

docker run --rm \
-v n8n_data:/data \
-v $(pwd):/backup \
ubuntu \
tar czf /backup/n8n-backup.tar.gz /data

Jika Mau Lebih Advanced

Biasanya production menggunakan:

  • PostgreSQL
  • Redis Queue
  • Reverse Proxy
  • HTTPS SSL
  • Domain
  • Cloudflare Tunnel
  • Docker Compose Stack

Arsitektur Production Umum

Internet

Cloudflare

Nginx Proxy Manager

n8n Container

PostgreSQL

Resource Minimal

UserRAM
Testing1 GB
Small Production2 GB
Heavy Automation AI4-8 GB

Install n8n menggunakan Cloudflare Tunnel tanpa IP public

Berikut cara install n8n self-hosted + Cloudflare Tunnel tanpa IP public.
Arsitektur ini cocok untuk:

  • server rumah
  • VM Proxmox
  • mini PC
  • VPS private
  • K3s node
  • jaringan CGNAT ISP

Karena Cloudflare Tunnel membuat koneksi outbound dari server ke Cloudflare, jadi tidak perlu:

  • port forwarding
  • IP public
  • NAT static

Arsitektur

Internet

Cloudflare DNS

Cloudflare Tunnel

Server Ubuntu/Linux

n8n Docker

Yang Dibutuhkan

  • Domain di Cloudflare
  • Server Ubuntu/Linux
  • Docker
  • Account Cloudflare

1. Install Docker

Install Docker:

curl -fsSL https://get.docker.com | sh

Cek:

docker --version

2. Jalankan n8n

Buat volume:

docker volume create n8n_data

Jalankan container:

docker run -d \
--name n8n \
-p 5678:5678 \
-e TZ=Asia/Jakarta \
-e GENERIC_TIMEZONE=Asia/Jakarta \
-e N8N_HOST=n8n.domainanda.com \
-e N8N_PROTOCOL=https \
-e WEBHOOK_URL=https://n8n.domainanda.com \
-e N8N_RUNNERS_ENABLED=true \
-v n8n_data:/home/node/.n8n \
--restart unless-stopped \
docker.n8n.io/n8nio/n8n

Ganti:

n8n.domainanda.com

menjadi domain milik Anda.

Contoh:

n8n.yubykyuby.my.id

3. Install Cloudflared

Download:

wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb

Install:

sudo dpkg -i cloudflared-linux-amd64.deb

Cek:

cloudflared --version

4. Login ke Cloudflare

Jalankan:

cloudflared tunnel login

Nanti muncul URL login.

Contoh:

Please open the following URL and log in with your Cloudflare account:
https://dash.cloudflare.com/argotunnel?aud=xxxxx

Buka URL tersebut dari browser laptop/PC Anda.

Pilih domain yang ingin digunakan.


5. Buat Tunnel

Misal nama tunnel:

n8n-tunnel

Buat:

cloudflared tunnel create n8n-tunnel

Output contoh:

Tunnel credentials written to:
/root/.cloudflared/xxxxxxxx.json

6. Buat DNS Tunnel

Misal domain:

n8n.domainanda.com

Jalankan:

cloudflared tunnel route dns n8n-tunnel n8n.domainanda.com

Cloudflare otomatis membuat DNS record.


7. Buat Config Tunnel

Buat folder:

mkdir -p ~/.cloudflared

Edit config:

nano ~/.cloudflared/config.yml

Isi:

tunnel: n8n-tunnel
credentials-file: /root/.cloudflared/xxxxxxxx.json

ingress:
- hostname: n8n.domainanda.com
service: http://localhost:5678

- service: http_status:404

Ganti:

  • xxxxxxxx.json
  • n8n.domainanda.com

8. Jalankan Tunnel

Manual test:

cloudflared tunnel run n8n-tunnel

Jika berhasil:

Connection registered

9. Jadikan Service Linux

Install service:

sudo cloudflared service install

Enable:

sudo systemctl enable cloudflared
sudo systemctl start cloudflared

Cek:

systemctl status cloudflared

10. Akses n8n

Sekarang buka:

https://n8n.domainanda.com

Tanpa IP public.
Tanpa port forwarding.


Docker Compose Version (Recommended)

Struktur:

n8n/
├── docker-compose.yml

Isi compose:

services:
n8n:
image: docker.n8n.io/n8nio/n8n
container_name: n8n

restart: unless-stopped

ports:
- "5678:5678"

environment:
- TZ=Asia/Jakarta
- GENERIC_TIMEZONE=Asia/Jakarta
- N8N_HOST=n8n.domainanda.com
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://n8n.domainanda.com
- N8N_RUNNERS_ENABLED=true

volumes:
- n8n_data:/home/node/.n8n

volumes:
n8n_data:

Jalankan:

docker compose up -d

Keamanan Tambahan (Recommended)

Tambahkan basic auth:

-e N8N_BASIC_AUTH_ACTIVE=true \
-e N8N_BASIC_AUTH_USER=admin \
-e N8N_BASIC_AUTH_PASSWORD=passwordku

Atau di compose:

environment:
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=passwordku

Cek Log

n8n:

docker logs -f n8n

cloudflared:

journalctl -u cloudflared -f

Kelebihan Cloudflare Tunnel

FeatureBenefit
Tanpa IP publicBisa jalan di ISP rumahan
Tanpa port forwardingLebih aman
HTTPS otomatisSSL otomatis
Bisa Zero TrustLogin Google/GitHub
Bisa multi servicen8n, GitLab, Rancher, Grafana

Contoh Multi Service

n8n.domain.com
gitlab.domain.com
rancher.domain.com
grafana.domain.com

Semua bisa lewat 1 server tanpa IP public.


Integrasi yang Bagus dengan n8n

Anda sebelumnya belajar:

  • GitLab
  • K3s
  • Rancher
  • Monitoring
  • CI/CD

n8n bisa dipakai untuk:

  • auto deploy
  • auto backup
  • alert Telegram
  • monitoring workflow
  • webhook GitLab
  • auto restart service
  • AI workflow automation

Dokumentasi Resmi

Install n8n dengan domain HTTPS

Berikut cara install n8n self-hosted dengan domain HTTPS menggunakan:

  • Docker
  • Nginx Proxy Manager (NPM)
  • SSL Let’s Encrypt otomatis

Metode ini paling umum dipakai production karena mudah dan stabil.


Arsitektur

Internet

Domain DNS

Nginx Proxy Manager

n8n Docker

Yang Dibutuhkan

  • Domain
  • VPS / server Ubuntu
  • Port 80 & 443 terbuka
  • Docker

Jika tidak punya IP public, gunakan metode sebelumnya:

  • Cloudflare Tunnel

1. Install Docker

Install Docker:

curl -fsSL https://get.docker.com | sh

Cek:

docker --version

2. Install Nginx Proxy Manager

Buat folder:

mkdir ~/npm
cd ~/npm

Buat compose:

nano docker-compose.yml

Isi:

services:
npm:
image: 'jc21/nginx-proxy-manager:latest'
container_name: npm

restart: unless-stopped

ports:
- '80:80'
- '81:81'
- '443:443'

volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt

Jalankan:

docker compose up -d

3. Login Nginx Proxy Manager

Buka:

http://IP-SERVER:81

Default login:

Email: [email protected]
Password: changeme

Nanti diminta ganti password.


4. Jalankan n8n

Buat folder:

mkdir ~/n8n
cd ~/n8n

Buat compose:

nano docker-compose.yml

Isi:

services:
n8n:
image: docker.n8n.io/n8nio/n8n
container_name: n8n

restart: unless-stopped

ports:
- "5678:5678"

environment:
- TZ=Asia/Jakarta
- GENERIC_TIMEZONE=Asia/Jakarta

- N8N_HOST=n8n.domainanda.com
- N8N_PROTOCOL=https

- WEBHOOK_URL=https://n8n.domainanda.com

- N8N_RUNNERS_ENABLED=true

volumes:
- n8n_data:/home/node/.n8n

volumes:
n8n_data:

Ganti:

n8n.domainanda.com

contoh:

n8n.yubykyuby.my.id

Jalankan:

docker compose up -d

5. Setting DNS Domain

Di provider domain atau Cloudflare buat:

TypeNameValue
An8nIP_SERVER

Contoh:

n8n.domainanda.com → 123.123.123.123

6. Setup HTTPS di Nginx Proxy Manager

Masuk ke:

http://IP-SERVER:81

Tambahkan Proxy Host

Pilih:

Hosts → Proxy Hosts → Add Proxy Host

Isi:

FieldValue
Domain Namesn8n.domainanda.com
Schemehttp
Forward Hostname/IPIP_SERVER
Forward Port5678

Jika n8n dan NPM satu server:

Forward Hostname/IP = localhost

atau:

172.17.0.1

Port:

5678

7. Aktifkan SSL

Masuk tab:

SSL

Pilih:

Request a new SSL Certificate

Centang:

  • Force SSL
  • HTTP/2
  • Agree Let’s Encrypt

Save.


8. Selesai

Sekarang buka:

https://n8n.domainanda.com

HTTPS otomatis aktif.


Setup Login Basic Auth (Recommended)

Tambahkan di compose:

environment:
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=passwordku

Restart:

docker compose restart

Cek Log

n8n:

docker logs -f n8n

NPM:

docker logs -f npm

Update n8n

docker compose pull
docker compose up -d

Backup Data

Backup volume:

docker run --rm \
-v n8n_n8n_data:/data \
-v $(pwd):/backup \
ubuntu \
tar czf /backup/n8n-backup.tar.gz /data

Production Recommended Stack

Biasanya production menggunakan:

ServiceFunction
n8nAutomation
PostgreSQLDatabase
RedisQueue
Nginx Proxy ManagerReverse Proxy
CloudflareDNS + Security
WatchtowerAuto update

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *