← Kembali ke Blog

Self-Host n8n dan Bikin AI Agent Pertama dalam 20 Menit

Kamu punya API key LLM dan daftar hal yang mau diautomasi. Celah di antara keduanya adalah tooling: nyambungin model ke database, channel Slack, atau API internal kamu, lengkap dengan retry, logging, dan cara lihat apa yang sebenernya dikerjain model. Glue LangChain tulisan tangan jalan terus, sampai kamu harus maintain lima automasi sekaligus. Platform managed nagih per task dan duduk di antara kamu dan data kamu. n8n ada di tengah: platform workflow automation yang bisa di-self-host, dengan node AI agent bawaan.

n8n udah ada sejak 2019 dan termasuk project automation paling banyak di-star di GitHub, sekitar 200 ribu star. Lisensinya Sustainable Use License, yang digambarkan project-nya sebagai fair-code: source-nya publik dan self-hosting gratis, tapi ini bukan lisensi open source versi OSI. Lebih enak tahu ini sebelum bangun sesuatu di atasnya.

Di akhir tutorial ini kamu bakal punya agent yang jawab pertanyaan dengan manggil API beneran, mutusin sendiri kapan manggilnya, dan inget isi percakapan. Semuanya jalan di mesin kamu. Nggak ada akun cloud, nggak ada billing per task.

Prerequisites

  • Docker Engine 24+ (cek dengan docker version)
  • RAM kosong sekitar 2 GB
  • API key OpenAI, Anthropic, atau provider lain yang didukung n8n. Pake Ollama? Nggak perlu key sama sekali.
  • 20 menit

Langkah 1: Install n8n dengan Docker

Quickstart resminya satu volume plus satu docker run:

docker volume create n8n_data

docker run -it --rm \
  --name n8n \
  -p 5678:5678 \
  -e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \
  -e N8N_RUNNERS_ENABLED=true \
  -v n8n_data:/home/node/.n8n \
  docker.n8n.io/n8nio/n8n

Buka http://localhost:5678 dan bikin akun owner. Workflow, credential, dan riwayat eksekusi disimpen di volume n8n_data, yang di-map ke /home/node/.n8n di dalam container.

Dua flag di command itu ada di dokumentasi resmi dan enak dipertahankan. N8N_RUNNERS_ENABLED=true mindahin eksekusi kode ke proses task runner terpisah. N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true ngunci permission file settings n8n. Dua-duanya default yang aman.

Update-nya membosankan, dan itu bagus:

docker compose pull
docker compose down
docker compose up -d

Dokumentasinya nganggap kamu punya docker-compose.yml. Kalau mau mulai dari compose, repo resmi n8n-hosting punya file siap pakai, termasuk varian yang nge-pasangin n8n bareng Postgres. SQLite cukup buat pemakaian satu orang. Postgres baru kerasa gunanya kalau satu instance dipake satu tim.

Langkah 2: Bikin credential

Sidebar kiri, Credentials, Add credential. Pilih provider model dan tempel API key. n8n punya node chat model buat OpenAI, Anthropic, Google Gemini, Groq, DeepSeek, Mistral, OpenRouter, xAI Grok, dan AWS Bedrock, plus node Ollama kalau mau semuanya jalan di hardware sendiri.

Langkah 3: Bikin agent yang manggil API

Tiga node: Manual Trigger, lalu node AI Agent yang ditempelin Anthropic Chat Model dan HTTP Request tool.

Node AI Agent adalah tempat loop-nya jalan. Dokumentasinya bilang singkat: sambungin satu chat model dan satu atau lebih tools, dan agent yang mutusin tool mana yang dipanggil buat nyelesaiin tugas. Kamu nggak nulis loop itu. Node-nya manggil model, ngecek apakah model minta tool, ngejalanin tool, dan ngasih hasilnya balik, berulang sampai model kasih jawaban final. Node-nya juga nolak jalan kalau nggak ada tool yang kehubung, dan itu dorongan yang bagus.

Set HTTP Request tool ke GET https://api.github.com/repos/n8n-io/n8n. Repo publik GitHub nggak butuh token, jadi ini tes termurah yang ada: agent bisa ngecek stars, forks, open issues, dan aktivitas terakhir repo mana pun.

Kasih deskripsi tool yang jelasin fungsi dan bentuk datanya, contohnya: "Fetches public metadata for a GitHub repository, including stargazers_count, forks_count, and open_issues_count." Model baca deskripsi itu pas mutusin mau manggil tool atau nggak. Ini teks paling penting di seluruh workflow.

