EUR
european

EUR

usa

USD

Ex. VAT Ex. VAT 0%

Namestitev n8n AI Starter Kit z Ollama

Predloga Docker Compose Self-hosted AI Starter Kit ekipe n8n služi za izdelavo potekov dela AI, ki se izvajajo izključno na vašem lastnem strežniku. Pozivi (prompts) in dokumenti se obdelujejo z lokalnim jezikovnim modelom in se ne pošiljajo zunanjim storitvam AI.

Komplet vključuje štiri komponente:

  • n8n, platformo za avtomatizacijo potekov dela z vozlišči AI;
  • Ollama, ki lokalno izvaja odprte jezikovne modele;
  • Qdrant, vektorsko bazo podatkov za shranjevanje in iskanje vdelav (embeddings) dokumentov;
  • PostgreSQL, bazo podatkov za n8n.

Uradni komplet so njegovi avtorji označili kot namenjenega testiranju. V času pisanja tega besedila ima ob zagonu, kot je opisano v datoteki README, na strežniku z javnim naslovom IP več težav: n8n, Ollama in Qdrant so odprti v internet, Ollama in Qdrant nimata preverjanja pristnosti, skrivnosti v konfiguraciji so enake za vsako namestitev, demonstracijski potek dela pa se ne uvozi. Ta vodnik namesti komplet nespremenjen in vse to popravi z ločeno datoteko za preglasitev (override), tako da lahko komplet še vedno posodabljate iz njegovega repozitorija.

Ta vodnik je napisan za Ubuntu 24.04 LTS, n8n 2.47.3, Ollama 0.40.16, Qdrant 1.20.0, Docker 29 in Docker Compose v5.

Preden začnete

Potrebovali boste:

  • strežnik z operacijskim sistemom Ubuntu 24.04 LTS s korenskim (root) dostopom prek SSH;
  • vsaj 15 GB prostega prostora na disku: slike Docker zavzamejo približno 11 GB, privzeti model Llama 3.2 pa približno 2 GB;
  • domeno ali poddomeno za n8n, na primer n8n.example.com, z zapisom A, ki kaže na naslov IPv4 strežnika.

Info

Brez GPU-ja se model izvaja na procesorju (CPU) in odgovarja počasi. Za redno uporabo izberite strežnik z grafično kartico NVIDIA.

Vsi spodnji ukazi se izvajajo kot root. Če delate kot navaden uporabnik s pravicami sudo, pred vsak ukaz dodajte sudo.

Namestite Docker

Namestite Docker Engine in vtičnik Compose iz uradnega repozitorija Docker:

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

Namestite pakete in preverite različice:

apt update apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker --version docker compose version

Prenesite komplet

Klonirajte repozitorij v /opt in ustvarite konfiguracijsko datoteko iz primera:

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

Zamenjajte privzete skrivnosti

Primer datoteke vsebuje fiksne vrednosti, kot sta password za PostgreSQL in super-secret-key za šifrirni ključ n8n. Enake so v vsaki kopiji kompleta, zato jih zamenjajte z naključnimi:

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 poverilnice, ki jih shranite v n8n. N8N_USER_MANAGEMENT_JWT_SECRET podpisuje uporabniške seje.

Warning

Datoteko .env kopirajte na varno mesto zunaj strežnika, na primer v upravitelja gesel. Brez N8N_ENCRYPTION_KEY poverilnic, shranjenih v n8n, po obnovitvi ni mogoče dešifrirati.

Zaprite vrata in dodajte HTTPS

V datoteki docker-compose.yml kompleta so n8n (vrata 5678), Ollama (11434) in Qdrant (6333) objavljeni na vseh omrežnih vmesnikih. Docker doda lastna pravila požarnega zidu za objavljena vrata, ki obidejo UFW. Na strežniku z javnim naslovom IP to pomeni, da lahko kdor koli odpre urejevalnik n8n prek navadnega HTTP in uporablja API-je Ollama in Qdrant, ki nimajo preverjanja pristnosti.

