Сервис для создания записей о котиках: можно загружать фотографии (до 1 МБ), добавлять имя, год рождения, цвет и какие-либо поступки питомца.
Все описанные выше действия доступны только авторизованным пользователям.
- Backend: Django (DRF), Gunicorn.
- Frontend: Node.js.
- Web-server: Nginx.
- Database: PostgreSQL.
- Deploy: Docker Compose, GitHub Actions.
В корневой директории проекта находится файл с примерами переменных окружения: '.env.example'. В нем уже находятся все необходимые для работы значения, которые по желанию можно изменить.
Однако сама раздача переменных должна быть из '.env', поэтому перед запуском '.env.example' надо переименовать на '.env'!
docker compose -f docker-compose.production.yml upИли из собранных из текущих файлов:
docker compose -f docker-compose.ymlПосле запуска для контейнера с Django необходимо выполнить миграции, собрать статические файлы приложения и копировать их в директорию, связанную с томом, к которому имеет доступ контейнер с Nginx:
docker compose -f docker-compose.production.yml exec backend python manage.py migrate
docker compose -f docker-compose.production.yml exec backend python manage.py collectstatic
docker compose -f docker-compose.production.yml exec backend cp -r ./static/staticfiles/. /backend_static/static/Если вы захотите использовать и его, то необходимо сделать следующее: * Проверить, что в вашем Docker Hub нет образов с названиями создаваемых GitHub Actions. * Создать свои secrets в GitHub Actions репозитория:
- secrets.HOST -- IP-адрес хоста, на котором по скрипту должна быть развернута сеть контейнеров с приложением.
- secrets.USER -- логин пользователя, от которого будет производится подключение к хосту и выполнение развертки.
- secrets.SSH_KEY -- приватный ssh-ключ пользователя из secrets.USER.
- secrets.SSH_PASSPHRASE -- passphrase для доступа по ssh-ключу и логину.
- secrets.DOCKER_USERNAME -- логин пользователя на Docker Hub, от имени которого будет производится публикация собранных образов.
- secrets.DOCKER_PASSWORD -- его пароль на том же Docker Hub.
- secrets.TELEGRAM_TO -- ID пользователя, которому GitHub Actions отправит сообщение при успешном деплое.
- secrets.TELEGRAM_TOKEN -- токен бота, который будет отправлять сообщение при успешном деплое.
Что-то, конечно, но в большинстве своем спасибо команде Яндекс.Практикума!