Instalacija n8n AI Starter Kita s Ollamom
Self-hosted AI Starter Kit predložak je Docker Compose tima n8n za izradu AI tijekova rada koji se u potpunosti izvode na vašem vlastitom poslužitelju. Upiti (prompts) i dokumenti obrađuju se lokalnim jezičnim modelom i ne šalju se vanjskim AI uslugama.
Kit uključuje četiri komponente:
- n8n, platformu za automatizaciju tijekova rada s AI čvorovima;
- Ollama, koja lokalno pokreće otvorene jezične modele;
- Qdrant, vektorsku bazu podataka za pohranu i pretraživanje ugradnji (embeddings) dokumenata;
- PostgreSQL, bazu podataka za n8n.
Službeni kit njegovi su autori označili kao namijenjen testiranju. U vrijeme pisanja ovog teksta, kada se pokrene kako je opisano u njegovom README-u, ima nekoliko problema na poslužitelju s javnom IP adresom: n8n, Ollama i Qdrant otvoreni su prema internetu, Ollama i Qdrant nemaju provjeru autentičnosti, tajne u konfiguraciji iste su za svaku instalaciju, a demo tijek rada se ne uvozi. Ovaj vodič instalira kit kakav jest i ispravlja sve to pomoću odvojene datoteke za nadjačavanje (override), tako da i dalje možete ažurirati kit iz njegovog repozitorija.
Ovaj vodič napisan je za Ubuntu 24.04 LTS, n8n 2.47.3, Ollama 0.40.16, Qdrant 1.20.0, Docker 29 i Docker Compose v5.
Prije početka
Trebat će vam:
- poslužitelj s operacijskim sustavom Ubuntu 24.04 LTS s root pristupom putem SSH-a;
- najmanje 15 GB slobodnog prostora na disku: Docker slike zauzimaju oko 11 GB, a zadani model Llama 3.2 oko 2 GB;
- domena ili poddomena za n8n, na primjer
n8n.example.com, s A zapisom koji pokazuje na IPv4 adresu poslužitelja.
Bez GPU-a, model se izvodi na procesoru (CPU) i sporo odgovara. Za redovitu upotrebu odaberite poslužitelj s NVIDIA GPU-om.
Sve naredbe u nastavku pokreću se kao root. Ako radite kao običan korisnik s sudo pravima, dodajte sudo ispred svake naredbe.
Instalirajte Docker
Instalirajte Docker Engine i Compose dodatak iz službenog Docker repozitorija:
apt update && apt install -y ca-certificates curl git install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc chmod a+r /etc/apt/keyrings/docker.asc
Dodajte repozitorij:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo $VERSION_CODENAME) stable" > /etc/apt/sources.list.d/docker.list
Instalirajte pakete i provjerite verzije:
apt update apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker --version docker compose version
Preuzmite kit
Klonirajte repozitorij u /opt i stvorite konfiguracijsku datoteku iz primjera:
cd /opt git clone https://github.com/n8n-io/self-hosted-ai-starter-kit.git cd self-hosted-ai-starter-kit cp .env.example .env
Zamijenite zadane tajne
Primjer datoteke sadrži fiksne vrijednosti, poput password za PostgreSQL i super-secret-key za ključ za šifriranje n8n. One su iste u svakoj kopiji kita, pa ih zamijenite nasumičnima:
sed -i "s/^POSTGRES_PASSWORD=.*/POSTGRES_PASSWORD=$(openssl rand -hex 24)/" .env sed -i "s/^N8N_ENCRYPTION_KEY=.*/N8N_ENCRYPTION_KEY=$(openssl rand -hex 32)/" .env sed -i "s/^N8N_USER_MANAGEMENT_JWT_SECRET=.*/N8N_USER_MANAGEMENT_JWT_SECRET=$(openssl rand -hex 32)/" .env chmod 600 .env
N8N_ENCRYPTION_KEY šifrira vjerodajnice koje spremate u n8n. N8N_USER_MANAGEMENT_JWT_SECRET potpisuje korisničke sesije.
Kopirajte datoteku .env na sigurno mjesto izvan poslužitelja, na primjer u upravitelj lozinki. Bez N8N_ENCRYPTION_KEY, vjerodajnice spremljene u n8n ne mogu se dešifrirati nakon vraćanja.
Zatvorite priključke i dodajte HTTPS
U datoteci docker-compose.yml kita, n8n (priključak 5678), Ollama (11434) i Qdrant (6333) objavljeni su na svim mrežnim sučeljima. Docker dodaje svoja vlastita pravila vatrozida za objavljene priključke, a ona zaobilaze UFW. Na poslužitelju s javnom IP adresom to znači da svatko može otvoriti n8n uređivač putem običnog HTTP-a i koristiti API-je Ollama i Qdrant, koji nemaju provjeru autentičnosti.
Umjesto uređivanja docker-compose.yml, stvorite docker-compose.override.yml pokraj njega. Docker Compose automatski čita ovu datoteku i primjenjuje je preko glavne. Vlastite datoteke kita ostaju nepromijenjene, pa njihovo ažuriranje iz repozitorija neće prepisati vaše postavke.
Stvorite /opt/self-hosted-ai-starter-kit/docker-compose.override.yml i zamijenite n8n.example.com svojom domenom:
services: n8n: ports: !override - "127.0.0.1:5678:5678" environment: - N8N_HOST=n8n.example.com - N8N_PROTOCOL=https - N8N_PROXY_HOPS=1 - N8N_WEBHOOK_URL=https://n8n.example.com/ ollama-cpu: ports: !reset [] ollama-gpu: ports: !reset [] qdrant: ports: !reset [] caddy: image: caddy:2 restart: unless-stopped networks: ['demo'] ports: - "80:80" - "443:443" volumes: - ./Caddyfile:/etc/caddy/Caddyfile:ro - caddy_data:/data - caddy_config:/config volumes: caddy_data: caddy_config:
Evo što ova datoteka mijenja:
- n8n sluša samo na
127.0.0.1, a korisnici mu pristupaju putem Caddyja preko HTTPS-a; - Ollama i Qdrant uopće nisu objavljeni, n8n im pristupa putem interne Docker mreže pod nazivima
ollamaiqdrant; - Caddy je dodan kao obrnuti proxy (reverse proxy) koji dobiva i obnavlja Let's Encrypt certifikat, sve dok domena pokazuje na poslužitelj i dok su priključci 80 i 443 otvoreni;
- volumeni podataka za n8n, PostgreSQL, Qdrant i Ollama ostaju kako su definirani u datoteci
docker-compose.ymlkita, override ih ne mijenja.
Redak networks: ['demo'] je obavezan. Sve usluge kita izvode se u mreži pod nazivom demo, a bez ovog retka Caddy ne može doći do n8n i vraća pogrešku 502.
N8N_WEBHOOK_URL postavlja adresu koju n8n koristi za webhooke, uključujući prozor za chat u uređivaču. Domena se mora razriješiti na vaš poslužitelj s računala na kojem otvarate n8n. Ako se ne razriješiti, chat prikazuje samo poruku "Failed to receive response", ne navodeći DNS kao uzrok.
Stvorite /opt/self-hosted-ai-starter-kit/Caddyfile sa svojom domenom:
n8n.example.com { reverse_proxy n8n:5678 }
Provjerite spojeni konfiguraciju:
docker compose --profile cpu config | grep -A4 "ports:"
Treba biti naveden samo n8n na 127.0.0.1:5678 i Caddy na priključcima 80 i 443.
Konfigurirajte vatrozid
Datoteka override već drži interne usluge kita podalje od mreže. UFW blokira sav drugi dolazni promet na poslužitelj, osim SSH, HTTP i HTTPS. Dopustite ih i omogućite UFW:
ufw allow OpenSSH ufw allow 80/tcp ufw allow 443/tcp ufw --force enable
Pokrenite kit
Pokrenite stack u CPU načinu rada:
docker compose --profile cpu up -d
Prilikom prvog pokretanja, Docker preuzima oko 11 GB slika, a zasebni spremnik preuzima model Llama 3.2. To traje neko vrijeme, ovisno o brzini veze. Provjerite je li model na mjestu:
docker exec ollama ollama list
Popis bi trebao uključivati llama3.2:latest.
Provjerite jesu li na poslužitelju otvoreni samo očekivani priključci:
ss -tlnp
Priključci 80 i 443 trebaju biti otvoreni na svim sučeljima, priključak 5678 samo na 127.0.0.1. Priključci 11434 i 6333 ne bi trebali biti na popisu.
Kit koristi PostgreSQL 16. n8n zapisnik može pokazati upozorenje da je ova verzija izvan podržanog raspona. Ovo upozorenje ne utječe na rad n8n-a.
Uvezite demo tijek rada
Kit uključuje demo tijek rada i dvije demo vjerodajnice. Trebale bi se uvesti pri prvom pokretanju, ali u vrijeme pisanja ovog teksta provjera uvoza u datoteci docker-compose.yml kita nikada ne prolazi, pa se ništa ne uvozi. Pokrenite uvoz ručno:
docker compose --profile cpu run --rm n8n-import -c "n8n import:credentials --separate --input=/demo-data/credentials" docker compose --profile cpu run --rm n8n-import -c "n8n import:workflow --separate --input=/demo-data/workflows"
Opcija -c je obavezna: usluga n8n-import pokreće ljusku, a bez -c naredba ne uspijeva s pogreškom "can't open 'n8n'".
Stvorite vlasnički račun
Otvorite https://n8n.example.com u svom pregledniku i stvorite vlasnički račun: unesite svoju e-poštu, ime i prezime te lozinku od najmanje 8 znakova s najmanje jednim brojem i jednim velikim slovom. Nakon prve prijave, n8n može prikazati kratku anketu i ponudu besplatnog licencnog ključa za neke značajke Community Edition. Oboje je opcionalno.
Stranica pregleda navodi uvezeni Demo workflow.

Popravite demo vjerodajnice
Demo vjerodajnice šifrirane su zadanim ključem iz .env.example. Nakon što zamijenite N8N_ENCRYPTION_KEY, n8n ih ne može dešifrirati, pa obje treba ponovno ispuniti. Postavke se spremaju šifrirane vašim vlastitim ključem.
Otvorite Overview, idite na karticu Credentials i otvorite Local Ollama service. Veza ne uspijeva, a polje Base URL prikazuje http://localhost:11434. Unutar n8n spremnika, localhost je sam n8n, a ne Ollama.

Postavite Base URL na http://ollama:11434, ostavite API Key praznim i kliknite Save. n8n testira vezu i prikazuje Connection tested successfully.

Otvorite Local QdrantApi database. Postavite Qdrant URL na http://qdrant:6333, ostavite API Key praznim i kliknite Save.

Testirajte demo tijek rada
Otvorite Demo workflow. Sadrži tri čvora: Chat Trigger prima poruku, Basic LLM Chain prosljeđuje je modelu, a Ollama Chat Model šalje je Llama 3.2 u Ollami.

Kliknite Open chat na dnu platna i pošaljite kratko pitanje. Čvorovi postaju zeleni dok se tijek rada izvodi, a odgovor modela pojavljuje se u chatu. Prvi odgovor traje duže jer Ollama učitava model u memoriju.

