A. Pendahuluan
n8n (dibaca “en-eight-en”) merupakan open-source workflow automation tool yang memungkinkan kamu untuk membuat automasi dan integrasi antara berbagai aplikasi dan layanan dengan cara yang mudah dan visual, tanpa banyak menulis kode.
Baca Juga: Apa Itu n8n? Solusi Workflow Automation Open Source
Dengan melakukan self-hosting n8n di VPS, kamu akan memiliki kendali penuh terhadap data, privasi, dan alur kerja tanpa adanya batasan. Dengan menjalankan n8n di infrastruktur kamu sendiri, kamu bisa menghindari ketergantungan pada penyedia layanan dan menyesuaikan lingkungan sesuai kebutuhan.
Panduan ini ditujukan untuk membantu kamu menginstal n8n melalui sistem operasi Ubuntu 24.04 menggunakan Docker. Di panduan ini juga, kita akan menggunakan Docker Compose untuk mengelola n8n, termasuk pembuatan, konfigurasi, dan pemeliharaan container.
B. Prasyarat
Sebelum memulai, pastikan hal-hal berikut sudah dipenuhi:
VPS dengan OS Ubuntu 24.04
Akses root atau user dengan hak sudo
Port 5678 terbuka di firewall
Koneksi internet aktif untuk mengunduh paket-paket yang dibutuhkan
Domain untuk pengaksesan n8n via HTTPS, misalnya:
n8n.yourdomain.comSistem sudah di-update untuk menghindari konflik dependensi:
sudo apt update && sudo apt upgrade -y
C. Instalasi n8n dengan Docker Compose
Metode ini sangat direkomendasikan karena proses instalasi yang sederhana, mudah dipelihara, serta minim risiko konflik dependensi dengan aplikasi lain di server.
Instal Docker & dependensi
Untuk menginstall Docker, silakan merujuk pada basis pengetahuan kami tentang instalasi Docker di Ubuntu: Cara Instal Docker di UbuntuSelanjutnya, buat folder dan file konfigurasi Docker Compose untuk n8n:
sudo mkdir ~/n8n && cd ~/n8n
sudo nano docker-compose.yml
- Salin konfigurasi Docker Compose berikut:
services:
db:
image: postgres:17.5
restart: unless-stopped
environment:
- POSTGRES_USER=n8n
- POSTGRES_PASSWORD=n8npass
- POSTGRES_DB=n8n
volumes:
- postgres_data:/var/lib/postgresql/data
n8n:
image: n8nio/n8n
container_name: n8n
restart: unless-stopped
ports:
- "5678:5678"
environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=db
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=n8n
- DB_POSTGRESDB_PASSWORD=n8npass
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=strongpass
- N8N_HOST=n8n.yourdomain.com
- WEBHOOK_URL=https://n8n.yourdomain.com
depends_on:
- db
volumes:
- n8n_data:/home/node/.n8n
volumes:
postgres_data:
n8n_data:
Berikut adalah poin-poin paling penting yang wajib kamu perhatikan:
- Ganti Kredensial: Wajib ubah semua username dan password default
(POSTGRES_PASSWORD,N8N_BASIC_AUTH_USER,N8N_BASIC_AUTH_PASSWORD)dengan milikmu sendiri yang kuat. - Siapkan Domain: Pastikan domain atau subdomain kamu (misalnya
n8n.yourdomain.com) sudah diarahkan ke IP server. Nilai ini harus diisi di variabelN8N_HOSTdanWEBHOOK_URL. - Gunakan File .env: Untuk keamanan, kamu bisa membuat file terpisah bernama .env untuk menyimpan semua kredensial dan domain kamu, agar tidak ditulis langsung di file
docker-compose.yml. - Data Aman di Volume: Semua workflow dan data kamu tersimpan di volume postgres_data dan n8n_data. Jangan pernah menghapus volume ini kecuali kamu ingin kehilangan semua data secara permanen.
- Versi Database: Konfigurasi ini menggunakan PostgreSQL versi 17.5. Kamu bisa menggunakan versi lain yang didukung oleh n8n, namun pastikan untuk memeriksa kompatibilitasnya terlebih dahulu.
- Versi Aplikasi n8n:
image: n8nio/n8nakan selalu memakai versi terbaru (latest). Jika kamu ingin menggunakan versi spesifik untuk stabilitas, ganti menjadin8nio/n8n:1.2.3(ganti 1.2.3 dengan nomor versi yang diinginkan).
- Selanjutnya, jalankan Docker Compose n8n tersebut dan verifikasi instalasi:
docker compose up -d
- Secara default, n8n berjalan pada port 5678. Kamu sekarang bisa mengaksesnya di browser dengan:
http://ip-server-mu:5678
Ketika mengakses n8n menggunakan IP Address atau domain yang tidak menggunakan HTTPS, kamu mungkin akan menjumpai error seperti gambar berikut:
Hal ini terjadi karena n8n menggunakan secure cookie secara default, yang memerlukan HTTPS. Untuk mengatasi kendala ini akan kita bahas pada langkah pembuatan sertifikat SSL.
D. Mengamankan n8n dengan HTTPS
Untuk melindungi website n8n milikmu dan memastikan koneksi yang terenkripsi, kita akan mengaktifkan SSL (HTTPS) menggunakan Let’s Encrypt dan NGINX sebagai reverse proxy. Langkah ini sangat penting jika kamu menggunakan domain kustom dan untuk mengatasi error secure cookie.
- Instal NGINX & Certbot:
sudo apt update && sudo apt install nginx certbot python3-certbot-nginx -y
- Aktifkan dan mulai service NGINX:
sudo systemctl enable nginx && sudo systemctl start nginx
- Buat konfigurasi server block NGINX untuk n8n:
sudo nano /etc/nginx/sites-available/n8n
Isi dengan:
server {
server_name n8n.yourdomain.com;
location / {
add_header Content-Security-Policy "default-src https: data: 'unsafe-inline' 'unsafe-eval'; connect-src https: wss:;";
proxy_pass http://127.0.0.1:5678;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_redirect off;
proxy_cache_bypass $http_upgrade;
}
listen 80;
}
- Aktifkan konfigurasi dan restart NGINX:
sudo ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/
sudo systemctl restart nginx
- Buat sertifikat SSL gratis untuk domain n8n milikmu:
sudo certbot --nginx -d n8n.yourdomain.com
- Setup auto-renewal sertifikat menggunakan cronjob:
sudo crontab -e
Pilih nano jika diminta memilih editor.
Tambahkan:
0 2 * * * certbot renew --quiet --post-hook "systemctl restart nginx"
Sertifikat Let’s Encrypt akan berakhir setiap 90 hari secara default. Dengan menjalankan cron job ini, Certbot akan memperbarui sertifikat SSL milikmu secara otomatis.
E. Kesimpulan
Instalasi n8n menggunakan Docker Compose di VPS Ubuntu 24.04 telah selesai. Untuk mengonfirmasi bahwa n8n sudah menggunakan HTTPS, buka web browser dan masukkan nama domain kamu dalam format https://n8n.yourdomain.com.
Apabila kamu melihat tampilan n8n tanpa peringatan SSL, artinya proses install n8n telah berhasil. Dengan konfigurasi ini, kamu memiliki platform automasi yang andal, aman, dan siap digunakan untuk mengintegrasikan berbagai alur kerja milikmu.