Skip to content

Umiacha/kittygram_final

Repository files navigation

Описание

Сервис для создания записей о котиках: можно загружать фотографии (до 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 и плагин Docker Compose. Далее можно запустить запустить сеть контейнеров из публичных образов (примеры запусков из корневой директории проекта):
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/

Настройка GitHub Actions (опционально).

Если же вы решите взять весь код из репозитория для каких-то нужд, то стоит учесть, что в .github/workflows/main.yml лежит скрипт для GitHub Actions: он запускается при пуше в ветку main и выполняет последовательные проверки кода, сборку и пуш образов содержимых /backend, /frontend и nginx/ в Docker Hub с итоговым развертыванием проекта на сервере.
Если вы захотите использовать и его, то необходимо сделать следующее: * Проверить, что в вашем 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 -- токен бота, который будет отправлять сообщение при успешном деплое.

А ведь тут не все сделал я...

На самом деле в этом приложении я лишь донастроил nginx.conf и дописал файл .env и также YAML-файлы для Docker Compose и GitHub Actions.
Что-то, конечно, но в большинстве своем спасибо команде Яндекс.Практикума!

About

Study project. Creating Docker containers and their network. Config Nginx.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published