- Данное приложение совмещает в себе fastapi, sqlalchemy, postgresql и представляет собой базу для быстрого развертывания приложения с необходимым функционалом.
- Приложение построено на onion architecture, тут есть слои repository, schemas, services, routing.
- Также разработана система авторизации пользователя.
-
необходимо создать файл ".env" следующие переменные:
- APP_SENTRY_URL # в приложение подключен мониторинг в сервисе sentry
- APP_PORT # порт, на котором будет запускаться приложение
- DB_HOST # Для запуска базы данных
- DB_USER # Для запуска базы данных
- DB_PASS # Для запуска базы данных
- DB_NAME # Для запуска базы данных
- DB_PORT # Для запуска базы данных
- REDIS_PASSWORD
- REDIS_USER
- REDIS_USER_PASSWORD
- REDIS_HOST
- REDIS_PORT
- JWT_REFRESH_TOKEN_NAME # имя токена refresh
- JWT_ACCESS_TOKEN_NAME # имя токена access
- JWT_ALGORITHM # тут используется "RS256"
- RABBITMQ_USER
- RABBITMQ_PASSWORD
-
Необходимо создать два ключа в корневой директории для работы авторизации в приложении, но для теста я создал два изначально:
openssl genrsa -out jwt-private.pem 2048
openssl rsa -in jwt-private.pem -outform PEM -pubout -out jwt-public.pem
-
Выполнить команду:
docker compose up --build
-
После разворачивания контейнеров нужно создать и выполнить миграции в контейнере приложения (app)
alembic revision --autogenerate -m 'initial'
alembic upgrade head