diff --git a/setup.sh b/setup.sh index 15f2d2d..650cfdc 100755 --- a/setup.sh +++ b/setup.sh @@ -109,9 +109,19 @@ done # Container processes run as assorted UIDs; lab-permissive perms. $SUDO chmod -R 777 "$OBMP_DATA_ROOT" 2>/dev/null || true -# --- Grafana provisioning --------------------------------------------------- +# --- Grafana provisioning + dashboards -------------------------------------- +# Provisioning YAML points Grafana at /var/lib/grafana/dashboards/... (bind- +# mounted from $OBMP_DATA_ROOT/grafana/dashboards). Sync BOTH -- otherwise +# Grafana loads the providers, finds no JSON files, and shows an empty UI. +# allowUiUpdates: true in the provisioning YAML means UI edits persist to +# the container's copy; the on-disk sync overwrites them, which is the +# desired behavior for a repo-authored dashboard set. If you edit a +# dashboard in Grafana, export it and commit the JSON. echo "Syncing Grafana provisioning ..." $SUDO cp -r obmp-grafana/provisioning/. "$OBMP_DATA_ROOT/grafana/provisioning/" +echo "Syncing Grafana dashboards ..." +$SUDO mkdir -p "$OBMP_DATA_ROOT/grafana/dashboards" +$SUDO cp -r obmp-grafana/dashboards/. "$OBMP_DATA_ROOT/grafana/dashboards/" # --- Grafana root URL ------------------------------------------------------- # In local mode Grafana is hit directly on :3000; in authelia mode the public