Skip to content

neyfiz/kittygram_final

Repository files navigation

Проект Kittygram

Workflow Status

Kittygram — это приложение для публикации изображений с котиками.

Стек технологий

  • Backend: Django (Python)
  • Frontend: React.js
  • Database: PostgreSQL
  • Gateway: Nginx
  • CI/CD: GitHub Actions
  • Containerization: Docker

Как развернуть проект

1. Клонирование репозитория

git clone https://github.com/neyfiz/kittygram_final

2. Настройка Docker

3. Заполнение файла .env

Создайте файл .env в корне проекта и заполните его следующими переменными:

DB_NAME=kittygram
DB_USER=kittygram_user
DB_PASSWORD=securepassword
DB_HOST=db
DB_PORT=5432

4. Запуск проекта

Запустите проект с помощью Docker Compose:

docker-compose up --build

Этот процесс соберет все контейнеры (бэкенд, фронтенд, Nginx, PostgreSQL) и запустит их. Проект будет доступен по адресу http://localhost.

5. Выполнение миграций и сборка статики

После первого запуска вам нужно выполнить миграции и собрать статику для Django:

docker-compose exec backend python manage.py migrate
docker-compose exec backend python manage.py collectstatic

GitHub Actions

Проект настроен для автоматического тестирования и деплоя с использованием GitHub Actions. Каждый пуш в ветку main будет запускать следующие шаги:

  1. Проверка кода на соответствие PEP8 (для бэкенда).
  2. Запуск тестов для фронтенда и бэкенда.
  3. Сборка Docker-образов для каждого сервиса (backend, frontend, gateway).
  4. Публикация образов на Docker Hub.
  5. Автоматическое развертывание на сервере с помощью Docker Compose.
  6. Уведомление в Telegram о завершении деплоя.

Как настроить секреты для GitHub Actions

Для успешной работы CI/CD необходимо настроить следующие секреты в GitHub:

  • DOCKER_USERNAME: ваш логин на Docker Hub.
  • DOCKER_PASSWORD: ваш пароль от Docker Hub.
  • TELEGRAM_TOKEN: токен для бота Telegram (можно создать с помощью BotFather).
  • TELEGRAM_CHAT_ID: ID чата для уведомлений (можно получить через @userinfobot).

Развертывание на сервере

Чтобы развернуть проект на сервере, выполните следующие шаги:

  1. Установите Docker и Docker Compose на сервер.
  2. Скопируйте проект на сервер.
  3. Запустите docker-compose up -d для запуска контейнеров в фоновом режиме.
  4. Настройте Nginx для проксирования запросов в Docker-контейнеры (порт 9000 для бэкенда).

Автор

Проект был создан и поддерживается Neyfiz.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published