Šta vam treba
| Šta | Preporuka |
|---|---|
| Server | VPS sa najmanje 2 GB RAM-a; kod nas CLOUD 2 (4 GB, 1.790 RSD mesečno) |
| Operativni sistem | Ubuntu 24.04 (komande u vodiču su za njega) |
| Domen | Poddomen kao n8n.vasdomen.rs, sa A zapisom ka IP adresi servera |
| Softver | Docker Engine sa Compose dodatkom |
| Znanje | Osnovni rad u terminalu preko SSH-a |
Korak 1–3: VPS, DNS i Docker
- Poručite VPS sa Ubuntu 24.04. Za jednog korisnika i nekoliko desetina workflow-a dovoljan je CLOUD 2 (2 vCPU, 4 GB RAM, 1.790 RSD mesečno). Pri porudžbini izaberite Ubuntu 24.04 i sačuvajte IP adresu i root lozinku.
- Usmerite poddomen na server. Kod registra ili u DNS zoni domena dodajte A zapis, na primer n8n.vasdomen.rs, sa IP adresom VPS-a. Caddy će kasnije za taj poddomen sam izdati SSL sertifikat.
- Instalirajte Docker i uključite firewall. Instalirajte Docker Engine sa Compose dodatkom iz zvaničnog Docker repozitorijuma, pa u firewall-u otvorite samo portove 22, 80 i 443.
Prijavite se na server (ssh root@IP-adresa) i proverite da poddomen pokazuje na njega:
dig +short n8n.vasdomen.rs
# treba da ispiše IP adresu vašeg VPS-aDocker instalirajte iz zvaničnog repozitorijuma (detaljno u vodiču kako instalirati Docker na VPS), pa uključite firewall:
apt-get update && apt-get install -y ca-certificates curl
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
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
apt-get update && apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
ufw allow 22/tcp && ufw allow 80/tcp && ufw allow 443/tcp && ufw enableKorak 4–5: .env, docker-compose.yml i Caddyfile
mkdir -p /opt/n8n && cd /opt/n8n
echo "N8N_DOMAIN=n8n.vasdomen.rs" > .env
echo "N8N_ENCRYPTION_KEY=$(openssl rand -hex 32)" >> .env
chmod 600 .env
cat .env # ključ prepišite u menadžer lozinkiservices:
n8n:
image: docker.n8n.io/n8nio/n8n:latest
restart: unless-stopped
environment:
- N8N_HOST=${N8N_DOMAIN}
- N8N_PORT=5678
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://${N8N_DOMAIN}/
- N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY}
- N8N_PROXY_HOPS=1
- GENERIC_TIMEZONE=Europe/Belgrade
- TZ=Europe/Belgrade
volumes:
- n8n_data:/home/node/.n8n
caddy:
image: caddy:2
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- caddy_data:/data
- caddy_config:/config
volumes:
n8n_data:
caddy_data:
caddy_config:n8n.vasdomen.rs {
reverse_proxy n8n:5678
}Korak 6: pokretanje i prvi nalog
cd /opt/n8n
docker compose up -d
docker compose ps # oba servisa treba da imaju status "Up"
docker compose logs -f n8nOtvorite https://n8n.vasdomen.rs. Prvi ekran traži da napravite vlasnički nalog: unesite email i jaku lozinku. Taj nalog upravlja svim ostalima, pa mu odmah uključite dvofaktorsku prijavu u podešavanjima profila.
Korak 7: backup i ažuriranje
Izvoz workflow-a i pristupnih podataka u folder na serveru, pa kopija van servera:
cd /opt/n8n
docker compose exec n8n n8n export:workflow --backup --output=/home/node/.n8n/backup/workflows/
docker compose exec n8n n8n export:credentials --backup --output=/home/node/.n8n/backup/credentials/
docker compose cp n8n:/home/node/.n8n/backup ./backup-$(date +%F)Folder backup-DATUM kopirajte van servera (na primer rsync ka backup prostoru ili na svoj računar). Izvezeni pristupni podaci su šifrovani ključem iz .env; bez ključa se ne mogu vratiti. Komande možete staviti u cron, jednom dnevno.
cd /opt/n8n
docker compose pull
docker compose up -d
docker image prune -fPre većeg skoka verzije pročitajte napomene o izdanju na docs.n8n.io i napravite backup.
Tri primera iz prakse
- Porudžbina iz WooCommerce-a u Google Sheets. WooCommerce Trigger (događaj „order.created“) → Google Sheets „Append row“ sa brojem porudžbine, kupcem, iznosom i načinom plaćanja. Knjigovođa dobija tabelu bez ručnog prepisivanja.
- Upit sa kontakt forme, razvrstan pomoću AI-ja. Webhook (forma šalje POST) → AI korak koji upit svrsta u „ponuda“, „podrška“ ili „spam“ → Gmail ili Slack poruka pravoj osobi. Spam se ne prosleđuje.
- Podsetnik pre isteka. Schedule Trigger svakog jutra → čitanje datuma isteka ugovora ili domena iz tabele → email ili SMS (HTTP Request ka API-ju vašeg SMS provajdera) za sve kojima ističe za 30 dana.
Česte greške
| Simptom | Uzrok i rešenje |
|---|---|
| Pregledač javlja da sertifikat nije validan | A zapis još ne pokazuje na server ili port 80 nije otvoren. Proverite dig i ufw status, pa docker compose restart caddy. |
| Webhook adrese u n8n-u počinju sa http://localhost:5678 | Nije podešen WEBHOOK_URL. Dodajte ga u docker-compose.yml i pokrenite docker compose up -d. |
| Posle vraćanja backup-a pristupni podaci ne rade | Novi server ima drugi N8N_ENCRYPTION_KEY. Vratite stari ključ u .env. |
| Greška „permission denied“ na /home/node/.n8n | Volumen je pravljen ručno kao root. Koristite imenovani volumen kao u primeru ili vlasnika postavite na UID 1000. |
Kad n8n radi, možete da ga povežete i sa sopstvenim AI modelom: vodič Ollama na VPS serveru. Šta još može da radi na VPS-u za AI projekte piše na stranici AI hosting.