Как подключить репозиторий 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
- Настройка доменов и DNS‑записей
- Включение Git‑деплоя и указание веток
- Организация CI/CD с GitHub Actions
- Тестирование и отладка
Подготовка репозитория и сайта на Reg.ru
-
Создайте репозиторий
- В GitHub создайте репозиторий
my-site. - Создайте ветки
mainиdevelop(если их ещё нет).
- В GitHub создайте репозиторий
-
Создайте два сайта на Reg.ru
- В панели управления выберите Создать сайт дважды – один для
my-site.dev, второй дляmy-site. - Укажите разные директории (например,
public/иpublic-dev/).
- В панели управления выберите Создать сайт дважды – один для
-
Подключите репозиторий к каждому сайту
- В настройках сайта выберите Git‑деплой → Подключить репозиторий.
- Введите URL вашего GitHub‑репозитория и выберите нужную ветку (
developдля первого сайта,mainдля второго). - При первом подключении Reg.ru создаст удалённый репозиторий
git@reg.ru:username/site-name.git.
Согласно официальной документации Reg.ru, Git‑деплой поддерживает как публичные, так и приватные репозитории, при условии, что вы предоставили SSH‑ключ или токен доступа.
— Reg.ru: Git‑деплой
Настройка доменов и DNS‑записей
-
Добавьте домены
- В панели управления сайта укажите
my-site.devиmy-site. - Для каждого домена отметьте пункт «Публичный домен» и сохраните.
- В панели управления сайта укажите
-
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‑деплоя и указание веток
- В разделе Git‑деплой выберите ветку для каждого сайта.
- Установите Автоматический деплой: Reg.ru будет выполнять
git pullпри каждом push‑е в выбранную ветку.
Если хотите более гибкую настройку, можно отключить автоматический деплой и использовать webhook, чтобы триггерить деплой вручную.
— Reg.ru: Webhook‑деплой
Организация CI/CD с GitHub Actions
Ниже пример workflow, который:
- Срабатывает при push в
developиmain. - Собирает проект (если это статический сайт).
- Делает
git pushв репозиторий сайта на Reg.ru.
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меняется в зависимости от ветки:- Для
develop→git@reg.ru:username/my-site-dev.git - Для
main→git@reg.ru:username/my-site.git
- Для
-
В репозитории Reg.ru в корне сайта должен быть файл
CNAME, в котором указано ваше доменное имя (для статических сайтов).
GitHub Actions – самый популярный способ CI/CD, а интеграция с Reg.ru через SSH‑ключи полностью поддерживается.
— GitHub Docs: Working with SSH keys in Actions
Тестирование и отладка
- Сделайте тестовый коммит в
developи проверьте, что сайтmy-site.devобновился. - Аналогично для
main→my-site. - Если сайт не обновляется, проверьте логи в 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.
- Проверьте работу, наблюдая логи и обновление сайтов.
В результате вы получите полностью автоматизированный процесс развертывания, где каждая ветка отвечает за свой домен, а изменения в коде моментально появляются в интернете.