This project requires Python3.9+ (Python 4 is not acceptable). Depending on your operating system, you may be able to install it from your package manager, an external PPA (like deadsnakes), or the official website.
This project uses pipenv to manage dependencies. To get started, you'll need to install pipenv from PyPI, eg:
$ python3 -m pip install pipenvOnce you have pipenv installed, you can create a virtual enviroment and install the project's dependencies with
$ pipenv shell
$ pipenv installTo additionally install development dependencies, do
$ pipenv install -dYou can then run a development server (not appropriate for production) with
$ uvicorn polympics_server:applicationYou can set the host and port to bind on with --port and --host.
TODO: Add set up instructions for production with gunicorn and apache or nginx.
Configuration goes in the same dir as this README, in a file named config.json. The available options are as follows:
| Field | Default | Description |
|---|---|---|
debug |
false |
Whether to run FastAPI in debug mode. |
max_session_age |
"30d" |
How long user auth sessions last. |
signups_open |
true |
Whether or not people may sign up. |
db_name |
"polympics" |
The PostgreSQL database to connect to. |
db_user |
"polympics" |
The user to use to connect to the database. |
db_host |
"127.0.0.1" |
The host of the database to connect to. |
db_port |
5432 |
The port to connect to on the database host. |
db_password |
Required | The password for the database. |
db_log_level |
"INFO" |
The level of logs for Peewee to output. |
discord_api_url |
https://discord.com/api/v8 |
The URL of the Discord API. |
discord_cdn_url |
https://cdn.discordapp.com |
The URL of the Discord CDN. |
These can also all be set as environment variables.
You can access the server management CLI from the command line by running (with pipenv enabled):
$ python -m polympics_serverThe following subcommands are available
appscreateeditdeletelistview
sessionsprune
migrationsapplylist
Use --help on any command for more information about what it does and how to use it, for example:
$ python -m polympics_server apps edit --helpThere are also automatically generated docs available: run the server as described above and visit http://127.0.0.1:8000/docs or http://127.0.0.1:8000/redoc.