n8n merupakan platform workflow automation yang bersifat open-source dan sangat fleksibel. Platform ini memungkinkan pembuatan alur kerja otomatis antar berbagai layanan seperti Gmail, Slack, Discord, Google Sheets, dan ratusan aplikasi lainnya — tanpa memerlukan keahlian pemrograman tingkat lanjut.
Panduan ini menjelaskan langkah demi langkah proses instalasi n8n di server atau VPS menggunakan Docker Compose. Metode ini sangat direkomendasikan untuk lingkungan produksi karena menawarkan stabilitas tinggi, kemudahan pengelolaan, dan skalabilitas sesuai kebutuhan.
Persiapan
- VPS/Sever Dengan Sistem Operasi Linux
- Akses SSH ke VPS
- Docker & Docker Compose
- Domain
Butuh VPS cepat dan andal? Cek layanan VPS Indonesia kami di hostdata.id/vps-murah-indonesia.
Konfigurasi DNS
Jika ingin mengakses n8n secara online atau melalui jaringan, sebaiknya buat subdomain khusus yang mengarah ke server tempat n8n diinstal.
Caranya dengan menambahkan A record pada pengaturan DNS domain, seperti berikut:
- Tipe: A
- Nama:
n8n(atau subdomain lain yang diinginkan, misalnya automation, workflow, dll) - Alamat IP: (isi dengan IP publik server kamu)
Install & Setup n8n Pada Docker Compose
Jika Docker dan Docker Compose belum terpasang, silakan ikuti panduan instalasinya terlebih dahulu melalui tautan berikut: https://hostdata.id/general/instalasi-docker-ce
Membuat File .env untuk Konfigurasi n8n
Pertama, buat direktori khusus untuk menyimpan konfigurasi n8n dan file Docker Compose.
mkdir n8n-compose cd n8n-compose
Di dalam folder n8n-compose, buat file bernama .env yang berisi informasi penting untuk konfigurasi n8n.
nano .env
Lalu isi file .env dengan isi seperti di bawah ini, dan ganti sesuai kebutuhan:
# DOMAIN_NAME dan SUBDOMAIN akan menentukan alamat akses n8n di browser # Misal: jika DOMAIN_NAME=example.com dan SUBDOMAIN=n8n # Maka n8n dapat diakses melalui: https://n8n.example.com # Nama domain utama yang kamu miliki DOMAIN_NAME=example.com # Subdomain khusus untuk n8n SUBDOMAIN=n8n # Lokasi zona waktu, digunakan oleh node seperti Cron # (Jika tidak diisi, default-nya New York) GENERIC_TIMEZONE=Asia/Jakarta # Alamat email kamu, digunakan saat pembuatan sertifikat SSL otomatis (misalnya oleh Let's Encrypt) SSL_EMAIL=nama@emailkamu.com
Dengan file .env ini, n8n akan secara otomatis menggunakan pengaturan yang telah ditentukan, seperti domain, subdomain, zona waktu, dan alamat email, saat Docker Compose dijalankan. Hal ini memudahkan proses konfigurasi tanpa perlu melakukan pengaturan ulang secara manual.
Di dalam direktori proyek n8n, buat folder bernama local-files. Folder ini berfungsi untuk berbagi file antara sistem host (server) dan n8n, misalnya saat menggunakan node Read/Write Files from Disk.
mkdir local-files
Meskipun file Docker Compose nantinya dapat membuat folder ini secara otomatis, membuatnya secara manual lebih disarankan agar kepemilikan dan izin akses (permissions) file bisa diatur dengan benar sejak awal.
Berikut adalah panduan membuat file compose.yaml untuk menjalankan n8n dengan Docker Compose:
services:
traefik:
image: "traefik"
restart: always
command:
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- "--entrypoints.web.http.redirections.entryPoint.to=websecure"
- "--entrypoints.web.http.redirections.entrypoint.scheme=https"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.mytlschallenge.acme.tlschallenge=true"
- "--certificatesresolvers.mytlschallenge.acme.email=${SSL_EMAIL}"
- "--certificatesresolvers.mytlschallenge.acme.storage=/letsencrypt/acme.json"
ports:
- "80:80"
- "443:443"
volumes:
- traefik_data:/letsencrypt
- /var/run/docker.sock:/var/run/docker.sock:ro
n8n:
image: docker.n8n.io/n8nio/n8n
restart: always
ports:
- "127.0.0.1:5678:5678"
labels:
- traefik.enable=true
- traefik.http.routers.n8n.rule=Host(`${SUBDOMAIN}.${DOMAIN_NAME}`)
- traefik.http.routers.n8n.tls=true
- traefik.http.routers.n8n.entrypoints=web,websecure
- traefik.http.routers.n8n.tls.certresolver=mytlschallenge
- traefik.http.middlewares.n8n.headers.SSLRedirect=true
- traefik.http.middlewares.n8n.headers.STSSeconds=315360000
- traefik.http.middlewares.n8n.headers.browserXSSFilter=true
- traefik.http.middlewares.n8n.headers.contentTypeNosniff=true
- traefik.http.middlewares.n8n.headers.forceSTSHeader=true
- traefik.http.middlewares.n8n.headers.SSLHost=${DOMAIN_NAME}
- traefik.http.middlewares.n8n.headers.STSIncludeSubdomains=true
- traefik.http.middlewares.n8n.headers.STSPreload=true
- traefik.http.routers.n8n.middlewares=n8n@docker
environment:
- N8N_HOST=${SUBDOMAIN}.${DOMAIN_NAME}
- N8N_PORT=5678
- N8N_PROTOCOL=https
- NODE_ENV=production
- WEBHOOK_URL=https://${SUBDOMAIN}.${DOMAIN_NAME}/
- GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
volumes:
- n8n_data:/home/node/.n8n
- ./local-files:/files
volumes:
n8n_data:
traefik_data:
File Docker Compose di atas mengatur dua kontainer utama:
- n8n – Aplikasi otomasi alur kerja yang menjalankan antarmuka dan fungsionalitas utama n8n.
- Traefik – Sebuah reverse proxy yang bertugas menangani sertifikat TLS/SSL secara otomatis (menggunakan Let’s Encrypt) dan mengatur routing trafik masuk ke layanan n8n.
Dengan konfigurasi ini, n8n akan dapat diakses secara aman melalui HTTPS menggunakan subdomain yang telah ditentukan.
Setelah semua file konfigurasi siap, n8n dapat dijalankan dengan perintah berikut:
sudo docker compose up -d
Perintah ini akan menjalankan n8n dan Traefik di latar belakang (background).
Sekarang n8n sudah dapat diakses melalui kombinasi subdomain + domain yang telah ditentukan di file .env.

Selanjutnya, isi data seperti email, nama depan, nama belakang, dan password — setelah itu, n8n siap digunakan.
Perlu diperhatikan bahwa n8n hanya bisa diakses melalui koneksi aman (HTTPS), dan tidak dapat diakses melalui HTTP biasa. Pastikan DNS dan sertifikat SSL telah aktif agar akses berjalan lancar.
Penutup
Dengan mengikuti langkah-langkah di atas, n8n kini telah berhasil diinstal dan dikonfigurasi menggunakan Docker Compose di server atau VPS. Melalui antarmuka yang dapat diakses via HTTPS, pengguna dapat mulai membangun berbagai otomatisasi alur kerja tanpa perlu menulis kode secara manual.

