Promo terbatas, serbu sekarang!
search

Cara menjalankan n8n dengan Docker (self-hosted)

Cara menjalankan n8n dengan Docker (self-hosted)

Menjalankan n8n dengan Docker adalah salah satu cara paling praktis untuk menghosting tool automasi workflow ini. Jadi, dengan Docker, Anda nantinya bukan menginstal n8n langsung di VPS, melainkan di container terpisah yang tidak mengganggu sistem utama.

Dengan begitu, Anda bisa mengupgrade atau mendowngrade versi n8n dengan mudah, menyesuaikan kapasitasnya sesuai kebutuhan alur kerja Anda, bahkan memindahkan instalannya ke server lain tanpa ribet.

Di artikel ini, Anda akan mempelajari cara menjalankan n8n dengan Docker dan Docker Compose. Kedua tool ini memudahkan Anda mengatur layanan n8n, environment variable, dan layanan pendukung seperti database, cukup dengan satu file YAML.

Langsung saja, simak langkah-langkah selengkapnya di bawah ini untuk menginstal, mengonfigurasi, mengamankan, dan mengupdate instance n8n Anda dengan Docker.

Cara menjalankan n8n dengan Docker

Untuk menjalankan n8n secara self-hosted menggunakan Docker, Anda perlu menginstal Docker dan Docker Compose di VPS. Setelah itu, buat file Docker Compose untuk mengonfigurasi layanan n8n Anda. Selanjutnya, Anda bisa langsung menjalankan container n8n dengan perintah docker compose up -d.

Setelah instance n8n Anda berjalan, Anda juga bisa mengamankannya dengan SSL dan reverse proxy, menyesuaikan environment variable sesuai kebutuhan, serta mengupdate n8n saat ada versi terbaru yang dirilis.

Kami akan menjelaskan langkah-langkahnya secara lebih mendetail di bawah ini.

📚 Saran bacaan

Apabila ingin menginstal n8n langsung di VPS tanpa Docker, Anda bisa membaca panduan kami tentang cara self-host n8n di VPS sendiri.

1. Instal Docker dan Docker Compose

Pertama, pastikan Docker sudah terinstal di server Anda. Sejak Docker versi 20.10.0, Docker Compose sudah disertakan secara default sebagai plugin, jadi Anda tidak perlu lagi menginstalnya secara terpisah.

Apabila menggunakan layanan VPS Docker dari Hostinger, Anda tidak perlu repot-repot melakukan langkah ini karena Docker sudah langsung terinstal di server Anda.

Tenang, meskipun menggunakan paket VPS Hostinger biasa, Anda tetap bisa menginstal Docker menggunakan template siap pakai maupun secara manual melalui terminal.

Nah, kalau Anda memilih menginstalnya secara manual, jalankan perintah Linux berikut di terminal untuk memastikan Docker sudah terinstal:

docker -v

Perintah ini akan menampilkan versi Docker yang aktif, contohnya seperti ini:

2. Siapkan direktori data n8n

Selanjutnya, buat direktori khusus untuk menyimpan data dan file konfigurasi n8n. Jalankan perintah berikut ini di terminal untuk membuat direktori utama n8n dan mengaksesnya:

mkdir ~/n8n && cd ~/n8n

Setelah masuk ke direktori tersebut, buat subfolder bernama n8n_data untuk menyimpan data persisten n8n:

mkdir n8n_data

Atur hak kepemilikan direktori tersebut agar Docker bisa mengaksesnya dengan benar:

sudo chown -R 1000:1000 n8n_data

3. Buat file Docker Compose untuk n8n

Setelah direktori siap, sekarang saatnya membuat file Docker Compose yang akan digunakan untuk mengonfigurasi layanan n8n, environment variable, dan volume penyimpanan.

Gunakan editor teks nano untuk membuat file:

sudo nano docker-compose.yml

Tempel konfigurasi berikut, dan jangan lupa untuk mengganti yourUser serta yourPassword dengan username dan password yang Anda inginkan:

services:

  n8n:

    image: n8nio/n8n

    ports:

      - "5678:5678"

    environment:

      - N8N_BASIC_AUTH_ACTIVE=true

      - N8N_BASIC_AUTH_USER=yourUser

      - N8N_BASIC_AUTH_PASSWORD=yourPassword

    volumes:

      - ./n8n_data:/home/node/.n8n

Setelah selesai, simpan dan keluar dari nano dengan menekan Ctrl + X, lalu Y, kemudian Enter.

