A Cookiecutter template for fastapi projects, inspired by cookiecutter-django.
✨📚✨ Read the full documentation
- fastapi-users for users authentication and management
- Pydantic for settings management
- Include a cli tool built with typer to simplify project management
- Pre-commit integration included by default
- Tortoise-orm and aerich database setup by default but switchable
- Limit-offset pagination helpers included
- Sending emails using aiosmtplib or Amazon SES
- Optional integration with sentry for error logging
- Production Dockerfile included
- Integration with arq for background tasks
- Optional setup of HTML templates rendering using jinja2
- Procfile for deploying to heroku
- Implement the Health Check API patterns on your fastapi application
Install the cookiecutter package:
pip install cookiecutter black isort
Note: Black
and isort
are used to format your project right after it has been generated.
Now run it against this repo:
cookiecutter https://github.com/Tobi-De/cookiecutter-fastapi
You'll be prompted for some values. Provide them, then a fastapi project will be created for you.
You could also use cruft to be able to keep your project up to date with the latest changes:
pip install cruft
cruft create https://github.com/Tobi-De/cookiecutter-fastapi
It work pretty much the same way as cookiecutter but you'll be able to update your project with the latest changes by running cruft update
.
Contributions are very welcome. To learn more, see the Contributor Guide.
Distributed under the terms of the MIT license, Cookiecutter Fastapi is free and open source software.
If you encounter any problems, please file an issue along with a detailed description.