n8n Installation mit Docker Compose
n8n Installation mit Docker Compose, Let's Encrypt SSL Zertifikat und Basic Auth. Bei Systemen, die nicht direkt im Internet erreichbar sind, kann auch die HTTP Methode gewählt werden (dennoch nicht zu empfehlen).
1. Docker Installation (Debian)
1.1 alte Versionen deinstallieren
sudo apt-get remove docker docker-engine docker.io containerd runc
1.2 Repo Installation
1.2.1 Update apt und HTTPS aktivieren
sudo apt-get update sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release sudo mkdir -m 0755 -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
1.2.2 Docker GPG Key hinzufügen
sudo mkdir -m 0755 -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
1.2.3 Repo Setup
echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
1.3 Docker Engine installieren
sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
2. Docker Compose installieren
sudo apt-get install docker-compose-plugin
3. DNS Eintrag
Type: A Name: n8n IP address: <IP_OF_YOUR_SERVER>
4. Docker Compose Datei erstellen
/somedirectory/docker-compose.yml
4.1 HTTP-01 Challenge (Standard TLS Port 443)
4.2 DNS-01 Challenge (Alternative TLS Ports)
Hier muss der DNS Provider entsprechend angepasst werden.
5. .env Datei erstellen
/somedirectory/n8n/.env
# Folder where data should be saved DATA_FOLDER=/root/n8n/ # The top level domain to serve from DOMAIN_NAME=example.com # The subdomain to serve from SUBDOMAIN=n8n # DOMAIN_NAME and SUBDOMAIN combined decide where n8n will be reachable from # above example would result in: https://n8n.example.com # The user name to use for authentication - IMPORTANT ALWAYS CHANGE! N8N_BASIC_AUTH_USER=user # The password to use for authentication - IMPORTANT ALWAYS CHANGE! N8N_BASIC_AUTH_PASSWORD=password # Optional timezone to set which gets used by Cron-Node by default # If not set New York time will be used GENERIC_TIMEZONE=Europe/Berlin # The email address to use for the SSL certificate creation SSL_EMAIL=user@example.com
6. Daten Verzeichnis erstellen
mkdir /somedirectory/n8n
7. Starten und Stoppen
7.1 Start
sudo docker compose up -d
7.1.1 Start mit Ausgabe
sudo docker compose up
7.2 Stopp
sudo docker compose stop
8. Update
8.1 Image aktualisieren
docker pull library/traefik docker pull n8nio/n8n
8.2 Neustart
# Stop current setup sudo docker compose stop # Delete it (will only delete the docker-containers, data is stored separately) sudo docker compose rm # Then start it again, in ingteractive mode to check for errors sudo docker compose up
Wenn alles fehlerfrei läuft, den Prozess mit STRG+C beenden und im Daemon Modus starten
sudo docker compose up -d