Panduan instalasi n8n di VPS Ubuntu 24.04 via Docker. Termasuk setup-nya menggunakan PostgreSQL dan keamanan HTTPS dengan NGINX & Let's Encrypt untuk kontrol penuh atas otomatisasi alur kerja milikmu.
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.
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.com
Sistem sudah di-update untuk menghindari konflik dependensi:
sudo apt update && sudo apt upgrade -y
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 Ubuntu
Selanjutnya, buat folder dan file konfigurasi Docker Compose untuk n8n:
sudo mkdir ~/n8n && cd ~/n8n
sudo nano docker-compose.yml
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:
(POSTGRES_PASSWORD, N8N_BASIC_AUTH_USER, N8N_BASIC_AUTH_PASSWORD) dengan milikmu sendiri yang kuat.n8n.yourdomain.com) sudah diarahkan ke IP server. Nilai ini harus diisi di variabel N8N_HOST dan WEBHOOK_URL.docker-compose.yml.image: n8nio/n8n akan selalu memakai versi terbaru (latest). Jika kamu ingin menggunakan versi spesifik untuk stabilitas, ganti menjadi n8nio/n8n:1.2.3 (ganti 1.2.3 dengan nomor versi yang diinginkan).docker compose up -d
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.
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.
sudo apt update && sudo apt install nginx certbot python3-certbot-nginx -y
sudo systemctl enable nginx && sudo systemctl start nginx
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;
}
sudo ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/
sudo systemctl restart nginx
sudo certbot --nginx -d n8n.yourdomain.com
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.
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.
Jangan ragu untuk menghubungi tim support kami jika Anda memiliki pertanyaan atau masalah terkait layanan CloudKilat.