4. Jalankan container n8n

Sekarang jalankan container n8n dengan perintah berikut:

docker compose up -d

Anda akan melihat proses inisialisasi kontainer. Kalau berhasil, akan muncul pesan seperti Created dan Started, seperti pada screenshot di bawah ini:

Untuk memastikan container n8n sudah berjalan, buka alamat berikut di browser Anda (ganti your_vps_ip dengan IP VPS Anda sendiri):

http://your_vps_ip:5678

Apabila menggunakan VPS Hostinger, Anda bisa melihat IP server di hPanel melalui menu VPSKelolaRingkasanDetail VPS.

Kalau muncul pesan error terkait “secure cookie” saat membuka alamat tersebut, tidak perlu panik. Pesan ini menandakan n8n sudah berjalan, tapi koneksi belum diamankan dengan SSL. Tenang, kita akan mempelajari solusi mengatasinya nanti di bagian berikutnya.

5. Amankan n8n dengan SSL dan NGINX reverse proxy

Untuk mengakses instance n8n Anda dengan aman melalui HTTPS, Anda perlu mengaktifkan sertifikat SSL dan mengatur reverse proxy menggunakan NGINX.

Pertama, instal web server NGINX di VPS Anda:

sudo apt install nginx -y

Setelah itu, hentikan sementara layanan NGINX:

sudo systemctl stop nginx

Lanjutkan dengan menginstal Certbot, tool yang digunakan untuk mendapatkan sertifikat SSL:

sudo apt install certbot -y

Kemudian, jalankan perintah berikut untuk meminta sertifikat SSL dari Certbot. Ganti yourdomain.tld dengan nama domain Anda yang sudah diarahkan ke VPS. Kalau belum memiliki domain, Anda bisa menggunakan hostname VPS Anda:

sudo certbot certonly --standalone -d yourdomain.tld

Selama proses ini, Anda akan diminta mengisi alamat email yang valid, menyetujui syarat layanan, dan memilih apakah ingin menerima email promosi atau tidak.

Kalau sudah selesai, jalankan kembali layanan NGINX:

sudo systemctl start nginx

Selanjutnya, buat file konfigurasi baru untuk mengatur reverse proxy dengan NGINX:

sudo nano /etc/nginx/sites-available/n8n

Kemudian, tempelkan konfigurasi berikut ke dalam file tersebut. Jangan lupa ganti yourdomain.tld dengan domain atau hostname milik Anda:

server {

    listen 443 ssl;

    server_name yourdomain.tld;

    ssl_certificate /etc/letsencrypt/live/yourdomain.tld/fullchain.pem;

    ssl_certificate_key /etc/letsencrypt/live/yourdomain.tld/privkey.pem;

    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;

    }

}

server {

    listen 80;

    server_name yourdomain.tld;

    return 301 https://$host$request_uri;

}

Setelah selesai, simpan dan keluar dari editor, lalu jalankan perintah berikut untuk mengaktifkan konfigurasi tersebut:

sudo ln -sf /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/n8n

Cek apakah konfigurasi NGINX Anda valid:

sudo nginx -t

Kalau tidak ada error, muat ulang layanan NGINX agar perubahan diterapkan:

sudo systemctl reload nginx

6. Akses instance n8n Anda

Sekarang, coba akses instance n8n Anda melalui domain atau hostname yang sudah Anda konfigurasikan. Apabila semuanya berjalan lancar, Anda akan diarahkan ke halaman pendaftaran akun pemilik n8n. Di sini, Anda bisa mendaftar akun menggunakan kredensial pilihan Anda.

Setelah itu, Anda akan masuk ke dashboard n8n untuk mulai membuat workflow automasi. Apabila membutuhkan inspirasi, simak artikel kami tentang contoh workflow n8n yang akan memandu Anda membuat workflow dengan mudah.

Kalau ingin workflow siap pakai, tersedia juga template n8n yang bisa langsung Anda terapkan untuk berbagai skenario.

Jangan lupa untuk mengeksplorasi berbagai integrasi n8n untuk melihat layanan apa saja yang bisa Anda hubungkan, tool yang tersedia, dan ide penggunaannya dalam workflow Anda.

7. Ubah environment variable n8n

Saat mengelola instance n8n, terkadang Anda mungkin perlu mengubah environment variable untuk mengatur koneksi database, mengaktifkan autentikasi, integrasi pihak ketiga, atau meningkatkan keamanan.

Untuk melakukannya, buka kembali file Docker Compose Anda:

