# Dotcom Arcade
**Your own Flash-era game portal, powered by
[Flashpoint Ultimate](https://flashpointarchive.org/).**
Dotcom Arcade serves a [Flashpoint Ultimate](https://flashpointarchive.org/)
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.

> [!NOTE]
>
> Dotcom Arcade is an unofficial community project, not affiliated with
> Flashpoint Archive. It's built on
> [flashpoint-web](https://github.com/darkraise/flashpoint-web) by darkraise.
## Before you start: hosting requirements
> [!WARNING]
>
> **Dotcom Arcade needs a lot of disk, and streaming needs a lot of CPU.** Check
> these before you download anything.
| Resource | Needed |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Storage** | **More than 2.3 TB** for Flashpoint Ultimate 14, and growing with each release. 4.6 TB if you keep the downloaded archives to seed them. A spare desktop drive won't do. |
| **Time** | A day or more to download and extract, depending on your connection and disks. |
| **Server** | Linux with Docker. 2 CPU cores and 4 GB of RAM serve the site and in-browser games to a household. |
| **Streaming** | Optional, and heavy: every player gets their own container running the game and encoding its video on the CPU. Plan on roughly 1 to 2 CPU cores and 1 GB of RAM per player streaming at once, and a few Mbps of upload each. |
| **HTTPS** | Required for streaming, since browsers only allow its video decoder on secure pages. Recommended anyway. |
## Features
- **Plays almost everything.**
- Flash runs in [Ruffle](https://ruffle.rs/) 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.
## Getting started
Check the [hosting requirements](#before-you-start-hosting-requirements) first.
### 1. Get Flashpoint Ultimate
Download two files from Flashpoint's
[downloads page](https://flashpointarchive.org/downloads):
- the **Flashpoint Ultimate** `.torrent` file;
- **Flashpoint Infinity for Linux** (`.7z`), whose software streaming needs.
[`scripts/setup-flashpoint.sh`](scripts/setup-flashpoint.sh) then does the rest:
- It checks that you have the disk space, and stops before downloading anything
if you don't.
- It downloads the torrent with `aria2c`.
- It extracts each archive in turn and deletes it afterwards, so the disk never
needs room for both.
- It 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.
```sh
sudo apt install aria2 7zip tmux
tmux new -s flashpoint
scripts/setup-flashpoint.sh --torrent FlashpointUltimate14.torrent \
--infinity fp14.0.3_lin_20251201.7z --seed-ratio 1.0 /srv/flashpoint
```
#### Please seed
Flashpoint Ultimate is shared over BitTorrent, and stays available only as long
as people seed it. If you can, give back at least what you downloaded:
- **Seed before extracting.** `--seed-ratio 1.0` keeps seeding after the
download until you've uploaded as much as you downloaded. `--seed-hours 24`
seeds for a day. With both, seeding stops at whichever comes first. This needs
no extra disk space, but extraction waits until seeding stops.
- **Seed for the long term.** `--keep-archives` keeps the archives after
extracting (about 4.6 TB in total), so a torrent client such as qBittorrent or
Transmission can go on seeding the downloads directory.
- **Let peers reach you.** The download listens on ports 6881-6999, TCP and UDP.
Forwarding them on your router and allowing them through your firewall lets
more people download from you.
### 2. Configure
```sh
cp .env.example .env
```
Set at least these:
```sh
FLASHPOINT_HOST_PATH=/srv/flashpoint
JWT_SECRET=