--- title: Operational created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, tracking, status-page, monitoring, go, golang] confidence: medium contested: false sources: [https://selfh.st/apps/operational, https://github.com/nicholasgasior/operational] --- # Operational 📊 > Une status page open source Ă©crite en Go, lĂ©gĂšre et sans dĂ©pendance, pour publier l'Ă©tat de vos services auto-hĂ©bergĂ©s. | MĂ©tadonnĂ©e | Valeur | | :--- | :--- | | **Site web** | https://operational.nicholasgasior.com/ | | **GitHub** | https://github.com/nicholasgasior/operational | | **License** | MIT | | **Langage principal** | Go | | **Étoiles GitHub** | ⭐17 | | **DerniĂšre MAJ** | 2026-03-12 | | **CatĂ©gorie** | [[cat-tracking]] | ## Description Operational est une **status page** minimaliste et performante, Ă©crite en Go et embarquant sa base de donnĂ©es via **SQLite**. Le principe : on dĂ©clare une liste de services Ă  surveiller (URL, endpoint, type de check), et l'application **ping** rĂ©guliĂšrement chacun pour dĂ©terminer s'il est opĂ©rationnel, dĂ©gradĂ© ou hors-ligne. L'interface publique affiche une belle page façon StatusPage.io / BetterUptime. L'application supporte plusieurs **types de checks** : HTTP(S) avec code de retour attendu, ping TCP, et des **scrapers HTML** (recherche d'une chaĂźne dans le body). Elle expose aussi une **API JSON** que d'autres outils (Uptime Kuma, Grafana) peuvent interroger pour rĂ©cupĂ©rer l'Ă©tat agrĂ©gĂ©. Le **binaire unique Go** rend Operational particuliĂšrement adaptĂ© aux dĂ©ploiements sur des machines peu puissantes (Raspberry Pi, VPS lĂ©ger) — la consommation mĂ©moire est de l'ordre de **15-20 Mo** au repos. Une image Docker multi-arch est publiĂ©e sur GitHub Container Registry. ⚠ Le projet est mono-mainteneur (bus factor 1) et a un rythme de publication irrĂ©gulier. Pour une status page critique, prĂ©fĂ©rer des alternatives plus Ă©prouvĂ©es. ## Installation ### Via Docker (recommandĂ©) ```yaml services: operational: container_name: operational image: ghcr.io/nicholasgasior/operational:latest restart: unless-stopped ports: - "8090:8090" volumes: - operational-data:/data environment: - OPERATIONAL_ADMIN_USER=admin - OPERATIONAL_ADMIN_PASSWORD_HASH=bcrypt-hash-ici - OPERATIONAL_PUBLIC_URL=https://status.example.com - OPERATIONAL_CHECK_INTERVAL=60 volumes: operational-data: ``` ### Installation manuelle 1. TĂ©lĂ©charger le binaire depuis Releases (multi-OS, ~10 Mo). 2. `chmod +x operational && ./operational` 3. Éditer `config.yaml` pour ajouter vos services. 4. (Optionnel) `systemd` unit pour le lancement automatique. ## Configuration - DĂ©finir l'**administrateur** initial (login/password) via variables d'environnement (le hash bcrypt est gĂ©nĂ©rĂ© via une CLI dĂ©diĂ©e). - Ajouter les **services Ă  surveiller** depuis l'admin web : URL, type de check, code HTTP attendu, frĂ©quence. - Configurer les **groupes** (ex : « Infrastructure », « APIs », « Sites web ») pour organiser la page publique. - Activer les **incidents manuels** (dĂ©claration rapide « nous sommes au courant, le service X est down pour maintenance »). - Activer les **notifications** (webhook, email) — support natif Slack/Discord. ## Alternatives ### Open source - **Uptime Kuma** — la rĂ©fĂ©rence self-hosted, beaucoup plus riche (⭐50k+) - **Cachet** — PHP, plus ancien mais trĂšs complet - **Statping** — Go aussi, plus de fonctionnalitĂ©s mais plus lourd - **Gatus** — Go, orientĂ© health-checks avec conditions avancĂ©es ### PropriĂ©taires - **Statuspage.io** *(Atlassian)* — rĂ©fĂ©rence du marchĂ©, payant - **BetterUptime** — moderne, freemium - **Instatus** — simple, payant ## SĂ©curitĂ© - L'**admin web** doit ĂȘtre placĂ© derriĂšre un reverse proxy HTTPS (Traefik/Caddy). - **Verrouiller** l'inscription publique si elle est activĂ©e — par dĂ©faut, Operational ne permet pas l'inscription ouverte, mais vĂ©rifiez aprĂšs upgrade. - **Hash bcrypt** du mot de passe admin — ne jamais stocker en clair. - **Ne pas exposer** l'API d'admin sur internet sans authentification. - **Notifications webhook** : signer les requĂȘtes sortantes si le destinataire le supporte. ## Ressources - Site officiel : https://operational.nicholasgasior.com/ - DĂ©pĂŽt GitHub : https://github.com/nicholasgasior/operational - Documentation : https://github.com/nicholasgasior/operational/wiki - selfh.st : https://selfh.st/apps/operational ## Pages LiĂ©es - [[cat-tracking]] - [[recettes-docker-compose]]