Oct 2020Sep 2021Sep 2022Aug 2023Aug 2024Aug 2025Jul 2026
ArtifactsPyPIpip install fastapi-template
README
Flexible general-purpose template for FastAPI.
Usage
⚠️ Git, Python and UV must be installed and accessible ⚠️
Templator in action
You can install it directly from pypi with pip.
python3 -m pip install fastapi_template
python3 -m fastapi_template
# or fastapi_template
# Answer all the questions
# 🍪 Enjoy your new project 🍪
cd new_project
docker-compose up --build
docker run --rm -it -v "$(pwd):/projects" ghcr.io/s3rius/fastapi_template
Features
One of the coolest features is that this project is extremely configurable.
You can choose between different databases and even ORMs, or
you can even generate a project without a database!
Currently SQLAlchemy 2.0, TortoiseORM, Piccolo, Ormar and Beanie are supported.
This project can run as TUI or CLI and has excellent code documentation.
Generator features:
Pydantic V2 (Where it's possible. Some libs doesn't have support);
You can choose between GraphQL and REST api;
Uvicorn and gunicorn;
Different databases support;
Different ORMs support;
Optional migrations for each ORM except raw drivers;
Optional redis support;
Optional rabbitmq support;
different CI\CD;
Optional Demo routers and models (This helps you to see how project is structured);
Pre-commit integration;
Generated tests with almost 90% coverage;
Tests for the generator itself;
Optional Prometheus integration;
Optional Sentry integration;
Optional Loguru logger;
Optional Opentelemetry integration.
Optional taskiq integration.
This project can handle arguments passed through command line.
$ python -m fastapi_template --help
Usage: fastapi_template [OPTIONS]
Options:
-n, --name TEXT Name of your awesome project
-V, --version Prints current version
--force Owerrite directory if it exists
--quiet Do not ask for features during generation
--api-type [rest|graphql] Select API type for your application
--db [none|sqlite|mysql|postgresql|mongodb]
Select a database for your app
--orm [none|ormar|sqlalchemy|tortoise|psycopg|piccolo|beanie]
Choose Object–Relational Mapper lib
--ci [none|gitlab_ci|github] Select a CI for your app
--redis Add redis support
--add_users Add fastapi-users support
--rabbit Add RabbitMQ support
--taskiq Add Taskiq support
--migrations Add Migrations
--dummy Add dummy model
--routers Add example routers
--swagger Add self hosted swagger
--prometheus Add prometheus compatible metrics
--sentry Add sentry integration
--loguru Add loguru logger
--opentelemetry Add opentelemetry integration
--traefik Adds traefik labels to docker container
--kafka Add Kafka support
--gunicorn Add gunicorn server
--cookie-auth Add authentication via cookie support
--jwt-auth Add JWT auth support
--help Show this message and exit.