Aller au contenu principal

Portainer (retiré)

Retiré le 2026-11-03

Doublon de Dozzle pour les logs et du CLI docker compose, dont le dépôt git est la source de vérité, pour le prix d'un socket Docker monté en direct.

  • Données conservées : volume config_portainer-data et /mnt/ssd/backups/portainer/ (archive finale).
  • Retirés : conteneur, tuile Homepage, client OIDC Authelia, sauvegarde restic du volume ; Dozzle remplace Portainer comme témoin local de la sonde d'outillage.

La suite décrit le service tel qu'il était.

Interface d'administration Docker. Pratique pour inspecter, mauvaise idée pour déployer : la source de vérité des conteneurs de penny reste /mnt/ssd/config/docker/docker-compose.yml.

Imageportainer/portainer-ee:latest
URLportainer.home.gabin-simond.fr
AuthOIDC Authelia, connexion automatique, formulaire interne masqué
Limite mémoire256 Mo

Les exceptions au socket-proxy​

Presque tous les conteneurs passent par socket-proxy pour parler à l'API Docker. Portainer monte /var/run/docker.sock directement, parce qu'il a besoin d'endpoints que le proxy ne relaie pas.

Il n'est pas le seul — corrigé le 2026-09-24

Cette page affirmait « le seul ». Le relevé en donne deux : portainer et beszel-agent, qui lit les métriques par conteneur. Les deux montent en ro.

Et ro protège moins qu'il n'en a l'air : le drapeau porte sur le nœud de système de fichiers, pas sur ce qu'on envoie dans la socket. Un processus qui peut ouvrir cette socket peut émettre n'importe quel appel de l'API Docker, y compris créer un conteneur privilégié. ro n'est pas une réduction de privilège — c'est l'accès lui-même qui est le privilège.

C'est la surface d'attaque la plus large du homelab

Un accès à Portainer est un accès à l'API Docker, donc à l'hôte. C'est la raison pour laquelle le formulaire de connexion interne est masqué et l'accès passe uniquement par Authelia. Toute régression sur ce point est une élévation de privilèges — elle s'est déjà produite deux fois, en mai puis en juin 2026.

Le healthcheck utilise un busybox monté depuis l'hôte : l'image est distroless, elle n'a ni wget ni curl.

Utiliser Portainer sans se tirer dessus​

À faire : lire les logs, inspecter un réseau, voir l'usage disque d'un volume, redémarrer un conteneur en dépannage.

À ne pas faire : créer un conteneur, éditer une stack, changer un réseau. Rien de tout ça n'est versionné, et le prochain docker compose up -d l'écrase sans prévenir.