LOKALNE MODELE AI•6 min czytania•Aktualizacja: 2026-10-12

Lokalna instalacja n8n na Ubuntu: Automatyzacja AI we własnej sieci (Krok po kroku)

1. Dlaczego warto uruchomić n8n lokalnie na własnym Ubuntu?

Gdy budujesz zaawansowane potoki generatywnego AI (generowanie grafik w **ComfyUI**, synteza wideo czy inferencja na lokalnych kartach RTX za pomocą **Ollama**), trzymanie n8n na zewnętrznym VPS-ie wymaga ciągłego przesyłania ciężkich plików przez internet i zestawiania tuneli VPN. Lokalna instalacja n8n na domowym serwerze Ubuntu (lub maszynie wirtualnej w **Proxmox VE**) rozwiązuje ten problem u podstaw:

- **Zerowe opóźnienia w sieci LAN (0 ms)**: n8n komunikuje się z lokalnymi serwerami LLM i generatorami obrazów po wewnętrznym adresie IP z prędkością gigabitową.
- **Bezpośredni dostęp do dysków i GPU**: potoki mogą odczytywać i zapisywać wygenerowane grafiki oraz wideo bezpośrednio na lokalnych dyskach NVMe bez limitów transferu.
- **Całkowita darmowość i brak limitów**: wykorzystujesz moc obliczeniową sprzętu, który już posiadasz, nie płacąc ani grosza za subskrypcje czy transfer danych.

2. Wymagania sprzętowe i architektura sieci LAN

Sam kontener n8n jest niezwykle lekki i w spoczynku zużywa około **250–400 MB pamięci RAM**. Możesz go zainstalować bezpośrednio na tej samej stacji roboczej z Ubuntu, na której trzymasz karty graficzne pod AI, lub w osobnym kontenerze LXC / maszynie VM.

Kluczowym elementem przy instalacji lokalnej jest przydzielenie serwerowi Ubuntu **statycznego adresu IP w sieci lokalnej** (np. `192.168.1.50`), aby adres panelu administracyjnego oraz wewnętrznych webhooków nigdy nie zmieniał się po restarcie routera.

3. Przygotowanie Ubuntu i instalacja środowiska Docker

Najczystszą metodą instalacji lokalnej na Ubuntu (niezależną od systemowej wersji Node.js) jest użycie kontenera Docker z podpiętym katalogiem roboczym. Otwórz terminal w Ubuntu, zaktualizuj system i utwórz strukturę katalogów:
terminal
sudo apt update && sudo apt upgrade -y
curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker $USER
mkdir -p ~/n8n-local/shared && cd ~/n8n-local

4. Konfiguracja docker-compose.yml z dostępem do usług hosta

