3.7 KiB
title: OliveTin created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, remote-access, automation, web-ui, shell, self-hosted-control] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Remote+Access, https://github.com/OliveTin/OliveTin]
🌐 OliveTin
Web UI sécurisée pour exposer à des utilisateurs non-technique une sélection de commandes shell et de scripts.
📋 Informations Générales
| Attribut | Valeur |
|---|---|
| Nom | OliveTin |
| Slug | olivetin |
| Description | Interface web self-hosted pour exécuter des commandes shell et des scripts à distance |
| Site officiel | https://www.olivetin.app |
| Repository | https://github.com/OliveTin/OliveTin |
| Stars | 3 622 ⭐ |
| Licence | AGPL-3.0 |
| Langage principal | Go |
| Catégorie | Remote Access |
| Tags | [catalogue, remote-access, automation, web-ui, shell, self-hosted-control] |
📝 Description
OliveTin n'est pas un bastion : c'est une UI pour exécuter des commandes shell à distance depuis un navigateur, à destination de profils qui n'ont pas (ou plus) accès à un terminal. On y pense comme un "bouton-poussoir" self-hosted pour des tâches d'admin : redémarrer un service, lancer un backup, vider un cache, exécuter un script custom.
Le fichier de configuration (YAML) liste des boutons (commands) ; chaque bouton peut avoir des arguments (form input), des confirmations, des conditions d'affichage. L'authentification est basique (HTTP Basic, OAuth2 via reverse proxy) et l'audit log est natif.
Cas d'usage typiques : donner à la famille un bouton "redémarrer le serveur Plex", à un client un bouton "déployer mon site", à un collègue non-linux un accès limité à des opérations courantes.
🚀 Installation
Via Docker (recommandé)
# docker-compose.yml
services:
olivetin:
image: olivetin/olivetin:latest
container_name: olivetin
restart: unless-stopped
ports:
- "1337:1337"
volumes:
- ./config:/config:ro
- /var/run/docker.sock:/var/run/docker.sock
Installation manuelle
Binaire statique Go disponible sur GitHub Releases. Créez /etc/OliveTin/config.yaml, exécutez olivetin en tant que service systemd.
⚙️ Configuration
- Fichiers YAML décrivant chaque bouton :
title,icon,shell command,arguments. - Arguments typés (string, int, bool, enum) avec validation.
- Confirmations avant exécution, timeouts par commande.
- Journal d'exécution consultable depuis l'UI.
- OAuth2 via OIDC (ex. Authelia, Authentik) en plaçant un reverse proxy devant.
🔗 Alternatives
- Heimdall / Homarr — dashboards de liens, pas d'exécution de commandes.
- Webmin / Cockpit — UIs d'admin complètes (incluent du shell).
- Apache Guacamole / Warpgate — pour un bastion véritable, avec sessions SSH/RDP.
🔒 Sécurité
- ⚠️ OliveTin n'est PAS un bastion : il donne accès à des commandes arbitraires selon la config. À ne pas exposer sans auth forte.
- OAuth2/OIDC via reverse proxy recommandé (Authelia, Authentik).
- Audit log de chaque exécution (utilisateur, commande, timestamp, sortie).
- Pas de session shell interactive : pas de terminal persistant, juste des one-shot.
📚 Ressources
- Site officiel : https://www.olivetin.app
- Documentation : https://docs.olivetin.app
- Galerie d'exemples : https://docs.olivetin.app/before_you_start/examples
🔗 Pages Liées
- cat-remote-access
- app-authelia — SSO recommandé devant OliveTin
- app-traefik
- app-warpgate — vrai bastion SSH/HTTP
- securisation-home-lab
- recettes-docker-compose