Skip to content

Repository files navigation

FastAPI Production Starter

Production-ready шаблон async-бэкенда на FastAPI + SQLAlchemy 2.0 + PostgreSQL.

Демонстрирует паттерны, которые используются в реальных проектах: слоистая архитектура, JWT-авторизация, Alembic-миграции, Docker и pytest.

Стек

  • FastAPI, Pydantic v2
  • SQLAlchemy 2.0 (async) + asyncpg
  • Alembic
  • JWT (access + refresh)
  • pytest + httpx
  • Docker Compose

Архитектура

app/
  routers/      # HTTP-слой (тонкие контроллеры)
  service/      # бизнес-логика
  repository/   # доступ к БД
  database/     # модели и engine
  security/     # JWT и dependencies
  schemas/      # Pydantic DTO

Поток запроса: router → service → repository → database.

Быстрый старт

1. Клонировать и настроить окружение

git clone https://github.com/realReloadTime/fastapi-production-starter.git
cd fastapi-production-starter
python -m venv .venv
# Windows
.venv\Scripts\activate
# Linux/macOS
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env

2. Поднять PostgreSQL

docker compose up -d db

3. Применить миграции и запустить API

alembic upgrade head
uvicorn app.main:app --reload

Swagger: http://127.0.0.1:8000/docs

Полный запуск в Docker

docker compose up --build

API (кратко)

Метод Endpoint Описание
POST /users/register Регистрация
POST /users/login Логин (OAuth2 form)
POST /users/refresh Обновление токенов
GET /users/me Текущий пользователь
CRUD /tasks Задачи пользователя

Тесты

pytest

Тесты используют in-memory SQLite и не требуют PostgreSQL.

Отличительные черты

  • Чистое разделение слоёв (без «бизнес-логики в роутере»)
  • Async repository pattern
  • JWT auth с refresh-токенами
  • Миграции Alembic
  • Готовый Docker-деплой

Автор

realReloadTime — Python backend, async FastAPI, PostgreSQL, AI/RAG.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages