Personal reading tracker for books that are planned, in progress, or finished.
Live: https://reading.a007.bid
- Python 3.14.5
- Django 6.0
- uv for dependency management
- PostgreSQL
- Docker Compose locally and on Orion
- Docker Swarm on staging and production
Create an ignored local env file and fill in secret values:
cp .env.example .env.localSet POSTGRES_PASSWORD and DATABASE_URL in .env.local; do not commit those values.
Run locally behind Traefik:
make local-up
make migrate
make createsuperuserOpen https://readinglocal.a007.bid.
Create an ignored Orion env file with DATABASE_URL, then start the app:
The Orion compose file also exposes the app on http://localhost:8000 for local browser checks, alongside readingorion.a007.bid.
cp .env.example .env.orion
make orion-upOpen https://readingorion.a007.bid.
uv sync
make lint
make check
make test