# 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://:8080`. --- ## Ajouter un agent sur une VM ### 1. Générer un token depuis l'interface admin `http://: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://:9090" CONTAINARR_AGENT_TOKEN: "" CONTAINARR_HOST_IP: "" # 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) |