From a0ef60fa7154a67eff4c9e22b794fd539243f1c7 Mon Sep 17 00:00:00 2001 From: Steffen Skui Date: Tue, 21 Jul 2026 21:54:49 +0200 Subject: [PATCH] Fix Grafana on Linux: named volume for data; re-sync password on login --- app.py | 4 +++- docker-compose.yml | 7 ++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/app.py b/app.py index 0692d8a..774e7ca 100644 --- a/app.py +++ b/app.py @@ -151,8 +151,10 @@ def login(): if not _has_password(): return redirect(url_for("setup")) if request.method == "POST": - if _check_password(request.form.get("password", "")): + pw = request.form.get("password", "") + if _check_password(pw): session["authed"] = True + _sync_grafana_password(pw) # self-heal if the setup-time sync missed return redirect(url_for("index")) flash("Wrong password.", "error") return render_template("auth.html", mode="login") diff --git a/docker-compose.yml b/docker-compose.yml index 913ea97..1681627 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -41,7 +41,9 @@ services: # the password you set on the AHDX setup screen. Don't pin it here or AHDX # can't bootstrap it. volumes: - - ./grafana-data:/var/lib/grafana + # Named volume (not a host bind mount) so Grafana's user can write to it + # on any host — a bind-mounted dir trips file-permission errors on Linux. + - grafana-data:/var/lib/grafana # Auto-adds the "AHDX" datasource + the Apple Health dashboard. - ./grafana/provisioning:/etc/grafana/provisioning - ./grafana/dashboards:/etc/dashboards @@ -49,3 +51,6 @@ services: ahdx: condition: service_healthy # Grafana waits until AHDX is up restart: unless-stopped + +volumes: + grafana-data: