Przewiń do głównej treści
Instalacja N8N z SSL na własnym serwerze w Google Cloud Platform
  1. Artykuły/

Instalacja N8N z SSL na własnym serwerze w Google Cloud Platform

·896 słów·5 min·
Artur Tyloch
Autor
Artur Tyloch
AI | Startup | SaaS
Automatyzacja - Ten artykuł jest częścią serii.
Część : Ten Artykuł

Ten przewodnik krok po kroku pokaże Ci, jak zainstalować i skonfigurować N8N — darmowe narzędzie open-source do automatyzacji procesów. Użyjemy serwera z systemem Linux, Docker Compose oraz skonfigurujemy własną domenę z certyfikatem SSL. Omówimy również procedury tworzenia kopii zapasowych i utrzymania systemu.

Dlaczego warto samodzielnie hostować N8N?
#

Samodzielne utrzymywanie serwera N8N daje firmie szereg korzyści, zwłaszcza gdy rosną jej potrzeby w zakresie automatyzacji:

  • Oszczędność w skali: Oficjalne plany N8N szybko stają się drogie. Podstawowy plan za 20$ miesięcznie pozwala na uruchomienie tylko 5 aktywnych procesów, co dla większości firm jest niewystarczające. Plany enterprise to koszt rzędu tysięcy dolarów miesięcznie. Własny serwer eliminuje te ograniczenia.
  • Pełna kontrola: Jesteś właścicielem swojej infrastruktury, bez uzależniania się od jednego dostawcy. Możesz dowolnie modyfikować integracje, zachowujesz pełną kontrolę nad danymi i zapewniasz ciągłość działania biznesu.
  • Nieograniczona skalowalność: Uruchamiaj tyle procesów, na ile pozwala Twoja infrastruktura. Nie ma tu sztucznych limitów wykonań, przechowywania danych czy liczby połączonych usług.
  • Bezpieczeństwo i zgodność z przepisami: Przechowuj wrażliwe dane we własnej infrastrukturze, co jest kluczowe w branżach takich jak finanse, medycyna czy administracja publiczna.

Poradnik oparty jest na materiałach:

Krok 0: Przygotowanie maszyny wirtualnej w GCP
#

Utwórz nową maszynę wirtualną (VM instance) w Google Cloud Platform o następujących parametrach:

  • Region: us-east1 (objęty darmowym poziomem usług - free tier)
  • Typ maszyny: e2-micro
  • System operacyjny: Ubuntu 20.04 LTS
  • Dysk: 30GB, Standard persistent disk (limit darmowego poziomu)
  • Zapora sieciowa (Firewall): Zaznacz “Allow HTTP traffic” i “Allow HTTPS traffic”.

Krok 1: Instalacja Dockera
#

Połącz się z serwerem przez SSH i wykonaj poniższe polecenia.

  1. Aktualizacja pakietów:

    sudo apt update
    
  2. Instalacja Dockera i zależności:

    sudo apt install docker.io ca-certificates curl gnupg lsb-release
    
  3. Uruchomienie i włączenie Dockera przy starcie systemu:

    sudo systemctl start docker
    sudo systemctl enable docker
    
  4. Instalacja Docker Compose:

    sudo curl -SL "https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    sudo chmod +x /usr/local/bin/docker-compose
    
  5. Weryfikacja instalacji:

    docker-compose --version
    

Krok 2: Konfiguracja i uruchomienie N8N
#

  1. Utwórz plik docker-compose.yaml:

    nano docker-compose.yaml
    
  2. Wklej do niego poniższą zawartość:

    services:
      traefik:
        image: "traefik"
        restart: always
        command:
          - "--api=true"
          - "--api.insecure=true"
          - "--providers.docker=true"
          - "--providers.docker.exposedbydefault=false"
          - "--entrypoints.web.address=:80"
          - "--entrypoints.web.http.redirections.entryPoint.to=websecure"
          - "--entrypoints.web.http.redirections.entrypoint.scheme=https"
          - "--entrypoints.websecure.address=:443"
          - "--certificatesresolvers.mytlschallenge.acme.tlschallenge=true"
          - "--certificatesresolvers.mytlschallenge.acme.email=${SSL_EMAIL}"
          - "--certificatesresolvers.mytlschallenge.acme.storage=/letsencrypt/acme.json"
        ports:
          - "80:80"
          - "443:443"
        volumes:
          - traefik_data:/letsencrypt
          - /var/run/docker.sock:/var/run/docker.sock:ro
    
      n8n:
        image: docker.n8n.io/n8nio/n8n
        restart: always
        ports:
          - "127.0.0.1:5678:5678"
        labels:
          - traefik.enable=true
          - traefik.http.routers.n8n.rule=Host(`${SUBDOMAIN}.${DOMAIN_NAME}`)
          - traefik.http.routers.n8n.tls=true
          - traefik.http.routers.n8n.entrypoints=web,websecure
          - traefik.http.routers.n8n.tls.certresolver=mytlschallenge
          - traefik.http.middlewares.n8n.headers.SSLRedirect=true
          - traefik.http.middlewares.n8n.headers.STSSeconds=315360000
          - traefik.http.middlewares.n8n.headers.browserXSSFilter=true
          - traefik.http.middlewares.n8n.headers.contentTypeNosniff=true
          - traefik.http.middlewares.n8n.headers.forceSTSHeader=true
          - traefik.http.middlewares.n8n.headers.SSLHost=${DOMAIN_NAME}
          - traefik.http.middlewares.n8n.headers.STSIncludeSubdomains=true
          - traefik.http.middlewares.n8n.headers.STSPreload=true
          - traefik.http.routers.n8n.middlewares=n8n@docker
        environment:
          - N8N_HOST=${SUBDOMAIN}.${DOMAIN_NAME}
          - N8N_PORT=5678
          - N8N_PROTOCOL=https
          - NODE_ENV=production
          - WEBHOOK_URL=https://${SUBDOMAIN}.${DOMAIN_NAME}/
          - GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
          # Poniższe zmienne pomagają utrzymać mały rozmiar bazy danych SQLite
          - EXECUTIONS_DATA_PRUNE=true
          - EXECUTIONS_DATA_MAX_AGE=168
          - DB_SQLITE_VACUUM_ON_STARTUP=true
        volumes:
          - n8n_data:/home/node/.n8n
    
    volumes:
      traefik_data:
        external: true
      n8n_data:
        external: true
    
  3. Utwórz plik .env ze zmiennymi środowiskowymi:

    nano .env
    
  4. Wklej i uzupełnij poniższą treść:

    # Domena główna, np. twojadomena.com
    DOMAIN_NAME=twojadomena.com
    
    # Subdomena, na której będzie działać N8N, np. n8n
    SUBDOMAIN=n8n
    
    # Powyższy przykład da w rezultacie adres: https://n8n.twojadomena.com
    
    # Strefa czasowa, np. dla harmonogramów (Cron)
    GENERIC_TIMEZONE=Europe/Warsaw
    
    # Adres email dla certyfikatu SSL
    SSL_EMAIL=twoj-email@twojadomena.com
    
  5. Utwórz wolumeny dla Traefik i N8N:

    sudo docker volume create traefik_data
    sudo docker volume create n8n_data
    
  6. Skonfiguruj rekord DNS typu A: W panelu swojego dostawcy DNS dodaj rekord A, który będzie wskazywał na publiczny adres IP Twojego serwera.

    • Typ: A
    • Nazwa/Host: n8n (lub inna subdomena z pliku .env)
    • Wartość/Kieruje na: adres-ip-twojego-serwera
    • TTL: dowolny, np. 3600
  7. Uruchom kontenery:

    sudo docker-compose up -d
    

    Po kilku chwilach Twoja instancja N8N powinna być dostępna pod skonfigurowanym adresem.

