Skip to content

Getting started

This gets the website running on your machine with a throwaway database. You do not need a game server, and you do not need Unturned.

  • Python 3.12
  • Git

That is the whole list for a local site. Postgres is what production uses, but you can skip it for now.


Terminal window
git clone https://github.com/PeekSeek/PeekSeek.git
cd PeekSeek/website
pip install -r requirements.txt
cp .env.example .env

Open .env and set one value:

Terminal window
DB=sqlite:////absolute/path/to/dev.db

Then start it:

Terminal window
uvicorn src.app:app --reload

The site is on localhost:8000. The interactive API explorer, generated from the routes themselves, is at localhost:8000/api, /docs is these pages, which the app serves from the same port once they are built.


A fresh database has no admin, and there is no way to promote the first one through the site. Set this in .env and restart once:

Terminal window
BOOTSTRAP_ADMIN_STEAM64=76561198000000000

It creates the account if it has never logged in. The Steam callback matches on steam64, so the row is reused at first login rather than duplicated. Leave it unset in production.


Most of it. Every integration no-ops on an empty value rather than crashing, which is deliberate: it is what lets the dev deployment run without the ability to touch anything real.

Unset What stops
STEAM_API_KEY Persona names and avatars. Players still work, they are just nameless.
DISCORD_CLIENT_SECRET Discord login. Steam login is unaffected.
BOT_TOKEN The Discord player counter.
LOG_WEBHOOK, QUEUE_LOG_CHANNEL Discord logging.

Pages backed by data render blank until something seeds them. That is an empty database, not a broken install.


Terminal window
pytest -v

They use their own database and need no secrets, no network, and no game server. If they pass on a clean clone, your environment is fine.


Only if you have a game server to put them on.

Terminal window
cd plugins/peekseek-match # or peekseek-arena, -raid, -lobby, -armor-skin
dotnet build PeekSeek.sln -c Release
dotnet test PeekSeek.sln

Builds pull the Rocket, Unturned and Unity assemblies from the RestoreMonarchy.RocketRedist NuGet package, so there are no hand-copied lib/ DLLs to find. The compiled DLL lands in plugin/bin/Release/net48/ and drops into the server’s Rocket/Plugins/<name>/.