Make sure you have Poetry and a Celery Broker installed as described in Prerequisites.
Create the Environment
Create the python environment with the required packages.
--extras flag, provide a quoted, space-separated list with all the package
extras you would like to install.
An overview of all available extras can be found in the Package Overview.
In this example we’re going to install the dependencies for PostgreSQL and LDAP support
as well as the Poetry dependency groups containing development tools and tools for the
generation of docs.
poetry install --extras "pgsql ldap" --with dev,docs
Then open a shell with this environment loaded by executing
All of the following commands need to be executed inside the Poetry shell.
Now create a
.env file by copying the provided sample.
cd heliport_config cp -i .env.dist .env
Finally, edit the
.env file to provide your own settings.
Some settings are required, others are commented out and can be left unchanged.
The comments will guide you in the process.
For a development setup of HELIPORT,
DEVELOPMENT should be uncommented and set to
Run the Tests
To run the tests, execute pytest in the Poetry shell:
Run the Development Server
To run the server, first do a database migration and then execute the
migrate is only required when starting the app for the first time or if the database
schema changed since the last start.
heliport-cli migrate heliport-cli runserver
Start the Celery Worker
Start the Celery worker:
celery -A heliport_config worker
Or run it in the background:
celery -A heliport_config multi start "celery@$HOSTNAME" --logfile=celery.log --pidfile=celery.pid
This can be done by running
To start the webpack development server which keeps the webpacks up to date during
yarnpkg command refers to the Yarn package manager.
On some systems it might simply be called
If you want an admin for the
/admin/ interface, you can create one:
If you want to contribute code, please make sure to format it by running the following formatting commands:
# format Python code with Black (https://black.readthedocs.io/en/stable/) black . # sort python imports with isort (https://pycqa.github.io/isort/) isort . # format Django templates with djlint (https://djlint.com/) djlint --reformat . # format css, js, yaml, ... with Prettier (https://prettier.io/) yarnpkg format
Also, please make sure to add a license header to all new files.
reuse can help you with this:
reuse annotate --license GPL-3.0-or-later --copyright "Your institution" --year 2022 path/to/file
You can check if the code is up to the REUSE spec like this: