Dunia teknologi terus bergerak maju, dan otomatisasi adalah kuncinya. Baik Anda seorang developer yang ingin merampingkan alur kerja, tech enthusiast yang suka mengutak-atik sistem, atau pemilik bisnis yang ingin mengintegrasikan aplikasi tanpa coding rumit, n8n adalah salah satu tool yang patut Anda perhitungkan. Open-source, fleksibel, dan sangat powerful, n8n memungkinkan Anda membangun alur kerja otomatisasi yang kompleks.
Meskipun ada layanan cloud untuk n8n, banyak dari kita memilih untuk self-host di Virtual Private Server (VPS). Kenapa? Karena kontrol penuh atas data, fleksibilitas konfigurasi, dan tentu saja, efisiensi biaya dalam jangka panjang. Jika Anda menggunakan VPS dengan Ubuntu 24.04 (Noble Numbat), panduan ini akan membantu Anda menginstal dan mengkonfigurasi n8n dari awal hingga siap digunakan.
Kenapa n8n Sangat Powerful untuk Developer & Tim Tech?
Sebelum kita terjun ke proses instalasi, mari pahami mengapa n8n menjadi favorit di kalangan praktisi teknologi:
- Visual Workflow Editor: Mirip dengan tool no-code/low-code lainnya, n8n menawarkan antarmuka visual yang intuitif. Anda bisa menghubungkan berbagai “node” (blok fungsionalitas) untuk membangun alur kerja yang kompleks tanpa perlu menulis kode sebaris pun.
- Open-Source & Self-Hostable: Ini adalah poin krusial. Anda bisa menginstal n8n di server Anda sendiri, memberikan kontrol penuh atas data dan lingkungan. Ini sangat penting untuk proyek dengan kebutuhan privasi data yang tinggi atau jika Anda ingin menghemat biaya langganan bulanan.
- Fleksibilitas Tanpa Batas: n8n tidak hanya memiliki ratusan integrasi bawaan (aplikasi, API, database), tetapi juga memungkinkan Anda membuat node kustom menggunakan JavaScript. Ini membuka pintu untuk otomatisasi yang sangat spesifik dan sesuai kebutuhan proyek Anda.
- Extensibility: Jika ada API yang belum didukung, Anda bisa menggunakan HTTP Request node atau bahkan membuat node kustom sendiri. Ini jauh lebih fleksibel dibanding platform SaaS yang sering membatasi integrasi hanya pada yang mereka sediakan.
- Fokus pada Developer: Meskipun visual, n8n dirancang dengan mempertimbangkan developer. Ada banyak fitur seperti ekspresi JavaScript dalam node, debugging yang mudah, dan struktur yang rapi, membuatnya nyaman bagi mereka yang terbiasa dengan kode.
Bagi developer, n8n bisa menjadi jembatan antara coding dan otomatisasi cepat. Anda bisa menggunakannya untuk notifikasi otomatis, ETL sederhana, manajemen API, bahkan untuk membuat backend ringan untuk prototype aplikasi.
Persiapan Awal Sebelum Instalasi n8n
Untuk memastikan proses instalasi berjalan lancar, ada beberapa hal yang perlu Anda siapkan:
1. VPS dengan Ubuntu 24.04
- Pastikan VPS Anda menggunakan sistem operasi Ubuntu 24.04 LTS (Noble Numbat).
- Untuk performa optimal, n8n membutuhkan minimal 1GB RAM dan 1 CPU core. Jika Anda berencana menjalankan banyak alur kerja kompleks, pertimbangkan spesifikasi yang lebih tinggi (2GB RAM, 2 CPU core atau lebih).
2. Akses SSH ke VPS Anda
- Anda akan memerlukan klien SSH (seperti PuTTY di Windows, atau terminal bawaan di Linux/macOS) untuk terhubung ke server Anda.
- Pastikan Anda memiliki kredensial root atau pengguna dengan hak akses
sudo.
3. Domain atau Subdomain
- Sangat disarankan untuk menggunakan domain atau subdomain yang mengarah ke IP publik VPS Anda (misalnya,
n8n.domainanda.com). Ini penting untuk konfigurasi SSL dan akses yang aman. - Pastikan record DNS (A record) sudah diarahkan dengan benar.
4. Firewall (UFW)
- Firewall sangat penting untuk keamanan server Anda. Kita akan mengkonfigurasi UFW (Uncomplicated Firewall) untuk mengizinkan lalu lintas yang diperlukan.
5. Nginx atau Caddy (Sangat Direkomendasikan)
- Untuk menjalankan n8n dengan HTTPS (SSL/TLS) dan mengelola lalu lintas web dengan baik, kita akan menggunakan reverse proxy seperti Nginx. Ini juga memungkinkan Anda menjalankan beberapa layanan di VPS yang sama.
Langkah 1: Update Sistem & Install Prasyarat Dasar
Langkah pertama selalu sama saat menyiapkan server baru: pastikan sistem operasi Anda up-to-date dan instal beberapa paket dasar yang mungkin diperlukan.
Buka terminal Anda dan hubungkan ke VPS via SSH:
ssh user_anda@ip_vps_anda
Setelah terhubung, jalankan perintah berikut:
sudo apt update
sudo apt upgrade -y
sudo apt install -y curl wget git
Perintah ini akan memperbarui daftar paket, meng-upgrade semua paket yang terinstal ke versi terbaru, dan menginstal beberapa utilitas dasar seperti curl, wget, dan git yang berguna untuk berbagai keperluan.
Langkah 2: Instalasi Docker & Docker Compose
Menggunakan Docker adalah cara terbaik untuk menjalankan n8n di produksi. Ini memastikan n8n berjalan di lingkungan yang terisolasi, mudah dikelola, dan dapat direplikasi. Docker Compose akan membantu kita mendefinisikan dan menjalankan aplikasi multi-kontainer dengan satu perintah.
Instalasi Docker Engine
Ikuti langkah-langkah resmi dari Docker untuk instalasi yang paling stabil:
# Hapus instalasi Docker lama jika ada
for pkg in docker.io docker-doc docker-compose docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin podman-docker; do sudo apt remove $pkg; done
# Tambahkan GPG key resmi Docker
sudo apt update
sudo apt install -y ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Tambahkan repository Docker ke APT sources
echo \
"deb [arch=\"$(dpkg --print-architecture)\" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
\"$(. /etc/os-release && echo "$VERSION_CODENAME")\" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Instal Docker Engine, containerd, dan Docker Compose
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Verifikasi instalasi Docker dengan menjalankan:
sudo docker run hello-world
Jika Anda melihat pesan “Hello from Docker!”, berarti Docker berhasil terinstal.
Tambahkan User ke Grup Docker
Agar Anda tidak perlu menggunakan sudo setiap kali menjalankan perintah Docker, tambahkan pengguna Anda ke grup docker:
sudo usermod -aG docker ${USER}
Setelah ini, Anda perlu me-log out dan me-log in kembali ke sesi SSH Anda agar perubahan grup berlaku. Atau, cukup restart terminal.
Langkah 3: Persiapan Direktori & File Konfigurasi n8n
Kita akan membuat struktur direktori untuk n8n dan mengkonfigurasi Docker Compose untuk menjalankannya.
Buat Direktori n8n
Buat direktori tempat n8n akan menyimpan datanya. Saya sering menempatkan aplikasi di bawah /opt.
sudo mkdir -p /opt/n8n
cd /opt/n8n
Buat File docker-compose.yml
Buat file docker-compose.yml dengan editor teks favorit Anda (misalnya nano):
nano docker-compose.yml
Salin dan tempel konfigurasi berikut:
version: '3.8'
services:
n8n:
image: n8n.io/n8n
restart: always
ports:
- "5678:5678" # Port default n8n, hanya diakses internal dari reverse proxy
environment:
- N8N_HOST=${SUBDOMAIN_ANDA} # Ganti dengan subdomain Anda, contoh: n8n.domainanda.com
- N8N_PORT=5678
- N8N_PROTOCOL=https
- NODE_ENV=production
- WEBHOOK_URL=https://${SUBDOMAIN_ANDA}/ # Pastikan ini sesuai dengan domain Anda
- GENERIC_TIMEZONE=Asia/Jakarta # Atur timezone Anda
- TZ=Asia/Jakarta # Atur timezone sistem kontainer
- N8N_BASIC_AUTH_ACTIVE=true # Aktifkan Basic Auth di balik reverse proxy
# - N8N_BASIC_AUTH_USER=admin # Opsional: username basic auth
# - N8N_BASIC_AUTH_PASSWORD=your_secure_password # Opsional: password basic auth
- N8N_EDITOR_BASE_URL=https://${SUBDOMAIN_ANDA}/
# - N8N_DISABLE_REGISTRATION=true # Opsional: Nonaktifkan pendaftaran user baru setelah admin pertama
# - N8N_ENCRYPTION_KEY=some_long_random_string # Sangat direkomendasikan untuk enkripsi credentials
volumes:
- /opt/n8n/data:/home/node/.n8n
# command: n8n start --tunnel # Hapus komentar jika Anda perlu menggunakan tunnel untuk testing
Penting:
- Ganti
${SUBDOMAIN_ANDA}dengan domain atau subdomain asli Anda (misalnya:n8n.tubianto.com). Ini krusial agar n8n mengetahui URL aslinya saat membuat webhook. N8N_PROTOCOL=httpskarena kita akan menggunakan reverse proxy dengan SSL.N8N_BASIC_AUTH_ACTIVE=trueini sangat penting untuk keamanan. Meskipun kita akan menggunakan Nginx Basic Auth, ini lapisan pengamanan tambahan.volumes: - /opt/n8n/data:/home/node/.n8n: Baris ini memastikan semua data n8n (workflow, kredensial, dll.) disimpan secara persisten di direktori/opt/n8n/datadi VPS Anda. Ini krusial agar data tidak hilang jika kontainer di-restart atau dihapus.- SANGAT DIREKOMENDASIKAN untuk menambahkan
N8N_ENCRYPTION_KEYdengan string acak yang panjang dan kuat. Ini digunakan untuk mengenkripsi kredensial sensitif dalam database n8n Anda. Anda bisa membuat string acak denganopenssl rand -base64 32.
Buat File .env (Opsional tapi Direkomendasikan)
Untuk menjaga file docker-compose.yml tetap bersih dari informasi sensitif atau variabel yang sering berubah, Anda bisa membuat file .env:
nano .env
Isi dengan variabel yang Anda definisikan di docker-compose.yml, contoh:
SUBDOMAIN_ANDA=n8n.domainanda.com
N8N_ENCRYPTION_KEY=your_super_secret_encryption_key_here
N8N_BASIC_AUTH_USER=admin_user
N8N_BASIC_AUTH_PASSWORD=your_super_secure_basic_auth_password
Jika Anda menggunakan file .env, Anda tidak perlu mengubah variabel langsung di docker-compose.yml. Docker Compose akan secara otomatis memuat variabel dari file ini.
Langkah 4: Jalankan n8n dengan Docker Compose
Setelah semua file konfigurasi siap, jalankan n8n:
docker compose up -d
up: Membangun dan menjalankan kontainer.-d: Menjalankan kontainer dalam mode detached (di latar belakang).
Untuk melihat log kontainer n8n, Anda bisa gunakan:
docker compose logs -f n8n
Pastikan tidak ada error dan n8n berhasil berjalan. Anda juga bisa memeriksa apakah kontainer berjalan dengan:
docker ps
Anda seharusnya melihat kontainer n8n_n8n_1 atau serupa sedang berjalan.
Langkah 5: Konfigurasi Reverse Proxy (Nginx)
Karena n8n berjalan di port 5678 secara internal, kita perlu reverse proxy agar bisa diakses melalui port 80/443 (HTTP/HTTPS) menggunakan domain Anda. Kita juga akan mengamankannya dengan SSL/TLS menggunakan Certbot.
A. Konfigurasi Firewall (UFW)
Pastikan UFW mengizinkan lalu lintas HTTP, HTTPS, dan SSH:
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable
sudo ufw status
Pastikan Anda melihat “active” dan port 22, 80, 443 diizinkan.
B. Instalasi Nginx
sudo apt install -y nginx
C. Buat Konfigurasi Nginx untuk n8n
Buat file konfigurasi Nginx baru untuk domain Anda:
sudo nano /etc/nginx/sites-available/n8n.conf
Isi dengan konfigurasi berikut. Ganti n8n.domainanda.com dengan subdomain Anda.
server {
listen 80;
listen [::]:80;
server_name n8n.domainanda.com; # Ganti dengan subdomain Anda
location / {
proxy_pass http://localhost: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_redirect off;
proxy_buffering off;
}
}
Aktifkan konfigurasi ini dengan membuat symlink ke sites-enabled dan hapus default config:
sudo ln -s /etc/nginx/sites-available/n8n.conf /etc/nginx/sites-enabled/
sudo rm /etc/nginx/sites-enabled/default
Uji konfigurasi Nginx dan restart:
sudo nginx -t
sudo systemctl restart nginx
Sekarang, Anda seharusnya bisa mengakses n8n melalui http://n8n.domainanda.com (tanpa HTTPS). Jika berhasil, kita bisa melangkah ke SSL.
D. Set up SSL/TLS dengan Certbot
Mengamankan koneksi dengan HTTPS adalah keharusan. Kita akan menggunakan Certbot untuk mendapatkan sertifikat SSL gratis dari Let’s Encrypt.
sudo apt install -y certbot python3-certbot-nginx
Setelah terinstal, jalankan Certbot:
sudo certbot --nginx -d n8n.domainanda.com # Ganti dengan subdomain Anda
Certbot akan memandu Anda melalui prosesnya. Pilih opsi untuk mengarahkan lalu lintas HTTP ke HTTPS secara otomatis jika ditanya. Setelah selesai, Certbot akan mengedit file konfigurasi Nginx Anda untuk menyertakan SSL.
Uji konfigurasi Nginx lagi dan restart:
sudo nginx -t
sudo systemctl restart nginx
Sekarang, n8n Anda seharusnya sudah bisa diakses melalui HTTPS (https://n8n.domainanda.com).
Langkah 6: Akses dan Konfigurasi Awal n8n
Buka browser Anda dan navigasikan ke https://n8n.domainanda.com. Anda akan disambut oleh halaman pendaftaran n8n.
- Buat akun admin pertama Anda. Ini akan menjadi akun utama untuk mengelola n8n.
- Setelah berhasil login, Anda akan masuk ke antarmuka editor n8n.
Tips Keamanan Awal:
- Gunakan password yang kuat untuk akun admin Anda.
- Jika Anda tidak berencana mengizinkan pendaftaran pengguna baru, Anda bisa mengaktifkan
N8N_DISABLE_REGISTRATION=truedi file.envAnda, lalu restart kontainer n8n (docker compose restart n8n). - Pertimbangkan untuk mengaktifkan Basic Auth di Nginx juga sebagai lapisan keamanan tambahan. Anda bisa menambahkan baris ini di blok
location /pada file konfigurasi Nginx Anda:auth_basic "Restricted Content"; auth_basic_user_file /etc/nginx/.htpasswd;Lalu buat file
.htpasswd:sudo htpasswd -c /etc/nginx/.htpasswd admin_userGanti
admin_userdengan username yang Anda inginkan.
Langkah 7: Menjaga n8n Tetap Berjalan dengan Systemd (Opsional, tapi Recommended)
Meskipun Docker Compose akan me-restart kontainer secara otomatis, kita bisa membuat layanan systemd untuk mengelola keseluruhan aplikasi Docker Compose. Ini memastikan bahwa jika server di-reboot, n8n akan secara otomatis berjalan kembali.
Buat file layanan systemd baru:
sudo nano /etc/systemd/system/n8n.service
Salin dan tempel konfigurasi berikut:
[Unit]
Description=n8n Docker Compose Service
Requires=docker.service
After=docker.service
[Service]
WorkingDirectory=/opt/n8n
ExecStart=/usr/local/bin/docker-compose up -d
ExecStop=/usr/local/bin/docker-compose down
Restart=always
RestartSec=10
TimeoutStartSec=0
[Install]
WantedBy=multi-user.target
Catatan: Path /usr/local/bin/docker-compose mungkin perlu disesuaikan tergantung bagaimana Docker Compose Plugin diinstal pada sistem Anda. Anda bisa menemukan lokasinya dengan which docker-compose.
Muat ulang konfigurasi systemd, aktifkan dan mulai layanan n8n:
sudo systemctl daemon-reload
sudo systemctl enable n8n.service
sudo systemctl start n8n.service
Verifikasi status layanan:
sudo systemctl status n8n.service
Anda seharusnya melihat status “active (running)”. Sekarang n8n akan otomatis berjalan setiap kali VPS Anda di-boot.
Tips Penting untuk Penggunaan n8n di Produksi
Setelah n8n terinstal, ada beberapa praktik terbaik yang perlu Anda pertimbangkan:
- Backup Data Secara Teratur: Data n8n Anda (workflow, kredensial) disimpan di direktori
/opt/n8n/datadi VPS Anda. Pastikan Anda memiliki strategi backup yang solid untuk direktori ini. Anda bisa menggunakanrsync, cloud storage, atau tool backup lainnya. - Monitoring: Pantau penggunaan CPU, RAM, dan disk VPS Anda. Jika n8n menjalankan banyak workflow atau workflow yang kompleks, penggunaan sumber daya bisa meningkat.
- Update n8n Secara Berkala: n8n terus dikembangkan. Untuk mendapatkan fitur terbaru dan perbaikan keamanan, pastikan Anda secara teratur memperbarui kontainer n8n. Cukup
cd /opt/n8nlaludocker compose pull n8ndandocker compose up -d. Atau, jika menggunakan Systemd:sudo systemctl stop n8n.service,cd /opt/n8n,docker compose pull n8n,docker compose up -d,sudo systemctl start n8n.service. - Keamanan Lingkungan: Pastikan VPS Anda tetap aman. Selalu perbarui paket sistem, gunakan kata sandi SSH yang kuat atau kunci SSH, dan konfigurasikan firewall dengan benar.
- Performa: Untuk workflow yang sangat banyak atau memerlukan eksekusi cepat, pertimbangkan untuk meningkatkan spesifikasi VPS atau menggunakan Queue Mode dengan Redis sebagai backend.
Troubleshooting Umum
Ada beberapa masalah yang sering muncul saat instalasi n8n:
- Tidak Bisa Akses n8n di Browser:
- Pastikan firewall (UFW) mengizinkan port 80 dan 443.
- Periksa status Nginx (
sudo systemctl status nginx) dan pastikan tidak ada error. - Periksa log kontainer n8n (
docker compose logs n8n) apakah ada error. - Pastikan DNS domain/subdomain Anda sudah benar dan mengarah ke IP VPS.
- Kontainer n8n Tidak Berjalan:
- Cek log Docker Compose (
docker compose logs n8n). Seringkali ada petunjuk error di sana. - Pastikan tidak ada port konflik (misalnya, aplikasi lain sudah menggunakan port 5678).
- Pastikan variabel lingkungan di
.envataudocker-compose.ymlsudah benar, terutamaWEBHOOK_URLdanN8N_HOST.
- Cek log Docker Compose (
- Masalah SSL/HTTPS:
- Pastikan Certbot berhasil mengeluarkan sertifikat. Cek log Certbot jika ada error.
- Pastikan konfigurasi Nginx sudah diperbarui oleh Certbot dan Nginx berhasil di-restart.
- Coba akses dari browser lain atau mode incognito untuk menghindari cache.
FAQ
Apa itu n8n?
n8n adalah tool otomatisasi alur kerja open-source yang memungkinkan Anda menghubungkan aplikasi, API, dan layanan online untuk membangun otomatisasi yang kompleks secara visual, tanpa perlu coding. Ini sering disebut sebagai alternatif yang lebih fleksibel dan self-hostable untuk platform seperti Zapier atau Make.
Kenapa saya harus menginstal n8n di VPS sendiri, bukan menggunakan layanan cloud?
Menginstal n8n di VPS Anda memberikan kontrol penuh atas data Anda, fleksibilitas konfigurasi yang tak terbatas, dan seringkali lebih hemat biaya dalam jangka panjang, terutama jika Anda memiliki banyak alur kerja atau data sensitif. Anda juga bisa mengkustomisasi lingkungan sesuai kebutuhan Anda.
Berapa sumber daya VPS yang dibutuhkan untuk menjalankan n8n?
Untuk penggunaan dasar, VPS dengan 1GB RAM dan 1 CPU core sudah cukup. Namun, jika Anda berencana menjalankan banyak workflow atau workflow yang intensif secara komputasi, direkomendasikan untuk menggunakan minimal 2GB RAM dan 2 CPU core untuk performa yang lebih baik dan stabil.
Bagaimana cara mengupdate n8n ke versi terbaru?
Jika Anda menginstal n8n menggunakan Docker Compose, Anda bisa mengupdate n8n dengan menjalankan perintah berikut dari direktori /opt/n8n:
docker compose pull n8n
docker compose up -d
Jika Anda menggunakan layanan Systemd, hentikan dulu layanan n8n (sudo systemctl stop n8n.service), jalankan perintah update Docker Compose di atas, lalu mulai kembali layanan n8n (sudo systemctl start n8n.service).
Apakah aman menjalankan n8n di VPS?
Ya, sangat aman, asalkan Anda mengikuti praktik keamanan yang baik: gunakan kata sandi yang kuat, aktifkan firewall, gunakan SSL/HTTPS (seperti yang dijelaskan di panduan ini), dan jaga agar sistem operasi serta aplikasi Anda selalu diperbarui. Kontrol penuh ada di tangan Anda.
Kesimpulan
Menginstal n8n di VPS Ubuntu 24.04 mungkin terdengar sedikit rumit di awal, tetapi dengan panduan langkah demi langkah ini, prosesnya seharusnya menjadi jauh lebih mudah. Anda tidak hanya mendapatkan tool otomatisasi yang powerful, tetapi juga kontrol penuh atas lingkungan dan data Anda.
N8n membuka pintu ke berbagai kemungkinan otomatisasi, dari tugas-tugas kecil yang berulang hingga alur kerja bisnis yang kompleks. Sebagai developer, ini adalah aset berharga untuk efisiensi dan inovasi. Sekarang, dengan n8n Anda berjalan di server sendiri, waktunya untuk mulai membangun otomatisasi impian Anda!
TAGS: n8n, VPS, Ubuntu 24.04, Docker, Docker Compose, Otomasi, Workflow Automation, Developer Tools, Cloud Computing, Backend Engineering, Productivity, Self-hosting