Микро-сервисы на FastAPI с использованием PostgreSQL, SQLAlchemy 2.0 и Docker.
- FastAPI - веб-фреймворк для создания API
- Uvicorn - ASGI сервер для FastAPI
- SQLAlchemy - ORM для работы с базой данных
- PostgreSQL - реляционная база данных
- Alembic - управление миграциями
- Docker и Docker Compose - контейнеризация
- Make - упрощение команд для запуска проекта
- Poetry - управление зависимостями
- Pydantic - валидация данных
- Loki - система логирования
- Grafana - система мониторинга
- Promtail - инструмент для сбора логов
- Kafka - система обмена сообщениями
- Kafka-UI - визуальный интерфейс для работы с Kafka
- Locust - инструмент для нагрузочного тестирования
- Docker и Docker Compose
- Python 3.13+
- Poetry
- Make
-
Клонируйте репозиторий:
git clone https://github.com/powermacintosh/microservices-example.git cd microservices-example -
Запустите приложение с помощью Makefile:
make build # Сборка/пересборка проекта
make down # Остановка проекта
make up # Запуск проектаmake testПосле запуска документация API Gateway будет доступна по адресу:
- Swagger UI: http://localhost:5000/docs/

Также API Gateway предоставляет возможность работы с API через GraphQL:
- GraphQL UI: http://localhost:5000/api/v1/graphql

Создайте файл .env в корне сервиса
gateway/, tasks/.
Аналогично файлу .env.example.
MODE = DEVELOPMENTЛоги приложения отправляются в Loki и доступны через Grafana.
Grafana: http://localhost:3010
Логин - admin
Пароль - admin (при первом входе)
Connections => Loki => Add new data source
- Connection-url:
http://loki:3100 - ⚙️ Save & Test
Drilldown => Logs
Kafka-UI: http://localhost:8080
Locust: http://localhost:8089
Этот проект распространяется под лицензией MIT.