Server setup (Docker Compose)
The backend + filebrowser + nginx (with frontend) can be deployed with one docker-compose.yml.
Requirements
- A Linux server with a public IP address
- A domain name
- Docker + Docker Compose plugin installed
Quickstart
- Download
docker-compose.ymland.env.examplefrom the repository.
bash
mkdir potato-launcher-backend
cd potato-launcher-backend
wget https://raw.githubusercontent.com/Petr1Furious/potato-launcher/refs/heads/master/docker-compose.yml
wget -O .env https://raw.githubusercontent.com/Petr1Furious/potato-launcher/refs/heads/master/.env.example- Edit
.envand set at least:
ADMIN_JWT_SECRET: JWT signing secret (generate withopenssl rand -base64 48)ADMIN_SECRET_TOKEN: admin “password” used to log in (pick a long random password)DOWNLOAD_SERVER_BASE: public URL where your server will host generated instance files (usuallyhttps://<your-domain>/data)
- Start the setup:
bash
docker compose up -d- Setup a reverse proxy.
- By default, nginx is exposed on port 8000 (see
docker-compose.yml), you can change it to any other value. - Choose any reverse proxy and setup TSL certificates. A couple of common options: Caddy, Traefik (both with automatic Let’s Encrypt) and nginx + Certbot (more manual approach).
What gets served where
When the setup is up:
- Web UI:
https://<your-domain>:8000/ - Backend API:
https://<your-domain>:8000/api/v1/ - API docs:
https://<your-domain>:8000/api/v1/docs - Generated instances & metadata:
https://<your-domain>:8000/data/ - Admin panel
https://<your-domain>:8000/admin/(requires login)
Logging in
Open the Web UI and log in using your ADMIN_SECRET_TOKEN.
Persistent data / backups
All persistent state lives under ./state/ by default:
state/internal: instances spec + uploaded instances storage (use Filebrowser to manage)state/generated: generated output served under/datastate/launcher: uploaded launcher artifactsstate/filebrowser-db: Filebrowser database
Back up the whole state/ directory.
WARNING
Do not share ADMIN_SECRET_TOKEN or ADMIN_JWT_SECRET. Anyone with the admin token can log in and upload/modify instances and launchers.