Ada satu opsi khusus tool yang worth dinyalain: Optimize Response, terus JSON, terus Include fields dengan isi stargazers_count, description, forks_count, open_issues_count, pushed_at. API GitHub ngembaliin dokumen JSON yang gede. Nyaring dulu sebelum balik ke model ngurangin token di tiap panggilan, artinya ngurangin biaya, dan bikin model nggak keganggu field yang nggak perlu.

Jalankan workflow-nya dan tanya sesuatu kayak "How many stars does n8n have?" Perhatiin run-nya: agent manggil API, dapet JSON yang udah disaring, dan jawab dengan angka beneran. Terus tanya follow-up yang nggak bisa dijawab tool, kayak "What does the repo description say?" Pertanyaan beda, alur yang sama.

Catatan versi: kalau kamu buka template lama yang nyebut agent type kayak ReAct atau Plan and Execute, opsi itu udah dihapus sejak versi 1.82.0. Semua node AI Agent sekarang kerja sebagai Tools Agent.

Langkah 4: Kasih memory ke agent

Default-nya agent itu stateless. Tiap run mulai dari percakapan kosong. Buat agent gaya chat, tambah sub-node Simple Memory biar model tetep pegang pesan terakhir di konteks. Kalau riwayat percakapan harus bertahan dari restart, n8n punya node chat memory buat Postgres, Redis, dan MongoDB.

Langkah 5: Lewat dari demo

Pola yang sama bisa diarahkan ke beberapa arah.

Ganti Manual Trigger dengan Webhook trigger dan tambah node Respond to Webhook, dan agent berubah jadi HTTP endpoint yang bisa dipanggil dari mana aja. Ini cara kebanyakan orang naro agent di depan user beneran.

Call n8n Workflow Tool ngasih agent kemampuan ngejalanin workflow lain dan pake output-nya. Ini cara yang rapi buat bikin batas permission: sub-workflow yang ngecek auth, validasi input, atau nulis ke sistem, sementara agent cuma lihat hasilnya.

MCP Client Tool nyambungin agent ke server MCP mana pun, jadi tooling yang udah kamu punya dari project agent lain bisa dipake ulang.

Buat retrieval, ada node vector store buat PGVector, Chroma, Qdrant, Pinecone, dan lainnya, jadi setup RAG di dalam n8n nggak perlu keluar platform.

Kapan pakai vs alternatif

  • n8n vs Zapier/Make: n8n self-hosted, jadi data dan riwayat eksekusi tetep di infrastruktur yang kamu pegang, dan harganya tagihan server kamu, bukan fee per task. Zapier dan Make menang di jumlah integrasi aplikasi konsumen dan hosting yang nol maintenance.
  • n8n vs nulis kode LangChain: kode ngasih kontrol penuh, unit test, dan nggak ada beban UI. n8n ngasih kanvas visual, retry bawaan, log per run, dan cara yang lebih murah buat nyerahin automasi ke orang non-engineer. Aturan main saya: kalau bentuknya pipeline dengan cabang, pake n8n. Kalau algoritma dengan alur kontrol yang nggak biasa, tulis kodenya.
  • n8n vs Dify/Flowise: Dify itu platform aplikasi LLM, paling kuat kalau produknya chatbot RAG. Flowise itu builder agent. n8n itu platform automasi umum, di mana AI cuma salah satu tipe node dari 400+ integrasi. Kalau agent kamu juga harus ngirim invoice dan sinkron data CRM, n8n menang karena jadi tool yang sama buat dua-duanya.

Verdict

Trade-off-nya simpel. Kamu nuker sedikit kontrol dan lisensi yang bukan open source dengan jalur tercepat menuju agent yang kerja beneran, plus observability gratis. Buat internal tools, prototyping, dan automasi yang nyentuh banyak sistem, pertukaran ini biasanya worth it. Kalau kamu butuh stack yang sepenuhnya open source atau alur kontrol yang nggak biasa, tulis kodenya.

Langkah berikutnya

  • Taruh workflow di belakang Webhook trigger dan panggil dari script tes.
  • Ganti tool GitHub dengan API kamu sendiri dan tulis deskripsi yang cocok sama data kamu.
  • Baca halaman docs AI Agent buat belajar soal common issues dan opsi vector store.

Referensi

Butuh Bantuan Implementasi?

Saya membantu tim mendesain dan membangun infrastruktur cloud scalable, pipeline DevOps, dan sistem production-grade.

Konsultasi Gratis