Redo the download/website host as a normal app under containers/ (dogfooded — the
project hosts its own downloads on LibrePortal), instead of the bespoke repo-root
thing. Modeled on speedtest: standard getlibreportal.{config,sh,svg} +
docker-compose.yml (tagged template) so it plugs into the app scan + install
dispatch (installGetlibreportal) like every other app. nginx serves ./data (the
app data dir) — no special /web.
- getlibreportal.config: features category, public (login=false — it's a download
host), no backup (regenerable), healthcheck on.
- docker-compose.yml: nginx:alpine, ./data:ro docroot + ./nginx.conf, traefik tags.
- nginx.conf: install.sh + latest.json no-cache; tarball/.sha256/.minisig immutable.
- publish.sh: assembles the docroot (built site + install.sh + dist/<channel>) into
a target data dir; run on a full repo checkout (site/ + dist/ are host-side).
- exec bits set on the run-directly scripts (make_release.sh, install.sh, publish.sh).
- .gitattributes: dropped the stray 'getlibreportal export-ignore' (the no-slash
pattern would also have excluded containers/getlibreportal — the app must ship);
data/ gitignored.
Verified: app discovered by the site catalog (32 apps), installGetlibreportal matches
the dispatch name, and the full release->publish flow yields a docroot with the
website + install.sh + the signed/checksummed stable channel. The actual app-install
run + DNS/TLS for get.libreportal.org are operational steps (need a real host).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Signed-off-by: librelad <librelad@digitalangels.vip>
19 lines
655 B
Plaintext
19 lines
655 B
Plaintext
# Claude sandbox + working notes.
|
|
# .claude-work was getting mirrored back into SRC by update.sh, creating
|
|
# nested copies on every run. Excluding the directory name everywhere belts-
|
|
# and-suspenders the fix in update.sh (the missing trailing slash on rsync).
|
|
.claude-work/
|
|
|
|
# Living spec authored in the sandbox; persisted at SRC root but not tracked.
|
|
/APPS.md
|
|
|
|
# Node dependencies — installed via `npm ci` at image build, never vendored.
|
|
node_modules/
|
|
npm-debug.log*
|
|
|
|
# Release build output (scripts/release/make_release.sh).
|
|
/dist/
|
|
|
|
# getlibreportal assembled docroot (built by containers/getlibreportal/publish.sh).
|
|
containers/getlibreportal/data/
|