Pełna procedura aktualizacji i tworzenia kopii zapasowej
#

Zanim zaktualizujesz N8N, zawsze twórz kopię zapasową.

  1. Zatrzymaj kontenery N8N:

    sudo docker-compose down
    
  2. Utwórz kopię zapasową danych N8N: Polecenie spakuje cały wolumen n8n_data do archiwum tar.gz.

    sudo docker run --rm -v n8n_data:/source -v $(pwd):/backup alpine tar -czf /backup/n8n_data_backup.tar.gz -C /source .
    
  3. Pobierz kopię zapasową i pliki konfiguracyjne na swój komputer: Użyj gcloud compute scp lub innego klienta SCP.

    # Przykład pobrania kopii zapasowej
    gcloud compute scp nazwa-usera@nazwa-maszyny:/sciezka/do/n8n_data_backup.tar.gz .
    
    # Przykład pobrania pliku .env
    gcloud compute scp nazwa-usera@nazwa-maszyny:/sciezka/do/.env .
    
  4. Zaktualizuj N8N: Po wykonaniu kopii zapasowej, wykonaj te kroki, aby zaktualizować N8N do najnowszej wersji.

    # Pobierz najnowszy obraz N8N
    sudo docker-compose pull
    
    # Uruchom ponownie kontenery z nową wersją
    sudo docker-compose up -d
    

Zarządzanie konfiguracją przy użyciu Git
#

Przechowywanie plików docker-compose.yaml i .env (bez wrażliwych danych!) w repozytorium Git to dobra praktyka.

# Sprawdź status zmian
git status

# Dodaj pliki do przechowalni
git add docker-compose.yaml .env

# Zapisz zmiany (commit)
git commit -m "Aktualizacja konfiguracji N8N"

# Wyślij zmiany do zdalnego repozytorium
git push origin main

Monitorowanie i diagnostyka
#

# Sprawdź status kontenerów
sudo docker-compose ps

# Przeglądaj logi wszystkich usług
sudo docker-compose logs

# Śledź logi N8N w czasie rzeczywistym
sudo docker-compose logs -f n8n

Dobre praktyki i bezpieczeństwo
#

  1. Regularne kopie zapasowe: Najlepiej zautomatyzowane.
  2. Kontrola wersji: Używaj Git do śledzenia zmian w konfiguracji.
  3. Aktualizacje: Regularnie aktualizuj N8N, zawsze po wykonaniu kopii zapasowej.
  4. Kontrola dostępu: Używaj zapory sieciowej (firewall) i ogranicz dostęp do niezbędnych portów.
  5. Certyfikaty SSL: Upewnij się, że certyfikaty odnawiają się automatycznie.

To kompleksowe podejście sprawi, że Twoja instancja N8N będzie stabilna, bezpieczna i łatwa w utrzymaniu.

Potrzebujesz pomocy przy konfiguracji?
#

Jeśli proces ten wydaje Ci się zbyt skomplikowany lub po prostu chcesz zaoszczędzić czas, chętnie pomogę. Oferuję profesjonalne wsparcie w zakresie:

  • Pełnej konfiguracji i wdrożenia N8N.
  • Optymalizacji infrastruktury w chmurze.
  • Automatyzacji procesów tworzenia kopii zapasowych i odzyskiwania po awarii.
  • Tworzenia niestandardowych scenariuszy automatyzacji.
Uzyskaj profesjonalną pomoc
Automatyzacja - Ten artykuł jest częścią serii.
Część : Ten Artykuł

Czy ten artykuł był pomocny? Podziel się nim z innymi!