Skip to main content

n8n self-hosted zgodnie z DSGVO 2026: instrukcja krok po kroku z Hetzner

Uruchom n8n zgodnie z DSGVO na niemieckich serwerach: konfiguracja Hetzner Cloud CX22 w 30 minut, Docker Compose, automatyczne TLS przez Caddy, codzienne kopie zapasowe do Hetzner Storage Box i bieżący monitoring — już od 5 EUR miesięcznie, bez uzależnienia od chmury z USA.

Self-hosting n8n oznacza: uruchamiasz otwartoźródłową platformę do automatyzacji workflowów n8n na własnym serwerze — w pełni pod Twoją kontrolą, w centrum danych w UE, bez tego, by dane workflowów czy poświadczenia kiedykolwiek opuściły serwer dostawcy zewnętrznego.

Dlaczego warto hostować n8n samodzielnie? DSGVO, koszty i kontrola nad danymi

Dla niemieckich firm, które przepuszczają dane osobowe przez automatyzacje — kontakty z klientami, faktury, dane HR — pytanie o hosting nie jest wyłącznie techniczne. To kwestia zgodności (compliance). n8n Cloud oraz konkurencyjne platformy SaaS, jak Zapier czy Make.com, przechowują dane z wykonania workflowów na serwerach poza Niemcami, co przy danych wrażliwych wymaga umowy powierzenia przetwarzania zgodnie z art. 28 DSGVO i w pojedynczych przypadkach bywa problematyczne.

Self-hosting rozwiązuje ten problem całkowicie: wszystkie dane workflowów, poświadczenia i logi wykonań pozostają na Twoim serwerze — w niemieckim centrum danych Hetzner Cloud, z certyfikatem ISO 27001, zgodnie z DSGVO i prawem niemieckim. Kompendium BSI IT-Grundschutz, moduł OPS.1.1.7 (automatyzacja procesów operacyjnych) wyraźnie zaleca, by procesy zautomatyzowane przetwarzające dane osobowe lub istotne dla bezpieczeństwa były prowadzone pod pełną kontrolą organizacyjną oraz by wprowadzić dla nich odrębne koncepcje uprawnień.

Druga korzyść ma charakter ekonomiczny: n8n Community Edition jest wolne od opłat licencyjnych (licencja MIT). Płacisz wyłącznie za serwer Hetzner — już od 5 EUR miesięcznie za Hetzner CX22. Pozwala on obsłużyć nawet 100 aktywnych workflowów z setkami codziennych wykonań. Dla porównania Zapier przy porównywalnym wolumenie wykonań kosztuje od 99 do 299 USD miesięcznie.

Pełna kontrola nad danymi to trzeci aspekt: to Ty decydujesz, jak długo przechowywane są dane wykonań, którzy pracownicy mają dostęp do poświadczeń oraz jak wyglądają kopie zapasowe i plany awaryjne. Zgodnie z art. 32 DSGVO (bezpieczeństwo przetwarzania) te środki techniczne i organizacyjne i tak są obowiązkowe — self-hosting czyni ich wdrożenie prostszym i łatwiejszym do udokumentowania.

5 EUR/mies. serwer Hetzner

Koszty infrastruktury dla gotowej do produkcji konfiguracji n8n (Hetzner CX22)

Quelle: Cennik Hetzner Cloud 2025, 2025
30 min czasu konfiguracji

Od pustego serwera do działającej instancji n8n z TLS

Quelle: Doświadczenie Wito AI (n=12 projektów self-hosted), 2025
92 % zgodności z DSGVO

przy self-hostingu w porównaniu do 61 % przy nieuregulowanym użyciu chmury

Quelle: Przewodnik Bitkom: zgodne z DSGVO korzystanie z chmury 2024, 2024
100 % suwerenności danych

przy self-hostingu — brak przetwarzania przez podmioty trzecie (art. 28 DSGVO)

Quelle: Art. 28 DSGVO — powierzenie przetwarzania, 2024

