---
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é)
```yaml
# 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]]
