v1.3.3Version stable

Version stable v1.3.3

Interface web

Installer l’interface légère derrière son proxy HTTPS. Elle s’ajoute à l’agent serve.

Après un cycle en échec, le tableau de bord affiche le dernier relevé complet avec son heure, en lecture seule. Avant le premier cycle réussi, aucun historique n’est disponible.

1. Installer en lecture seule

Depuis la racine du clone v1.3.3, sur une installation neuve :

cd examples/ui
python3 prepare.py --self-signed
docker compose up -d

Le script demande un identifiant et un mot de passe et prépare secrets.local. Ouvrez https://localhost:8443 sur la machine hôte. Le certificat autosigné dure sept jours et convient au test local ; le navigateur signalera qu’il n’est pas reconnu.

Cette stack démarre son propre agent. Arrêtez un agent précédent si son port entre en conflit. Seul l’agent reçoit le socket Docker.

2. Variante avec actions manuelles

Sur une autre installation neuve, utilisez cette préparation à la place de la précédente :

cd examples/ui
python3 prepare.py --actions --self-signed

Dans .env, définissez l’origine exacte, sans slash final :

UI_ORIGIN=https://localhost:8443
docker compose -f compose.yaml -f compose.actions.yaml up -d

Pour convertir une installation existante, arrêtez la stack et sauvegardez secrets.local dans un emplacement privé hors dépôt avant de préparer de nouveaux secrets. Le script refuse d’écraser les secrets existants.

3. Vérifier les opérations

L’interface actualise l’état toutes les cinq secondes. Une donnée inconnue apparaît avec un tiret ; des données trop anciennes désactivent les actions. Les conteneurs arrêtés/créés peuvent être démarrés ; ceux en cours d’exécution peuvent être arrêtés ou redémarrés.

HTTP 202 signifie « accepté », pas « terminé ». Vérifiez le résultat de l’action. La file accepte une opération en attente ; une action expire après 60 secondes et le cooldown manuel est de 30 secondes par conteneur. Les résultats récents sont en mémoire.

4. Passer à un domaine réel

Exécutez la préparation sans --self-signed et fournissez un certificat reconnu et sa clé sous les noms tls.crt et tls.key attendus par l’exemple. Réglez UI_BIND, UI_PORT et, pour les actions, UI_ORIGIN sur votre domaine HTTPS exact. Conservez l’agent sur le réseau privé.

Le jeton d’action reste côté proxy et ne doit jamais être livré au navigateur. Les actions requièrent explicitement --allow-actions, --action-origin, --action-token-file et --state-file ; elles sont incompatibles avec --dry-run. Le fichier Compose dédié configure cet ensemble.

Arrêter et mettre à jour

Utilisez les mêmes options -f que lors du démarrage pour docker compose down. Gardez les volumes et les secrets. Lors d’une mise à jour, alignez les versions agent/UI, puis tirez les images et recréez les deux services pour renouveler la résolution DNS du proxy.

Protéger un conteneur des actions manuelles

Depuis la version 0.0.64, ajoutez ce label sous le service concerné dans votre fichier Compose :

labels:
  monit-docker.protected: "true"

Appliquez le changement avec docker compose up -d NOM_DU_SERVICE. L’agent lit les labels du conteneur recréé. Celui-ci reste visible avec ses métriques et le badge « Protected », mais les boutons Démarrer, Arrêter et Redémarrer sont désactivés. L’API refuse aussi ces actions avec HTTP 403 et container_protected.

Sans ce label, les actions restent possibles. Les valeurs explicites false, 0, no et off désactivent la protection ; les autres valeurs protègent le conteneur. Les règles automatiques continuent de fonctionner. Ce label ne limite pas les droits d’un accès direct à Docker.

Essayer la démo publique

La démo en direct utilise de vrais conteneurs sur un environnement partagé. Les actions de chaque visiteur sont visibles par tous. Seuls monit-demo-web et monit-demo-worker sont manipulables ; l’agent, l’interface et le proxy HTTPS sont protégés.

Un conteneur de test arrêté est automatiquement démarré après cinq minutes d’arrêt, lors de la vérification suivante (une fois par minute). Les conteneurs déjà en marche sont laissés tels quels. Ce rétablissement est propre au serveur de démonstration : il n’est pas activé sur vos installations. Il ne supprime ni conteneur ni volume et ne vide pas l’historique récent de l’agent.

Journal persistant

Ouvrez le Journal de la démo pour consulter les vraies actions et leurs résultats, filtrer les événements et exporter la page affichée en CSV ou JSONL. Les actions manuelles de démonstration sont anonymes et visibles par tous.

La version 0.0.66 a introduit une page Journal privée avec filtres et exports CSV/JSONL. Consultez le guide d’activation du journal.

Maintenance temporaire

La démo propose aussi des pauses de 15 minutes ou une heure sur ses conteneurs de test. Elles suspendent les actions des règles automatiques de cet agent, pas les politiques Docker ni la récupération serveur après cinq minutes. La démo n’a pas de règle de correction automatique : elle illustre les commandes, leur persistance et le journal. Consultez le guide de maintenance pour activer la fonction sur votre installation.

Depuis la 0.0.74, cliquez sur le conteneur, l’origine manuelle ou automatique, ou le résultat pour combiner les filtres du journal. Les filtres actifs apparaissent au-dessus des événements et se retirent individuellement ; le bouton Clear les efface tous. Chaque changement revient à la première page. Les événements en attente et en cours partagent le filtre Pending. Le filtre du conteneur utilise son identifiant complet, quand il est disponible, sinon son nom. Les exports suivent la page et les filtres appliqués. Un clic sur une étiquette remplace les modifications du formulaire qui n’ont pas encore été appliquées.

Depuis la 0.0.75, le bouton View action ouvre les étapes conservées d’une action dans une fenêtre dédiée, de la plus ancienne à la plus récente. On y retrouve l’origine, l’acteur, l’hôte, le conteneur, la raison et la durée enregistrée, indépendamment des filtres du journal. Load older events poursuit la recherche à la demande ; Refresh action actualise l’historique. Des étapes manquantes ne permettent pas de déduire l’état actuel de l’action. L’affichage est limité à 500 événements. Fermer la fenêtre conserve la page et les filtres du journal. Les événements sans identifiant de corrélation n’ont pas ce bouton.

Depuis la 0.0.76, l’historique affiche immédiatement les événements correspondants déjà chargés dans le journal pendant la vérification auprès de l’agent. Cet aperçu est signalé comme provisoire, puis remplacé par la réponse reçue. En cas d’échec, il reste visible avec une indication précisant qu’il peut être incomplet ou ancien. La validation des textes ordinaires du journal est également accélérée, avec les mêmes règles d’échappement.