sudo nano docker-compose.yml

Di bagian environment, Anda bisa menambahkan atau mengubah konfigurasi container n8n Anda sesuai kebutuhan. Berikut beberapa environment variable yang umum digunakan:

  • N8N_ENCRYPTION_KEY – mengenkripsi kredensial dalam database untuk keamanan tambahan.
- N8N_ENCRYPTION_KEY=yourStrongRandomString
  • N8N_HOST, N8N_PORT, N8N_PROTOCOL – memastikan n8n menghasilkan URL yang benar, terutama melalui reverse proxy atau saat menggunakan SSL.
- N8N_HOST=yourdomain.tld

- N8N_PORT=5678

- N8N_PROTOCOL=https
  • WEBHOOK_URL – mengatur URL publik untuk webhook, yang merupakan variabel penting kalau Anda menggunakan HTTPS atau domain khusus.
- WEBHOOK_URL=https://youdomain.tld
  • DB_TYPE, DB_POSTGRESDB – memungkinkan Anda menggunakan PostgreSQL sebagai pengganti SQLite default untuk performa dan skalabilitas yang lebih baik.
- DB_TYPE=postgresdb

- DB_POSTGRESDB_HOST=your_postgres_host

- DB_POSTGRESDB_PORT=5432

- DB_POSTGRESDB_DATABASE=your_database_name

- DB_POSTGRESDB_USER=your_db_user

- DB_POSTGRESDB_PASSWORD=your_db_password
  • TZ – mengatur zona waktu untuk n8n.
- TZ=UTC

Simpan file setelah Anda melakukan perubahan yang diperlukan.

Selanjutnya, jalankan perintah Docker berikut untuk menghentikan container n8n:

docker compose down

Jalankan kembali container dengan environment variable yang sudah diperbarui:

docker compose up -d

💡 Tips berguna

Apabila Anda hanya ingin memulai ulang container Docker n8n tanpa memodifikasi file Compose, gunakan perintah docker compose restart.

8. Update n8n ke versi terbaru

Untuk menjaga keamanan dan mendapatkan fitur-fitur terbaru, sebaiknya Anda rutin mengupdate n8n ke versi terbaru.

Untuk melakukan update, download image n8n terbaru dari Docker Hub:

docker pull n8nio/n8n

Setelah itu, mulai ulang container n8n menggunakan image yang baru saja didownload:

docker compose up -d

Tips efektif mengelola n8n dengan Docker

Berikut beberapa praktik terbaik yang bisa Anda terapkan saat menjalankan n8n di Docker, yang sebagiannya sudah dibahas di tutorial ini:

  • Gunakan volume Docker. Pasang direktori host seperti ./n8n_data:/home/node/.n8n untuk menyimpan workflow, kredensial, dan data eksekusi di luar container. Cara ini memastikan data Anda tetap aman meski container diperbarui, direstart, atau dibangun ulang.
  • Atur environment variable. Dalam file docker-compose.yml, simpan API key, secret webhook, kredensial database, dan data sensitif lainnya sebagai environment variable. Dengan begitu, informasi sensitif tidak langsung disimpan dalam workflow atau kode Anda, serta memudahkan rotasi kunci.
  • Amankan akses Anda. Selalu aktifkan autentikasi dasar (N8N_BASIC_AUTH_ACTIVE=true) dan gunakan username serta password yang kuat. Untuk komunikasi yang terenkripsi, jalankan n8n melalui reverse proxy seperti NGINX dengan SSL agar semua data, termasuk kredensial, tidak dikirim dalam bentuk teks biasa.
  • Lakukan backup rutin. Lakukan backup secara berkala pada folder host yang terhubung ke /home/node/.n8n, bukan dari dalam container. Anda bisa menjalankan perintah berikut:
docker cp n8n:/home/node/.n8n /path/to/backup/folder
  • Atur batasan resource. Di file docker-compose.yml, tetapkan batas penggunaan CPU dan RAM agar n8n tidak membebani VPS Anda. Contohnya:
deploy:
  resources:
    limits:
      cpus: '1'
      memory: 1G
  • Pantau log dan performa. Jalankan perintah docker compose logs n8n untuk meninjau log dan mengatasi masalah. Untuk pemantauan berkelanjutan, pertimbangkan untuk mengintegrasikannya dengan sistem seperti LGTM stack guna menerima peringatan apabila n8n sedang down atau mengalami masalah.

Kenapa harus menggunakan self-hosting untuk n8n dan Docker?

