Installation
🐳 Docker
Installation
- Docker installé et démarré sur la machine cible.
- C’est tout — pas de configuration manuelle de nginx ou systemd, pas de fichier de config à écrire à la main.
La version à installer est obligatoire, via IMAGE_TAG : latest pour la toute dernière, ou une release précise (ex. 0.1.0).
$ curl -fsSL https://raw.githubusercontent.com/joakim-ribier/axeos-dashboard/main/docker-install.sh | IMAGE_TAG=latest HTTP_PORT=81 bash % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 1174 100 1174 0 0 2541 0 --:--:-- --:--:-- --:--:-- 2546 >>> Image tag: latest [+] pull 10/10 ✔ Image ghcr.io/joakim-ribier/axeos-dashboard/axeos-services:latest Pulled 12.7s ✔ Image ghcr.io/joakim-ribier/axeos-dashboard/axeos-dashboard:latest Pulled 9.6s [+] up 3/3 ✔ Network axeos-dashboard_default Created 0.0s ✔ Container axeos-services Started 0.2s ✔ Container axeos-dashboard Started 0.2s >>> Done. Open http://<this-machine-ip>:<port>/ from any device on your LAN (see the PORTS column below for <port>, unless you passed HTTP_PORT): NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS axeos-dashboard ghcr.io/joakim-ribier/axeos-dashboard/axeos-dashboard:latest "/docker-entrypoint.…" dashboard Less than a second ago Up Less than a second 0.0.0.0:81->80/tcp, [::]:81->80/tcp axeos-services ghcr.io/joakim-ribier/axeos-dashboard/axeos-services:latest "/entrypoint.sh" services Less than a second ago Up Less than a second
Elle peut être relancée sans risque plus tard — elle n’écrase jamais un config/dashboard.yml existant, et le port choisi (HTTP_PORT) est mémorisé d’un lancement à l’autre.
💡 Astuce — installez une release précise plutôt que
latest
$ curl -fsSL https://raw.githubusercontent.com/joakim-ribier/axeos-dashboard/main/docker-install.sh | IMAGE_TAG=0.1.0 bashStructure
Arborescence créée dans le dossier où la commande a été lancée :
axeos-dashboard/
├── docker-compose.yml
├── .env
├── config/
│ ├── dashboard.yml
│ └── mail-templates/ # textes des mails, créés par le mailer
└── storage/ # rempli une fois les services lancés
├── logs/
│ ├── dashboard-api.log
│ ├── feeder.log
│ └── mailer.log
└── data/
├── bitaxes/
│ └── <mac>/
│ ├── latest.json
│ └── AAAA-MM-JJ.jsonl
├── audit/
├── mail/
└── firmware_cache.json
Lancement
Ouvrez http://localhost:81/ (le port de l’exemple ci-dessus), puis :
Détection automatique des mineurs
Mise à jour
Relancez exactement la même commande d’installation, ou depuis le dossier axeos-dashboard/ :
$ docker compose pull && docker compose up -d💻 Native
Un script
native-install.shva être déployé pour faciliter l’installation des différents services.
⚙️ Paramétrage
dashboard.yml est un fichier statique, lu une seule fois au démarrage — toute modification nécessite de redémarrer les binaires pour être prise en compte.
global: env: dev server: port: "8080" mailer: port: "8082" storage: dataDir: resources feeder: interval: 2m healthCheck: interval: 15s endpoints: timeout: 5s info: api/system/info system: api/system restart: api/system/restart firmware: cacheTTL: 24h
- global.env —
devaffiche les logs uniquement sur la console ; toute autre valeur écrit aussi des fichiers de log. - server.port — port d’écoute de dashboard-api.
- mailer.port — port du mailer, le service qui envoie les mails ; joint par dashboard-api sur la machine elle-même uniquement.
- storage.dataDir — dossier racine des données (mineurs, historique, cache firmware).
- feeder.interval — fréquence de sondage de chaque mineur.
- healthCheck.interval — fréquence de la vérification de joignabilité.
- endpoints — chemins des endpoints appelés sur chaque mineur (lecture, écriture pool, redémarrage).
- firmware.cacheTTL — durée de mise en cache de la réponse GitHub “dernière version”.
La liste des mineurs, le tarif électrique, les notifications et les pools se gèrent directement depuis l’app (page Configuration) — pas besoin d’éditer de fichier à la main pour ça.