- Compose file with pinned images (v0.16.6.1), healthchecks, Traefik routing - .env.example with all required variables and generation commands - README covering access, appdata, backup scope, upgrade procedure - KBA-002: deployment reference with verification and rollback steps - repo-deploy.prompt.md: reusable end-to-end deployment workflow prompt - Session snapshot 2026-05-10 Source: https://github.com/CodeWithCJ/SparkyFitness
4.7 KiB
4.7 KiB
Session Snapshot - 2026-05-10
Summary
Built a reusable end-to-end repo deployment prompt (repo-deploy.prompt.md) and ran it live against SparkyFitness — a self-hosted fitness tracker. Completed all pre-deploy phases: repo analysis, classification, planning, compose authoring, and documentation. Stack is ready to deploy on heimdall pending live smoke tests on the node.
Work Completed
New Prompt
- Created
.github/prompts/repo-deploy.prompt.md— a gated, six-step workflow prompt that takes a repo URL and shepherds it through the full deployment lifecycle: analysis → classification → planning → compose authoring → documentation → testing → GitOps commit. Designed to be reusable for any future service.
SparkyFitness Deployment (heimdall)
- Fetched and analyzed upstream repo (
v0.16.6.1, 3.4k stars, actively maintained) - Classified as Category A (Docker Compose), Risk: Medium, Node: heimdall
- Confirmed no port conflicts with existing heimdall services
- Produced deployment plan:
proxy-net+ isolatedsparkyfitness-network, no host ports exposed, Traefik routing tofitness.castaldifamily.com - Authored
nodes/heimdall/sparkyfitness/compose.yamlwith pinned images, healthchecks on all three services, resource limits, and Traefik labels - Authored
nodes/heimdall/sparkyfitness/.env.examplewith all four required secrets, generation commands, and optional OIDC/SMTP/Garmin blocks - Created
nodes/heimdall/sparkyfitness/README.md— full service reference (access, appdata, env vars, networking, backup/recovery, upgrade procedure, known issues) - Created
documentation/KBAs/KBA-002-SparkyFitness-Deployment.md— step-by-step deployment KBA covering secret generation, appdata setup, Komodo stack creation, first-boot sequence, verification, and rollback
Files Changed
| Action | File |
|---|---|
ADD |
.github/prompts/repo-deploy.prompt.md |
ADD |
nodes/heimdall/sparkyfitness/compose.yaml |
ADD |
nodes/heimdall/sparkyfitness/.env.example |
ADD |
nodes/heimdall/sparkyfitness/README.md |
ADD |
documentation/KBAs/KBA-002-SparkyFitness-Deployment.md |
Validation and Test Results
Pre-Deploy Checks (static — all PASS)
- ✅ All image tags pinned (
postgres:18.3-alpine,sparkyfitness_server:v0.16.6.1,sparkyfitness:v0.16.6.1) - ✅ No secrets in tracked files — all four secrets use
${}interpolation;.envcovered by.gitignore - ✅ No port conflicts on heimdall
- ✅ Appdata pre-creation steps documented in KBA-002
- ✅
.env.exampledocuments all required variables with generation commands
Deploy / Post-Deploy Checks
- ⬜ PENDING — require live execution on heimdall (Komodo stack creation, container health, Traefik routing, log check, restart resilience, webhook round-trip)
New Technical Debt
- None. No
@TODOorFIXMEcomments introduced this session.
Open Issues
- SparkyFitness deploy/post-deploy smoke tests not yet run — stack has not been pushed to Komodo and brought live. Must complete before marking
TESTS PASSED: sparkyfitness. - No git-crypt configured in this repo —
.envfiles are excluded via.gitignorerather than encrypted and tracked. Secrets are not version-controlled. Recommend storing secrets in Vaultwarden and/or completing the git-crypt migration (seedocumentation/plans/plan-gitcryptMigration.md). - Garmin microservice (
sparkyfitness-garmin) is commented out — upstream marks it as still in development. Revisit when maintainer marks stable. - Upcoming mandatory Postgres upgrade flagged by upstream in release notes — monitor and apply before it becomes breaking.
Next Steps
- SSH into heimdall, pre-create appdata directories (
mkdir -p /mnt/appdata/sparkyfitness/data/{postgresql,backup,uploads}) - Generate secrets (
openssl rand -hex 32×2,openssl rand -base64 24×2) and populatenodes/heimdall/sparkyfitness/.env - Commit and push all new files to
main - Create Komodo stack
sparkyfitnessper KBA-002 Step 4 - Run live smoke test checklist from Step 5 and confirm
TESTS PASSED: sparkyfitness - Complete Gates 5 & 6 of
repo-deploy.prompt.md(commit plan → deployment summary) - After first use is stable, consider registering initial admin account and disabling open signup (
SPARKY_FITNESS_DISABLE_SIGNUP=true)
Session Notes
repo-deploy.prompt.mdwas validated end-to-end in this session and is ready for reuse on future services. The gated confirmation model (exact phrases per step) worked well for keeping the workflow deliberate.- SparkyFitness chosen as the first service run through the new prompt. All static gates passed; live deploy is the remaining work.