- docker Docker
- uv for Python package and environment management.
- Poppler – Install Poppler, required for PDF processing.
You can just fork or clone this repository and use it as is.
✨ It just works. ✨
Create env file using example file
cp .env.example .env
You can then update configs in the .env
files to customize your configurations.
You have to change them with a secret key, to generate secret keys you can run the following command:
python -c "import secrets; print(secrets.token_urlsafe(32))"
Copy the content and use that as password / secret key. And run that again to generate another secure key.
You have two options to start this dockerized setup, depending on whether you want to reset the database:
Use the prestart profile to automatically run database migrations and seed data. This profile also resets the database, so use it only when you want a fresh start.
docker compose --profile prestart up
If you don't want to reset the database, start the project directly:
docker compose watch
This will start all services in watch mode for development — ideal for local iterations.
While the backend service supports live code reloading via docker compose watch
, Celery does not support auto-reload. When you make changes to Celery tasks, workers, or related code, you need to rebuild the Docker image:
docker compose up --build
This is also necessary when:
- Dependencies change in
pyproject.toml
oruv.lock
- You modify Dockerfile configurations
- Changes aren't being reflected in the running containers
Backend docs: backend/README.md.
Deployment docs: deployment.md.
General development docs: development.md.
This includes using Docker Compose, custom local domains, .env
configurations, etc.
Check the file release-notes.md.
This project was created using full-stack-fastapi-template. A big thank you to the team for creating and maintaining the template!!!