Portainer, Yacht, Komodo, ce n'est pas les solutions qui manquent pour vous gérer vos containers préférés. Voici une petite nouvelle qui n'est pas dégueulasse du tout ! Depuis, Yacht est passé à la trappe et franchement, j'aime beaucoup de projet.
Aujourd'hui nous allons parler d'Arcane ! Une application vous permettant de gérer vos containers et vos stacks avec facilité, de mettra à jour automatiquement ou non, le tout, propulsé par une interface soignée.
Vous pouvez également centraliser vos serveurs avec un agent :

Je vous propose la version avec et sans socket proxy pour éviter que le conteneur ait un accès root à l’hôte docker. C'est la version idéale à choisir pour renforcer la sécurité.
Mais comme vous faites ce que vous voulez, je vous propose également la version classique.
⚡ Caractéristiques
- Interface moderne : Un design épuré et intuitif qui rend la gestion de Docker simple et agréable.
- Surveillance en temps réel : Mises à jour en direct du statut des conteneurs, de l’utilisation des ressources et des logs.
- Gestion des conteneurs : Démarrez, arrêtez, redémarrez et inspectez facilement vos conteneurs.
- Gestion des images : Téléchargez et gérez vos images Docker.
- Configuration réseau : Créez et configurez des réseaux Docker.
- Gestion des volumes : Créez et gérez des données persistantes avec les volumes Docker.
- Visualisation des ressources : Graphiques visuels pour l’utilisation du CPU, de la mémoire et du réseau.




