docs: add webhook configuration instructions to CI_CD.md

This commit is contained in:
2026-01-12 16:47:54 +03:00
parent c046f5f6c8
commit 072ab74231
5 changed files with 109 additions and 30 deletions

52
docs/CI_CD.md Normal file
View File

@@ -0,0 +1,52 @@
# Настройка CI/CD (Drone CI)
Проект настроен для автоматической сборки Docker-образов и их развертывания с помощью Drone CI.
## Обзор пайплайна (.drone.yml)
Конфигурация состоит из 4-х пайплайнов:
1. **build-backend**: Собирает образ `backend`, тегирует его (latest + commit SHA) и пушит в Docker Registry.
2. **build-frontend**: Многоэтапная сборка (Node.js build -> Nginx image), пуш в Registry.
3. **build-ping-helper**: Сборка микросервиса `ping-helper`.
4. **deploy-production**: Запускается только при пуше в `main` после успешного завершения всех сборок. Подключается к серверу по SSH, обновляет код, скачивает новые образы и перезапускает контейнеры.
## Настройка интеграции (Gitea + Drone)
1. **Активация репозитория**:
* Зайдите в ваш Drone CI.
* Найдите репозиторий `minecraft-platform/platform` и нажмите "Activate".
2. **Настройка секретов (Secrets)**:
В настройках репозитория в Drone добавьте следующие секреты:
| Имя Секрета | Описание |
| :--- | :--- |
| `gitea_username` | Логин пользователя Gitea, от имени которого будут пушиться образы в Registry. |
| `gitea_password` | Пароль (или токен) этого пользователя. |
| `ssh_host` | IP адрес или домен вашего продакшен-сервера. |
| `ssh_user` | Имя пользователя на сервере (например, `root` или `ubuntu`). |
| `ssh_key` | **Приватный** SSH ключ для доступа к серверу (Private Key, который соответствует Public Key в `~/.ssh/authorized_keys` на сервере). |
3. **Docker Registry**:
Убедитесь, что `gitea.mrixs.me` поддерживает Docker Registry и у пользователя есть права на запись в пакеты `minecraft-platform/backend`, `frontend`, `ping-helper`.
4. **Настройка Вебхука (Webhooks)**:
Чтобы Drone автоматически запускал сборку при пуше (push):
* В Gitea перейдите в **Settings** (Настройки) репозитория -> **Webhooks**.
* Проверьте, есть ли там вебхук для Drone. Если нет, он должен был создаться автоматически при активации репозитория в Drone.
* Если вебхука нет, добавьте его вручную:
* **Target URL**: `https://drone.mrixs.me/hook` (адрес вашего Drone сервера)
* **HTTP Method**: `POST`
* **Content Type**: `application/json`
* **Trigger On**: `All Events` (или как минимум Push и Pull Request)
* Нажмите "Test Delivery", чтобы проверить связь. Обратите внимание на код ответа (должен быть 200 OK).
## Процесс развертывания
1. Сделайте изменения в коде.
2. Закоммитьте и запушьте в ветку `main`.
3. Drone автоматически:
* Соберет новые образы.
* Запушит их в Registry.
* Зайдет на сервер, сделает `docker-compose pull` и `docker-compose up -d`.