backlog: plan relay+mirror move to dedicated Debian LXC (2026-08-16)

This commit is contained in:
FuelBoard Contributor
2026-08-15 23:26:56 +01:00
parent 29bf2f98d6
commit a490bcf7b5
+18 -3
View File
@@ -1,9 +1,9 @@
# FuelBoard Backlog # FuelBoard Backlog
FuelBoard — UK-wide petrol-station price widget + app. FuelBoard — UK-wide petrol-station price widget + app.
GitHub mirror (`aptonline/fuelboard-data`, daily) holds the full-UK dump GitHub mirror (`aptonline/fuelboard-data`, 2×/day 10:00+16:00) holds the
(~8,022 stations, all prices); app fetches it once per 12 h and filters/ full-UK dump (~8,022 stations, all prices); app fetches it once per 12 h and
sorts on-device, with a bundled snapshot as the no-network last resort. filters/sorts on-device, with a bundled snapshot as the no-network last resort.
LAN relay is dev-only (hidden `fuelboard.relayFallback` flag). LAN relay is dev-only (hidden `fuelboard.relayFallback` flag).
Priority guide: P0 = next build, P1 = soon, P2 = later, P3 = maybe/idea. Priority guide: P0 = next build, P1 = soon, P2 = later, P3 = maybe/idea.
@@ -13,6 +13,21 @@ Status: TODO / IN PROGRESS / DONE / BLOCKED.
## P1 — Soon ## P1 — Soon
- [ ] **Move relay + mirror off the Mac mini (plan for 2026-08-16)** — dedicated
Debian 13 LXC on Proxmox via community-scripts/ProxmoxVE `ct/debian.sh`
(CT ~110, hostname `fuelboard-relay`, 1 core/1 GB/8 GB, static IP
~192.168.1.150, plain LXC — NO Docker layer). Scope: relay AND mirror both
move (full Mac independence; relay binds loopback only, GitHub is the only
public surface). Steps: user creates CT on pve → install Python (trixie =
3.13 vs Mac 3.14 — verify relay boots) + relay source + `.env` (GOV.UK
token) → copy deploy key `~/.ssh/fuelboard_deploy` + `github-fuelboard-data`
ssh config → systemd `fuelboard-relay.service` (Restart=always,
127.0.0.1:8789/8788) + `fuelboard-mirror.timer` (10:00 + 16:00) + service →
relocate `mirror_push.py` (RELAY line → localhost on CT) + fuelboard-data
clone → verify one live push → remove Mac launchd
`com.apt.fuelboard-{relay,mirror}`. Open: confirm IP; logs move to
journalctl.
- [x] **Siri: "Cheapest [fuel] near me"**`AppShortcutsProvider` + `CheapestFuelIntent` - [x] **Siri: "Cheapest [fuel] near me"**`AppShortcutsProvider` + `CheapestFuelIntent`
(App Intents, iOS 16+), dialog + price-card snippet, cached full-UK dump first (App Intents, iOS 16+), dialog + price-card snippet, cached full-UK dump first
with freshness label ("as of 6am"), last-known-location fallback. Constraint: with freshness label ("as of 6am"), last-known-location fallback. Constraint: