This guide describes how to set up a local development instance of db.crem.xyz on a fresh machine.
- Docker & Docker Compose (running)
- uv: Fast Python package manager
(Python >= 3.14 will automatically be fetched and managed by
curl -LsSf https://astral.sh/uv/install.sh | shuv) - just: Command runner
cargo install just # or via your system package manager (e.g., apt install just, brew install just) - (Optional) unar: Archive extractor used for game uploads (
sudo apt install unar)
git clone <repo-url>
cd ifdbcp .env.sample .envDefault database credentials in .env.sample match docker-compose.yml and are ready for local development.
uv syncThis sets up the virtual environment (.venv) and installs all runtime and development packages (Django, Ruff, Mypy, etc.).
just start-db(Runs PostgreSQL 15 on port 6432 via Docker Compose).
In a new terminal:
uv run python manage.py migratePopulate base categories, author roles, tags, and curation rules:
uv run python manage.py initifdb
uv run python manage.py initenrichment
uv run python manage.py createsuperuseruv run python manage.py runserverThe site is now live at http://127.0.0.1:8000/.
Common commands defined in justfile:
just # List all available commands
just check # Run all checks (Django system checks, Ruff format/lint, Mypy, tests)
just fix # Format code and auto-fix lint issues with Ruff
just fix_and_check # Run formatting then all checksNote: Celery workers and scheduler are only needed for fetch & import and automated curation workflows. For regular web development, template editing, and running tests, they are not needed.
If you are working on fetch/import or scheduled tasks:
-
Celery Worker:
just celery-worker # or: uv run python manage.py celeryworker -
Celery Beat (scheduler):
just celery-beat # or: uv run celery -A ifdb beat -l INFO --scheduler django_celery_beat.schedulers:DatabaseScheduler