Installation
π³ Docker
Installation
- Docker installed and running on the target machine.
- Thatβs it β no manual nginx or systemd setup, no config file to write by hand.
The version to install is required, via IMAGE_TAG: latest for the very newest, or a specific release (e.g. 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
Safe to re-run later β it never overwrites an existing config/dashboard.yml, and the port you chose (HTTP_PORT) is remembered from one run to the next.
π‘ Tip β install a specific release rather than
latest
$ curl -fsSL https://raw.githubusercontent.com/joakim-ribier/axeos-dashboard/main/docker-install.sh | IMAGE_TAG=0.1.0 bashStructure
Directory tree created wherever you ran the command:
axeos-dashboard/
βββ docker-compose.yml
βββ .env
βββ config/
β βββ dashboard.yml
β βββ mail-templates/ # the mails' texts, created by the mailer
βββ storage/ # filled in once the services are running
βββ logs/
β βββ dashboard-api.log
β βββ feeder.log
β βββ mailer.log
βββ data/
βββ bitaxes/
β βββ <mac>/
β βββ latest.json
β βββ YYYY-MM-DD.jsonl
βββ audit/
βββ mail/
βββ firmware_cache.json
Startup
Open http://localhost:81/ (the port from the example above), then:
Update
Re-run the exact same install command, or from the axeos-dashboard/ folder:
$ docker compose pull && docker compose up -dπ» Native
A
native-install.shscript will be shipped to make installing the individual services easier.
βοΈ Config file
dashboard.yml is a static file, read once at startup β any change requires restarting the binaries to take effect.
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 β
devonly shows logs on the console; any other value also writes log files. - server.port β dashboard-apiβs listening port.
- mailer.port β the port of the mailer, the service sending the mails; reached by dashboard-api on the machine itself only.
- storage.dataDir β root data folder (miners, history, firmware cache).
- feeder.interval β how often each miner is polled.
- healthCheck.interval β how often reachability is checked.
- endpoints β endpoint paths called on each miner (read, write pool, restart).
- firmware.cacheTTL β how long the GitHub βlatest versionβ response is cached.
The miner list, electricity rate, notifications and pools are all managed directly from the app (Configuration page) β no need to hand-edit a file for that.