Веб

Как подключить репозиторий GitHub к Reg.ru и настроить CI/CD

Подробный пошаговый гид по подключению репозитория GitHub к хостингу Reg.ru, настройке двух доменов и автоматическому обновлению сайтов через CI/CD.

Как подключить репозиторий GitHub к хостингу, скажем, Reg.ru, и настроить два домена:

  • my-site.dev – обслуживает ветку develop;
  • my-site – обслуживает ветку main.

Как же настроить автоматическое обновление сайтов, когда меняются ветки (CI/CD)?

Краткий ответ
Reg.ru позволяет привязать репозиторий GitHub к каждому сайту через пункт «Git‑деплой» в панели управления. Для двух доменов создаются два сайта, каждый со своей веткой (develop и main) и подключёнными собственными DNS‑записями. Автоматическое обновление запускается по webhook‑у от Reg.ru или через GitHub Actions, которые после коммита в нужной ветке делают git push в репозиторий сайта и/или отправляют запрос на перезапуск.

Содержание

Подготовка репозитория и сайта на Reg.ru

  1. Создайте репозиторий

    • В GitHub создайте репозиторий my-site.
    • Создайте ветки main и develop (если их ещё нет).
  2. Создайте два сайта на Reg.ru

    • В панели управления выберите Создать сайт дважды – один для my-site.dev, второй для my-site.
    • Укажите разные директории (например, public/ и public-dev/).
  3. Подключите репозиторий к каждому сайту

    • В настройках сайта выберите Git‑деплойПодключить репозиторий.
    • Введите URL вашего GitHub‑репозитория и выберите нужную ветку (develop для первого сайта, main для второго).
    • При первом подключении Reg.ru создаст удалённый репозиторий git@reg.ru:username/site-name.git.

Согласно официальной документации Reg.ru, Git‑деплой поддерживает как публичные, так и приватные репозитории, при условии, что вы предоставили SSH‑ключ или токен доступа.
Reg.ru: Git‑деплой

Настройка доменов и DNS‑записей

  1. Добавьте домены

    • В панели управления сайта укажите my-site.dev и my-site.
    • Для каждого домена отметьте пункт «Публичный домен» и сохраните.
  2. DNS‑записи

    • Для my-site.dev создайте CNAME‑запись: my-site.dev. IN CNAME hosts.reg.ru.
    • Для my-site создайте A‑запись, указывающую на IP‑адрес сервера Reg.ru (обычно 195.208.56.30).

Регулярные правила DNS‑записей описаны в справке Reg.ru:
Reg.ru: DNS‑записи

Включение Git‑деплоя и указание веток

  1. В разделе Git‑деплой выберите ветку для каждого сайта.
  2. Установите Автоматический деплой: Reg.ru будет выполнять git pull при каждом push‑е в выбранную ветку.

Если хотите более гибкую настройку, можно отключить автоматический деплой и использовать webhook, чтобы триггерить деплой вручную.
Reg.ru: Webhook‑деплой

Организация CI/CD с GitHub Actions

Ниже пример workflow, который:

  • Срабатывает при push в develop и main.
  • Собирает проект (если это статический сайт).
  • Делает git push в репозиторий сайта на Reg.ru.
yaml
name: Deploy to Reg.ru

on:
  push:
    branches: [ main, develop ]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Install dependencies
        run: npm ci

      - name: Build
        run: npm run build

      - name: Deploy to Reg.ru
        env:
          REG_REPO: git@reg.ru:username/${{ github.ref_name }}.git
          SSH_KEY: ${{ secrets.REG_SSH_KEY }}
        run: |
          mkdir -p ~/.ssh
          echo "$SSH_KEY" > ~/.ssh/id_rsa
          chmod 600 ~/.ssh/id_rsa
          git config --global user.email "you@example.com"
          git config --global user.name "GitHub Actions"
          # Push built files to Reg.ru
          git init
          git remote add origin "$REG_REPO"
          git add .
          git commit -m "Deploy ${{ github.ref_name }} at $(date +%Y-%m-%dT%H:%M:%S)"
          git push -f origin HEAD:main
  • REG_REPO меняется в зависимости от ветки:

    • Для developgit@reg.ru:username/my-site-dev.git
    • Для maingit@reg.ru:username/my-site.git
  • В репозитории Reg.ru в корне сайта должен быть файл CNAME, в котором указано ваше доменное имя (для статических сайтов).

GitHub Actions – самый популярный способ CI/CD, а интеграция с Reg.ru через SSH‑ключи полностью поддерживается.
GitHub Docs: Working with SSH keys in Actions

Тестирование и отладка

  1. Сделайте тестовый коммит в develop и проверьте, что сайт my-site.dev обновился.
  2. Аналогично для mainmy-site.
  3. Если сайт не обновляется, проверьте логи в Reg.ruСистемные журналы и убедитесь, что SSH‑ключи правильные.

Если вы используете webhook вместо GitHub Actions, в настройках Reg.ru добавьте URL вида https://api.reg.ru/gh/webhook?token=YOUR_TOKEN. После push GitHub отправит POST‑запрос, который триггерит git pull.


Заключение

  • Создайте два сайта на Reg.ru и подключите к ним ветки develop и main.
  • Настройте DNS‑записи для my-site.dev и my-site.
  • Включите Git‑деплой (или webhook) и подключите SSH‑ключ.
  • Реализуйте CI/CD через GitHub Actions, чтобы автоматически публиковать изменения после каждого push.
  • Проверьте работу, наблюдая логи и обновление сайтов.

В результате вы получите полностью автоматизированный процесс развертывания, где каждая ветка отвечает за свой домен, а изменения в коде моментально появляются в интернете.

Источники

  1. Reg.ru: Git‑деплой
  2. Reg.ru: DNS‑записи
  3. Reg.ru: Webhook‑деплой
  4. GitHub Docs: Working with SSH keys in Actions
  5. GitHub Docs: Deploying with GitHub Actions
Авторы
Проверено модерацией
Модерация