110 lines
3.6 KiB
Markdown
110 lines
3.6 KiB
Markdown
# Containarr
|
|
|
|
Interface web pour gérer les containers Docker de plusieurs machines depuis un seul endroit.
|
|
|
|
- Visualisation en temps réel de tous les containers, groupés par host et par projet compose
|
|
- Actions : start, stop, restart sur un container ou sur tout un projet compose
|
|
- Streaming de logs en direct (par container ou pour tout un projet simultanément)
|
|
- Auto-update automatique et manuel des images Docker
|
|
- Gestion des volumes, images et réseaux
|
|
- Liens directs vers les services exposés (clic sur un port)
|
|
- Gestion des agents depuis l'interface admin
|
|
- PWA installable sur mobile
|
|
|
|
---
|
|
|
|
## Architecture
|
|
|
|
```
|
|
┌─────────────────┐ gRPC ┌─────────────────┐
|
|
│ Agent (Rust) │ ◄─────────────────► │ Serveur (Go) │
|
|
│ VM distante │ │ + Interface web │
|
|
└─────────────────┘ └─────────────────┘
|
|
│ │
|
|
Docker socket SQLite + JWT
|
|
```
|
|
|
|
- **Serveur** : reçoit les connexions des agents, expose l'API REST et la PWA
|
|
- **Agent** : s'installe sur chaque VM à surveiller, se connecte au serveur
|
|
|
|
---
|
|
|
|
## Installation du serveur
|
|
|
|
### 1. Télécharger le docker-compose
|
|
|
|
```bash
|
|
curl -fsSL https://gitea.anthonybouteiller.ovh/blomios/Containarr/raw/branch/main/docker-compose.server.yml -o docker-compose.yml
|
|
```
|
|
|
|
### 2. Éditer les valeurs
|
|
|
|
```yaml
|
|
environment:
|
|
JWT_SECRET: "change-me-to-a-random-secret" # clé de signature JWT
|
|
ADMIN_USER: "admin" # identifiant admin
|
|
ADMIN_PASSWORD: "change-me" # mot de passe admin
|
|
```
|
|
|
|
### 3. Lancer
|
|
|
|
```bash
|
|
docker compose up -d
|
|
```
|
|
|
|
L'interface est accessible sur `http://<ip-du-serveur>:8080`.
|
|
|
|
---
|
|
|
|
## Ajouter un agent sur une VM
|
|
|
|
### 1. Générer un token depuis l'interface admin
|
|
|
|
`http://<ip-du-serveur>:8080` → Admin → **Créer un token** → saisir le hostname de la VM → copier le token affiché (il ne sera plus visible ensuite).
|
|
|
|
### 2. Télécharger le docker-compose agent
|
|
|
|
```bash
|
|
curl -fsSL https://gitea.anthonybouteiller.ovh/blomios/Containarr/raw/branch/main/docker-compose.agent.yml -o docker-compose.yml
|
|
```
|
|
|
|
### 3. Éditer les valeurs
|
|
|
|
```yaml
|
|
environment:
|
|
CONTAINARR_SERVER_URL: "http://<ip-du-serveur>:9090"
|
|
CONTAINARR_AGENT_TOKEN: "<token-copié-depuis-l-admin>"
|
|
CONTAINARR_HOST_IP: "<ip-lan-de-la-vm>" # ex: 192.168.1.95 — utilisé pour les liens de ports
|
|
```
|
|
|
|
> `CONTAINARR_HOST_IP` est optionnel mais recommandé : sans lui, l'IP affichée sera l'adresse réseau Docker interne, et les liens vers les services exposés ne fonctionneront pas correctement.
|
|
|
|
### 4. Lancer
|
|
|
|
```bash
|
|
docker compose up -d
|
|
```
|
|
|
|
L'agent apparaît dans l'interface dans les secondes qui suivent.
|
|
|
|
---
|
|
|
|
## Auto-update
|
|
|
|
Containarr peut surveiller et mettre à jour automatiquement les images Docker de vos containers.
|
|
|
|
- **Par container** : clic sur l'icône ↻ d'un container → activer l'auto-update et choisir l'intervalle de vérification
|
|
- **Par projet** : même bouton au niveau du groupe projet → applique la policy à tous les containers du projet
|
|
- **Mise à jour manuelle** : bouton "Mettre à jour maintenant" dans le panneau auto-update
|
|
|
|
Les mises à jour utilisent l'API Docker directement (pull de la nouvelle image + recréation du container avec la même configuration).
|
|
|
|
---
|
|
|
|
## Ports
|
|
|
|
| Port | Usage |
|
|
|------|-------|
|
|
| `8080` | Interface web + API REST + WebSocket |
|
|
| `9090` | gRPC (connexions des agents uniquement) |
|