This is the simplest configuration for developers to start with.
- Run
docker compose run --rm django ./manage.py migrate - Run
docker compose run --rm django ./manage.py createsuperuserand follow the prompts to create your own user
- Run
docker compose up - Access the site, starting at http://localhost:8000/admin/
- When finished, use
Ctrl+C
To non-destructively update your development stack at any time:
- Run
docker compose down - Run
docker compose pull - Run
docker compose build --pull - Run
docker compose run --rm django ./manage.py migrate
- Run
docker compose down -v
-
Knights Archers Zombies (
knights_archers_zombies_v10, PettingZoo)- Multi‑agent, discrete actions. Demonstrates combat/strategy coordination.
- Example:
docker compose run --rm django \ ./manage.py training -e knights_archers_zombies_v10 \ # Environment -a PPO \ # Agent -p \ # Parallel -g 0.0 \ # GPUs -t 100 \ # Iterations --immediate
-
Pistonball (
pistonball_v6, PettingZoo)- Multi‑agent with a continuous action space. Demonstrates continuous control and teamwork.
- Example:
docker compose run --rm django \ ./manage.py training -e pistonball_v6 \ # Environment -a PPO \ # Agent -g 0.0 \ # GPUs -t 100 \ # Iterations --immediate
-
LunarLander (
LunarLander-v2, Gymnasium)- Single‑agent, discrete actions. Demonstrates balancing multiple variables to achieve a safe, stable landing. Ideal candidate for decomposed rewards.
- Example:
docker compose run --rm django \ ./manage.py training -e LunarLander-v2 \ # Environment -a PPO \ # Agent -g 0.0 \ # GPUs -t 100 \ # Iterations --immediate
Notes:
- Use
-p/--parallelonly for PettingZoo environments. - DQN is for discrete action spaces; it is not available for Pistonball (continuous).
Review available checkpoints:
docker compose run --rm django ./manage.py list_checkpointsYou will see a list of available checkpoints, with the most recent at the top.
environment | checkpoint_pk | created | inferences | episodes
----------------------------+---------------+---------------------+------------+---------
pistonball_v6 | 2 | 2026-01-03 19:29:25 | 1 | 1
knights_archers_zombies_v10 | 1 | 2026-01-03 19:27:32 | 1 | 1Select an existing checkpoint to run inference. For example:
docker compose run --rm django ./manage.py inference 2 -p --immediateIf you've already started the server with docker compose up, you can see all available checkpoints at http://localhost:8000/admin/core/checkpoint/.
See the ingest documentation
When running the "Develop with Docker" configuration, all tox commands must be run as
docker compose run --rm django uv run tox; extra arguments may also be appended to this form.
Run uv run tox to launch the full test suite.
Note: Tests are configured to run with --reuse-db by default. If you change migrations or suspect the test database is out of sync, rebuild with:
docker compose run --rm django uv run tox -e test -- --create-db
Individual test environments may be selectively run. This also allows additional options to be be added. Useful sub-commands include:
uv run tox -e lint: Run only the style checksuv run tox -e type: Run only the type checksuv run tox -e test: Run only the pytest-driven tests
To automatically reformat all code to comply with
some (but not all) of the style checks, run uv run tox -e format.