auto-save 2026-07-13

This commit is contained in:
Ray
2026-07-13 02:00:15 -04:00
parent dab5a4ebc6
commit 473729267c
14 changed files with 579 additions and 38 deletions
@@ -200,6 +200,19 @@ curl -skL https://localhost:<SSL_PORT>/ | grep -o '<title>.*</title>' # follow
```
- Bluetooth errors (`AttributeError: 'NoneType' object has no attribute 'send'`) on servers without Bluetooth hardware are **harmless noise** — ignore them
- First access returns 302 to `/onboarding.html` — normal
### SparkyFitness
- **Self-hosted MyFitnessPal alternative** — Docker Compose at `/mnt/seagate8tb/Websites/SparkyFitness/docker-compose.yml`, `.env` in the same directory. Data lives under `/mnt/seagate8tb/Websites/SparkyFitness/` (NOT `/mnt/seagate8tb/docker/`).
- **Stack**: frontend (port 3004→container 80), server (internal 3010), Postgres (internal 5432)
- **`SPARKY_FITNESS_FRONTEND_URL` in `.env` must match the public HTTPS URL** — this is critical for CORS and OAuth callbacks. Set it to `https://sparkyfitness.graj-media.com` (or whatever subdomain you use). Without this, the mobile app will fail to connect.
- **`SPARKY_FITNESS_EXTRA_TRUSTED_ORIGINS`** should include the public domain plus any local access IPs (e.g., `http://localhost:3004,http://192.168.50.98:3004`).
- **HTTPS required for mobile app** — the Android/iOS app refuses to connect over HTTP. The frontend runs nginx internally on port 80 (mapped to host 3004), so nginx reverse proxy to port 3004 with SSL cert is the expected setup.
- **Mobile app `SparkyFitnessMobile.apk`** — download from GitHub releases: `https://github.com/CodeWithCJ/SparkyFitness/releases/latest` (asset `app-release.apk`, ~188MB). Also available as Google Play closed beta.
- **`NODE_ENV=production`** should be set in `.env` for optimal performance and security.
- **`SPARKY_FITNESS_DISABLE_SIGNUP=false`** by default — set to `true` after creating accounts if you want to lock down registration.
- **Backup**: server auto-backups go to `./backup` directory. Always backup before upgrading (schema changes can be breaking).
- **OIDC/Passkey support** — optional, configured via env vars. The failsafe `SPARKY_FITNESS_FORCE_EMAIL_LOGIN=true` prevents lockout when testing OIDC.
### Mealie
- **Internal port is 9000**, not 9925. Map like: `-p 127.0.0.1:9925:9000`