n8n pozwala łatwo tworzyć automatyczne przepływy między różnymi usługami (Jira, Slack, e-mail, OpenAI i wiele innych). Możesz go hostować samodzielnie, by mieć pełną kontrolę nad danymi i kosztami.
Startowanie od zera na świeżym serwerze Ubuntu, instalacja wszystkich narzędzi, zabezpieczenie go i skonfigurowanie SSL dla n8n bywa skomplikowane. Łatwo o pominiecie ważnych kroków albo złą konfigurację, co prowadzi do błędów z uprawnieniami i niechronionego ruchu HTTP.
W tym poradniku dowiesz się, jak:
- Przygotować Ubuntu (firewall, pakiety, automatyczne aktualizacje).
- Wygenerować klucze SSH i skonfigurować repo Git dla Docker Compose.
- Utworzyć pliki
docker-compose.yml
,.gitignore
iCaddyfile
. - Sklonować repo na serwer, ustawić poprawne uprawnienia i rozwiązać częste błędy.
- Postawić n8n z certyfikatem SSL od Let’s Encrypt, korzystając z reverse proxy Caddy.
Gdzie kupić tani serwer VPS/Cloud
Poniżej kilka najbardziej znanych firm, których ofertę warto przejrzeć:
- Hetzner
- OVH
- DigitalOcean
- Linode
- Mikrus
Ceny u tych dostawców zaczynają się zwykle od około 5 USD za miesiąc. Warto sprawdzić bieżące oferty i porównać je pod kątem dostępnej mocy CPU, pamięci RAM, transferu danych oraz lokalizacji serwerów.
Przygotowanie serwera z Ubuntu – pakiety, bezpieczeństwo, firewall
Zacznij od aktualizacji pakietów:
apt update
apt upgrade -y
Zainstaluj narzędzie do automatycznych aktualizacji:
Firewall (UFW)
Zainstaluj i włącz ufw
, otwierając podstawowe porty (SSH, HTTP, HTTPS):
portsentry – ochrona przed skanowaniem portów
Aby dodatkowo chronić serwer przed skanami portów i podejrzanymi próbami połączeń, zainstaluj portsentry:
- Plik konfiguracyjny zwykle znajdziesz w
/etc/portsentry/portsentry.conf
. -
Białą listę adresów IP (np. zaufanych) możesz dodać w
/etc/portsentry/portsentry.ignore.static
: -
Uruchom i włącz usługę:
Dzięki temu zmniejszysz ryzyko ataków na otwarte porty.
Klucze SSH – praca z repozytorium Docker Compose
Wygeneruj klucz SSH (np. dla Bitbucket), żeby łatwo klonować i wypychać zmiany w repozytorium:
Plik publiczny (id_rsa_bitbucket.pub
) dodaj w ustawieniach repo (Bitbucket/GitLab/GitHub). Dzięki temu nie musisz wpisywać hasła przy każdym git push/pull
.
Pliki w repo: Docker Compose, .gitignore i Caddyfile
W lokalnym repo (albo bezpośrednio na serwerze) przygotuj:
docker-compose.yml
Zawiera definicję usług (n8n i Caddy) z automatyczną konfiguracją SSL:
Caddyfile
Caddy automatycznie pobierze certyfikat Let’s Encrypt i będzie go odnawiać:
{
email twó[email protected]
}
n8n.twoja-domena.pl {
reverse_proxy n8n:5678
}
.gitignore
Nie wrzucaj lokalnych danych n8n do repo:
Klonowanie repo, uprawnienia i typowe błędy
Na serwerze:
apt install -y git
mkdir /opt/n8n
cd /opt/n8n
git clone [email protected]:twoj_user/twoje_repo.git
cd twoje_repo
Jeśli używasz kontenerów (jak n8n) z uid/gid 1000, upewnij się, że katalogi mają odpowiednie uprawnienia:
mkdir n8n-data
chown -R 1000:1000 n8n-data
Najczęstsze błędy i ich rozwiązania:
- Brak otwartego portu (np. 5678) – sprawdź
ufw
lub reguły bezpieczeństwa w panelu VPS. - EACCES (permission denied) – nadaj poprawne uprawnienia katalogowi danych n8n.
- Zły adres / HTTPS – pamiętaj, by ustawić prawidłową domenę (np.
n8n.twoja-domena.pl
).
5. Uruchomienie n8n z SSL
Wszystko gotowe? W katalogu projektu:
docker-compose up -d
Caddy wystartuje, zajmie się pobraniem certyfikatu Let’s Encrypt, a n8n będzie dostępny przez:
(oczywiście zastąp n8n.twoja-domena.pl
swoją rzeczywistą subdomeną).
Podsumowanie
Teraz masz działające n8n na własnym serwerze z Ubuntu, uruchamiane przez Docker Compose, z automatycznymi aktualizacjami systemu, zaporą ogniową UFW i certyfikatem Let’s Encrypt obsługiwanym przez Caddy. Wszystkie kroki – od kluczy SSH, przez konfigurację plików w repo, aż po unikanie typowych błędów z uprawnieniami – są w jednym miejscu, dzięki czemu możesz z łatwością dostosować ten przepis do własnych potrzeb.
Linki
- Strona główna n8n: https://n8n.io
- Dokumentacja n8n: https://docs.n8n.io
- Kod źródłowy (GitHub): https://github.com/n8n-io/n8n