Jembatan Otomasi Tanpa Kode: Panduan Lengkap Instalasi dan Workflow N8N

N8N (Node-based workflow automation) adalah alat open-source yang kuat, memungkinkan Anda menghubungkan layanan web dan API untuk membuat alur kerja otomatisasi yang kompleks tanpa menulis kode (Low-Code/No-Code). Panduan ini mencakup instalasi aman menggunakan Docker Compose di server Linux, konfigurasi Reverse Proxy Nginx, dan contoh praktis otomatisasi notifikasi RSS feed ke platform pesan.

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:

  1. Self-Hosted: Kepemilikan data 100% ada di tangan Anda.

  2. Low-Code/No-Code: Sebagian besar otomatisasi dapat dibangun dengan drag-and-drop.

  3. 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.

Bash
 
# 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/.

Bash
 
vim docker-compose.yml

Masukkan konfigurasi berikut. Bagian yang paling penting adalah variabel lingkungan (environment) yang mendefinisikan hostname dan kredensial dasar.

YAML
 
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_HOST dan N8N_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:

Bash
 
# Unduh image dan jalankan kontainer di latar belakang (-d)
docker compose up -d

Verifikasi status container:

Bash
 
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

 

Bash
 
# 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:

Bash
 
sudo vim /etc/nginx/sites-available/n8n_proxy

Masukkan konfigurasi yang mengarahkan lalu lintas dari Port 80/443 ke Port 5678 di localhost:

Nginx
 
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:

Bash
 
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:

Bash
 
# 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).

  1. Di dasbor N8N, klik “Create new workflow”.

  2. Hapus node awal. Klik “Add first node” dan cari “Cron”.

  3. Mode: Pilih “Interval”.

  4. Value: Atur “15” dan “Minutes”.

  5. Node ini memastikan workflow berjalan setiap 15 menit.

 

4.2 Langkah 2: Source Data (RSS Feed Node)

 

Tambahkan node yang berfungsi sebagai sumber data.

  1. Tambahkan node baru, cari “RSS Feed”.

  2. Resource: Pilih “Feed”.

  3. Operation: Pilih “Read All”.

  4. URL: Masukkan URL RSS feed target (misalnya, https://www.cnbc.com/id/2091001/rss/id.xml).

  5. 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).

  1. Tambahkan node baru, cari “Set”.

  2. Mode: Pilih “Set”.

  3. 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.title dan $json.link adalah field yang dihasilkan oleh Node RSS.

  4. 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).

  1. Tambahkan node baru, cari “Discord”.

  2. Credentials:

    • Klik “Create new credential”.

    • Masukkan Webhook URL dari channel Discord Anda.

    • Simpan kredensial.

  3. Resource: Pilih “Webhook”.

  4. Operation: Pilih “Send”.

  5. 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

 

  1. Simpan Workflow: Beri nama workflow (misalnya, RSS-to-Discord).

  2. Test: Klik tombol “Execute Workflow” untuk menguji alur kerja secara manual. Verifikasi apakah pesan muncul di Discord Anda.

  3. 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/:

Bash
 
# 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
Share the Post:

Related Posts