Examples use uv, but plain pip can be used.
# Create/activate a virtual environment and install dependencies
cd app
uv python install 3.14
uv venv --python 3.14
source .venv/bin/activate
uv pip install -r requirements/dev.txtcd app/frontend
npm install
# Live update tailwindcss:
npm run devcd app
python manage.py migrate
python manage.py createsuperuser
python manage.py runserverThe default Compose file runs the local development image with Django's development server and a PostgreSQL container:
podman compose up --buildOpen http://localhost:8000. The local image runs migrations before starting
runserver. Source files and templates are mounted individually so image-built
static assets are not hidden by a broad ./app:/app bind mount.
To test the production image locally, layer the production override:
podman compose -f docker-compose.yaml -f docker-compose.prod.yaml up --buildThis uses the prod image target, clears local bind mounts, sets
DJANGO_DEBUG=False, and runs the image default Gunicorn command. It still uses
the same local PostgreSQL service and named volume. PostgreSQL 18 stores data
under the volume mounted at /var/lib/postgresql.
For example, using the example data:
cd app
source .venv/bin/activate
python manage.py import_axion_folder ../data
# Replace existing experiments instead of raising IngestionError:
python manage.py import_axion_folder --replace-existing ../data/ENDpoiNTs
# Control conditions default to DMSO; override if needed:
python manage.py import_axion_folder ../data/ENDpoiNTs --control-chemical Water# Update Python requirements
# Use uv instead of plain pip
uv pip compile requirements/base.in --universal --output-file requirements/base.txt
uv pip compile requirements/dev.in --universal --output-file requirements/dev.txt
# Use Ruff linter
ruff check
# Use Ruff formatter
ruff format
# Use Pyright type checking
pyright
# Run the tests from the app dir
# for pytest to discover the configuration
cd app
pytest
# Run Django management commands with activated venv:
cd app
python manage.py <command>