Ako chat prikazuje "Failed to receive response" i tijek rada se ne pokreće, provjerite razrješava li se domena u N8N_WEBHOOK_URL na vaš poslužitelj s vašeg računala.
Koristite NVIDIA GPU
Ako poslužitelj ima NVIDIA GPU, kit može pokrenuti Ollamu na njemu. Docker za to treba NVIDIA Container Toolkit. Ako prethodno niste koristili GPU s Dockerom na ovom poslužitelju, prvo ga instalirajte slijedeći Docker upute za Ollamu.
Zatim pokrenite kit s profilom gpu-nvidia umjesto cpu:
docker compose --profile gpu-nvidia up -d
Gornja datoteka override već zatvara Ollama priključak za ovaj profil. Koristite isti profil u svim ostalim naredbama. Na primjer, demo uvoz s GPU profilom:
docker compose --profile gpu-nvidia run --rm n8n-import -c "n8n import:credentials --separate --input=/demo-data/credentials" docker compose --profile gpu-nvidia run --rm n8n-import -c "n8n import:workflow --separate --input=/demo-data/workflows"
I ažuriranje:
cd /opt/self-hosted-ai-starter-kit git pull docker compose --profile gpu-nvidia pull docker compose --profile gpu-nvidia up -d
Ažurirajte kit
Za ažuriranje datoteka i slika kita, pokrenite naredbe s profilom koji koristite:
cd /opt/self-hosted-ai-starter-kit git pull docker compose --profile cpu pull docker compose --profile cpu up -d
Vaši docker-compose.override.yml, Caddyfile i .env nisu dio repozitorija, pa ih git pull ne mijenja.
Što dalje
Kit je spreman za vaše vlastite AI tijekove rada. Odavde možete:
- Preuzeti druge modele s
docker exec ollama ollama pullnakon čega slijedi naziv modela, i odabrati ih u čvoru Ollama Chat Model; - Koristiti Qdrant za pretraživanje vlastitih dokumenata pomoću čvorova vektorske baze podataka u n8n;
- Povezati svoje usluge i izgraditi tijekove rada koji ih kombiniraju s lokalnim modelom.
Za opću instalaciju n8n bez AI komponenti, pogledajte vodič Instalacija n8n-a uz Docker i PostgreSQL. On također objašnjava kako sigurnosno kopirati i vratiti bazu podataka n8n.