ESP-IDF CI / Host Tests (Unity) (push) Successful in 1m8s
CI / firmware-native (push) Successful in 2m57s
Rust Protection Tests / Cargo test (host) (push) Failing after 3m21s
ESP-IDF CI / ESP-IDF Build (v5.4) (push) Failing after 6m55s
ESP-IDF CI / Memory Budget Gate (push) Has been skipped
qa-cicd-environments / qa-kxkm-s3-build (push) Successful in 8m53s
qa-cicd-environments / qa-sim-host (push) Successful in 2m2s
qa-cicd-environments / qa-kxkm-s3-memory-budget (push) Successful in 11m17s
Context: the project archive (KXKM_Batterie_Parallelator-main) had no git history locally; a fresh repository is needed to host it on git.saillant.cc (electron/KXKM_Batterie_Parallelator). Approach: initialize a new repo on branch main, stage the archive content, and harden .gitignore before the first commit. Changes: - Import the full project tree: firmware/, firmware-idf/, firmware-rs/, iosApp/, kxkm-bmu-app/, kxkm-api/, hardware/, docs/, specs/, scripts/, models/, tests/ - Keep project dotfiles tracked despite the trailing '.*' ignore rule: .github/, .claude/, .superpowers/, .gitattributes, .markdownlint.json - Extend .gitignore: firmware/src/credentials.h (local secrets, template kept), kxkm-bmu-app/**/build/ (66 MB compiled iOS framework), .remember/ (session data) Impact: the project can now be maintained on the self-hosted Gitea forge with a clean, secret-free initial history.
99 lines
3.2 KiB
YAML
99 lines
3.2 KiB
YAML
# KXKM BMU — Stack complète
|
|
# Usage: docker compose up -d
|
|
# UI: InfluxDB http://localhost:8086 | Grafana http://localhost:3000 | API http://localhost:8400
|
|
# MQTT: mqtt://localhost:1883
|
|
|
|
services:
|
|
# ── MQTT Broker (Mosquitto) ───────────────────────────────────────
|
|
# Le firmware BMU publie sur bmu/battery/N, l'app s'abonne
|
|
mosquitto:
|
|
image: eclipse-mosquitto:2
|
|
container_name: kxkm-mosquitto
|
|
restart: unless-stopped
|
|
ports:
|
|
- "1883:1883"
|
|
- "9001:9001"
|
|
volumes:
|
|
- mosquitto-data:/mosquitto/data
|
|
- mosquitto-log:/mosquitto/log
|
|
- ./mosquitto/mosquitto.conf:/mosquitto/config/mosquitto.conf:ro
|
|
|
|
# ── InfluxDB (time-series batteries) ──────────────────────────────
|
|
influxdb:
|
|
image: influxdb:2.7
|
|
container_name: kxkm-influxdb
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8086:8086"
|
|
volumes:
|
|
- influx-data:/var/lib/influxdb2
|
|
- influx-config:/etc/influxdb2
|
|
environment:
|
|
- DOCKER_INFLUXDB_INIT_MODE=setup
|
|
- DOCKER_INFLUXDB_INIT_USERNAME=kxkm
|
|
- DOCKER_INFLUXDB_INIT_PASSWORD=kxkm-bmu-2026
|
|
- DOCKER_INFLUXDB_INIT_ORG=kxkm
|
|
- DOCKER_INFLUXDB_INIT_BUCKET=bmu
|
|
- DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=kxkm-influx-token-2026
|
|
# Rétention 365 jours sur le bucket bmu (déploiement neuf).
|
|
# Bucket existant : influx bucket update --name bmu --retention 365d
|
|
- DOCKER_INFLUXDB_INIT_RETENTION=365d
|
|
|
|
# ── Telegraf (MQTT → InfluxDB bridge) ─────────────────────────────
|
|
# Souscrit à bmu/battery/# et ecrit dans InfluxDB
|
|
telegraf:
|
|
image: telegraf:1.30
|
|
container_name: kxkm-telegraf
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ./telegraf/telegraf.conf:/etc/telegraf/telegraf.conf:ro
|
|
depends_on:
|
|
- mosquitto
|
|
- influxdb
|
|
|
|
# ── BMU API (FastAPI) ─────────────────────────────────────────────
|
|
# REST pour l'app smartphone (sync, historique, audit)
|
|
bmu-api:
|
|
build: .
|
|
container_name: kxkm-bmu-api
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8400:8400"
|
|
env_file:
|
|
- .env
|
|
volumes:
|
|
- bmu-data:/data
|
|
environment:
|
|
- INFLUX_URL=http://influxdb:8086
|
|
- INFLUX_TOKEN=kxkm-influx-token-2026
|
|
- INFLUX_ORG=kxkm
|
|
- INFLUX_BUCKET=bmu
|
|
depends_on:
|
|
- influxdb
|
|
|
|
# ── Grafana (dashboards monitoring) ───────────────────────────────
|
|
grafana:
|
|
image: grafana/grafana:11.0.0
|
|
container_name: kxkm-grafana
|
|
restart: unless-stopped
|
|
ports:
|
|
- "3001:3000"
|
|
volumes:
|
|
- grafana-data:/var/lib/grafana
|
|
- ./grafana/dashboards:/var/lib/grafana/dashboards:ro
|
|
- ./grafana/provisioning:/etc/grafana/provisioning:ro
|
|
environment:
|
|
- GF_SECURITY_ADMIN_USER=kxkm
|
|
- GF_SECURITY_ADMIN_PASSWORD=kxkm-bmu-2026
|
|
- INFLUX_TOKEN=${INFLUX_TOKEN:-kxkm-influx-token-2026}
|
|
depends_on:
|
|
- influxdb
|
|
|
|
volumes:
|
|
bmu-data:
|
|
influx-data:
|
|
influx-config:
|
|
mosquitto-data:
|
|
mosquitto-log:
|
|
grafana-data:
|