Mendefinisikan Ulang Otomasi dengan N8N
Di era digital, waktu yang dihabiskan untuk tugas-tugas berulang (repetitive tasks) antara aplikasi yang berbeda (misalnya, mengambil data dari Google Sheet dan mengirim email notifikasi) adalah pemborosan sumber daya. N8N hadir sebagai solusi middleware otomatisasi open-source yang kuat.
Berbeda dengan solusi komersial seperti Zapier atau IFTTT, N8N memberikan Anda kendali penuh atas data dan privasi, karena ia di-host di infrastruktur Anda sendiri. N8N menggunakan filosofi Node-based, di mana setiap fungsi (seperti mengambil data, memproses, atau mengirim email) diwakili oleh sebuah node yang dihubungkan untuk membentuk alur kerja (workflow).
Keunggulan Utama N8N:
Self-Hosted: Kepemilikan data 100% ada di tangan Anda.
Low-Code/No-Code: Sebagian besar otomatisasi dapat dibangun dengan drag-and-drop.
Ekstensif: Mendukung ratusan integrasi dengan layanan populer (AWS, Slack, Google Drive, dsb.) dan API generik.
Panduan ini akan berfokus pada instalasi yang paling umum dan direkomendasikan untuk stabilitas dan kemudahan upgrade: menggunakan Docker Compose.
Pilar 1: Persiapan Server dan Lingkungan Docker
Untuk menjalankan N8N dengan stabil, Anda memerlukan server Linux yang memiliki Docker Engine dan Docker Compose. Kita akan mengasumsikan Anda menggunakan Ubuntu 24.04 (seperti panduan sebelumnya).
1.1 Prasyarat Teknis
Server Ubuntu 24.04 (minimal 2 Core CPU, 2 GB RAM).
Docker Engine dan Docker Compose Plugin terinstal dan berjalan. (Jika belum terinstal, lihat panduan sebelumnya untuk Instalasi Docker di Ubuntu 24.04).
Domain atau subdomain yang menunjuk ke IP server Anda (misalnya,
n8n.domainanda.com).Port 80 dan 443 terbuka di firewall (untuk Reverse Proxy).
1.2 Struktur Direktori
Kita akan membuat direktori khusus untuk konfigurasi N8N dan data persisten agar workflow Anda tidak hilang saat container di-update.
# Buat direktori utama N8N
mkdir -p /opt/n8n
cd /opt/n8n
# Buat direktori untuk data persisten
mkdir -p ./.n8n-data
Pilar 2: Deployment N8N dengan Docker Compose
Kita akan mendefinisikan service N8N, memastikan konfigurasi yang aman, dan menyiapkan volume persisten.
2.1 Konfigurasi File docker-compose.yml
Buat dan edit file docker-compose.yml di direktori /opt/n8n/.
vim docker-compose.yml
Masukkan konfigurasi berikut. Bagian yang paling penting adalah variabel lingkungan (environment) yang mendefinisikan hostname dan kredensial dasar.
version: '3.8'
services:
n8n:
# Menggunakan image N8N resmi
image: n8nio/n8n
container_name: n8n
restart: always
# Konfigurasi Environment Variables (PENTING UNTUK KEAMANAN)
environment:
# Ganti URL ini dengan domain Anda!
- N8N_HOST=n8n.domainanda.com
- N8N_PORT=5678
- N8N_PROTOCOL=https
- NODE_ENV=production
# Kredensial Enkripsi: Ganti dengan string yang SANGAT KUAT dan unik
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin-n8n
- N8N_BASIC_AUTH_PASSWORD=GantiDenganPasswordSangatKuatAnda123!
# Opsi Lanjutan: Sesuaikan Zona Waktu
- TZ=Asia/Jakarta
# Pemetaan Port: 5678 di host akan diakses oleh reverse proxy
ports:
- 127.0.0.1:5678:5678
# Volume: Menghubungkan direktori data persisten ke dalam container
volumes:
- ./.n8n-data:/home/node/.n8n
- /etc/timezone:/etc/timezone:ro
Catatan Keamanan:
N8N_HOSTdanN8N_PROTOCOL: Wajib diatur agar N8N menghasilkan URL webhook yang benar.
N8N_BASIC_AUTH_*: Memberikan lapisan keamanan otentikasi dasar di depan antarmuka N8N, di samping keamanan yang disediakan oleh Reverse Proxy.
NODE_ENV=production: Memastikan N8N berjalan dalam mode produksi, mengoptimalkan kinerja.
2.2 Menjalankan Kontainer
Simpan file dan jalankan deployment dengan Docker Compose:
# Unduh image dan jalankan kontainer di latar belakang (-d)
docker compose up -d
Verifikasi status container:
docker ps
Anda akan melihat container bernama n8n berjalan di port 5678/tcp.
Pilar 3: Konfigurasi Keamanan (Nginx Reverse Proxy & SSL)
Untuk mengakses N8N melalui domain aman (https://n8n.domainanda.com), kita perlu mengonfigurasi Nginx Reverse Proxy.
3.1 Instalasi Nginx dan Certbot
# Instal Nginx dan Certbot
sudo apt install -y nginx python3-certbot-nginx
3.2 Konfigurasi Server Block Nginx
Buat file konfigurasi Nginx untuk domain Anda:
sudo vim /etc/nginx/sites-available/n8n_proxy
Masukkan konfigurasi yang mengarahkan lalu lintas dari Port 80/443 ke Port 5678 di localhost:
server {
listen 80;
server_name n8n.domainanda.com;
# Akan diisi oleh Certbot
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl http2;
server_name n8n.domainanda.com;
# Certbot akan mengisi path sertifikat di sini
# ssl_certificate /etc/letsencrypt/live/n8n.domainanda.com/fullchain.pem;
# ssl_certificate_key /etc/letsencrypt/live/n8n.domainanda.com/privkey.pem;
# Pengaturan SSL yang baik
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
ssl_protocols TLSv1.3;
ssl_prefer_server_ciphers off;
# Reverse Proxy ke N8N (port 5678)
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;
# Konfigurasi Penting untuk WebSocket (Koneksi N8N)
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 86400;
}
}
Aktifkan server block dan reload Nginx:
sudo ln -s /etc/nginx/sites-available/n8n_proxy /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
3.3 Mengamankan dengan SSL/TLS (HTTPS)
Dapatkan sertifikat SSL gratis menggunakan Certbot:
# Ganti n8n.domainanda.com dengan domain Anda
sudo certbot --nginx -d n8n.domainanda.com
Setelah ini, N8N Anda akan dapat diakses secara aman di https://n8n.domainanda.com. Anda akan diminta memasukkan username dan password yang Anda setel di environment variable (N8N_BASIC_AUTH_*).
Pilar 4: Contoh Penggunaan (Workflow Otomasi RSS ke Discord)
N8N dapat digunakan untuk ribuan skenario. Contoh berikut adalah skenario umum: Memantau RSS feed suatu situs dan mengirim notifikasi ke Discord atau Telegram setiap kali ada artikel baru.
Skenario: Notifikasi Artikel Baru ke Discord
Workflow ini akan berjalan setiap 15 menit, memeriksa RSS feed tech news, dan memposting judul serta tautan ke channel Discord.
4.1 Langkah 1: Trigger (Cron Node)
Setiap workflow dimulai dengan Trigger Node (pemicu).
Di dasbor N8N, klik “Create new workflow”.
Hapus node awal. Klik “Add first node” dan cari “Cron”.
Mode: Pilih “Interval”.
Value: Atur “15” dan “Minutes”.
Node ini memastikan workflow berjalan setiap 15 menit.
4.2 Langkah 2: Source Data (RSS Feed Node)
Tambahkan node yang berfungsi sebagai sumber data.
Tambahkan node baru, cari “RSS Feed”.
Resource: Pilih “Feed”.
Operation: Pilih “Read All”.
URL: Masukkan URL RSS feed target (misalnya,
https://www.cnbc.com/id/2091001/rss/id.xml).Penting: Pastikan Anda Mencentang Opsi “Only New Items” atau menggunakan Code Node untuk memfilter (lihat Langkah 3). Mencentang opsi ini akan mencegah notifikasi berulang untuk artikel lama.
4.3 Langkah 3: Transformation (Set Node)
Kita perlu menyiapkan format pesan yang akan dikirim, menggabungkan data dari RSS feed (judul dan tautan).
Tambahkan node baru, cari “Set”.
Mode: Pilih “Set”.
Add Value:
Value Name:
message(Nama kolom baru).Value: Gunakan ekspresi untuk menggabungkan data dari Node RSS.
Klik ikon Ekspresi (gambar kunci pas).
Masukkan:
Baru di [RSS Feed]: {{ $json.title }} - {{ $json.link }}Keterangan:
$json.titledan$json.linkadalah field yang dihasilkan oleh Node RSS.
Penting: Pastikan “Keep Only Set” dinonaktifkan agar data lain tetap tersedia.
4.4 Langkah 4: Destination (Discord Node)
Tambahkan node tujuan yang akan mengirim pesan. (Untuk Telegram atau Slack, prosedurnya serupa).
Tambahkan node baru, cari “Discord”.
Credentials:
Klik “Create new credential”.
Masukkan Webhook URL dari channel Discord Anda.
Simpan kredensial.
Resource: Pilih “Webhook”.
Operation: Pilih “Send”.
Text: Gunakan ekspresi untuk mengambil message yang sudah kita buat di Set Node (Langkah 3).
Klik ikon Ekspresi.
Masukkan:
{{ $json.message }}
4.5 Langkah 5: Finalisasi dan Aktivasi
Simpan Workflow: Beri nama workflow (misalnya,
RSS-to-Discord).Test: Klik tombol “Execute Workflow” untuk menguji alur kerja secara manual. Verifikasi apakah pesan muncul di Discord Anda.
Aktivasi: Setelah berhasil, geser toggle “Active” di kanan atas ke posisi ON.
Workflow Anda sekarang berjalan secara persisten di background server Anda, melakukan polling setiap 15 menit dan secara otomatis memposting berita baru ke Discord.
Kesimpulan: Otomasi Tanpa Batas dengan N8N
Anda telah berhasil menginstal N8N secara aman di server Linux menggunakan Docker Compose dan Nginx Reverse Proxy, sekaligus mengamankannya dengan SSL/TLS. Selain itu, Anda telah membangun workflow dasar yang menunjukkan kekuatan N8N dalam mengotomatisasi transfer data antar layanan yang berbeda.
N8N membuka peluang tak terbatas untuk otomatisasi, mulai dari data scraping sederhana hingga integrasi sistem backend yang kompleks, semuanya dengan manfaat keamanan data penuh sebagai platform self-hosted.
Perintah Kunci untuk Manajemen N8N
Gunakan perintah-perintah berikut saat bekerja di direktori /opt/n8n/:
# Perintah Kunci: Menghentikan N8N
docker compose down
# Perintah Kunci: Memulai ulang N8N
docker compose restart
# Perintah Kunci: Upgrade N8N ke versi terbaru (Pastikan dihentikan dulu!)
docker compose pull
docker compose up -d
# Perintah Kunci: Melihat log N8N secara real-time
docker logs n8n -f