Menjalankan n8n dengan Docker membuat proses self-hosting menjadi jauh lebih mudah dan fleksibel. Docker menyediakan lingkungan yang portabel dan konsisten di berbagai sistem sehingga n8n bisa dijalankan di mana saja. Namun, agar workflow berjalan lancar, Anda membutuhkan VPS.

Berbeda dengan menjalankannya di komputer sendiri, VPS memungkinkan workflow Anda tetap aktif meskipun komputer Anda mati atau tidak terhubung ke internet. Anda juga bisa mengakses dan mengelola n8n dari mana pun, tanpa batasan jaringan lokal.

Oleh karena itu, kami menyarankan Anda menggunakan VPS Docker dari Hostinger untuk self-hosting aplikasi berbasis container seperti n8n. Docker dan semua dependensi penting sudah terinstal sejak awal sehingga Anda bisa langsung menjalankan n8n tanpa repot melakukan konfigurasi tambahan.

Kami juga memiliki pusat data di berbagai wilayah di seluruh dunia, jadi Anda bisa memilih server yang paling dekat dengan lokasi Anda untuk mengurangi latensi. Dengan jaminan uptime 99,9% dari Hostinger, workflow automasi Anda akan tetap online dan stabil sepanjang waktu.

Dengan biaya mulai dari Rp77900.00/bulan, Anda sudah mendapatkan paket VPS Docker dengan spesifikasi hingga 8 core vCPU, 32 GB RAM, dan 400 GB penyimpanan NVMe. Anda bisa menggunakan paket kecil dulu, lalu mengupgradenya dengan mudah seiring meningkatnya kebutuhan Anda.

Tentu saja, keamanan adalah prioritas utama kami. Paket VPS Docker dari Hostinger sudah dilengkapi dengan backup otomatis, perlindungan DDoS tingkat lanjut, dan malware scanner untuk menjaga data Anda tetap aman, menghalau serangan, dan mencegah gangguan terhadap instance n8n Anda.

Setelah menyiapkan n8n-Docker di VPS, apa selanjutnya?

Dengan menjalankan n8n secara self-hosted menggunakan Docker, Anda bisa mengontrol proses automasi workflow Anda secara lebih leluasa. Dengan cara ini, Anda bisa menjalankan n8n dan menyesuaikannya dengan kebutuhan Anda secara lebih aman.

Nah, setelah berhasil menjalankan n8n, berikut beberapa hal yang bisa Anda lakukan selanjutnya:

  • Eksplorasi ide automasi lainnya. Cari tahu tugas apa saja yang bisa diotomatiskan dengan n8n untuk mendapatkan inspirasi dan menyederhanakan berbagai tugas berulang.
  • Atur konfigurasi n8n Anda sesuai kebutuhan. Gunakan Docker Stack untuk menjalankan n8n di beberapa server sekaligus dan mengelola layanan secara efisien lewat cluster Swarm.
  • Tingkatkan keamanan server. Terapkan langkah-langkah untuk mengamankan VPS, seperti mengubah port SSH, menonaktifkan login root, dan menyiapkan firewall, untuk menjaga instance n8n Anda tetap aman.
  • Integrasikan n8n dengan MCP. Hubungkan workflow Anda dengan AI agent dan aktifkan automasi yang memahami konteks melalui integrasi dengan Model Context Protocol (MCP).

Apabila Anda masih memiliki pertanyaan tentang menjalankan atau mengelola n8n dengan Docker, jangan ragu untuk menyampaikannya lewat kolom komentar di bawah ini, ya. Semoga berhasil!

Semua konten tutorial di website ini telah melalui peninjauan menyeluruh sesuai standar dan komitmen editorial Hostinger.

Author
Penulis

Faradilla Ayunindya

Faradilla, yang lebih akrab disapa Ninda, sudah berpengalaman selama 10 tahun sebagai linguist dan 5 tahun sebagai Content Marketing Specialist di Hostinger. Ia suka mengikuti tren teknologi, digital marketing, dan belajar bahasa. Melalui tutorial Hostinger ini, Ninda ingin berbagi informasi dan membantu pembaca mengatasi masalah yang dialami. Kenali Ninda lebih dekat di LinkedIn.

Apa Kata Pelanggan Kami

Tinggalkan Komentar

Silakan isi kolom di bawah ini.Silakan tandai checkbox persetujuan.Silakan isi kolom yang tersedia dan beri centang pada checkbox privasi

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Thank you! Your comment has been successfully submitted. It will be approved within the next 24 hours.