Dotcom Arcade: rename, one compose file, Ultimate setup script and docs #1

Merged
branderson merged 12 commits from rebrand-and-docs into main 2026-10-13 22:17:01 -07:00
Collaborator

Summary generated by LLM agent

Turns the combined history in initial into Dotcom Arcade: one project, one compose file, a setup script for Flashpoint Ultimate, and docs for everything we've built.

Changes

  • Rename to Dotcom Arcade.
    • Package, image, container, network and log service names.
    • UI fallbacks and the browser title.
    • Migration 011 changes the default site name. Installs still on "Flashpoint Web" become "Dotcom Arcade", and a name an admin set is kept.
  • One docker-compose.yml builds the app, session manager and streamer from source, so no registry is needed yet.
    • Streaming is the opt-in streaming profile. Turning it on takes COMPOSE_PROFILES=streaming and STREAMING_API_TOKEN.
    • The streamer is built but never started by compose (scale: 0).
    • It replaces the old production and dev compose files, plus the two streaming ones.
  • scripts/setup-flashpoint.sh downloads the Ultimate torrent with aria2c and extracts each archive in turn.
    • It checks free space before each archive and deletes it afterwards, unless --keep-archives is given.
    • From Base_1.zip it takes only the database, settings and playlists. The script we used on flashbox skipped that archive, which is why the database, preferences.json and Data/Playlists then had to be fetched by hand.
    • --with-infinity adds Infinity for Linux's software for streaming, without overwriting anything.
    • Re-running resumes where it stopped.
  • Docs
    • A new README covers the pitch, features, screenshots, getting started, streaming and credits, and notes that this is an unofficial project built on flashpoint-web.
    • New feature docs: streaming (13), proxy sign-in with Authentik, Authelia and oauth2-proxy (14), and game saves (15).
    • Rewritten: the Docker deployment guide and the upgrade guide, which now covers moving from flashpoint-web.
    • Updated: the environment variables doc, the streaming READMEs and CONTRIBUTING.
    • The project is renamed throughout docs/.

Testing

  • Backend tests: 261 pass.

  • Frontend tests: 163 pass, and typecheck passes.

  • docker-compose.yml parses and defines the expected services and networks. I couldn't run Docker in the sandbox, so docker compose config, build and up are untested. Please try a full docker compose up -d --build, with and without COMPOSE_PROFILES=streaming, before merging.

  • setup-flashpoint.sh passes shellcheck. I ran it end to end against small archives built to match Ultimate's layout, both nested under Flashpoint Ultimate/ and flat:

    • extraction to the right paths, and selective extraction from Base_1.zip;
    • preferences.json created from the defaults;
    • archives deleted, and a re-run after completion;
    • the Infinity step adding files without replacing the database.

    The real download (aria2c) and Infinity's checksum weren't exercised.

  • The README screenshots come from the combined build running against a full Infinity database.

Not in this PR

These depend on the hosting decision:

  1. Publish images through CI, and update .github/workflows and the issue template links, which still point at darkraise.
  2. Repoint or disable the in-app update checker, which reads darkraise/flashpoint-web's releases.
  3. Have the app proxy /stream/ itself, so a reverse proxy only needs to provide HTTPS.
  4. Remove leftovers: the legacy /flash and /html5 routes, the GitHub stars endpoint, and upstream's docs/superpowers notes.
