The all-in-one backend application for Unitystation
- Account management and user validation.
- Server list management.
- In-game persistence.
- Works cross-fork!
- Modular architecture.
Copy example.env
to .env
and customize it. You can then start development by either using docker or running the project locally.
You will need python 3.12+
Extra steps if don't want to install uv globally for some reason
python -m venv .venv
. .venv/bin/activate
.venv\Scripts\activate
Install uv to manage dependencies
pip install -U pip uv
Install dev dependencies
uv sync
from the src folder run
python manage.py runserver
pre-commit is a git hook which runs every time you make a commit to catch linting and formatting errors early.
pre-commit install
Hint: if the world is on fire, production servers down, clown at your doorstep and you don't have time to make linters happy, add
-n
togit commit
command (CI will still be mad though).
Docker (with help of compose) lets you launch entire project including database locally without installing anything.
1- To get started with docker, install it from here and (optionally) install docker engine.
2- Launch project by running docker compose -f dev-compose.yml up --build
.
After everything is done, you can access the web UI at http://localhost:8000/. Here you will see the automatic documentation for the API and you can test out the API end points.
Some other useful links:
- http://localhost:8000/admin -> View all accounts and edit existing ones.
- http://localhost:8000/accounts/register -> Create an account.
- http://localhost:8000/accounts/login-credentials -> Test loging in with a username and password.
- http://localhost:8000/accounts/login-token -> Test loging in with a token (see admin page if you lost the token after login with credentials).
You can also use Bruno (a Postman alternative) to test out the API. The Bruno project is included in the repository and you can find it in the 'api-collection' folder in the root of the repository.