Jump to content

Install n8n Debian 13

Revision as of 06:15, 1 November 2026 by Yohanessugiarto (talk | contribs) (Created page with "__NOTOC__ = Panduan Instalasi n8n Automation di Debian 13 (Docker + Apache Reverse Proxy) = Panduan lengkap langkah demi langkah untuk menginstal dan mengonfigurasi platform otomasi alur kerja (Workflow Automation) '''n8n''' menggunakan Docker Compose dan Reverse Proxy Apache + SSL gratis di VPS (`vps.yohanessugiarto.id`). == 1. Prasyarat & Subdomain == Sebelum memulai instalasi, pastikan: 1. Subdomain khusus n8n (misal: `n8n.yohanessugiarto.id`) sudah di-pointing A...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)


Panduan Instalasi n8n Automation di Debian 13 (Docker + Apache Reverse Proxy)

Panduan lengkap langkah demi langkah untuk menginstal dan mengonfigurasi platform otomasi alur kerja (Workflow Automation) n8n menggunakan Docker Compose dan Reverse Proxy Apache + SSL gratis di VPS (`vps.yohanessugiarto.id`).

1. Prasyarat & Subdomain

Sebelum memulai instalasi, pastikan: 1. Subdomain khusus n8n (misal: `n8n.yohanessugiarto.id`) sudah di-pointing A Record DNS ke IP VPS `31.58.59.156`. 2. Port 80 (HTTP) dan 443 (HTTPS) sudah terbuka di UFW Firewall:

sudo ufw allow 'Apache Full'
sudo ufw reload

2. Langkah 1: Instalasi Docker & Docker Compose

n8n paling aman dan stabil dijalankan di dalam kontainer Docker.

1. Install dependensi awal & paket Docker:

sudo apt update && apt install ca-certificates curl gnupg docker.io docker-compose -y

2. Aktifkan dan jalankan service Docker:

sudo systemctl enable --now docker

3. Langkah 2: Menyiapkan Direktori & Konfigurasi n8n

1. Buat folder direktori kerja untuk n8n:

sudo mkdir -p /var/www/n8n
cd /var/www/n8n

2. Buat file `docker-compose.yml`:

sudo nano docker-compose.yml

3. Tempelkan konfigurasi Docker Compose berikut:

version: '3.8'

services:
  n8n:
    image: docker.n8n.io/n8nio/n8n:latest
    container_name: n8n_app
    restart: always
    ports:
      - "127.0.0.1:5678:5678"
    environment:
      - N8N_HOST=n8n.yohanessugiarto.id
      - N8N_PORT=5678
      - N8N_PROTOCOL=https
      - NODE_ENV=production
      - WEBHOOK_URL=https://n8n.yohanessugiarto.id/
      - GENERIC_TIMEZONE=Asia/Jakarta
    volumes:
      - n8n_data:/home/node/.n8n

volumes:
  n8n_data:

Simpan file (gunakan kombinasi Ctrl + O, tekan Enter, lalu Ctrl + X).

4. Jalankan kontainer n8n di latar belakang (*detached mode*):

sudo docker compose up -d

4. Langkah 3: Konfigurasi Reverse Proxy Apache

Agar n8n dapat diakses melalui domain dengan protokol HTTPS (port 443), kita perlu mengonfigurasi Reverse Proxy pada Apache.

1. Aktifkan modul proxy Apache yang dibutuhkan:

sudo a2enmod proxy proxy_http proxy_wstunnel rewrite headers
sudo systemctl restart apache2

2. Buat file Virtual Host Apache untuk n8n:

sudo nano /etc/apache2/sites-available/n8n.yohanessugiarto.id.conf

3. Tempelkan blok konfigurasi berikut:

<VirtualHost *:80>
    ServerName n8n.yohanessugiarto.id
    ServerAdmin admin@yohanessugiarto.id

    ProxyRequests Off
    ProxyPreserveHost On

    # Websocket support (diperlukan oleh n8n editor)
    RewriteEngine On
    RewriteCond %{HTTP:Upgrade} =websocket [NC]
    RewriteRule /(.*) ws://127.0.0.1:5678/$1 [P,L]

    ProxyPass / http://127.0.0.1:5678/
    ProxyPassReverse / http://127.0.0.1:5678/

    ErrorLog ${APACHE_LOG_DIR}/n8n_error.log
    CustomLog ${APACHE_LOG_DIR}/n8n_access.log combined
</VirtualHost>

Simpan dan keluar dari editor `nano`.

4. Aktifkan Virtual Host dan reload Apache:

sudo a2ensite n8n.yohanessugiarto.id.conf
sudo apache2ctl configtest
sudo systemctl reload apache2

5. Langkah 4: Pemasangan SSL (HTTPS) via Certbot

Amankan subdomain n8n menggunakan sertifikat SSL gratis dari Let's Encrypt:

sudo certbot --apache -d n8n.yohanessugiarto.id

Pilih opsi pengalihan otomatis (*Redirect*) saat diminta oleh Certbot.

6. Pengujian & Setup Akun Owner n8n

1. Buka browser dan akses URL n8n Bos:

  * https://n8n.yohanessugiarto.id

2. Pada halaman pembuka pertama kali, buat akun **Owner / Admin** (nama, email, dan password).

3. n8n siap digunakan untuk membuat alur kerja otomatisasi (workflow/API integration)!

7. Ringkasan Perintah Penting n8n

Perintah Fungsi
cd /var/www/html && sudo docker compose up -d Menjalankan / start service n8n.
cd /var/www/html && sudo docker compose down Mematikan service n8n.
sudo docker logs -f n8n_app Melihat log aktivitas / error n8n secara real-time.
cd /var/www/html && sudo docker compose pull && sudo docker compose up -d Mengabaikan/update n8n ke versi terbaru.

Troubleshooting: SSL Sudah Aktif Sebelum Proxy Diatur

Jika sertifikat SSL sudah diaktifkan terlebih dahulu via Certbot sebelum konfigurasi Reverse Proxy n8n selesai, Apache akan membuat file konfigurasi terpisah khusus SSL di: /etc/apache2/sites-available/n8n.yohanessugiarto.id-le-ssl.conf

File tersebut secara default masih mengarah ke direktori lokal (DocumentRoot /var/www/n8n), sehingga n8n tidak akan muncul saat dibuka via HTTPS.

Solusi Perbaikan:

1. Buka file konfigurasi SSL Apache:

sudo nano /etc/apache2/sites-available/n8n.yohanessugiarto.id-le-ssl.conf

2. Ganti seluruh isi blok <VirtualHost *:443> dengan direktif Proxy berikut:

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerAdmin email@yohanessugiarto.id
    ServerName n8n.yohanessugiarto.id
    ServerAlias www.n8n.yohanessugiarto.id

    ProxyRequests Off
    ProxyPreserveHost On

    # Websocket support (diperlukan oleh n8n editor)
    RewriteEngine On
    RewriteCond %{HTTP:Upgrade} =websocket [NC]
    RewriteRule /(.*) ws://127.0.0.1:5678/$1 [P,L]

    ProxyPass / http://127.0.0.1:5678/
    ProxyPassReverse / http://127.0.0.1:5678/

    ErrorLog ${APACHE_LOG_DIR}/n8n.yohanessugiarto.id_error.log
    CustomLog ${APACHE_LOG_DIR}/n8n.yohanessugiarto.id_access.log combined

    Include /etc/letsencrypt/options-ssl-apache.conf
    SSLCertificateFile /etc/letsencrypt/live/n8n.yohanessugiarto.id/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/n8n.yohanessugiarto.id/privkey.pem
</VirtualHost>
</IfModule>

3. Uji sintaks dan reload Apache:

sudo apache2ctl configtest
sudo systemctl reload apache2