Powered by Cookiecutter, Cookiecutter FastAPI is a framework that helps you to start production-ready FastAPI projects quickly.
- Documentation: it's in progress
- If you have problems with Cookiecutter FastAPI, please open issues
- Works with Python 3.9
- FastAPI 0.63.0
- PostgreSQL + SQLAlchemy models
- Alembic migrations
- Basic starting models for users (modify and remove as you need)
- Secure password hashing by default
- JWT token authentication
- CORS (Cross Origin Resource Sharing)
- Gitlab CI or Github Actions support (by your choice) with backend linters, testing (in progress)
- Run tests with pytest
- Production ready Python web server using Uvicorn and Gunicorn. (in progress)
We express my deep gratitude to the Mr. Sebastián Ramírez aka tiangolo for his work on creating a wonderful framework FastAPI. A lot of the code for this project was taken from his full-stack-fastapi-postgresql repository. It seemed a bit heavy to me, so we created my own lightweight version. Hope you enjoy it :)
Also I'd like to say Thank you to all of the creators of Cookiecutter-Django. This is a very cool project with the same idea, but under the Django framework.
We admire the work they have done!
First, get Cookiecutter. Trust me, it's awesome:
$ pip3 install "cookiecutter>=1.7.0"
Now run it against this repo:
$ cookiecutter https://github.com/bigEvilBanana/cookiecutter-fastapi
You'll be prompted for some values. Provide them, then a FastAPI project will be created for you.
- Only maintained 3rd party libraries are used.
- Environment variables for configuration
Pyup brings you automated security and dependency updates used by Google and other organizations. Free for open source projects!
If you think you found a bug or want to request a feature, please open an issue.
If you have differences in your preferred setup, we encourage you to fork this to create your own version. Once you have your fork working, let me know and I'll add it to a 'Similar Cookiecutter Templates' list here. It's up to you whether or not to rename your fork.
If you do rename your fork, we encourage you to submit it to the following places:
- cookiecutter so it gets listed in the README as a template.
We accept pull requests if they're small, atomic, and make our own project development experience better.