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.
Koszty infrastruktury dla gotowej do produkcji konfiguracji n8n (Hetzner CX22)
Quelle: Cennik Hetzner Cloud 2025, 2025Od pustego serwera do działającej instancji n8n z TLS
Quelle: Doświadczenie Wito AI (n=12 projektów self-hosted), 2025przy self-hostingu w porównaniu do 61 % przy nieuregulowanym użyciu chmury
Quelle: Przewodnik Bitkom: zgodne z DSGVO korzystanie z chmury 2024, 2024przy self-hostingu — brak przetwarzania przez podmioty trzecie (art. 28 DSGVO)
Quelle: Art. 28 DSGVO — powierzenie przetwarzania, 2024Wymagania 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
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.
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.
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.
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.
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.
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.
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