Files
branderson 2d1d8cce46 feat: mirror main to GitHub and publish images to GHCR
mirror/github-mirror.sh publishes main and its tags to a read-only
GitHub mirror, adding a notice under the README title, with a systemd
timer to run it hourly. A GitHub Actions workflow builds the images on
the mirror and pushes them to ghcr.io. The docs point prebuilt images
there, and CONTRIBUTING no longer invites issues and pull requests.

upstream-status.sh now fetches without tags, so upstream's version tags
stay out of local clones.
2026-10-15 16:48:04 -07:00

2.0 KiB

Dotcom Arcade: notes for agents

Dotcom Arcade is a heavily modified fork of flashpoint-web by darkraise (GPL-3.0), with game streaming added under streaming/. Coding standards and architecture notes are in CLAUDE.md; feature and deployment docs are in docs/.

Upstream

  • Upstream is https://github.com/darkraise/flashpoint-web, branch master. It's read-only from here: don't push to it or open pull requests there unless asked.
  • Most of upstream's code is still used: the backend, the frontend's data layer, the player, and the account and admin pages. Fixes to these should come in from upstream rather than being rewritten here.
  • To see what upstream has changed since it was last merged, and how each touched file stands here, run scripts/upstream-status.sh.
  • To pull changes in, follow docs/08-development/upstream-sync.md. In short:
    • merge upstream's master on a branch (don't cherry-pick);
    • keep files removed here removed;
    • keep the Dotcom Arcade branding;
    • keep upstream's migration file names;
    • have the pull request merged with a merge commit, never squashed, so the next sync starts from the right place.
  • Parts that are only ours:
    • streaming/;
    • scripts/;
    • frontend/src/components/portal/;
    • views/GamePage.tsx;
    • lib/saves/flashSaves.ts;
    • the discovery backend;
    • .gitea/;
    • migrations upstream doesn't have.

GitHub mirror

mirror/ publishes main to a read-only GitHub mirror from the operator's host, never from a session; see docs/08-development/github-mirror.md. GitHub runs .github/workflows, the forge .gitea/workflows; keep the two image workflows in step.

CI

Workflows are in .gitea/workflows. Jobs that run docker builds use the dejima-privileged runner label; anything else uses dejima-confined. The privileged job image has no Docker client, so install docker-ce-cli first. Never hardcode the forge's host name: read it at run time, or take it from the REGISTRY_HOST repository variable.