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:
Publish images through CI, and update .github/workflows and the issue template links, which still point at darkraise.
Repoint or disable the in-app update checker, which reads darkraise/flashpoint-web's releases.
Have the app proxy /stream/ itself, so a reverse proxy only needs to provide HTTPS.
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.
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.
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.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary generated by LLM agent
Turns the combined history in
initialinto Dotcom Arcade: one project, one compose file, a setup script for Flashpoint Ultimate, and docs for everything we've built.Changes
docker-compose.ymlbuilds the app, session manager and streamer from source, so no registry is needed yet.streamingprofile. Turning it on takesCOMPOSE_PROFILES=streamingandSTREAMING_API_TOKEN.scale: 0).scripts/setup-flashpoint.shdownloads the Ultimate torrent with aria2c and extracts each archive in turn.--keep-archivesis given.Base_1.zipit takes only the database, settings and playlists. The script we used on flashbox skipped that archive, which is why the database,preferences.jsonandData/Playliststhen had to be fetched by hand.--with-infinityadds Infinity for Linux's software for streaming, without overwriting anything.docs/.Testing
Backend tests: 261 pass.
Frontend tests: 163 pass, and typecheck passes.
docker-compose.ymlparses and defines the expected services and networks. I couldn't run Docker in the sandbox, sodocker compose config,buildandupare untested. Please try a fulldocker compose up -d --build, with and withoutCOMPOSE_PROFILES=streaming, before merging.setup-flashpoint.shpasses shellcheck. I ran it end to end against small archives built to match Ultimate's layout, both nested underFlashpoint Ultimate/and flat:Base_1.zip;preferences.jsoncreated from the defaults;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:
.github/workflowsand the issue template links, which still point at darkraise./stream/itself, so a reverse proxy only needs to provide HTTPS./flashand/html5routes, the GitHub stars endpoint, and upstream'sdocs/superpowersnotes.