- Frontend (Nginx) - маршрутизация запросов
- Backend (Fastapi) - получение и обработка запросов пользователя
- SQL СУБД (Postgres) - хранение информации о пользователях, истории входов в ЛК, роли + привилегии
- NOSQL БД (Redis) - хранение недействительных access-токенов, (хранение refresh-токенов?)
fastapi
- основной backend фреймворкpydantic
- валидация входящих данных apiuvicorn
- локальный запуск проекта,gunicorn
- запуск в прод. окруженииredis
- библиотека для работы с redissqlalchemy
- ORMasyncpg
- асинхронный драйвер дляsqlalchemy
alembic
- миграция моделей в БД postgrespsycopg2-binary
- синхронный драйвер для миграцийpyjwt
- библиотека для работы с jwt
- flake8, mypy, bandit
- init poetry and pre-commit
poetry install --no-root
poetry run pre-commit install
- env
cp ./.env.template ./.env
POSTGRES_USER
,POSTGRES_PASSWORD
,POSTGRES_DB
- пользователь, пароль, название БД с которыми будет создана БД в postgres.
cp ./src/.env.template ./src/.env
SQL_USER
,SQL_PASSWORD
,SQL_DATABASE
,SQL_HOST
,SQL_PORT
- настройки подключения к БД postgresJWT_SECRET_KEY
,YANDEX_CLIENT_ID
,YANDEX_CLIENT_SECRET
, etc - секреты
- build and up docker local
make build-local
make up-local