docs(portainer) portainer.md neu

This commit is contained in:
2026-02-25 20:43:37 +01:00
parent 13da68bf64
commit 1a2e2cf580

View File

@@ -9,9 +9,9 @@ Die Verbindung erfolgt ausschließlich über einen SSH-Tunnel.
--- ---
# Architektur ## Architektur
## Übersicht ### Übersicht
- Heimserver: Portainer EE - Heimserver: Portainer EE
- Hetzner-Server: Portainer Agent - 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. 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. 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 - Lokaler Port 9002 → Hetzner localhost:9001
4. Portainer EE verbindet sich intern über: 172.17.0.1:9002 (docker bridge) 4. Portainer EE verbindet sich intern über: 172.17.0.1:9002 (docker bridge)
5. Der gesamte Traffic läuft verschlüsselt über SSH. 5. Der gesamte Traffic läuft verschlüsselt über SSH.
```
# 1. Portainer-Agent auf Hetzner ## 1. Portainer-Agent auf Hetzner
## docker-compose.yml ### docker-compose.yml
``` yaml ``` yaml
version: "3.8" version: "3.8"
@@ -101,12 +100,12 @@ Starten: docker compose up -d
Prüfen: ss -tlnp | grep 9001 Prüfen: ss -tlnp | grep 9001
Erwartet: 0.0.0.0:9001 Erwartet: 0.0.0.0:9001
# 2. SSH-Tunnel automatisieren (Heimserver) ## 2. SSH-Tunnel automatisieren (Heimserver)
## autossh installieren ### autossh installieren
apt update apt update
apt install autossh -y apt install autossh -y
## systemd Service anlegen ### systemd Service anlegen
Datei: Datei:
/etc/systemd/system/portainer-hetzner-tunnel.service /etc/systemd/system/portainer-hetzner-tunnel.service
@@ -136,9 +135,10 @@ RestartSec=5
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target
```
## Service aktivieren ### Service aktivieren
``` snippet ```snippet
systemctl daemon-reload systemctl daemon-reload
systemctl enable portainer-hetzner-tunnel systemctl enable portainer-hetzner-tunnel
systemctl start 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 Portainer läuft im Container
Der Tunnel läuft auf dem Host Der Tunnel läuft auf dem Host
# Sicherheitsmodell ## Sicherheitsmodell
- Port 9001 nicht öffentlich erreichbar - Port 9001 nicht öffentlich erreichbar
- Kommunikation ausschließlich über SSH - Kommunikation ausschließlich über SSH
- SSH-Key-basierte Authentifizierung - SSH-Key-basierte Authentifizierung
- Automatischer Reconnect via autossh - Automatischer Reconnect via autossh
- Kein zusätzlicher VPN erforderlich - Kein zusätzlicher VPN erforderlich
# Troubleshooting ## Troubleshooting
|Problem |Ursache | Prüfen |Problem |Ursache | Prüfen
|connection refused |Agent nicht auf 9001 gemappt | - ports9001:9001 in der docker-compose |connection refused |Agent nicht auf 9001 gemappt | - ports9001:9001 in der docker-compose
|SSH channel open failed |Agent lauscht nicht |keys vorhanden? |SSH channel open failed |Agent lauscht nicht |keys vorhanden?