Service auto-hébergé
Studio-Saelix/sencho avatar
Studio-Saelix/sencho

Sencho : un plan de contrôle Docker Compose auto-hébergé

Plateforme de gestion Docker Compose auto-hébergée. Pour un workflow de composition en premier à un ou plusieurs hôtes.

459 étoiles18 forksTypeScriptAGPL-3.0

En bref

De quoi s’agit-il ?
Une plateforme de gestion à conteneur unique pour les piles Compose, avec prise en charge multi-nœuds via jetons API et proxy WebSocket.
À qui s’adresse-t-il ?
Sencho est un projet pré-1.0 qui couvre déjà un large éventail de tâches de gestion Compose, des opérations sur un seul nœud au contrôle de flotte sans SSH. Son accent sur le maintien des fichiers Compose comme source de vérité et sa gestion explicite de la connectivité des nœuds distants via jetons et WebSockets le distinguent des tableaux de bord simples.
Puis-je l’utiliser commercialement ?
Oui, sous conditions strictes. AGPL-3.0 est une licence à copyleft réseau : si des personnes utilisent une version modifiée via un réseau, par exemple comme service hébergé, vous devez leur proposer son code source sous la même licence.
Est-il encore maintenu ?
Oui. Les derniers commits datent d’il y a 1 jour.
En quel langage est-il écrit ?
Principalement TypeScript, d’après les statistiques de langage de GitHub.

Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 15 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.

ANALYSE OPEN SOURCE APPROFONDIE

Gestion Compose pour une machine ou une flotte

Sencho est une plateforme de gestion Docker Compose auto-hébergée destinée aux ingénieurs DevOps, aux équipes de plateforme, aux administrateurs système et aux utilisateurs de homelab. Elle s'exécute comme un conteneur unique sur votre matériel et fournit une interface graphique pour les opérations Compose courantes : déploiement de piles, édition de fichiers Compose, visualisation des journaux, redémarrage de conteneurs, navigation dans les volumes et récupération après panne. Les fichiers Compose restent sur le système de fichiers hôte et demeurent la source de vérité ; Sencho ne remplace pas le flux de travail sur disque. Le projet est pré-1.0, et le README avertit qu'il évolue rapidement, donc les utilisateurs doivent examiner les limitations connues et valider leur propre configuration avant de déployer sur une infrastructure critique.

Multi-nœuds sans SSH

Le support multi-nœuds faisait partie de l'architecture dès le départ. Chaque instance Sencho est le même nœud autonome, qu'elle s'exécute seule ou comme partie d'une flotte. Pour gérer une autre machine, vous installez un second Sencho dessus et connectez les deux avec un jeton API de longue durée ; le tableau de bord principal agit alors comme un proxy HTTP et WebSocket authentifié à travers la flotte. Le nœud distant n'exécute pas SSH pour Sencho, n'expose pas son socket Docker sur le réseau et n'exécute pas de processus d'agent séparé. Pour les nœuds derrière NAT ou des pare-feu stricts, l'agent pilote établit un tunnel WebSocket sortant unique vers le primaire, de sorte que l'hôte distant n'ouvre aucun port entrant. Le README recommande d'utiliser TLS, un VPN ou un réseau privé pour tout lien non fiable.

Cycle de vie des piles, observabilité et outils de flotte

La liste des fonctionnalités couvre le cycle de vie des piles, l'observabilité, la gestion de flotte, l'automatisation, la sécurité et les opérations. Les outils de pile incluent des déploiements atomiques avec rollback automatique en cas d'échec, un éditeur Monaco avec aperçu des différences et rollback en un clic vers les déploiements précédents, des mises à jour à porte de santé qui retiennent les déploiements jusqu'à ce que les vérifications passent, des piles sourcées via Git, la détection de dérive qui compare les conteneurs en cours d'exécution au modèle Compose effectif, des garde-fous d'environnement et de secrets, des vérifications de portabilité de stockage, des vérifications préalables via Compose Doctor, des étiquettes de pile et un magasin d'applications avec les modèles LinuxServer.io. L'observabilité inclut la recherche et le streaming de journaux agrégés à travers la flotte, les statistiques de conteneurs en direct, les vérifications de santé, les notifications de mise à jour d'images, les alertes de seuil pour CPU, mémoire et réseau, un journal d'audit en lecture seule, les vues de topologie réseau et les indicateurs de dérive documentaire. Les fonctionnalités de flotte incluent les dispositions en grille et topologie, les instantanés de flotte de Compose et d'environnement, la mise en quarantaine et l'épinglage via Fleet Federation, les opérations d'étiquettes en masse, l'arrêt et l'élagage à l'échelle de la flotte, l'exportation de dossier de flotte, l'audit des étiquettes Docker, les mises à jour à distance et les étiquettes de nœud. L'automatisation inclut les politiques d'auto-réparation, les politiques de mise à jour automatique, les opérations planifiées sur cron, les webhooks et les Blueprints déclaratifs avec détection de dérive. Les fonctionnalités de sécurité incluent le SSO avec OIDC et préréglages, l'authentification à deux facteurs avec TOTP, le RBAC avec rôles admin et lecteur, l'analyse des vulnérabilités via Trivy avec suppression VEX et export SARIF, un inspecteur de réseau Compose et le support de registres privés. Les opérations incluent des archives de piles hors site vers un stockage compatible S3, le routage de notifications vers Slack et Discord, la recherche globale et une vue des ressources pour les images, volumes et réseaux.

