spaceport/apiserver/docs/source/dev_apiserver.md
2022-04-07 19:58:20 +00:00

1.9 KiB

API Server Development Setup

This guide assumes you are using Debian GNU/Linux 11 or Ubuntu 20.04 LTS. If you aren't, just spin up a VM with the correct version. Things break if you don't.

Install Dependencies

$ sudo apt update
$ sudo apt install build-essential python3 python3-dev libffi-dev python3-pip python3-virtualenv memcached git

Clone the repo. Skip this step if you already have it:

$ git clone https://github.com/Protospace/spaceport.git

Set up Python:

$ cd spaceport/apiserver/
$ python3 -m virtualenv -p python3 env
$ source env/bin/activate
(env) $ pip install -r requirements.txt

You need to make sure the Python virtual environment (env) is enabled whenever you run the API server.

Copy the secrets file and optionally fill out values depending on which integrations you wish to enable. It runs fine by default.

(env) $ cp apiserver/secrets.py.example apiserver/secrets.py
(env) $ sensible-editor apiserver/secrets.py  # optional

Initialize Database

Set up the database:

(env) $ python manage.py makemigrations
(env) $ python manage.py makemigrations api
(env) $ python manage.py migrate

Create a super user so you can manage who's a director or staff. This is a special account and is not treated as a member.

(env) $ python manage.py createsuperuser --email admin@example.com --username admin

Running

Run the development server:

$ source env/bin/activate
(env) $ DEBUG=true BINDALL=true python manage.py runserver 0.0.0.0:8000

The development server is now listening on port 8000. You can connect to it by opening http://<ip address>:8000/ in your web browser. If it's running locally, that would be http://127.0.0.1:8000/.