🧪 Tech-Lab & How-To Base von Sebastian Teßmann • Zu den Produktivservices: tessmann-digital.de

📚 Archiv

Supply Chain Security: Docker-Updates absichern mit Trivy und Watchtower CVE-2026-98432: Warum ein Kernel-Update allein nicht reicht (und echtes System-Hardening) Home Assistant vs. Alexa: Das echte Smart Home (inkl. Pi-Setup, HACS & FRITZ!Box) Zero-Day abgewehrt: Die Anatomie der PHP-Lücke (CVE-2026-109618) und der ultimative Docker-Schutz Zero-Bloat Hosting: Nginx Proxy Manager, Apache & Fail2ban sicher unter Docker vereinen Checkmk Community Edition auf Debian 13: Der ultimative Guide (Installation, Distributed Monitoring, Custom Plugins & Gotify) Debian 13 vs. Windows Server im Enterprise-Einsatz: Performance, Härtung & Top 20 CLI-Befehle Cyberkrieg gegen den Mittelstand: Unsere Migration auf Proxmox, OPNsense & Zero-Trust Open Source vs. Payware: Der ehrliche Vergleich für KMU & IT-Infrastrukturen Bye-bye VMware: Mein Weg über Hyper-V zu Proxmox VE Tutorial: High-Performance Cloud mit Seafile auf Debian 13 & Proxmox VE Tutorial: Portainer EE auf CE downgraden & sicherer Host-Umzug Tutorial: CorePlan via Docker deployen (HTTPS out-of-the-box) Tutorial: Eigenes Docker Image bauen (Apache, PHP, Auto-SSL & HTTP zu HTTPS Redirect) Proxmox Unified Console (PUC): Das All-in-One Dashboard für PVE, PBS & PMG Eigener Bitcoin Solo Pool: Full Node (bitcoind), public-pool Backend & individuelles PHP-Dashboard im Docker-Stack OPNsense: HAProxy als Reverse Proxy mit Let's Encrypt SSL-Offloading & SNI / ACL-Routing Mobiles Arbeiten & Kanzlei-Zugriff: WireGuard VPN auf der FRITZ!Box, Windows & iPhone inkl. NAS-SMB-Mount Tschüss Windows, hallo Pinguin: Der ehrliche Leitfaden für den Linux-Umstieg (und warum CachyOS mein Gaming rettete) Eigener Bitcoin Solo-Mining-Pool: Public-Pool & Pruned Full Node im Docker-Homelab Gaming auf Linux: Kompletter Umstieg von Windows zu CachyOS (Kernel, Steam, Heroic & MangoHud) Docker Container absichern: Rootless, Read-Only Filesystems & Linux Capabilities Portainer CE auf Docker: Schritt-für-Schritt Setup mit persistenten Volumes & Hardening Docker Engine & Compose V2 auf Debian/Ubuntu: Saubere Installation via Official Repository E-Mail Deliverability: SPF, DKIM & DMARC richtig konfigurieren (Schritt-für-Schritt) Proxmox VE & OPNsense: IPv6 /64 Subnetting (/80 WAN Transit & /96 LAN Segmentierung) OPNsense auf Proxmox VE: Vollständiges Setup von ISO-Download bis Hardening & DNSmasq Proxmox VE auf Debian 12 (Bookworm) installieren & Routed Network (vmbr0/vmbr1) einrichten

Tutorial: Portainer EE auf CE downgraden & sicherer Host-Umzug

Wer sein Docker-Homelab oder Micro-SaaS skaliert, stößt bei der Portainer Enterprise Edition (EE) schnell an eine harte Wand: das 5-Node-Limit. Für Solo-Admins sind die teuren Enterprise-Features ohnehin oft unnötiger Ballast. Die Lösung? Ein schnelles Downgrade auf die schlanke Community Edition (CE).

Wichtig: Da die EE-Version die Datenbankstruktur verändert, können wir nicht einfach das Docker-Image tauschen. Wir müssen die Datenbank zwingend vorher mit einem speziellen Befehl auf CE zurückrollen. Zudem ziehen wir die Management-Oberfläche architektonisch sauber auf einen dedizierten Host um.


1. Sauberes Backup erstellen

Bevor wir die Datenbank anfassen, sichern wir den aktuellen Stand. Wir nutzen einen temporären Ubuntu-Container, der sich an die Volumes des laufenden Portainers hängt, und packen alles in ein Tar-Archiv:

docker run --rm --volumes-from portainer -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /data

Sobald das Backup sicher in deinem aktuellen Verzeichnis liegt, stoppen und entfernen wir den alten Portainer-Container:

docker stop portainer && docker rm portainer

2. Der Datenbank-Rollback

Das ist der entscheidende Schritt! Wir starten das offizielle EE-Image einmalig interaktiv und hängen das Flag --rollback-to-ce an, um das Datenbankschema wieder kompatibel für die Community Edition zu machen:

docker run -it --name portainer-database-rollback -v portainer_data:/data portainer/portainer-ee:latest --rollback-to-ce

Wenn der Prozess erfolgreich durchgelaufen ist, kannst du diesen temporären Container einfach wieder löschen (docker rm portainer-database-rollback).


3. Daten auf den neuen Host umziehen

Jetzt schieben wir unser vorbereitetes Volume sicher auf den neuen Management-Knoten (z. B. Docker-mgmt). Das geht am einfachsten über rsync:

rsync -avz /var/lib/docker/volumes/portainer_data root@IP_NEUER_HOST:/var/lib/docker/volumes/

4. Portainer CE auf dem neuen Host starten

Logge dich nun auf deinem neuen Management-Host ein. Erstelle eine docker-compose.yml und mounte das soeben kopierte Volume:

version: '3.8'

services:
  portainer:
    image: portainer/portainer-ce:latest
    container_name: portainer
    restart: always
    ports:
      - "8000:8000"
      - "9443:9443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - portainer_data:/data

volumes:
  portainer_data:
    external: true

Führe docker compose up -d aus und öffne dein neues Dashboard. Du wirst sehen: Alle Stacks, Container und Environments sind genau da, wo sie hingehören – völlig ohne Lizenz-Warnungen.


5. Den alten Host als Agent einbinden

Damit dein neuer Management-Host deinen alten Produktions-Server wieder steuern kann, startest du auf dem alten Server einfach den schlanken Portainer-Agenten. Danach fügst du das Environment im neuen Dashboard unter "Environments" hinzu.

Dein Ergebnis: Eine professionell getrennte Infrastruktur, keine Limits mehr und 100 % Zero-Bloat!