Wymagania sprzętowe: który serwer Hetzner wystarczy?

Dla większości środowisk MŚP z maksymalnie 100 aktywnymi workflowami w zupełności wystarcza Hetzner CX22 (2 vCPU, 4 GB RAM, 40 GB SSD). Ten typ serwera kosztuje 5 EUR miesięcznie i bez problemu obsługuje kilka tysięcy wykonań workflowów dziennie, bez spadku wydajności.

Minimalne wymagania dla n8n z bazą PostgreSQL i kolejką Redis w trybie kolejkowym (queue mode): 2 vCPU, 4 GB RAM, 40 GB SSD. Przy 50–100 równoczesnych wykonaniach workflowów warto przejść na Hetzner CX32 (4 vCPU, 8 GB RAM, 80 GB SSD, ok. 10 EUR/mies.). Instancja Redis dla trybu kolejkowego zajmuje ok. 50–100 MB RAM, a PostgreSQL zwykle 300–500 MB.

Zalecenie co do lokalizacji serwera: nbg1 (Norymberga) lub fsn1 (Falkenstein) — oba centra danych znajdują się w Niemczech, mają certyfikat ISO 27001 i podlegają wyłącznie prawu niemieckiemu i unijnemu. Przy provisioningu unikaj lokalizacji w USA, takich jak centra danych Hetzner w Ashburn (us-east), nawet jeśli wydają się tańsze — podlegają one prawu Stanów Zjednoczonych i Cloud Act.

  • Hetzner CX22 (2 vCPU / 4 GB / 40 GB): 5 EUR/mies. — do 100 workflowów, ~5.000 wykonań/dzień
  • Hetzner CX32 (4 vCPU / 8 GB / 80 GB): 10 EUR/mies. — do 300 workflowów, ~50.000 wykonań/dzień
  • Hetzner CCX23 (4 dedykowane vCPU / 16 GB): 22 EUR/mies. — do krytycznych, wysokowolumenowych wdrożeń produkcyjnych

Konfiguracja n8n self-hosted w 6 krokach: od provisioningu po monitoring

Schritt 1

Krok 1: Provisioning serwera Hetzner

Otwórz konsolę Hetzner Cloud (console.hetzner.cloud), załóż nowy projekt. Wybierz typ serwera CX22, obraz „Ubuntu 24.04 LTS”, lokalizację „nbg1” (Norymberga, Niemcy). Dodaj klucz SSH. Utwórz reguły zapory: port 22 (SSH, tylko z własnego IP), port 80 i 443 (HTTP/HTTPS, publicznie). Floating IP opcjonalnie dla stałego adresu. Czas: 5 minut.

Schritt 2

Krok 2: Instalacja Docker + Docker Compose

