dev-deploy: production mirror + full observability behind the /_gm gate #88

Merged
developer merged 8 commits from feature/dev-prod-mirror into development 2026-06-01 04:56:46 +00:00
2 changed files with 24 additions and 0 deletions
Showing only changes of commit e11092234c - Show all commits
+8
View File
@@ -261,11 +261,19 @@ jobs:
# Unset/empty → the compose default (non-routable) keeps the # Unset/empty → the compose default (non-routable) keeps the
# stack capture-only. # stack capture-only.
GALAXY_DEV_MAIL_RELAY_MATCH: ${{ vars.GALAXY_DEV_MAIL_RELAY_MATCH }} GALAXY_DEV_MAIL_RELAY_MATCH: ${{ vars.GALAXY_DEV_MAIL_RELAY_MATCH }}
# Grafana admin password; unset/empty -> compose default 'admin'.
GALAXY_DEV_GRAFANA_ADMIN_PASSWORD: ${{ secrets.GALAXY_DEV_GRAFANA_ADMIN_PASSWORD }}
run: | run: |
# Resolve in the shell, not in YAML expressions — `env.HOME` # Resolve in the shell, not in YAML expressions — `env.HOME`
# is empty at the workflow-evaluation stage. # is empty at the workflow-evaluation stage.
export GALAXY_DEV_GAME_STATE_DIR="$HOME/.galaxy-dev/game-state" export GALAXY_DEV_GAME_STATE_DIR="$HOME/.galaxy-dev/game-state"
mkdir -p "$GALAXY_DEV_GAME_STATE_DIR" mkdir -p "$GALAXY_DEV_GAME_STATE_DIR"
# Seed the monitoring config to a stable, reboot-surviving host
# path (compose binds \${GALAXY_DEV_MONITORING_DIR} read-only).
export GALAXY_DEV_MONITORING_DIR="$HOME/.galaxy-dev/monitoring"
rm -rf "$GALAXY_DEV_MONITORING_DIR"
mkdir -p "$GALAXY_DEV_MONITORING_DIR"
cp -r monitoring/. "$GALAXY_DEV_MONITORING_DIR/"
docker compose up -d --wait --remove-orphans docker compose up -d --wait --remove-orphans
- name: Probe the stack - name: Probe the stack
+16
View File
@@ -37,6 +37,22 @@
reverse_proxy galaxy-api:8080 reverse_proxy galaxy-api:8080
} }
# Grafana (observability UI) under /grafana/ — Caddy sub-path mode
# (Grafana set with GF_SERVER_SERVE_FROM_SUB_PATH); its own login.
handle /grafana/* {
reverse_proxy galaxy-grafana:3000
}
# Mailpit captured-mail UI under /mailpit/. Shows every message the
# backend sent (relayed or not); basic-auth (dev: gm / gm-dev-password)
# guards the OTP codes it exposes. Mailpit runs with MP_WEBROOT=/mailpit.
handle /mailpit/* {
basic_auth {
gm "$2a$14$xVh1TLaZxh8fazlKrI9Mx.NQMQlMarYWtr3FRELmZIXuac/DeeTRO"
}
reverse_proxy galaxy-mailpit:8025
}
# Bare `/game` (no trailing slash) -> `/game/` so the SPA root # Bare `/game` (no trailing slash) -> `/game/` so the SPA root
# resolves before the site catch-all can claim it. # resolves before the site catch-all can claim it.
handle /game { handle /game {