162 lines
6.5 KiB
Markdown
162 lines
6.5 KiB
Markdown
---
|
|
title: Arcane
|
|
created: 2026-06-07
|
|
updated: 2026-06-07
|
|
type: app
|
|
tags: [catalogue, docker, container, ui, management, monitoring-docker, modern]
|
|
confidence: high
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=Docker, https://github.com/getarcaneapp/arcane]
|
|
---
|
|
|
|
# 🐳 Arcane
|
|
|
|
> **L'UI Docker moderne écrite en SvelteKit** — rapide, élégante, pensée pour l'expérience utilisateur.
|
|
|
|
## 📋 Informations Générales
|
|
|
|
| Champ | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | [arcaneapp.io](https://arcaneapp.io/) |
|
|
| **GitHub** | [getarcaneapp/arcane](https://github.com/getarcaneapp/arcane) |
|
|
| **License** | Apache-2.0 |
|
|
| **Langage** | TypeScript (Svelte/SvelteKit) + Go (backend) |
|
|
| **Étoiles GitHub** | 5,7k ⭐ |
|
|
| **Dernière MAJ** | 2026-06-07 |
|
|
| **Catégorie** | [[cat-docker\|Docker]] |
|
|
|
|
## 📝 Description
|
|
|
|
**Arcane** est une **interface web moderne pour gérer Docker**, écrite en **SvelteKit** (frontend ultra-rapide) avec un backend Go. Le projet se veut l'alternative *next-gen* à [[app-portainer]] et [[app-dockge]] : plus rapide, plus belle, plus agréable à utiliser au quotidien, sans sacrifier les fonctionnalités essentielles.
|
|
|
|
Arcane se distingue par une UX particulièrement soignée : **streaming de logs en temps réel**, **stats live** avec graphes (CPU/RAM/Net/Disk par conteneur), **gestion des images/volumes/réseaux/registries**, et un **mode agent** pour piloter des hôtes distants. Le tout dans un binaire unique Go (~30 Mo) et une UI SvelteKit servie en statique.
|
|
|
|
- ✅ **UI SvelteKit** : rapide, fluide, dark mode natif
|
|
- ✅ **Multi-hôtes** (via mode agent)
|
|
- ✅ **Streaming logs temps réel** (style Dozzle/Dockge)
|
|
- ✅ **Statistiques live** avec graphes (CPU, RAM, Net I/O, Disk I/O)
|
|
- ✅ **Gestion complète** : conteneurs, images, volumes, réseaux, registries
|
|
- ✅ **Stacks docker-compose** : déploiement depuis UI
|
|
- ✅ **Authentification** multi-utilisateurs (intégrée)
|
|
- ✅ **Proxy inversé intégré** (optionnel, pour exposer les apps managées)
|
|
- ✅ **Update detection** : badge "mise à jour dispo" sur chaque image
|
|
- ✅ **Mobile-friendly** (UI responsive)
|
|
|
|
**Public cible** : **homelabers qui veulent une UI moderne et rapide** sans la lourdeur de Portainer ni la simplicité extrême de Dockge. Excellent compromis.
|
|
|
|
**Alternatives directes** : [[app-portainer]] (mature, plus de features), [[app-dockge]] (plus minimaliste, plus orienté Compose pur), [[app-yacht]] (templating, peu maintenue), [[app-komodo]] (multi-serveurs).
|
|
|
|
## 🚀 Installation
|
|
|
|
### Option 1 : Docker Compose (recommandé)
|
|
|
|
```yaml
|
|
# docker-compose.yml
|
|
version: '3.8'
|
|
services:
|
|
arcane:
|
|
image: ghcr.io/getarcaneapp/arcane:latest
|
|
container_name: arcane
|
|
restart: unless-stopped
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
environment:
|
|
- ARCANE_SERVER_SECRET=changez-moi-en-secret-aleatoire-tres-long
|
|
- ARCANE_SERVER_URL=https://arcane.example.com
|
|
- PUID=1000
|
|
- PGID=1000
|
|
- TZ=Europe/Paris
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock # ⚠️ voir Sécurité
|
|
- arcane_data:/app/data
|
|
ports:
|
|
- "3552:3552"
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.arcane.rule=Host(`arcane.example.com`)"
|
|
- "traefik.http.routers.arcane.entrypoints=websecure"
|
|
- "traefik.http.routers.arcane.tls.certresolver=letsencrypt"
|
|
- "traefik.http.services.arcane.loadbalancer.server.port=3552"
|
|
|
|
volumes:
|
|
arcane_data:
|
|
```
|
|
|
|
### Option 2 : Image Docker one-liner
|
|
|
|
```bash
|
|
docker run -d \
|
|
--name arcane \
|
|
--restart unless-stopped \
|
|
-p 3552:3552 \
|
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
|
-v arcane_data:/app/data \
|
|
-e ARCANE_SERVER_SECRET="$(openssl rand -hex 32)" \
|
|
-e ARCANE_SERVER_URL=https://arcane.example.com \
|
|
ghcr.io/getarcaneapp/arcane:latest
|
|
```
|
|
|
|
## ⚙️ Configuration Initiale
|
|
|
|
1. **Accéder à l'UI** : `http://IP:3552`
|
|
2. **Créer le compte admin** au premier démarrage
|
|
3. **Vérifier la détection auto** de l'environnement Docker local
|
|
4. **(Optionnel) Ajouter un agent distant** : *Settings > Agents* > URL + clé partagée
|
|
5. **Explorer le dashboard** : conteneurs en cours avec stats live
|
|
6. **Déployer une première stack** : *Stacks > New* > coller un `compose.yaml`
|
|
|
|
## 🔄 Alternatives
|
|
|
|
### Open Source
|
|
|
|
- [[app-portainer]] — Plus mature, K8s/Swarm, RBAC avancé
|
|
- [[app-dockge]] — Plus minimaliste, Compose pur
|
|
- [[app-yacht]] — Templating 1-click (peu maintenue)
|
|
- [[app-komodo]] — Multi-serveurs, orchestration
|
|
- [[app-dockhand]] — Management simple
|
|
- **CasaOS** — App store + Docker management
|
|
- **Cosmos** — Cloud self-hosted
|
|
|
|
### Propriétaires
|
|
|
|
- **Docker Desktop** — UI officielle, pas self-hosted
|
|
- **Portainer Business** — SSO, support commercial
|
|
- **Synology Container Manager** — DSM uniquement
|
|
- **Rancher** (SUSE) — Enterprise K8s
|
|
|
|
### Tableau comparatif
|
|
|
|
| Critère | Arcane | Portainer CE | Dockge | Yacht | Komodo |
|
|
| :--- | :--- | :--- | :--- | :--- | :--- |
|
|
| UI | Très moderne (Svelte) | Classique | Élégante | Simple | Moderne |
|
|
| Multi-hôte | ✅ (agent) | ✅ (agent) | ✅ (agent) | ❌ | ✅ (natif) |
|
|
| Stats live | ✅ graphes | Basique | ❌ | ❌ | ✅ |
|
|
| App store | ❌ | ✅ | ❌ | ✅ | ❌ |
|
|
| K8s | ❌ | ✅ | ❌ | ❌ | ❌ |
|
|
| Licence | Apache-2.0 | Zlib (CE) | MIT | MIT | GPL-3.0 |
|
|
| Langage frontend | SvelteKit | Angular | React | Vue | TypeScript |
|
|
|
|
**Verdict** : **Arcane est un excellent choix 2025-2026** pour un homelab qui veut une UI moderne et rapide sans les lourdeurs d'un Portainer. Idéal en mono-serveur ; pour le multi-hôtes, [[app-komodo]] est plus abouti.
|
|
|
|
## 🔐 Sécurité
|
|
|
|
- ⚠️ **Socket Docker monté** = privilèges root sur l'hôte. **Ne jamais exposer Arcane sans auth forte**.
|
|
- **[[app-traefik]] + Authelia/Authentik** recommandé pour l'accès web.
|
|
- **Variable `ARCANE_SERVER_SECRET` obligatoire** : 64 caractères aléatoires minimum (`openssl rand -hex 32`).
|
|
- **Restriction IP** : n'exposer Arcane que sur le LAN ou via Tailscale/WireGuard.
|
|
- **Pour limiter la surface** : [[app-docker-socket-proxy]] peut être utilisé en amont (Arcane n'a besoin que d'un sous-ensemble de l'API Docker).
|
|
|
|
## 📚 Ressources
|
|
|
|
- [GitHub getarcaneapp/arcane](https://github.com/getarcaneapp/arcane)
|
|
- [Site officiel](https://arcaneapp.io/)
|
|
- [Documentation](https://docs.arcaneapp.io/)
|
|
|
|
## Pages Liées
|
|
- [[cat-docker]] — Catégorie Docker
|
|
- [[app-portainer]] — Référence plus mature
|
|
- [[app-dockge]] — Alternative Compose pur
|
|
- [[app-traefik]] — Reverse proxy
|
|
- [[app-docker-socket-proxy]] — Sécuriser le socket
|
|
- [[securisation-home-lab]] — Durcir l'infra
|