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.
What you need
Section titled “What you need”- 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.
Run it
Section titled “Run it”git clone https://github.com/PeekSeek/PeekSeek.gitcd PeekSeek/websitepip install -r requirements.txtcp .env.example .envOpen .env and set one value:
DB=sqlite:////absolute/path/to/dev.dbThen start it:
uvicorn src.app:app --reloadThe 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.
Make yourself an admin
Section titled “Make yourself an admin”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:
BOOTSTRAP_ADMIN_STEAM64=76561198000000000It 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.
What works without secrets
Section titled “What works without secrets”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.
Run the tests
Section titled “Run the tests”pytest -vThey 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.
Build the plugins
Section titled “Build the plugins”Only if you have a game server to put them on.
cd plugins/peekseek-match # or peekseek-arena, -raid, -lobby, -armor-skindotnet build PeekSeek.sln -c Releasedotnet test PeekSeek.slnBuilds 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>/.
- Architecture, if you want to know what you just started
- Self-hosting, when you want it on a real domain
- Configuration, for every setting in one table