**Summary generated by LLM agent** Turns the combined history in `initial` into Dotcom Arcade: one project, one compose file, a setup script for Flashpoint Ultimate, and docs for everything we've built. ## Changes - **Rename to Dotcom Arcade.** - Package, image, container, network and log service names. - UI fallbacks and the browser title. - Migration 011 changes the default site name. Installs still on "Flashpoint Web" become "Dotcom Arcade", and a name an admin set is kept. - **One `docker-compose.yml`** builds the app, session manager and streamer from source, so no registry is needed yet. - Streaming is the opt-in `streaming` profile. Turning it on takes `COMPOSE_PROFILES=streaming` and `STREAMING_API_TOKEN`. - The streamer is built but never started by compose (`scale: 0`). - It replaces the old production and dev compose files, plus the two streaming ones. - **`scripts/setup-flashpoint.sh`** downloads the Ultimate torrent with aria2c and extracts each archive in turn. - It checks free space before each archive and deletes it afterwards, unless `--keep-archives` is given. - From `Base_1.zip` it takes only the database, settings and playlists. The script we used on flashbox skipped that archive, which is why the database, `preferences.json` and `Data/Playlists` then had to be fetched by hand. - `--with-infinity` adds Infinity for Linux's software for streaming, without overwriting anything. - Re-running resumes where it stopped. - **Docs** - A new README covers the pitch, features, screenshots, getting started, streaming and credits, and notes that this is an unofficial project built on flashpoint-web. - New feature docs: streaming (13), proxy sign-in with Authentik, Authelia and oauth2-proxy (14), and game saves (15). - Rewritten: the Docker deployment guide and the upgrade guide, which now covers moving from flashpoint-web. - Updated: the environment variables doc, the streaming READMEs and CONTRIBUTING. - The project is renamed throughout `docs/`. ## Testing - Backend tests: 261 pass. - Frontend tests: 163 pass, and typecheck passes. - `docker-compose.yml` parses and defines the expected services and networks. I couldn't run Docker in the sandbox, so `docker compose config`, `build` and `up` are untested. Please try a full `docker compose up -d --build`, with and without `COMPOSE_PROFILES=streaming`, before merging. - `setup-flashpoint.sh` passes shellcheck. I ran it end to end against small archives built to match Ultimate's layout, both nested under `Flashpoint Ultimate/` and flat: - extraction to the right paths, and selective extraction from `Base_1.zip`; - `preferences.json` created from the defaults; - archives deleted, and a re-run after completion; - the Infinity step adding files without replacing the database. The real download (aria2c) and Infinity's checksum weren't exercised. - The README screenshots come from the combined build running against a full Infinity database. ## Not in this PR These depend on the hosting decision: 1. Publish images through CI, and update `.github/workflows` and the issue template links, which still point at darkraise. 2. Repoint or disable the in-app update checker, which reads darkraise/flashpoint-web's releases. 3. Have the app proxy `/stream/` itself, so a reverse proxy only needs to provide HTTPS. 4. Remove leftovers: the legacy `/flash` and `/html5` routes, the GitHub stars endpoint, and upstream's `docs/superpowers` notes.
dejima-agent added 4 commits 2026-10-13 19:31:03 -07:00
The app, session manager and streamer are built from source by a single
docker-compose.yml. Streaming is the opt-in "streaming" profile, enabled
by setting STREAMING_API_TOKEN. Replaces the separate production, dev and
streaming compose files.
setup-flashpoint.sh downloads the Ultimate torrent with aria2c and
extracts each archive in turn, checking free space first and deleting
it afterwards unless --keep-archives is given. From Base_1.zip it takes
only the database, settings and playlists. --with-infinity adds
Infinity for Linux's software, which streaming needs, without replacing
anything. Re-running resumes where it stopped.
A new README for the combined project with setup from the Flashpoint
Ultimate torrent. New feature docs for streaming, proxy sign-in and
game saves; deployment, upgrade and streaming READMEs updated for the
single compose file; the project renamed throughout.
branderson added 8 commits 2026-10-13 22:14:33 -07:00
The app forwards /stream/ to the session manager, WebSocket upgrades
and the save-sync event stream included, ahead of helmet and
compression. A reverse proxy in front now needs no route of its own
for streams, and the session manager publishes no ports.
The script no longer carries download links: --torrent takes the
.torrent file from Flashpoint's downloads page, and --infinity the
Infinity archive. Before doing anything it works out the space the
download and extraction need, refuses to start without it, and asks
for confirmation unless --yes is given. It notes Flashpoint's unsettled
legal standing and the user's responsibility.
The README opens with storage, CPU and HTTPS requirements, including the
per-player cost of streaming, and explains Flashpoint's legal standing.
Setup now uses the torrent and Infinity archive from Flashpoint's site,
and the streaming docs reflect the app proxying /stream/.
A Gitea workflow builds the app, session manager and streamer images
and pushes them to the instance's registry on pushes to main and on
version tags, reading the registry host at run time. Compose can pull
them with IMAGE_PREFIX. The update checker reads APP_UPDATE_URL instead
of upstream's GitHub releases and is off without it. Upstream's Docker
Hub workflow is removed.
Drops the /flash and /html5 sections (old URLs redirect to /browse),
the GitHub star count endpoint, the unused HOME_RECENT_HOURS setting,
upstream's design notes and code review docs, and the issue template's
link to upstream discussions.
--seed-ratio and --seed-hours keep aria2c seeding after the download,
stopping at whichever limit comes first, before extraction starts; this
needs no extra disk. The README asks people to seed and explains
long-term seeding with --keep-archives. Re-running with --torrent once
extraction has begun no longer downloads the deleted archives again.
Reviewed-on: #2
Reviewed-by: branderson <brad@branderson.io>
branderson approved these changes 2026-10-13 22:16:11 -07:00
branderson merged commit bac27cbc05 into main 2026-10-13 22:17:01 -07:00
Sign in to join this conversation.
No Reviewers
No labels
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: branderson/dotcom-arcade#1