10 października 2026 · Aktualizacja: 10 października 2026 · Zespół NexXsite · n8n · automatyzacje · self-hosted · wdrożenia

n8n self-hosted: Jak uruchomić n8n na własnym serwerze – praktyczne pułapki

n8n self-hosted: Jak uruchomić n8n na własnym serwerze – praktyczne pułapki

Coraz więcej firm decyduje się na n8n self-hosted, czyli uruchomienie automatyzacji na własnym serwerze. Taka instalacja daje pełną kontrolę nad danymi i kosztami, ale niesie też kilka pułapek, których nie znajdziesz w oficjalnej dokumentacji. W tym artykule zebrałem konkretne problemy, na które natknąłem się wdrażając n8n u klientów.

Wymagania sprzętowe i środowiskowe dla n8n self-hosted

n8n uruchomisz praktycznie na każdym serwerze z Dockerem i Node.js. W praktyce najwygodniej korzystać z docker-compose, bo pozwala łatwo zarządzać aktualizacjami i restartami. Minimalna konfiguracja to 2 GB RAM – mniej oznacza ryzyko ubijania procesów przy większym obciążeniu. Jeśli planujesz integracje z bazami danych lub AI, rozważ od razu Postgresa jako backend dla n8n.

Pułapki z portami SMTP na serwerach VPS

Jeśli Twój serwer stoi w Hetznerze, miej na uwadze blokadę portów SMTP 25 i 465. Próba wysyłki maili z n8n przez te porty kończy się komunikatem błędu ETIMEDOUT po kilku minutach. Rozwiązanie: korzystaj z portu 587 z włączonym STARTTLS i wyłączoną opcją SSL/TLS w credentialu SMTP. To jedyny sposób, by wiadomości wychodziły bez problemów na nowych serwerach tej firmy.

Credential cache – dlaczego restart n8n jest konieczny

n8n trzyma dane logowania (credentials) w pamięci podręcznej. Po usunięciu i ponownym utworzeniu credentiala, workflow potrafi dalej zgłaszać błąd uwierzytelnienia, mimo że w panelu widzisz połączenie jako aktywne. Pomaga dopiero docker compose restart n8n – dopiero wtedy nowe dane są ładowane do pamięci i błędy znikają.

Licencja n8n Community a hosting dla klientów

Wersja Community n8n pozwala na automatyzację własnych procesów i wdrożenia dla klientów, ale nie na hostowanie workflowów i credentiali wielu klientów na jednej instancji. Jeśli chcesz oferować n8n jako usługę z własnego serwera, potrzebujesz licencji Enterprise. Najbezpieczniej jest wdrażać n8n na serwerze klienta i zapewnić mu utrzymanie – to zgodne z licencją i eliminuje ryzyko naruszeń.

Zabezpieczenie webhooków i pamięć czatu

Webhooki w n8n są otwarte – każdy, kto zna adres, może je wywołać. W praktyce wystarczy dodać nagłówek z tokenem (Header Auth), by ograniczyć ruch tylko do zaufanych źródeł. Jeśli budujesz agenta AI lub chatbota, pamiętaj: domyślna pamięć rozmów znika po restarcie kontenera. Przeniesienie jej do Postgresa rozwiązuje problem utraty kontekstu – kosztuje to jeden dodatkowy node w workflow.

  • n8n self-hosted wymaga minimum 2 GB RAM i Docker Compose.
  • Na serwerach Hetzner SMTP działa tylko na porcie 587 z STARTTLS.
  • Po zmianie credentiala konieczny jest restart n8n.
  • Webhook zabezpieczysz prostym nagłówkiem z tokenem.
  • Licencja Community nie pozwala hostować workflowów wielu klientów.
Więcej o automatyzacjach n8n

Najczęstsze pytania

Czy mogę hostować n8n self-hosted na dowolnym serwerze VPS?
Tak, pod warunkiem że masz dostęp do Dockera i minimum 2 GB RAM. Uważaj na blokady portów SMTP, szczególnie w Hetznerze – porty 25 i 465 są tam domyślnie zablokowane.
Jak rozwiązać problem z credentialami, które nie działają mimo poprawnych danych?
Po usunięciu i ponownym utworzeniu credentiala musisz zrestartować n8n – najlepiej przez docker compose restart n8n. Inaczej workflow może dalej zgłaszać błędy uwierzytelnienia.
Czy mogę oferować klientom n8n z własnego serwera?
Tylko posiadając licencję Enterprise. Wersja Community pozwala na wdrożenia u klienta, ale nie na hostowanie workflowów i credentiali wielu klientów na jednej instancji.
Jak zabezpieczyć webhooki w n8n self-hosted?
Dodaj do zapytań nagłówek z tokenem (Header Auth). Token przechowujesz po stronie serwera – to prosty sposób na ograniczenie dostępu do webhooka.
Co zrobić, żeby chatbot n8n nie tracił pamięci rozmów po restarcie?
Przenieś pamięć konwersacji do bazy PostgreSQL. Wymaga to jednego dodatkowego node w workflow, ale pozwala zachować kontekst nawet po restarcie kontenera.
Porozmawiajmy o Twoim projekcie