--- title: Semaphore created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, deployment, ansible, ci-cd, devops, ui] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Deployment, https://github.com/ansible-semaphore/semaphore] --- # 🚀 Semaphore > **UI web pour Ansible** — exĂ©cutez, planifiez et supervisez vos playbooks Ansible depuis une interface web, sans passer par la CLI. L'Ă©quivalent self-hosted d'Ansible Tower / AWX, mais en Go lĂ©ger. ## 📋 Informations GĂ©nĂ©rales | Champ | Valeur | | :--- | :--- | | **Site web** | [semaphoreui.com](https://semaphoreui.com/) | | **GitHub** | [ansible-semaphore/semaphore](https://github.com/ansible-semaphore/semaphore) | | **License** | MIT | | **Langage** | Go (backend) + Vue.js (UI) | | **Étoiles GitHub** | 1,5k ⭐ (monorepo) / 11k+ sur ansible-semaphore | | **CatĂ©gorie** | [[cat-deployment\|Deployment]] | | **Origine** | CommunautĂ© Ansible (reconnu par Red Hat) | ## 📝 Description **Semaphore** (nom complet *Ansible Semaphore*) est une **interface web moderne pour Ansible** qui rĂ©pond au besoin classique : "je veux que l'Ă©quipe puisse lancer les playbooks prod depuis une UI, avec logs, secrets, et audit, sans donner accĂšs Ă  la CLI". C'est l'**anti-AWX** : lĂ  oĂč AWX est une montagne Kubernetes (multi-conteneurs, Operator, PostGreSQL, Redis
), Semaphore est un **binaire Go unique** qui dĂ©marre en quelques secondes. L'**ancĂȘtre historique** de Semaphore (v1) Ă©tait en Python, repris par la communautĂ© sous le nom "Ansible Semaphore" puis réécrit en Go en 2022-2023. La version actuelle (2.x) est mature, activement maintenue, et recommandĂ©e par Red Hat comme alternative lĂ©gĂšre Ă  AWX pour les Ă©quipes de 2-50 personnes. **FonctionnalitĂ©s principales** : - ✅ **Inventaires statiques et dynamiques** (fichier YAML, AWS EC2, GCP, OpenStack
) - ✅ **Credentials vault** : SSH keys, mots de passe, tokens API, stockĂ©s chiffrĂ©s en DB - ✅ **Environnements multiples** : dev/staging/prod avec leurs propres vars - ✅ **TĂąches planifiĂ©es** (cron-like) : lancer un playbook tous les jours Ă  03:00 - ✅ **TĂąches manuelles** : exĂ©cution Ă  la demande, sortie live des logs - ✅ **Templates de tĂąches** : prĂ©-configurations rĂ©utilisables par l'Ă©quipe - ✅ **Notifications** : email, Slack, webhook - ✅ **API REST** complĂšte (intĂ©gration avec GitLab CI, Gitea Actions, n8n
) - ✅ **RBAC basique** : admin, "task runner", viewer **Vs AWX** : AWX (~5 Go RAM, 6 conteneurs, PostGreSQL) est adaptĂ© Ă  des Ă©quipes de 50+ admins ; Semaphore (~150 Mo RAM, binaire unique) est adaptĂ© Ă  des Ă©quipes de 2-10. Pour un homelab, Semaphore est largement suffisant. ## 🚀 Installation ### PrĂ©requis - Un serveur Linux (Ubuntu, Debian, RHEL, Alpine
) ou macOS - Ansible installĂ© sur la mĂȘme machine (ou via Docker runner) - Une base de donnĂ©es : SQLite (par dĂ©faut, suffit pour dĂ©marrer) ou MySQL/PostgreSQL ### Via Docker (recommandĂ©) ```yaml # docker-compose.yml services: semaphore: image: semaphoreui/semaphore:latest container_name: semaphore restart: unless-stopped ports: - "3000:3000" volumes: - semaphore-data:/data environment: - SEMAPHORE_DB_DIALECT=bolt - SEMAPHORE_ADMIN_USERNAME=admin - SEMAPHORE_ADMIN_PASSWORD=changeme - SEMAPHORE_ADMIN_EMAIL=admin@example.com - SEMAPHORE_LISTEN=0.0.0.0:3000 volumes: semaphore-data: ``` ### Installation native (Linux) ```bash # Sur Ubuntu/Debian sudo apt install -y ansible wget https://github.com/ansible-semaphore/semaphore/releases/latest/download/semaphore_linux_amd64 chmod +x semaphore_linux_amd64 sudo mv semaphore_linux_amd64 /usr/local/bin/semaphore semaphore setup # assistant de configuration semaphore --config /etc/semaphore/config.json ``` ## ⚙ Configuration - **ClĂ©s SSH** : ajouter la clĂ© privĂ©e qui sera utilisĂ©e par Ansible pour se connecter aux cibles - **Inventaires** : crĂ©er un inventaire statique (YAML) ou pointer vers un inventaire dynamique (plugin AWS) - **Playbooks** : pointer vers un repo Git (HTTPS ou SSH), sĂ©lectionner la branche - **Credentials** : chiffrĂ©s en DB avec la master key de Semaphore — sauvegarder cette clĂ© - **Schedules** : dĂ©finir les planifications cron (timezone importante, ex. `TZ=Europe/Paris`) - **Notifications** : configurer Slack/email/webhook pour les succĂšs/Ă©checs ## 🔗 Alternatives - **AWX** — la version officielle Red Hat, puissante mais lourde (Kubernetes requise) - **Ansible Tower** — l'original propriĂ©taire (3 000 $/an pour 100 nƓuds) - **Rundeck** — alternative plus gĂ©nĂ©raliste (CI/CD + jobs non-Ansible) - **n8n + Ansible CLI** — orchestrateur no-code qui appelle Ansible - **Jenkins + Ansible plugin** — l'ancienne Ă©cole, lourd ## 🔒 SĂ©curitĂ© - ⚠ **Changer `SEMAPHORE_ADMIN_PASSWORD`** dĂšs l'installation - ⚠ **Sauvegarder la master key** de chiffrement des credentials : si elle est perdue, tous les secrets sont irrĂ©cupĂ©rables - **Mettre Semaphore derriĂšre un reverse proxy** (Traefik, Caddy) avec TLS - **Activer 2FA** sur les comptes utilisateurs - **Limiter les permissions du binaire** : Semaphore exĂ©cute Ansible, qui peut tout faire — ne pas l'exposer publiquement sans restriction IP - **Audit** : les actions sont loggĂ©es, mais exporter les logs vers un SIEM (Loki, Splunk) pour l'analyse ## 📚 Ressources - [Site officiel](https://semaphoreui.com/) - [DĂ©pĂŽt GitHub](https://github.com/ansible-semaphore/semaphore) - [Documentation](https://docs.semaphoreui.com/) - [DĂ©mo en ligne](https://demo.semaphoreui.com/) ## 🔗 Pages LiĂ©es - [[cat-deployment]] - [[app-portainer]] - [[app-coolify]] - [[app-traefik]] - [[cat-docker]] - [[securisation-home-lab]] - [[recettes-docker-compose]]