A Django-based authentication service with a Dockerized dev setup (PostgreSQL + Redis + Celery). Use the commands below to build, run, and manage your local environment quickly.
- Docker and Docker Compose installed
- A
.envfile in the project root (see Environment variables below)
- Build images
sudo docker compose -f docker-compose-dev.yml buildBuilds all service images defined in compose (web, db, redis, worker).
- Apply database migrations
sudo docker compose -f docker-compose-dev.yml run --rm web python manage.py migrateCreates/updates database schema in the Postgres container.
- Start the stack
sudo docker compose -f docker-compose-dev.yml upStarts web, db, redis, and the Celery worker (logs stream in the foreground).
- Create an admin user (optional)
sudo docker compose -f docker-compose-dev.yml run --rm web python manage.py createsuperuserInteractive prompt to create a Django superuser for admin login.
sudo docker compose -f docker-compose-dev.yml buildBuild or rebuild images after changing dependencies or Dockerfile.
sudo docker compose -f docker-compose-dev.yml run --rm web python manage.py makemigrationsGenerates new migration files from your model changes.
sudo docker compose -f docker-compose-dev.yml run --rm web python manage.py migrateApplies pending migrations to the database.
sudo docker compose -f docker-compose-dev.yml upBrings up all services (web, db, redis, worker). Add -d to run in the background.
sudo docker compose -f docker-compose-dev.yml run --rm web pip install package_nameInstalls a Python package inside the web container. Remember to pin it in requirements.txt and rebuild.
sudo docker compose -f docker-compose-dev.yml run --rm web <your_command_here>Run any ad‑hoc manage.py or shell command in the web container.
-
Create superuser
sudo docker compose -f docker-compose-dev.yml run --rm web python manage.py createsuperuser
-
Run tests (pytest)
sudo docker compose -f docker-compose-dev.yml run --rm web pytest -q
-
Django shell
sudo docker compose -f docker-compose-dev.yml run --rm web python manage.py shell
-
Collect static files (if needed)
sudo docker compose -f docker-compose-dev.yml run --rm web python manage.py collectstatic --noinput
-
Stop services
sudo docker compose -f docker-compose-dev.yml down
-
Stop and remove volumes (DB reset)
sudo docker compose -f docker-compose-dev.yml down -v