Namesto urejanja docker-compose.yml ustvarite datoteko docker-compose.override.yml poleg nje. Docker Compose to datoteko prebere samodejno in jo uporabi povrhu glavne. Lastne datoteke kompleta ostanejo nespremenjene, zato njihova posodobitev iz repozitorija ne bo prepisala vaših nastavitev.

Ustvarite /opt/self-hosted-ai-starter-kit/docker-compose.override.yml in zamenjajte n8n.example.com z vašo domeno:

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:

Tukaj je, kaj ta datoteka spremeni:

  • n8n posluša samo na 127.0.0.1, uporabniki pa do njega dostopajo prek Caddyja prek HTTPS;
  • Ollama in Qdrant sploh nista objavljena, n8n do njiju dostopa prek notranjega omrežja Docker z imenoma ollama in qdrant;
  • Caddy je dodan kot obratni proxy (reverse proxy), ki pridobi in obnovi certifikat Let's Encrypt, vse dokler domena kaže na strežnik in sta vrata 80 in 443 odprti;
  • volumeni podatkov za n8n, PostgreSQL, Qdrant in Ollama ostanejo takšni, kot so opredeljeni v datoteki docker-compose.yml kompleta, preglasitev jih ne spremeni.

Info

Vrstica networks: ['demo'] je obvezna. Vse storitve kompleta se izvajajo v omrežju z imenom demo, in brez te vrstice Caddy ne more doseči n8n in vrne napako 502.

N8N_WEBHOOK_URL nastavi naslov, ki ga n8n uporablja za webhooke, vključno z oknom za klepet v urejevalniku. Domena se mora razrešiti na vaš strežnik iz računalnika, na katerem odprete n8n. Če se ne, klepet prikaže samo sporočilo "Failed to receive response", ne da bi kot vzrok navedel DNS.

Ustvarite /opt/self-hosted-ai-starter-kit/Caddyfile z vašo domeno:

n8n.example.com { reverse_proxy n8n:5678 }

Preverite združeno konfiguracijo:

docker compose --profile cpu config | grep -A4 "ports:"

Navedeni bi morali biti samo n8n na 127.0.0.1:5678 in Caddy na vratih 80 in 443.

Konfigurirajte požarni zid

Datoteka override že ohranja notranje storitve kompleta stran od omrežja. UFW blokira ves drug dohodni promet na strežnik, razen SSH, HTTP in HTTPS. Dovolite jih in omogočite UFW:

ufw allow OpenSSH ufw allow 80/tcp ufw allow 443/tcp ufw --force enable

Zaženite komplet

Zaženite sklad v načinu CPU:

docker compose --profile cpu up -d

Ob prvem zagonu Docker prenese približno 11 GB slik, ločen zabojnik (container) pa prenese model Llama 3.2. To traja nekaj časa, odvisno od hitrosti povezave. Preverite, ali je model na mestu:

docker exec ollama ollama list

Seznam bi moral vključevati llama3.2:latest.

Preverite, ali so na strežniku odprta samo pričakovana vrata:

ss -tlnp

Vrata 80 in 443 bi morala biti odprta na vseh vmesnikih, vrata 5678 samo na 127.0.0.1. Vrat 11434 in 6333 ne bi smelo biti na seznamu.

Info

Komplet uporablja PostgreSQL 16. Dnevnik n8n lahko prikaže opozorilo, da je ta različica zunaj podprtega območja. To opozorilo ne vpliva na delovanje n8n.

Uvozite demonstracijski potek dela

Komplet vključuje demonstracijski potek dela in dve demonstracijski poverilnici. Uvoziti bi ju morali ob prvem zagonu, vendar v času pisanja tega besedila preverjanje uvoza v datoteki docker-compose.yml kompleta nikoli ne uspe, zato se nič ne uvozi. Zaženite uvoz roč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"

Možnost -c je obvezna: storitev n8n-import zažene lupino in brez -c ukaz spodleti z napako "can't open 'n8n'".

Ustvarite račun lastnika