Arcane
💾 Installation
Prérequis
Avant de commencer, assurez-vous d’avoir :
- Distribution Linux (Ubuntu, Debian, etc ...).
- Docker installé.
- Accès terminal.
- Connexion internet.
- Générez 2 clés de 32 caractères avec cette commande (elle va générer les deux d'un coup) et notez le résultat temporairement :
openssl rand -hex 32 && openssl rand -hex 32Étapes d'Installation avec socket proxy
- Créez votre compose.yml dans le dossier où vous comptez installer Arcane :
nano compose.yml- Et collez ça dedans :
services:
docker-socket-proxy:
image: tecnativa/docker-socket-proxy:latest
container_name: arcane-docker-proxy
environment:
- EVENTS=1
- PING=1
- VERSION=1
# Security critical
- AUTH=0
- SECRETS=0
- POST=1
# Not always needed
- BUILD=0
- COMMIT=0
- CONFIGS=0
- CONTAINERS=1
- DISTRIBUTION=0
- EXEC=1
- IMAGES=1
- INFO=1
- NETWORKS=1
- NODES=0
- PLUGINS=0
- SERVICES=0
- SESSION=0
- SWARM=0
- SYSTEM=0
- TASKS=0
- VOLUMES=1
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
networks:
- arcane-internal
restart: unless-stopped
security_opt:
- no-new-privileges:true
arcane:
image: ghcr.io/getarcaneapp/arcane:latest
container_name: arcane
restart: unless-stopped
ports:
- 3552:3552
volumes:
- ./arcane-data:/app/data
# - /srv/appdata:/srv/appdata
environment:
- PUID=1000
- PGID=1000
- ENCRYPTION_KEY=ma_clé_1
- JWT_SECRET=ma_clé_2
# - OIDC_ENABLED=false
- DOCKER_HOST=tcp://docker-socket-proxy:2375
networks:
- arcane-internal
depends_on:
- docker-socket-proxy
healthcheck:
test: ['CMD-SHELL', 'curl -fsS http://localhost:3552/api/health >/dev/null || exit 1']
interval: 10s
timeout: 3s
retries: 5
start_period: 15s
networks:
arcane-internal:
driver: bridge
name: arcane-internal- - ENCRYPTION_KEY=ma_clé_1 => Remplacez ma_clé_1 par une de vos deux clés.
- - JWT_SECRET=ma_clé_2 => Remplacez ma_clé_2 par l'autre clé.
Pour relier votre domaine, il faut proxy l'IP de votre serveur suivi du port : http://ip:3552.
- On va déployer l'application :
docker compose up -d- Rendez-vous sur l'ip:port, suivant l'IP de votre serveur local et du port choisi, 3552 par défaut :
http://ip:3552ou votre domaine :
https://arcane.mondomaine.comÉtapes d'Installation sans socket proxy
- Créez votre compose.yml dans le dossier ou vous comptez installer Arcane :
nano compose.yml- Collez ça dedans :
services:
arcane:
image: ghcr.io/getarcaneapp/arcane:latest
container_name: arcane
ports:
- '3552:3552'
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- arcane-data:/app/data
# - /srv/appdata:/srv/appdata
environment:
- APP_URL=http://192.168.1.176:3552
- PUID=1000
- PGID=1000
- ENCRYPTION_KEY=ma_clé_1
- JWT_SECRET=ma_clé_2
restart: unless-stopped
volumes:
arcane-data:- - APP_URL=https://arcane.mondomaine.com => Remplacez https://arcane.mondomaine.com par votre domaine ou par http://ip:3552 en replaçant IP par l'ip de votre serveur.
- - ENCRYPTION_KEY=ma_clé_1 => Remplacez ma_clé_1 par une de vos deux clés.
- - JWT_SECRET=ma_clé_2 => Remplacez ma_clé_2 par l'autre clé.
- On va déployer l'application :
docker compose up -d- Rendez-vous sur l'ip:port, suivant l'IP de votre serveur local et du port choisi, 3552 par défaut :
http://ip:3552ou votre domaine :
https://arcane.mondomaine.com👤 Création du compte administrateur
Une fois n'est pas coutume, il faudra créer votre compte administrateur, dans ce cas c'est plus un changement de mot de passe. En avant !
Lancez votre instance Arcane, complétez les informations demandées :

- Nom d'utilisateur administrateur par défaut => arcane
- Mot de passe administrateur par défaut => arcane-admin
Cliquez sur Sign in pour poursuivre.
Petit message de bienvenue, cliquez sur Continue :

Changez le mot de passe administrateur par défaut :

- New Password => Choisissez un mot de passe fort de préférence.
- Confirm Password => Confirmez votre mot de passe.
Cliquez sur Continue.
Si vous êtes sous Linux, rien à changer, cliquez sur Continue :

Il ne vous reste qu'à cliquer sur Go to Dashboard pour atteindre votre tableau de bord :

👥 Gestion des utilisateurs
Si vous avez besoin d'accorder l'accès à votre instance Arcane à d'autres utilisateurs, il est possible d'ajouter des utilisateurs.
Cliquez sur Settings dans le menu de gauche, ensuite cliquez sur User Management :

Cliquez sur :

Complétez la fiche :

- Username => Indiquez le nom d'utilisateur.
- Password => Indiquez le mot de passe utilisateur.
- Display Name => Choisissez le nom qui sera affiché.
- Email => Indiquez l'adresse mail de l'utilisateur.
- Role => Pour le moment, seul le rôle administrateur existe.
Terminez en cliquant sur Create User, l'utilisateur a bien été ajouté :

📦 Gestion des containers, images, réseaux & volumes
Dans le menu de gauche, vous avez tout ce qui est habituel pour gérer vos containers :

Containers

- Create Container
- Inspect
- Restart
- Stop
- Remove
Images

- Prune Unused
- Pull Image
- Inspect
- Pull
- Remove
Networks

- Create Network
- Inspect
- Remove
Volumes

- Create Volume
- Inspect
- Delete
🔌 Ajouter un environnement
Afin d'ajouter un serveur pour que Arcane puisse gérer ses containers, il faudra installer un agent, agent qui aura pour rôle de communiquer avec votre instance principale Arcane.
➕ Ajouter le serveur à son instance Arcane
Dans le menu de gauche, cliquez sur Environments :

- 1 => Cliquez sur + Add Environment.
Complétez les informations suivantes :

- 1 => Nommez le serveur.
- 2 => Ajoutez l'URL de votre agent, bien souvent : ip:3553 en prenant soin de remplacer ip par l'ip de votre serveur.
- 3 => Cliquez sur Generate Agent Configuration.
Ce qui va générer trois choses :

- 1 => Une clé API, notez cette clé provisoirement.
- 2 => Soit un docker run pour déployer l'agent.
- 3 => Soit un docker compose pour déployer l'agent, au choix.
Quelque soit la solution choisie, modifier dans le docker run ou dans le docker compose, la partie <YOUR_API_KEY> par la clé API que vous avez noté.
Remplacez localhost par l'IP de votre instance arcane, pas de l'agent.
- 4 => Cliquez sur Done.
🕵️ Déployer l'agent sur le serveur avec Docker compose
- Créez votre compose.yml dans le dossier où vous comptez installer l'agent Arcane :
nano compose.yml- Collez le compose généré par Arcane et modifié par vos soins.
- On va déployer l'application :
docker compose up -d🏃♂️ Déployer l'agent sur le serveur avec Docker run
Collez le docker run modifié par vos soins dans votre terminal et faites entrée pour le déployer.
Après quelques instants sur votre instance Arcane, le serveur a bien été ajouté :

🗒️ Gestion des Projects
La parti Porjects, c'est comme les stacks dans Portainer.
Il est possible de gérer les compose de vos containers existants, "à la Portainer" :

Pour ça il faut indiquer dans le compose de votre instance Arcane, de votre agent ou vos agents, le chemin du dossier où se trouvent tous les dossiers de vos containers, qui contiennent eux-mêmes le compose et/ou .env.
Prenons l'exemple comme dans le compose
- # - /srv/appdata:/srv/appdata
Il faut décommenter la ligne dans le compose de votre instance Arcane et ajouter une ligne dans le compose de votre agent, niveau volumes. Il faut impérativement monter dans et hors le container le même chemin si non cela peut avoir des conséquences désagréables sur vos containers existants. ATTENTION !
Pour le compose d'Arcane même cela donne ça :

Et pour votre agent, en imaginant que le chemin des containers est le même :

Quand vous avez modifié votre compose, arrêtez le container et terminez par un docker compose up -d.
Maintenant il faut retourner sur votre instance Arcane et éditer chaque serveur en cliquant sur View Details :

Modifier ces deux points :

- 1 => Indiquez le chemin complet renseigné dans le compose.
- 2 => Vous pouvez en profiter pour mettre la bonne IP de votre serveur.
Validez, vous pouvez maintenant gérer les stacks de vos containers existants :
