{"id":22830758,"url":"https://github.com/peplxx/fast-template","last_synced_at":"2026-04-02T18:38:53.813Z","repository":{"id":267710298,"uuid":"886870623","full_name":"peplxx/fast-template","owner":"peplxx","description":"Modular Production-Ready FastApi Template","archived":false,"fork":false,"pushed_at":"2025-04-25T08:28:31.000Z","size":214,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-13T00:51:54.475Z","etag":null,"topics":["api","docker-compose","fastapi","fastapi-template","grafana","nginx","production-ready","prometheus","starter-template","web","web-development"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/peplxx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-11-11T18:53:45.000Z","updated_at":"2025-04-25T08:28:28.000Z","dependencies_parsed_at":"2024-12-12T01:20:50.198Z","dependency_job_id":"b498c86d-a039-4dac-8177-cb74474505f7","html_url":"https://github.com/peplxx/fast-template","commit_stats":null,"previous_names":["peplxx/fast-template"],"tags_count":5,"template":true,"template_full_name":null,"purl":"pkg:github/peplxx/fast-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peplxx%2Ffast-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peplxx%2Ffast-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peplxx%2Ffast-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peplxx%2Ffast-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/peplxx","download_url":"https://codeload.github.com/peplxx/fast-template/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peplxx%2Ffast-template/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31313091,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T12:59:32.332Z","status":"ssl_error","status_checked_at":"2026-04-02T12:54:48.875Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["api","docker-compose","fastapi","fastapi-template","grafana","nginx","production-ready","prometheus","starter-template","web","web-development"],"created_at":"2024-12-12T20:14:19.427Z","updated_at":"2026-04-02T18:38:53.797Z","avatar_url":"https://github.com/peplxx.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FastAPI App Template\n\n[![Python](https://img.shields.io/badge/Python-3.12+-3776AB.svg?style=flat\u0026logo=python\u0026logoColor=white)](https://www.python.org)\n[![Tests](https://github.com/peplxx/fast-template/actions/workflows/main.yaml/badge.svg)](https://github.com/peplxx/fast-template/actions/workflows/main.yaml)\n[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![FastAPI](https://img.shields.io/badge/FastAPI-009688.svg?style=flat\u0026logo=FastAPI\u0026logoColor=white)](https://fastapi.tiangolo.com)\n[![PostgreSQL](https://img.shields.io/badge/PostgreSQL-336791.svg?style=flat\u0026logo=postgresql\u0026logoColor=white)](https://www.postgresql.org)\n[![Prometheus](https://img.shields.io/badge/Prometheus-E6522C.svg?style=flat\u0026logo=prometheus\u0026logoColor=white)](https://prometheus.io)\n[![Grafana](https://img.shields.io/badge/Grafana-F46800.svg?style=flat\u0026logo=grafana\u0026logoColor=white)](https://grafana.com)\n[![Docker](https://img.shields.io/badge/Docker-0096ED.svg?style=flat\u0026logo=docker\u0026logoColor=white)](https://www.docker.com)\n[![Nginx](https://img.shields.io/badge/Nginx-009639.svg?style=flat\u0026logo=nginx\u0026logoColor=white)](https://nginx.org)\n\nA production-ready FastAPI template with comprehensive integrations for modern web development.\n\n## Overview\n\nThis template provides a solid foundation for building production-ready web services with FastAPI. It combines modern tools and best practices to help you get started quickly:\n\n- **Core Stack**: FastAPI + PostgreSQL + SQLAlchemy\n- **Deployment**: Docker + Nginx + Certs configuration ready to go\n- **Monitoring**: Prometheus metrics and Grafana dashboards\n- **Development**: Poetry for dependencies, Ruff for linting, pytest for testing\n- **CI/CD**: GitHub Actions workflow included\n- **Tooling**: Custom module system to automate routine tasks\n- **Pre-configured**: App-logging, api-limiter, openapi-specification, metrics and CORS middlewares, etc.\n- **Testing**: Container-free testing system\n\nEverything is pre-configured and tested to work together. Just clone, customize, and start building your application.\n\n---\n## Quick Start\n### Sections\n1. [Requirements](#requirements)\n2. [How to navigate](#how-to-navigate-in-project)\n3. [How to run](#how-to-run-app)\n4. [How to develop](#how-to-develop)\n5. [How to use dev tools](#how-to-use-dev-tools)\n\n\n---\n### Requirements\n\nYou'll need these tools installed:\n\n- [Docker](https://docs.docker.com/engine/install/)\n- [Docker Compose](https://docs.docker.com/compose/install/)\n- [Make](https://www.gnu.org/software/make/)\n\n\u003e**Quick Install:** run `./deploy/dependencies.sh` to install requirements\n---\n### How to navigate in project\n\nUse `make help` to see all available commands:\n\n```bash\nmake help\n```\n---\n### How to run app\n\n#### 1. Setup `.env` file\n```bash\nmake env # Creates .env from .env.example\n```\n\n\u003e **Note:** View supported env-variables in `backend/app/config/default.py`\n\n\u003e **Note:** `env.example` contains minimal required variables\n\n#### 2. Run app\nChoose your configuration:\n\n- `run-local` - Local development: `backend[local] + database[docker]`\n- `run-dev1` - Basic deployment: `nginx[http] + backend + database`\n- `run-dev2` - Full development: `nginx[http] + backend + database + grafana + prometheus`\n- `run-prod` - Production: `nginx[https + http] + backend + database + grafana + prometheus + pgbackups`\n\n```bash\nmake \u003ctarget-config\u003e\n```\n\u003e **Local setup:** starts database, setup poetry and make migrations besides runing app itself.\n\n\u003e **Production:** Also there is script to run prod setup as linux-unit: `/deploy/deploy-service.sh`.\n\n#### 3. Avaliability\nAssume, that you run app on localhost:\n - **Backend/Swagger** : `localhost/swagger`\n - **Backend/Scalar** : `localhost/scalar`\n - **Graphana** :  `localhost:3333`, admin/admin\n---\n### How to develop\n\n#### 1. Setup poetry environment\n```bash\nmake poetry  # Installs all dependency groups (test, dev)\n```\n\n#### 2. Pre-commit hooks\n```bash\npre-commit install\n```\n\u003e **Note**: ruff formatting works only for `/backend` dir\n\n**Now you're ready to develop!**\n\n---\n\n### How to use dev tools\n\n#### Project Architecture \u0026 Tools\n\nThis project is built using [layered architecture](https://www.oreilly.com/library/view/software-architecture-patterns/9781491971437/ch01.html) pattern, which provides clear separation of concerns and maintainable codebase.\n\nTo accelerate development process, I provide automated tools located in `/backend/.utils/` directory.\n\n\n#### Tools list:\n\n#### 1. Module Generator\nGenerate a new module:\n```bash\nmake module name=\u003cmodule-name\u003e\n```\n\nThe generator will:\n1. Create module structure in `backend/app/src/modules/{module-name}`\n2. Setup testsuite in `backend/tests/testsuites/{module-name}`\n3. Add necessary base classes and metadata\n\n\u003e **Note:** Import your new module in `backend/app/src/modules/__init__.py`\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeplxx%2Ffast-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpeplxx%2Ffast-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeplxx%2Ffast-template/lists"}