Skip to content

daiswe/fastapi-clean-architecture

Repository files navigation

Clean FastAPI architecture

Release Licence

A concise reference implementation of a clean architecture service using FastAPI, Flask‑Admin, SQLAlchemy + Alembic, and RabbitMQ RPC.

Tech stack

  • API: FastAPI (Gunicorn + Uvicorn workers), pagination
  • Admin: Flask‑Admin
  • Data: SQLAlchemy, Alembic
  • Messaging/RPC: RabbitMQ (aio‑pika)
  • Config: Pydantic settings

Quick start (Poetry)

make install      # create venv, install deps, setup pre-commit
make run          # run backend and admin with reload

Quick start (Docker)

# create docker/.env with required vars (DB_*, RABBITMQ_*, HOST_* and *_PORT)
make compose-build
make compose-up
make compose-logs

Database migrations

make migrate-create name="add_something"
make migrate-up

Default routes

Backend API:    /api
OpenAPI docs:   /docs
RPC (RabbitMQ): /rpc
Admin panel:    /

License

MIT