W środowisku lokalnym kluczowa jest dyrektywa `extra_hosts` z mapowaniem `host.docker.internal:host-gateway`. Pozwala ona kontenerowi n8n bezproblemowo łączyć się z programami uruchomionymi bezpośrednio na Twoim systemie Ubuntu (takimi jak **Ollama** na porcie `11434` czy **ComfyUI** na porcie `8188`).
Wskazówka: Flaga N8N_SECURE_COOKIE=false jest niezbędna w sieci lokalnej (LAN), gdy łączysz się z n8n po adresie IP (np. http://192.168.1.50:5678) bez certyfikatu HTTPS. Bez niej przeglądarka zablokuje logowanie do panelu.
~/n8n-local/docker-compose.yml
services:
  n8n:
    image: docker.n8n.io/n8nio/n8n:latest
    container_name: n8n-local
    restart: unless-stopped
    ports:
      - '5678:5678'
    environment:
      - N8N_HOST=localhost
      - N8N_PORT=5678
      - N8N_PROTOCOL=http
      - N8N_SECURE_COOKIE=false
      - GENERIC_TIMEZONE=Europe/Warsaw
      - TZ=Europe/Warsaw
      - N8N_DEFAULT_BINARY_DATA_MODE=filesystem
      - EXECUTIONS_DATA_PRUNE=true
      - EXECUTIONS_DATA_MAX_AGE=72
    volumes:
      - n8n_data:/home/node/.n8n
      - ./shared:/data/shared
    extra_hosts:
      - 'host.docker.internal:host-gateway'

volumes:
  n8n_data:

5. Montowanie lokalnych folderów i wymiana plików z ComfyUI

W powyższym pliku `docker-compose.yml` zastosowaliśmy dwie niezwykle ważne opcje dla twórców Local AI:

1. **`N8N_DEFAULT_BINARY_DATA_MODE=filesystem`**: sprawia, że duże pliki binarne (wygenerowane obrazy PNG, pliki audio czy wideo) są zapisywane bezpośrednio na dysku SSD, zamiast zapychać pamięć RAM podczas działania potoku.
2. **Wolumen `./shared:/data/shared`**: pozwala węzłom **Read/Write Files from Disk** w n8n na bezpośredni odczyt i zapis plików na dysku Twojego Ubuntu. Możesz tu podmontować bezpośrednio folder `output` ze swojego lokalnego **ComfyUI** lub **Stability Matrix**:
terminal
# Uruchomienie lokalnego serwera n8n
docker compose up -d

# Sprawdzenie statusu i logów startowych
docker compose logs -f n8n

6. Podłączenie lokalnego n8n do Ollama i niestandardowych API

Po uruchomieniu kontenera wejdź w przeglądarce na adres `http://localhost:5678` (lub `http://IP-TWOJEGO-UBUNTU:5678`) i utwórz konto właściciela.

Aby połączyć n8n z usługami działającymi na tym samym serwerze Ubuntu (poza Dockerem), w ustawieniach poświadczeń (Credentials) zamiast `localhost` wpisuj adres **`http://host.docker.internal`**:

- **Lokalna Ollama**: `http://host.docker.internal:11434`
- **Lokalne ComfyUI API**: `http://host.docker.internal:8188`
- **Własny serwer FastAPI / OpenAPI**: `http://host.docker.internal:8000`

Pamiętaj, aby w konfiguracji samej usługi Ollama na Ubuntu ustawić zmienną `OLLAMA_HOST=0.0.0.0`, co pozwoli jej nasłuchiwać na zapytania przychodzące z interfejsu sieciowego Dockera.

7. Jak odbierać zewnętrzne webhooki (Telegram, Facebook, Stripe) w sieci domowej?

Lokalna instancja działa w prywatnej sieci LAN, więc zewnętrzne serwisy (np. boty na Telegramie czy Graph API Facebooka) nie mogą bezpośrednio wywołać Twojego adresu `192.168.x.x`. Jeśli chcesz odbierać webhooki ze świata bez kupowania publicznego IP i przekierowywania portów na routerze, masz dwa rozwiązania:

- **Cloudflare Tunnel (`cloudflared`)**: całkowicie darmowy, szyfrowany tunel zestawiany z poziomu kontenera Docker, który podpina Twoją subdomenę (np. `hooks.twojadomena.pl`) bezpośrednio pod lokalny port `5678`.
- **Parametr `--tunnel` (tylko do testów)**: uruchomienie n8n z flagą tunelu deweloperskiego, który tworzy tymczasowy adres publiczny na czas testowania integracji.

Często zadawane pytania (FAQ)

Dlaczego n8n w Dockerze zwraca błąd ECONNREFUSED przy próbie połączenia z localhost:11434?

Wewnątrz kontenera Docker słowo localhost odnosi się do samego kontenera n8n, a nie Twojego systemu Ubuntu. Zawsze używaj adresu http://host.docker.internal:11434 lub wewnętrznego adresu IP serwera w sieci LAN (np. http://192.168.1.50:11434).

Czy mogę zainstalować n8n bezpośrednio w systemie Ubuntu bez Dockera (przez npm)?

Tak, wystarczy zainstalować Node.js w wersji 20 LTS lub 22 LTS i wykonać polecenie: npm install n8n -g, a do autostartu użyć menedżera procesów PM2 (pm2 start n8n). Jednak wersja Dockerowa jest znacznie łatwiejsza w aktualizacji i izoluje zależności systemowe.