branderson c5ca8d0efa feat(streaming): proxy /stream/ through the app
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.
2026-10-13 21:08:53 -07:00
2026-01-31 17:29:07 +07:00
2026-01-28 19:21:02 +07:00
2026-01-28 19:21:02 +07:00
2026-01-13 10:09:15 +07:00

Dotcom Arcade

Your own Flash-era game portal, powered by Flashpoint Ultimate.

Dotcom Arcade serves a Flashpoint Ultimate collection as a website you'd have played at a friend's house or in the computer lab, with modern UX. It aims to play as much of the archive as possible in any browser: Flash and HTML5 run in the page, and Java, Shockwave and the original Flash Player stream from your server.

The Dotcom Arcade homepage

Note

Dotcom Arcade is an unofficial community project, not affiliated with Flashpoint Archive. It's built on flashpoint-web by darkraise.

Features

  • Plays almost everything.

    • Flash runs in Ruffle and HTML5 runs natively.
    • Games no browser can run stream from the server into the page, each player in their own container: Java applets, Shockwave and Director games, and Flash games that need the real Flash Player. With streaming on, any Flash game can switch to the original Flash Player.
  • An arcade, not a file browser. A portal-style layout with genre categories and glossy tiles, and color schemes defined as data, so new themes are easy to add.

  • Discovery first. The homepage offers:

    • a Game of the Day;
    • a Time Machine of games released in any week, with a date picker;
    • shelves from Flashpoint's curated playlists;
    • your recently played games.

    Browse lists default to a shuffle, not A to Z.

  • One page per game. It has a click-to-play stage, details and tags, and related games ranked by shared tags, series and developer.

  • Accounts and saves.

    • Multi-user, with roles.
    • Favorites, playlists and play tracking.
    • Game saves follow you between browsers, with the last 10 kept as backups.
  • Sign in through your proxy. Authentik, Authelia, oauth2-proxy and similar forward-auth proxies can sign users in.

  • Mature content filter. Adult and extreme content is hidden unless a user opts in.

A game page Playing a game in the page

Getting started

You need a Linux server with Docker, and enough disk for Flashpoint Ultimate: about 2.3 TB for version 14, or 4.6 TB if you keep the downloaded archives to seed. Expect the download and extraction to take a day or more.

1. Get Flashpoint Ultimate

scripts/setup-flashpoint.sh downloads the torrent with aria2c and then extracts each archive in turn. It checks free space before each one and deletes it afterwards, so the disk never needs room for both. It also pulls the database, settings and playlists out of Base_1.zip, which otherwise only holds Windows software. Re-run it to resume after an interruption.

sudo apt install aria2 7zip tmux
tmux new -s flashpoint
scripts/setup-flashpoint.sh --with-infinity /srv/flashpoint

--with-infinity adds Flashpoint Infinity for Linux's software, which streaming needs. --keep-archives keeps the archives so you can keep seeding.

2. Configure

cp .env.example .env

Set at least these:

FLASHPOINT_HOST_PATH=/srv/flashpoint
JWT_SECRET=<output of: openssl rand -hex 32>
PUID=1000                             # your user, from `id -u` and `id -g`
PGID=1000

3. Start

docker compose up -d --build

Open http://<server>/ and create the admin account. On first start the app indexes the collection, which takes a few minutes on a full Ultimate install. Under Settings → App you can set the site name and tagline.

4. Optional: streaming

Streaming plays the games browsers can't. To turn it on:

  1. Run the setup script with --with-infinity.

  2. Add to .env:

    COMPOSE_PROFILES=streaming
    STREAMING_API_TOKEN=<output of: openssl rand -hex 32>
    
  3. Rebuild with docker compose up -d --build.

  4. Route /stream/ on your site to the session manager (port 8081). Streams need HTTPS. See the streaming guide for an nginx example.

The session manager starts containers through the Docker socket, which amounts to root on the host. Keep it off the public internet. Only /stream/ needs to be reachable, and only through your proxy.

Signing in through a reverse proxy

If your site sits behind Authentik, Authelia or another forward-auth proxy, the app can trust the username it passes along. See proxy sign-in.

Updating

git pull
docker compose up -d --build

Documentation

The docs cover features, deployment, configuration, the API and development. Useful starting points:

Credits

  • Flashpoint Archive, for preserving web games and animations, and for the curated playlists the homepage draws on.
  • flashpoint-web by darkraise, which this project is built on.
  • Ruffle, for running Flash in modern browsers.
  • Selkies, which streams the games.

License

GPL-3.0, like flashpoint-web. See LICENSE.

S
Description
Self-hosted flash game arcade for Flashpoint Ultimate, focused on game discovery, game support coverage, and theming. Not affiliated with the Flashpoint project.
Readme GPL-3.0
47 MiB
Languages
TypeScript 93.8%
JavaScript 3.5%
Shell 1.1%
CSS 0.6%
HTML 0.3%
Other 0.7%