{"id":13424905,"url":"https://github.com/s3rius/FastAPI-template","last_synced_at":"2025-03-15T18:35:54.334Z","repository":{"id":37264818,"uuid":"301531901","full_name":"s3rius/FastAPI-template","owner":"s3rius","description":"Feature rich robust FastAPI template.","archived":false,"fork":false,"pushed_at":"2025-02-17T23:09:01.000Z","size":2449,"stargazers_count":2191,"open_issues_count":34,"forks_count":189,"subscribers_count":30,"default_branch":"master","last_synced_at":"2025-03-11T21:11:06.432Z","etag":null,"topics":["aerich","alembic","asynchronous","asyncio","cookiecutter","cookiecutter-python3","cookiecutter-template","fastapi","fastapi-boilerplate","fastapi-template","graphql","opentelemetry","ormar","prometheus","python3","sentry","sqlalchemy-orm","strawberry-graphql","tortoise-orm"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/s3rius.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"open_collective":"fastapi-template"}},"created_at":"2020-10-05T20:29:19.000Z","updated_at":"2025-03-11T20:53:42.000Z","dependencies_parsed_at":"2024-11-06T15:41:46.506Z","dependency_job_id":"774727c8-146e-45de-b816-d4e155b8a981","html_url":"https://github.com/s3rius/FastAPI-template","commit_stats":{"total_commits":188,"total_committers":22,"mean_commits":8.545454545454545,"dds":0.1436170212765957,"last_synced_commit":"4eb58d1885dc3c4935392988010fd3b18a871b10"},"previous_names":[],"tags_count":40,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s3rius%2FFastAPI-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s3rius%2FFastAPI-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s3rius%2FFastAPI-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s3rius%2FFastAPI-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/s3rius","download_url":"https://codeload.github.com/s3rius/FastAPI-template/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243754035,"owners_count":20342538,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aerich","alembic","asynchronous","asyncio","cookiecutter","cookiecutter-python3","cookiecutter-template","fastapi","fastapi-boilerplate","fastapi-template","graphql","opentelemetry","ormar","prometheus","python3","sentry","sqlalchemy-orm","strawberry-graphql","tortoise-orm"],"created_at":"2024-07-31T00:01:00.714Z","updated_at":"2025-03-15T18:35:54.328Z","avatar_url":"https://github.com/s3rius.png","language":"Python","readme":"![python version](https://img.shields.io/pypi/pyversions/fastapi_template?style=for-the-badge) [![version](https://img.shields.io/pypi/v/fastapi_template?style=for-the-badge)](https://pypi.org/project/fastapi-template/)\n[![](https://img.shields.io/pypi/dm/fastapi_template?style=for-the-badge)](https://pypi.org/project/fastapi-template/)\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/s3rius/FastAPI-template/master/images/logo.png\" width=700\u003e\n\u003cdiv\u003e\u003ci\u003eFlexible general-purpose template for FastAPI.\u003c/i\u003e\u003c/div\u003e\n\u003c/div\u003e\n\n## Usage\n\n⚠️ [Git](https://git-scm.com/downloads), [Python](https://www.python.org/) and [Poetry](https://python-poetry.org/) must be installed and accessible ⚠️\n\nPoetry version must be greater or equal than 1.1.8. Otherwise it won't be able to install SQLAlchemy.\n\n\u003cdiv align=\"center\"\u003e\n \u003ca href=\"https://asciinema.org/a/ig0oi0fOq1hxqnW5X49XaaHIT\" target=\"_blank\"\u003e\u003cimg src=\"https://asciinema.org/a/ig0oi0fOq1hxqnW5X49XaaHIT.svg\" /\u003e\u003c/a\u003e\n  \u003cp\u003eTemplator in action\u003c/p\u003e\n\u003c/div\u003e\n\nYou can install it directly from pypi with pip.\n```bash\npython3 -m pip install fastapi_template\npython3 -m fastapi_template\n# or fastapi_template\n# Answer all the questions\n# 🍪 Enjoy your new project 🍪\ncd new_project\ndocker-compose up --build\n```\n\nIf you want to install it from sources, try this:\n```shell\npython3 -m pip install poetry\npython3 -m pip install .\npython3 -m fastapi_template\n```\n\nAlso, you can use it with docker.\n```bash\ndocker run --rm -it -v \"$(pwd):/projects\" ghcr.io/s3rius/fastapi_template\n```\n\n## Features\n\nOne of the coolest features is that this project is extremely configurable.\nYou can choose between different databases and even ORMs, or\nyou can even generate a project without a database!\nCurrently SQLAlchemy 2.0, TortoiseORM, Piccolo, Ormar and Beanie are supported.\n\nThis project can run as TUI or CLI and has excellent code documentation.\n\nGenerator features:\n- Pydantic V2 (Where it's possible. Some libs doesn't have support);\n- You can choose between GraphQL and REST api;\n- Uvicorn and gunicorn;\n- Different databases support;\n- Different ORMs support;\n- Optional migrations for each ORM except raw drivers;\n- Optional redis support;\n- Optional rabbitmq support;\n- different CI\\CD;\n- Optional Kubernetes config generation;\n- Optional Demo routers and models (This helps you to see how project is structured);\n- Pre-commit integration;\n- Generated tests with almost 90% coverage;\n- Tests for the generator itself;\n- Optional Prometheus integration;\n- Optional Sentry integration;\n- Optional Loguru logger;\n- Optional Opentelemetry integration.\n- Optional taskiq integration.\n\n\nThis project can handle arguments passed through command line.\n\n```shell\n$ python -m fastapi_template --help\n\nUsage: fastapi_template [OPTIONS]\n\nOptions:\n  -n, --name TEXT                 Name of your awesome project\n  -V, --version                   Prints current version\n  --force                         Owerrite directory if it exists\n  --quiet                         Do not ask for features during generation\n  --api-type [rest|graphql]       Select API type for your application\n  --db [none|sqlite|mysql|postgresql|mongodb]\n                                  Select a database for your app\n  --orm [none|ormar|sqlalchemy|tortoise|psycopg|piccolo|beanie]\n                                  Choose Object–Relational Mapper lib\n  --ci [none|gitlab_ci|github]    Select a CI for your app\n  --redis                         Add redis support\n  --add_users                     Add fastapi-users support\n  --rabbit                        Add RabbitMQ support\n  --taskiq                        Add Taskiq support\n  --migrations                    Add Migrations\n  --kube                          Add kubernetes configs\n  --dummy                         Add dummy model\n  --routers                       Add example routers\n  --swagger                       Add self hosted swagger\n  --prometheus                    Add prometheus compatible metrics\n  --sentry                        Add sentry integration\n  --loguru                        Add loguru logger\n  --opentelemetry                 Add opentelemetry integration\n  --traefik                       Adds traefik labels to docker container\n  --kafka                         Add Kafka support\n  --gunicorn                      Add gunicorn server\n  --cookie-auth                   Add authentication via cookie support\n  --jwt-auth                      Add JWT auth support\n  --help                          Show this message and exit.\n```\n","funding_links":["https://opencollective.com/fastapi-template"],"categories":["Projects","Python","FastAPI"],"sub_categories":["Boilerplate","Table of Content"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fs3rius%2FFastAPI-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fs3rius%2FFastAPI-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fs3rius%2FFastAPI-template/lists"}