V brskalniku odprite https://n8n.example.com in ustvarite račun lastnika: vnesite svoj e-poštni naslov, ime in priimek ter geslo z vsaj 8 znaki, vključno z vsaj eno številko in eno veliko črko. Po prvi prijavi lahko n8n prikaže kratko anketo in ponudbo brezplačnega licenčnega ključa za nekatere funkcije Community Edition. Oboje je izbirno.

Pregledna stran navaja uvožen Demo workflow.

Popravite demonstracijske poverilnice

Demonstracijske poverilnice so bile šifrirane s privzetim ključem iz .env.example. Ko zamenjate N8N_ENCRYPTION_KEY, jih n8n ne more dešifrirati, zato je treba oba znova izpolniti. Nastavitve so shranjene šifrirane z vašim lastnim ključem.

Odprite Overview, pojdite na zavihek Credentials in odprite Local Ollama service. Povezava ne uspe, polje Base URL pa prikaže http://localhost:11434. Znotraj zabojnika n8n je localhost sam n8n, ne Ollama.

Nastavite Base URL na http://ollama:11434, pustite API Key prazno in kliknite Save. n8n preizkusi povezavo in prikaže Connection tested successfully.

Odprite Local QdrantApi database. Nastavite Qdrant URL na http://qdrant:6333, pustite API Key prazno in kliknite Save.

Preizkusite demonstracijski potek dela

Odprite Demo workflow. Vsebuje tri vozlišča: Chat Trigger prejme sporočilo, Basic LLM Chain ga posreduje modelu, Ollama Chat Model pa ga pošlje Llama 3.2 v Ollami.

Kliknite Open chat na dnu platna in pošljite kratko vprašanje. Vozlišča se med izvajanjem poteka dela obarvajo zeleno, odgovor modela pa se prikaže v klepetu. Prvi odgovor traja dlje, ker Ollama naloži model v pomnilnik.

Če klepet prikaže "Failed to receive response" in se potek dela ne zažene, preverite, ali se domena v N8N_WEBHOOK_URL razreši na vaš strežnik iz vašega računalnika.

Uporabite grafično kartico NVIDIA GPU

Če ima strežnik grafično kartico NVIDIA GPU, lahko komplet na njej zažene Ollamo. Docker za to potrebuje NVIDIA Container Toolkit. Če GPU-ja s Dockerjem na tem strežniku še niste uporabljali, ga najprej namestite po navodilih Docker za Ollamo.

Nato zaženite komplet s profilom gpu-nvidia namesto cpu:

docker compose --profile gpu-nvidia up -d

Zgornja datoteka override za ta profil že zapre vrata Ollame. Uporabite isti profil v vseh drugih ukazih. Na primer, uvoz demo različice s profilom GPU:

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"

In posodobitev:

cd /opt/self-hosted-ai-starter-kit git pull docker compose --profile gpu-nvidia pull docker compose --profile gpu-nvidia up -d

Posodobite komplet

Če želite posodobiti datoteke in slike kompleta, zaženite ukaze z uporabljenim profilom:

cd /opt/self-hosted-ai-starter-kit git pull docker compose --profile cpu pull docker compose --profile cpu up -d

Vaša docker-compose.override.yml, Caddyfile in .env niso del repozitorija, zato jih git pull ne spremeni.

Kaj sledi

Komplet je pripravljen za vaše lastne poteke dela AI. Od tu lahko:

  • Prenesete druge modele z docker exec ollama ollama pull, ki mu sledi ime modela, in jih izberete v vozlišču Ollama Chat Model;
  • Uporabite Qdrant za iskanje po lastnih dokumentih z vozlišči vektorske baze podatkov v n8n;
  • Povežete svoje storitve in zgradite poteke dela, ki jih kombinirajo z lokalnim modelom.

Za splošno namestitev n8n brez komponent AI glejte vodnik Namestitev n8n z Dockerjem in PostgreSQL. Razlaga tudi, kako varnostno kopirati in obnoviti bazo podatkov 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