Contrôle d'accès et socket Docker

Sencho communique avec Docker via le socket /var/run/docker.sock de l'hôte. Le README déclare que monter ce socket accorde à Sencho le même privilège que sudo docker sur l'hôte, ce qui est le même modèle utilisé par Portainer, Dockge et Komodo. Pour un isolement plus strict, la documentation décrit l'exécution avec un utilisateur de conteneur non root et le placement d'un proxy inverse imposant l'authentification devant Sencho. Les fonctionnalités de contrôle d'accès énumérées ci-dessus, y compris SSO, 2FA, RBAC et jetons API, font partie de cette stratégie, mais le README ne prétend pas que Sencho lui-même est une frontière de sécurité ; il note que l'utilisateur doit gérer le risque d'accès au socket. L'extrait de licence ne dit rien sur la posture de sécurité, le support ou la garantie ; c'est uniquement une licence logicielle.

Télémétrie et traitement des données

Le README déclare que Sencho n'émet pas de télémétrie, d'analyses ou de rapports de crash, et ne fait aucun appel sortant vers des points de terminaison contrôlés par Sencho. Les métadonnées de pile, l'inventaire des conteneurs et l'activité des utilisateurs ne quittent jamais votre instance. Cette affirmation est spécifique au projet lui-même ; les composants tiers comme le scanner Trivy optionnel peuvent avoir leur propre comportement, mais le README n'en discute pas. Les métadonnées du dépôt listent 394 étoiles et 16 forks, mais le README ne fournit aucun benchmark de performance ou de fiabilité.

Démarrage rapide avec un conteneur unique

Le démarrage rapide utilise un conteneur unique. Le README fournit une définition de service docker compose avec l'image saelix/sencho:latest, un mappage de port 1852:1852, un montage de volume du socket Docker et d'un répertoire de données, et des variables d'environnement COMPOSE_DIR et DATA_DIR. Il spécifie également une règle de chemin Compose 1:1 : le chemin hôte doit correspondre au chemin conteneur pour le répertoire compose. Après avoir exécuté docker compose up -d, vous ouvrez http://your-server:1852 et créez un compte administrateur. Le README recommande de toujours placer un proxy inverse avec terminaison TLS devant Sencho en production. Il existe également une alternative docker run, mais le README ne décrit pas de configuration au-delà de ces bases ; pour le guide complet, il renvoie au guide de démarrage rapide.

Licence, niveau Communauté et Admiral

Sencho est un logiciel libre open-source sous AGPL-3.0. Le README déclare que le niveau Communauté inclut tout ce qui est listé avec des nœuds et utilisateurs illimités. Un plan payant appelé Admiral ajoute une build durcie, Recovery Vault avec des instantanés hors site gérés, un support prioritaire et des fonctionnalités de gouvernance comme le RBAC avancé, LDAP/Active Directory, l'export complet du journal d'audit et la détection d'anomalies. La réplication de politiques Fleet Sync et les identifiants AWS ECR nécessitent actuellement également Admiral, bien que le README appelle cela des restrictions de disponibilité temporaires. L'extrait de licence (préambule et termes de l'AGPL-3.0) accorde le droit de copier, distribuer et modifier le logiciel, et exige que les versions modifiées exécutées sur un serveur réseau soient rendues disponibles aux utilisateurs. Il ne dit rien sur la garantie ou le support ; la licence les rejette explicitement dans ses conditions standard, mais l'extrait ne contient pas ce texte. Le README mentionne également des marques commerciales et un fichier TRADEMARKS.md séparé.

Conclusion éditoriale

Sencho est un projet pré-1.0 qui couvre déjà un large éventail de tâches de gestion Compose, des opérations sur un seul nœud au contrôle de flotte sans SSH. Son accent sur le maintien des fichiers Compose comme source de vérité et sa gestion explicite de la connectivité des nœuds distants via jetons et WebSockets le distinguent des tableaux de bord simples. Le README est clair sur les implications de sécurité du socket Docker et le statut pré-1.0 du projet, et la licence AGPL-3.0 garde le code libre tout en exigeant la publication des modifications côté réseau.

Sources officielles

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Notes de la communauté

Notes de la communauté