n8n auf VPS installieren

Komplettanleitung: n8n auf AlmaLinux 9 mit Docker + HTTPS (Let’s Encrypt)

Voraussetzungen:

  • AlmaLinux 9 Minimal-Installation (Root-Zugang)
  • Domain zeigt per A-Record auf die Server-IP
  • Ports 80, 443, 5678 erreichbar (keine Provider-Blockade)

1. System vorbereiten

dnf update -y
dnf install -y epel-release curl nano git firewalld
systemctl enable --now firewalld

firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --add-port=5678/tcp --permanent
firewall-cmd --reload

2. Docker & Compose installieren

dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
dnf install -y docker-ce docker-ce-cli containerd.io
systemctl enable --now docker

curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

3. n8n-Verzeichnis & Docker Compose

mkdir -p /opt/n8n && cd /opt/n8n
mkdir n8n_data

docker-compose.yml Beispiel:

version: "3"
services:
  n8n:
    image: n8nio/n8n
    container_name: n8n
    restart: always
    ports:
      - "5678:5678"
    environment:
      - N8N_BASIC_AUTH_ACTIVE=true
      - N8N_BASIC_AUTH_USER=admin
      - N8N_BASIC_AUTH_PASSWORD=einSicheresPasswort
      - N8N_HOST=n8n.deinedomain.tld
      - N8N_PORT=5678
      - N8N_PROTOCOL=https
      - N8N_BASE_URL=https://n8n.deinedomain.tld
      - N8N_SECURE_COOKIE=true
      - TZ=Europe/Berlin
    volumes:
      - ./n8n_data:/home/node/.n8n

4. Let’s Encrypt Zertifikat

dnf install -y certbot
certbot certonly --standalone -d n8n.deinedomain.tld

5. Berechtigungen sicher setzen

groupadd -f ssl-cert
usermod -aG ssl-cert nginx
chown root:ssl-cert /etc/letsencrypt/archive/n8n.deinedomain.tld/privkey1.pem
chmod 640 /etc/letsencrypt/archive/n8n.deinedomain.tld/privkey1.pem

6. Nginx Reverse Proxy

dnf install -y nginx

Nginx-Konfiguration (z.B. /etc/nginx/conf.d/n8n.conf):

server {
    listen 80;
    server_name n8n.deinedomain.tld;

    location /.well-known/acme-challenge/ {
        root /var/www/letsencrypt;
    }

    location / {
        return 301 https://$host$request_uri;
    }
}

server {
    listen 443 ssl http2;
    server_name n8n.deinedomain.tld;

    ssl_certificate     /etc/letsencrypt/live/n8n.deinedomain.tld/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/n8n.deinedomain.tld/privkey.pem;

    location / {
        proxy_pass http://localhost:5678;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}
nginx -t
systemctl enable --now nginx

7. n8n starten

cd /opt/n8n
docker-compose up -d

8. HTTPS testen

Im Browser aufrufen: https://n8n.deinedomain.tld

9. Automatische Verlängerung konfigurieren

echo "0 3 * * * root certbot renew --post-hook 'systemctl reload nginx'" > /etc/cron.d/certbot-renew
Autoren-Avatar
Jan Schumacher CEO
Gründer der webhoster.de AG, zweifacher Familienvater und Content-Creator aus Überzeugung – bringt jahrzehntelange Hosting-Erfahrung in Videos, Tutorials & Artikeln auf den Punkt.
Nach oben scrollen