Quick start.
Everything running on your computer.
Build the web player and the server, optionally generate the sample catalogue, create the owner account and run the app in a simulator. Commands are for macOS or Linux; on Windows use WSL or Git Bash.
01Before you begin
Commands on this page are for macOS or Linux. On Windows, run them in WSL (Windows Subsystem for Linux) or Git Bash.
Install Node.js 22 and, for the sample catalogue and uploads, ffmpeg. For the app you need Flutter 3.41 or newer. The full list is on Requirements.
node -v # v22.x or newer
ffmpeg -version
flutter --version
02Build and start the server
- Unpack the item and open a terminal in the unpacked folder (the one that contains
app/,web/andserver/). - Build the web player. The server serves it at
/.
cd web && npm ci && npm run build
- Build the server.
cd ../server && npm ci && npm run build
- Optional: generate the sample catalogue (six placeholder series made from colour gradients and the bundled fonts). It needs ffmpeg and ImageMagick 7 (
magick) and takes a few minutes, because every episode is converted to HLS like a real upload.
npm run seed:sample
- Start the server.
npm start # http://localhost:8080 · /admin · /studio
03Create the owner account
The first start prints a one-time setup code in the terminal (unless you set ADMIN_SETUP_TOKEN in .env, then that value is the code). Open http://localhost:8080/admin, enter the code and create the owner account (password of 12 or more characters). The console then shows a setup checklist on the Overview.
Without a .env file the server creates its two keys as files in server/data/ and prints a warning. That is fine on your computer. On a real server set them in .env (how).
04Open the web player
Open http://localhost:8080/. You start as a guest; no sign-up is needed. Money switches are off, so the store shows nothing for sale until you turn payments on (Payments).
05Run the app
Start an iOS Simulator or Android emulator, then:
cd app && flutter pub get && flutter run
Without a server address the app uses the server on your computer: the iOS Simulator reaches it as localhost, the Android emulator as 10.0.2.2 (app/lib/core/api.dart). For a real server:
flutter run --dart-define=API_BASE_URL=https://api.example.com
Use flutter run or open app/ios/Runner.xcworkspace in Xcode to run on the simulator. flutter build ios --simulator fails on Xcode 27 (details).