Сервис развернут по адресу: https://hrportal.sergei-kiprin.ru
Автогенерируемая Swagger-документация для backend
Требуется:
cd frontend
npm install
ng serve
Приложение разворачивается на http://localhost:4200
Требуется:
В корневой папке должен находится файл .env с переменными окружения Скачать
Установить postgres и создать базу данных. Имя базы данных, имя пользователя и пароль вставить в .env в поля POSTGRES_DB_NAME, POSTGRES_USER, POSTGRES_PASSWORD.
cd backend
python -m venv venv
pip install -r requirements.txt
python manage.py migrate
python manage.py runserver
Приложение разворачивается на http://localhost:8000
Для создания суперюзеров (для доступа к панели администратора Django):
python manage.py createsuperuser
Требуется:
В корневой папке должен находится файл .env.docker с переменными окружения Скачать
Для запуска только Backend в DEV режиме (на http://localhost:8000):
docker compose -f docker-compose-dev.yaml up -d
Также есть возможность добавить Frontend в DEV режиме (на http://localhost:4200):
docker compose -f docker-compose-dev.yaml --profile frontend up -d --build
Для запуска всего приложения (включая nginx) в PROD режиме (на http://localhost):
docker compose -f docker-compose-prod.yaml up -d --build
Аргумент --build
необходимо использовать, если вы хотите быть уверены, что докер запустит контейнеры со всеми последними
изменениями в коде. Если не использовать аргумент --build
, Docker будет использовать последние собранные контейнеры.
Также аргумент --build
рекомендуется использовать в случае перехода с DEV на PROD версию Frontend, так как при сборке
его контейнера используются переменные окружения.
Доступ к консоли внутри контейнера Backend:
docker exec -it django bash
# для создания суперюзеров
python manage.py createsuperuser
Для тестирования отправки почты зарегистрироваться на mailtrap.io и вставить в .env (.env.docker) собственные EMAIL_HOST_USER и EMAIL_HOST_PASSWORD (либо оставить имеющиеся, но письма будут приходить в ящик @angstorm)
terraform -chdir=terraform apply -target yandex_cm_certificate.hrportal
# output dns_challenge_cname = <dns challenge>
# подтвердить сертификат по DNS, создав cname запись <dns challenge>
terraform -chdir=terraform apply -target yandex_container_registry.hrportal
# output django_image_tag = <tag>
docker build backend -t <tag>
docker push <tag>
terraform -chdir=terraform apply
cd frontend
npm install
ng build
aws --endpoint-url=https://storage.yandexcloud.net/ s3 sync dist/out/assets s3://hrportal-static/assets
# перенести файлы сайта в браузер, в бакет hrportal-static