diff --git a/docs/docker/portainer/portainer.md b/docs/docker/portainer/portainer.md index 01b4d19..8e22268 100644 --- a/docs/docker/portainer/portainer.md +++ b/docs/docker/portainer/portainer.md @@ -9,9 +9,9 @@ Die Verbindung erfolgt ausschließlich über einen SSH-Tunnel. --- -# Architektur +## Architektur -## Übersicht +### Übersicht - Heimserver: Portainer EE - Hetzner-Server: Portainer Agent @@ -20,7 +20,7 @@ Die Verbindung erfolgt ausschließlich über einen SSH-Tunnel. --- -## Netzwerkarchitektur mit Namespace- und Layer-Trennung +### Netzwerkarchitektur mit Namespace- und Layer-Trennung ``` ┌────────────────────────────┐ @@ -69,7 +69,7 @@ ssh -L 0.0.0.0:9002:localhost:9001 root@hetzner-ip │ │ └──────────────────────────────────────────────────────┘ ``` -# Funktionsweise +## Funktionsweise 1. Der Portainer-Agent läuft auf Hetzner und lauscht auf Port 9001. 2. Dieser Port ist **nicht öffentlich relevant**, da keine direkte Nutzung erfolgt. @@ -77,10 +77,9 @@ ssh -L 0.0.0.0:9002:localhost:9001 root@hetzner-ip - Lokaler Port 9002 → Hetzner localhost:9001 4. Portainer EE verbindet sich intern über: 172.17.0.1:9002 (docker bridge) 5. Der gesamte Traffic läuft verschlüsselt über SSH. -``` -# 1. Portainer-Agent auf Hetzner -## docker-compose.yml +## 1. Portainer-Agent auf Hetzner +### docker-compose.yml ``` yaml version: "3.8" @@ -101,12 +100,12 @@ Starten: docker compose up -d Prüfen: ss -tlnp | grep 9001 Erwartet: 0.0.0.0:9001 -# 2. SSH-Tunnel automatisieren (Heimserver) -## autossh installieren +## 2. SSH-Tunnel automatisieren (Heimserver) +### autossh installieren apt update apt install autossh -y -## systemd Service anlegen +### systemd Service anlegen Datei: /etc/systemd/system/portainer-hetzner-tunnel.service @@ -136,9 +135,10 @@ RestartSec=5 [Install] WantedBy=multi-user.target +``` -## Service aktivieren -``` snippet +### Service aktivieren +```snippet systemctl daemon-reload systemctl enable portainer-hetzner-tunnel systemctl start portainer-hetzner-tunnel @@ -164,14 +164,14 @@ Hinweis: 172.17.0.1 ist die Docker-Bridge-IP des Hosts Portainer läuft im Container Der Tunnel läuft auf dem Host -# Sicherheitsmodell +## Sicherheitsmodell - Port 9001 nicht öffentlich erreichbar - Kommunikation ausschließlich über SSH - SSH-Key-basierte Authentifizierung - Automatischer Reconnect via autossh - Kein zusätzlicher VPN erforderlich -# Troubleshooting +## Troubleshooting |Problem |Ursache | Prüfen |connection refused |Agent nicht auf 9001 gemappt | - ports9001:9001 in der docker-compose |SSH channel open failed |Agent lauscht nicht |keys vorhanden?