n8n auf dem Mac installieren – Praxisleitfaden
💡 Praxisleitfaden 🍎 macOS 🐳 Docker 🛡️ Sicher & robust

n8n lokal auf dem Mac installieren – Schritt für Schritt

Diese Anleitung führt dich (und dein Team) zuverlässig von 0 bis zum laufenden n8n auf dem Mac. Enthalten: Installation mit Docker Desktop, sichere Konfiguration, Backups & Restore, Troubleshooting der häufigsten Stolpersteine – plus ein optionaler Abschnitt für Domain & TLS mit Caddy (wie in deinem Server‑Setup).

Kapitel 1

Voraussetzungen

  • macOS (Intel oder Apple Silicon)
  • Docker Desktop installiert & gestartet
  • Terminal (z. B. iTerm2 oder Apple Terminal)
Tipp: Nach der Docker‑Installation den Mac einmal neu starten, dann Docker Desktop öffnen, bis „Docker is running“ erscheint.
Kapitel 2

Installation & Start (lokal)

2.1 Projektordner anlegen

Terminal
mkdir -p ~/n8n && cd ~/n8n

2.2 docker-compose.yml schreiben

Minimalvariante für den lokalen Start – der Datenspeicher liegt in einem Docker‑Volume.

docker-compose.yml
services:
  n8n:
    image: n8nio/n8n:latest
    ports:
      - "5678:5678"
    volumes:
      - n8n_data:/home/node/.n8n
    restart: unless-stopped
volumes:
  n8n_data:

2.3 Starten

Terminal
docker compose up -d && docker compose ps

Öffne http://localhost:5678 – du solltest den n8n‑Setup‑Wizard sehen.

Kapitel 3

Absicherung (Basic‑Auth & ENCRYPTION_KEY)

Empfohlen für jede produktive Nutzung – auch lokal. Der N8N_ENCRYPTION_KEY schützt gespeicherte Zugangsdaten in n8n.

  1. 3.1 Sicheren Schlüssel erzeugen

    Terminal
    KEY=$(openssl rand -hex 32); echo "N8N_ENCRYPTION_KEY=$KEY"
  2. 3.2 Basic‑Auth definieren

    Beispiel‑Variablen
    export N8N_USER=leo; export N8N_PASS=SuperSicher!2025
  3. 3.3 compose erweitern

    Umgebungsvariablen hinzufügen (ersetze die Platzhalter durch deine Werte):

    docker-compose.yml (Ausschnitt)
    environment:
      - N8N_BASIC_AUTH_ACTIVE=true
      - N8N_BASIC_AUTH_USER=${N8N_USER}
      - N8N_BASIC_AUTH_PASSWORD=${N8N_PASS}
      - N8N_ENCRYPTION_KEY=${KEY}
    Neu starten
    docker compose down && docker compose up -d
    Wenn ein vorhandenes config‑File in ~/.n8n einen anderen Schlüssel enthält, stoppt n8n mit „Mismatching encryption keys“. Lösung: config sichern/entfernen oder den alten Schlüssel wiederverwenden (siehe Troubleshooting).
Kapitel 4

Backups & Wiederherstellung

Alle Flows, Credentials und Einstellungen liegen im Volume n8n_data unter /home/node/.n8n.

4.1 Manuelles Backup des Volumes

Backup ins Projektverzeichnis
docker run --rm -v n8n_n8n_data:/data -v "$PWD":/backup busybox \
  sh -c 'tar czf /backup/n8n_data_$(date +%F_%H%M).tgz -C /data . && ls -lh /backup/*.tgz'

4.2 Wiederherstellung

  1. n8n stoppen: docker compose down
  2. Backup entpacken:
    Restore
    docker run --rm -v n8n_n8n_data:/data -v "$PWD":/backup busybox \
      sh -c 'rm -rf /data/*; tar xzf /backup/DEIN_BACKUP.tgz -C /data'
  3. Besitzrechte fixen (wichtig):
    Rechte
    docker run --rm -v n8n_n8n_data:/data busybox \
      sh -c 'chown -R 1000:1000 /data'
  4. n8n starten: docker compose up -d
Kapitel 5

Troubleshooting (häufige Fälle)

ProblemUrsacheFix
502 Bad Gateway über Reverse‑Proxy Container heißt anders / DNS im Proxy zeigt nicht auf den Service Service‑Name prüfen (docker compose ps), im Proxy reverse_proxy n8n:5678 setzen
"Mismatching encryption keys" Alter config‑Key ≠ N8N_ENCRYPTION_KEY Entweder alten Key als Env setzen ODER config sichern/entfernen und neu starten
n8n startet, aber kein Zugriff Port blockiert / Container nicht erreichbar Ports prüfen (lsof -i :5678), Logs ansehen: docker compose logs -n 200 n8n
Permission‑Hinweis zu config Dateirechte zu weit N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true setzen oder Rechte korrigieren
Logs & Status
docker compose ps && docker compose logs -n 200 n8n
Kapitel 6 (optional)

Domain & TLS mit Caddy (Reverse‑Proxy)

Für eigenen Server (z. B. Hetzner). Voraussetzung: A‑Record zeigt auf deine Server‑IP.

Caddyfile minimal
n8n.example.com {
  encode zstd gzip
  reverse_proxy n8n:5678
}

Compose‑Zusatz (Caddy neben n8n betreiben):

docker-compose.yml (+caddy)
services:
  caddy:
    image: caddy:2
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile:ro
      - caddy_data:/data
      - caddy_config:/config
    depends_on: [n8n]
volumes:
  caddy_data:
  caddy_config:
Caddy holt automatisch Let’s‑Encrypt‑Zertifikate. Achte darauf, dass Port 80/443 erreichbar sind (Firewall/Security‑Groups).
Kapitel 7

FAQ

Ist das kostenlos? n8n Community‑Edition ist kostenlos. Eigene Server‑Kosten (z. B. Hetzner) fallen separat an.

Bleibt der Dienst nach Neustart erreichbar? Ja. restart: unless-stopped sorgt dafür, dass Docker den Container beim Systemstart wieder startet.

Wo liegen meine Daten? Im Docker‑Volume n8n_data (/home/node/.n8n). Sichere dieses Volume regelmäßig (siehe Kapitel 4).

Wie sichere ich den Zugriff? Nutze Basic‑Auth, setze einen starken N8N_ENCRYPTION_KEY, und betreibe n8n hinter einem TLS‑Proxy (Caddy/Traefik/Nginx).

Kurzreferenz

Cheat‑Sheet (Copy & Paste)

Projekt anlegen
mkdir -p ~/n8n && cd ~/n8n
Compose minimal
cat > docker-compose.yml <<'YAML'
services:
  n8n:
    image: n8nio/n8n:latest
    ports:
      - "5678:5678"
    volumes:
      - n8n_data:/home/node/.n8n
    restart: unless-stopped
volumes:
  n8n_data:
YAML
Start/Stop
docker compose up -d
# ...später stoppen:
docker compose down
Logs
docker compose logs -n 200 n8n
© – n8n Praxisleitfaden. Du darfst dieses Dokument frei teilen und anpassen.