Połącz się z serwerem przez SSH. Zainstaluj Docker Engine za pomocą oficjalnego skryptu instalacyjnego z pkg.docker.com (curl -fsSL https://get.docker.com | sh). Wtyczka Docker Compose jest dołączona od Docker 23 (docker compose zamiast docker-compose). Dodaj użytkownika do grupy docker (usermod -aG docker $USER). Wgraj aktualizacje systemu (apt update && apt upgrade). Włącz usługę Docker (systemctl enable docker). Czas: 10 minut.

Schritt 3

Krok 3: Uruchomienie kontenerów n8n + PostgreSQL

Wykorzystaj jako szablon plik docker-compose.yml z oficjalnej dokumentacji n8n (docs.n8n.io/hosting/installation/server-setups/docker-compose/). Usługi: n8n (najnowsza wersja), postgres:16-alpine, redis:7-alpine. Wynieś zmienne środowiskowe do pliku .env: N8N_ENCRYPTION_KEY (losowy 32-bajtowy ciąg), DB_TYPE=postgresdb, DB_POSTGRESDB_*, QUEUE_BULL_REDIS_HOST. Port n8n wewnętrznie na 5678, bez bezpośredniego mapowania portu na zewnątrz (przejmuje to reverse proxy). Czas: 10 minut.

Schritt 4

Krok 4: TLS przez Caddy lub Traefik

Caddy to najprostsza opcja automatycznego TLS przez Let's Encrypt: wystarczy plik Caddyfile z dwoma wierszami (domena + reverse_proxy n8n:5678). Alternatywnie Traefik jako kolejna usługa Docker z etykietami na kontenerze n8n. Ustaw wpis DNS dla domeny n8n na adres IP serwera Hetzner. Caddy lub Traefik automatycznie wnioskuje o certyfikat Let's Encrypt i odnawia go co 60 dni. Ważne: bez TLS nie wolno zapisywać w n8n prawdziwych poświadczeń. Czas: 10 minut.

Schritt 5

Krok 5: Konfiguracja kopii zapasowych (Hetzner Storage Box)

Skonfiguruj Hetzner Storage Box BX11 (1 TB, 3,81 EUR/mies.) jako cel kopii zapasowych. Codzienny cronjob na serwerze: zrzut PostgreSQL przez pg_dump + kompresja, wysyłka przez rclone lub rsync do Hetzner Storage Box za pomocą SFTP/Samba. Dodatkowo zabezpiecz katalog /home/node/.n8n (może zawierać dane lokalne). Polityka retencji: 7 dni codziennie, 4 tygodnie tygodniowo. BSI IT-Grundschutz OPS.1.1.7 zaleca RPO maks. 24 godziny dla automatyzacji krytycznych dla działalności. Czas: 15 minut.

Schritt 6

Krok 6: Monitoring + automatyczne aktualizacje

Uptime Kuma (bezpłatny, self-hosted, również przez Docker) do monitorowania dostępności: sprawdzanie HTTP adresu n8n co 60 sekund, alert e-mailem lub przez Telegram w razie awarii. Włącz własny error-workflow n8n: przy każdym nieudanym produkcyjnym workflowie wiadomość na Slacku lub e-mail do osób odpowiedzialnych. Aktualizacje: kontener Watchtower do automatycznych aktualizacji obrazów Docker lub ręczny skrypt aktualizujący (docker compose pull && docker compose up -d) co miesiąc w oknie serwisowym. Czas: 15 minut.

Konfiguracja Docker Compose: kompletny setup

Oficjalna dokumentacja n8n pod adresem docs.n8n.io/hosting/installation/server-setups/docker-compose/ udostępnia kompletny szablon `docker-compose.yml`. Gotowa do produkcji konfiguracja dla MŚP obejmuje cztery usługi: n8n (silnik workflowów), postgres (trwałe przechowywanie danych), redis (backend kolejki dla równoległych wykonań) oraz caddy (reverse proxy z automatycznym TLS).

Najbardziej krytycznym elementem konfiguracji jest N8N_ENCRYPTION_KEY: ten 32-bajtowy klucz szyfruje wszystkie zapisane w n8n poświadczenia (klucze API, tokeny OAuth, hasła) w bazie PostgreSQL. Trzeba go wygenerować przed pierwszym uruchomieniem (`openssl rand -hex 32`), bezpiecznie umieścić w pliku `.env` i zabezpieczyć osobno — najlepiej w menedżerze haseł, takim jak Bitwarden lub 1Password. Bez tego klucza zapisane poświadczenia po zmianie serwera stają się bezużyteczne.

Dla konfiguracji ochrony danych zgodnej z DSGVO szczególnie istotne są dwie zmienne środowiskowe n8n: `N8N_EXECUTIONS_DATA_PRUNE=true` ogranicza przechowywanie danych z wykonania workflowów, a `N8N_EXECUTIONS_DATA_MAX_AGE=720` ustawia maksymalny czas przechowywania na 30 dni. Dla workflowów ze szczególnie wrażliwymi danymi (dane zdrowotne, finansowe) zalecane jest dodatkowo `N8N_EXECUTIONS_DATA_SAVE_ON_SUCCESS=none`, aby nie utrwalać udanych wykonań.

Przykładowa konfiguracja pliku `.env` (pola obowiązkowe):

N8N_ENCRYPTION_KEY=<32-bajtowy-ciąg-hex> | DB_TYPE=postgresdb | DB_POSTGRESDB_HOST=postgres | DB_POSTGRESDB_DATABASE=n8n | DB_POSTGRESDB_USER=n8n | DB_POSTGRESDB_PASSWORD=<bezpieczne-hasło> | QUEUE_BULL_REDIS_HOST=redis | N8N_HOST=n8n.twoja-domena.pl | N8N_PROTOCOL=https | N8N_EXECUTIONS_DATA_PRUNE=true | N8N_EXECUTIONS_DATA_MAX_AGE=720

Wszystkie obrazy Docker powinny być przypięte do jawnych tagów wersji (np. `n8nio/n8n:1.85.0` zamiast `n8nio/n8n:latest`), aby zapobiec niespodziewanym breaking changes przy automatycznych aktualizacjach. Comiesięczne, ręczne okno aktualizacji z wcześniejszą weryfikacją kopii zapasowej to zalecana strategia utrzymania.

Zautomatyzowane workflowy wymagają odrębnych koncepcji uprawnień i regularnych audytów. Dla systemów, które automatycznie przetwarzają dane osobowe lub poufne, protokołowanie, kontrola dostępu i udokumentowany plan awaryjny są obowiązkowymi elementami koncepcji bezpieczeństwa.
Bundesamt für Sicherheit in der Informationstechnik (BSI), IT-Grundschutz Kompendium — Baustein OPS.1.1.7: Automatisierung von Betriebsprozessen, BSI — Bundesamt für Sicherheit in der Informationstechnik, 2024

TLS, kopie zapasowe, monitoring — trzy obowiązkowe elementy

Automatyczne TLS przez Caddy lub Traefik

Caddy to dla początkujących w self-hostingu najprostsza opcja: dwuwierszowy plik `Caddyfile` (`n8n.twoja-domena.pl { reverse_proxy n8n:5678 }`) wystarcza do pełnego automatycznego TLS przez Let's Encrypt. Caddy odnawia certyfikaty automatycznie, zanim wygasną. Traefik to alternatywa dla bardziej złożonych konfiguracji z wieloma usługami na tym samym serwerze — konfigurowalny wyłącznie przez etykiety Docker na kontenerze n8n. Oba rozwiązania są bezpłatne, szeroko stosowane i udokumentowane w społeczności n8n.

Codzienne kopie zapasowe PostgreSQL do Hetzner Storage Box

Najbardziej krytyczne dane w konfiguracji n8n to baza PostgreSQL (definicje workflowów, historia wykonań, poświadczenia) oraz plik `.env` z kluczem szyfrującym. Codzienny cronjob (`pg_dump | gzip | rclone copy`) zabezpiecza bazę do Hetzner Storage Box BX11 (1 TB, 3,81 EUR/mies.). Retencja: 7 kopii dziennych, 4 tygodniowe. Klucza szyfrującego nigdy nie zostawiaj wyłącznie na serwerze — zawsze przechowuj go osobno w menedżerze haseł.

Monitoring przez Uptime Kuma

Uptime Kuma to bezpłatna, self-hosted usługa monitoringu, która działa jako kontener Docker na tym samym serwerze Hetzner. Sprawdzanie HTTP adresu n8n co 60 sekund, alert e-mailem, przez Telegram lub Slack w razie awarii. W połączeniu z własnym error-workflowem n8n (wiadomość na Slacku przy nieudanych produkcyjnych workflowach) powstaje kompletna konfiguracja monitoringu bez dodatkowych kosztów SaaS.

Lista kontrolna zgodności przed startem produkcyjnym

Zanim pierwsza instancja n8n z danymi osobowymi trafi na produkcję, powinny być spełnione wszystkie punkty tej listy kontrolnej. Opiera się ona na wymaganiach art. 32 DSGVO (środki techniczne i organizacyjne) oraz zaleceniach BSI IT-Grundschutz OPS.1.1.7.

  • Zawarta umowa powierzenia z Hetzner — umowa powierzenia przetwarzania zgodnie z art. 28 DSGVO (bezpłatna, dostępna w panelu klienta Hetzner)
  • Klucz szyfrujący n8n bezpiecznie przechowywany — w menedżerze haseł (Bitwarden, 1Password), nie tylko w pliku .env na serwerze
  • TLS aktywne i zweryfikowane — test SSL Labs (ssllabs.com/ssltest) daje co najmniej ocenę A
  • Przetestowane odtwarzanie kopii zapasowej — co najmniej raz ręcznie przeprowadzone odtworzenie, zweryfikowana kompletność kopii
  • Ograniczona historia wykonań — N8N_EXECUTIONS_DATA_PRUNE=true, czas przechowywania ustawiony na 30 dni
  • Udokumentowane szkolenie pracowników — kto może uzyskać dostęp do n8n, a kto nie; uregulowane zarządzanie poświadczeniami
  • Dostępny plan awaryjny — na piśmie: co dzieje się przy awarii serwera? Ile trwa odtworzenie? Kto jest odpowiedzialny?
  • Sprawdzona ocena skutków dla ochrony danych — przy workflowach ze szczególnie wrażliwymi danymi (zdrowie, finanse, dane pracowników) może być wymagana DPIA zgodnie z art. 35 DSGVO

Najczęstsze pytania o konfigurację n8n self-hosted zgodną z DSGVO

n8n Cloud to sensowna opcja, jeśli nie chcesz prowadzić własnej infrastruktury IT. Od 2024 roku n8n Cloud ma centra danych w UE we Frankfurcie, a zgodna z DSGVO umowa powierzenia przetwarzania (DPA) na podstawie art. 28 jest dostępna — to sprawia, że wariant chmurowy jest wystarczający dla wielu MŚP. Self-hosting jest jednak lepszym wyborem, gdy: (1) Twoje wymogi DSGVO są szczególnie surowe (np. ochrona zdrowia, usługi finansowe), (2) nie chcesz ponosić bieżących kosztów chmury (n8n Cloud od 20 EUR/mies.) lub (3) potrzebujesz maksymalnej kontroli nad okresami przechowywania danych i prawami dostępu.
Dla maksymalnie 100 aktywnych workflowów i ~5.000 wykonań dziennie w zupełności wystarcza Hetzner CX22 (2 vCPU, 4 GB RAM, 40 GB SSD, 5 EUR/mies.). Przy 50–300 workflowach lub wyższym wolumenie wykonań zalecamy Hetzner CX32 (4 vCPU, 8 GB RAM, ok. 10 EUR/mies.). Dla krytycznych dla produkcji konfiguracji z surowymi wymogami SLA sprawdzają się dedykowane typy serwerów, takie jak CCX23. Lokalizację serwera należy zawsze ustawić na Niemcy (nbg1 lub fsn1), aby zapewnić zgodność z DSGVO.
n8n ukazuje się w nowych wersjach co tydzień. Dla instalacji produkcyjnych zalecamy comiesięczne okno aktualizacji: docker compose pull && docker compose up -d po wcześniejszym sprawdzeniu kopii zapasowej. Łatki bezpieczeństwa należy wgrywać niezwłocznie (w ciągu 24–72 godzin). Wskazówka: zapisz się na newsletter społeczności n8n lub śledź repozytorium GitHub (github.com/n8n-io/n8n/releases), aby być na bieżąco z ważnymi wydaniami.
Koszty infrastruktury: Hetzner CX22 (5 EUR/mies.) + Hetzner Storage Box BX11 na kopie zapasowe (3,81 EUR/mies.) + domena (~1 EUR/mies.) = ok. 10 EUR/mies. Do tego dochodzi jednorazowy nakład na konfigurację: przy samodzielnym wykonaniu ok. 4–8 godzin, a przy zleceniu usługodawcy od ok. 1.500 EUR netto za pełną, gotową do produkcji konfigurację. Dla porównania: n8n Cloud dla 100 workflowów od 50 EUR/mies.; Zapier przy porównywalnym wolumenie wykonań od 99 USD/mies.
Działania natychmiastowe przy naruszeniu ochrony danych: (1) Natychmiast zatrzymaj instancję n8n (docker compose stop n8n), aby uniemożliwić dalsze przetwarzanie danych. (2) Oceń skalę naruszenia: które workflowy, jakie dane, jaki okres? (3) Sprawdź obowiązek zgłoszenia: naruszenia z ryzykiem dla osób, których dane dotyczą, należy zgodnie z art. 33 DSGVO zgłosić w ciągu 72 godzin do właściwego organu ochrony danych (w Polsce: Prezes Urzędu Ochrony Danych Osobowych). (4) Poinformuj osoby, których dane dotyczą, jeśli istnieje wysokie ryzyko (art. 34 DSGVO). Czy masz pisemny plan awaryjny? Powinien powstać jeszcze przed startem produkcyjnym.
Inspektor ochrony danych jest zgodnie z art. 37 DSGVO obowiązkowy, gdy główne zadania Twojej firmy obejmują przetwarzanie danych osobowych na dużą skalę (np. profesjonalne przetwarzanie danych, dane zdrowotne) lub gdy główna działalność polega na regularnym i systematycznym monitorowaniu osób na dużą skalę. Dla większości MŚP wykorzystujących n8n do procesów wewnętrznych IOD nie jest obowiązkowy — ale jest wskazany. Nawet bez obowiązkowego IOD zalecamy, by przed startem produkcyjnym przeprowadzić ocenę skutków dla ochrony danych (DPIA) dla workflowów z danymi wrażliwymi.
Sama konfiguracja techniczna (serwer, Docker, n8n) dla osoby z podstawową znajomością Linuksa i z tą instrukcją zajmuje 30–60 minut. Bardziej wymagające są: zgodna z DSGVO konfiguracja (umowa powierzenia, okresy przechowywania danych, koncepcja uprawnień), konfiguracja monitoringu oraz bieżące utrzymanie (aktualizacje, weryfikacja kopii zapasowych). Wito AI oferuje pełną, zarządzaną konfigurację n8n: provisioning serwera, konfigurację DSGVO, monitoring, umowę powierzenia i bieżące utrzymanie — od 1.500 EUR netto jednorazowo, opcjonalnie z miesięczną usługą zarządzaną od 150 EUR.
Klucz szyfrujący n8n szyfruje wszystkie zapisane w n8n poświadczenia (klucze API, hasła, tokeny OAuth) w bazie PostgreSQL. Przy zmianie serwera ten klucz musi bezwzględnie zostać przeniesiony na nowy serwer — w przeciwnym razie wszystkie zapisane poświadczenia stają się trwale nieczytelne, a wszystkie workflowy trzeba skonfigurować od nowa. Zalecenie: zabezpiecz klucz przy pierwszej konfiguracji w menedżerze haseł (Bitwarden, 1Password) i nigdy nie zostawiaj go wyłącznie na serwerze. Przy konfiguracjach zarządzanych przez Wito AI klucz jest przechowywany w zaszyfrowanym sejfie.

Zleć profesjonalną konfigurację n8n self-hosted

Wito AI skonfiguruje Twoje n8n zgodnie z DSGVO na Hetzner — wraz z TLS, kopiami zapasowymi, monitoringiem i umową powierzenia. Konfiguracja startowa od 1.500 EUR netto, z dokumentacją zgodności i szkoleniem wprowadzającym.

  • Hetzner Cloud Niemcy (nbg1/fsn1)
  • Zgodne z DSGVO — umowa powierzenia, art. 28 + art. 32
  • TLS, kopie zapasowe, monitoring w cenie
  • Uwzględniony BSI IT-Grundschutz OPS.1.1.7