EUR
european

EUR

usa

USD

Ex. VAT Ex. VAT 0%

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.

Info

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.

Warning

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 ollama i qdrant;
  • 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.yml kita, override ih ne mijenja.

Info

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.

Info

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 pull nakon č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.

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • kingdom
  • germany
  • Español
  • French
  • Hrvatska
  • Italiano
  • Poland
  • Slovenski
  • ukraine
  • Türkçe
  • Русский
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA