- Frontend (Nginx) - маршрутизация запросов
- Backend (Fastapi) - получение и обработка запросов пользователя
- SQL СУБД (Postgres) - хранение информации о пользователях, истории входов в ЛК, роли + привилегии
- NOSQL БД (Redis) - хранение недействительных access-токенов, (хранение refresh-токенов?)
fastapi
- основной backend фреймворк
pydantic
- валидация входящих данных api
uvicorn
- локальный запуск проекта, gunicorn
- запуск в прод. окружении
redis
- библиотека для работы с redis
sqlalchemy
- ORM
asyncpg
- асинхронный драйвер для sqlalchemy
alembic
- миграция моделей в БД postgres
psycopg2-binary
- синхронный драйвер для миграций
pyjwt
- библиотека для работы с jwt
- init poetry and pre-commit
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
- настройки подключения к БД postgres
JWT_SECRET_KEY
, YANDEX_CLIENT_ID
, YANDEX_CLIENT_SECRET
, etc - секреты
- build and up docker local
make build-local
make up-local