What cyberia.my serves beside the SPA. Each directory here is a path on the site:
| directory | url | source |
|---|---|---|
cx/ |
/cx | generated daily by cx |
hackathon/ |
/hackathon | written by hand |
valkiria/director/ |
/valkiria/director | written by hand |
app/ + map/ menu/ cities/ plot/ |
/map | the SPA build, published by scripts/publish-pages.py in cyberia-my |
The SPA rides here while cyberproxy takes no SSH deploy: app/ holds the build,
each route directory holds an index.html link to it, .spa-routes lists them.
When deploy.nu works again it puts the build at the site root; then the route
directories leave this repo.
Push here and the page is live within a minute: cyberproxy clones this repo and a
cron job rsyncs each directory into the nginx docroot. The sync script, the host
setup and the runbook live in cybernode under sites/cyberia.my/, where server
infrastructure belongs.
.github/workflows/cx-daily.yml runs at 06:20 UTC: it checks out the cx crate,
runs its tests, computes the day's century index from public price sources, and
commits cx/index.html and cx/cx.json here. With the GRAPH_TOKEN secret the
same run writes the fix into the cyberia graph at protocol/cx/.
Pages are plain HTML with no build step and no dependency beyond the Play webfont — they are meant to outlive the tooling that made them.