HERON

Полуавтоматика: вы только отправляете

Публикация через git push

Полуавтоматический путь. После одной настройки каждое обновление одинаковое: вы правите страницу, делаете commit и push. GitHub Actions собирает сайт, проверяет, что он открывается, и публикует его. Вы открываете сайт и проверяете правку.

Git — лучшее место для хранения контента сайта: сохраняется каждая правка, любую версию можно вернуть, а вы и ИИ-агент работаете в одной истории. Остальное добавляет GitHub: сборка образа встроена (GitHub Actions), и образ хранится там же (собственный реестр GitHub), поэтому другие аккаунты не нужны. Отправили изменения — свежий образ собирается сам, а с HERON Agent (платно) он ещё и обновляется на вашем сервере. Настройка занимает около получаса один раз. Сайт может жить на вашем сервере с Docker или бесплатно на GitHub Pages.

Как проходит обновление

  1. 1

    Правите страницу

    Откройте файл страницы в папке вашего языка внутри content/, например services.md, и измените текст. Чтобы добавить страницу, скопируйте готовый файл под новым именем и заполните его. Результат смотрите через heron serve . на localhost:8000.
  2. 2

    Сохраняете правку в git

    Commit — это один сохранённый шаг истории с короткой подписью. Его всегда можно посмотреть или откатить.
  3. 3

    Отправляете

    git push отправляет commit на GitHub. Шаги 2 и 3 — одна строка: git add . && git commit -m "Новые цены" && git push.
  4. 4

    GitHub собирает

    GitHub Actions запускает строгую сборку стабильным образом HERON. Битая ссылка или пустое описание останавливают сборку, а журнал называет файл и строку.
  5. 5

    GitHub проверяет

    Готовый сайт запускается и отвечает на вопросы: главная 200, несуществующая страница 404, каждая переадресация 301 или 410. Сломанный сайт дальше не идёт.
  6. 6

    GitHub публикует

    Образ уходит в реестр, или файлы уходят на GitHub Pages.
  7. 7

    Сайт обновляется

    На GitHub Pages сразу. На вашем сервере одной командой или сам, если стоит HERON Агент.
  8. 8

    Вы проверяете

    Откройте страницу, которую меняли.

Настройка один раз

Пять шагов по порядку. Шаги 2 и 3 сделает конфигуратор, если выбрать GitHub и включить автоматическую сборку.

Обновить сервер

После каждого push в реестре ждёт новый образ. На сервере его берёт одна команда: скачать, заменить контейнер, запустить.

docker pull ghcr.io/you/my-site:prod && docker rm -f my-site && docker run -d --name my-site -p 80:8080 --restart unless-stopped ghcr.io/you/my-site:prod

Простой

Секунда-две, пока перезапускается контейнер.

Откат

Каждый образ хранит свой тег в реестре; запустите предыдущий той же командой.

Без сервера: git push в GitHub Pages

GitHub умеет публиковать собранные файлы прямо в GitHub Pages. Положите этот сценарий в .github/workflows/pages.yml, затем в настройках репозитория Settings → Pages выберите источником «GitHub Actions».

name: pages
on:
  push:
    branches: [main]
permissions:
  contents: read
  pages: write
  id-token: write
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - run: docker run --rm -v "$PWD":/site -w /site --user $(id -u):$(id -g) ghcr.io/fmstm/heron:prod build . --env prod --strict
      - uses: actions/upload-pages-artifact@v3
        with:
          path: dist
  deploy:
    needs: build
    runs-on: ubuntu-latest
    environment:
      name: github-pages
    steps:
      - uses: actions/deploy-pages@v4

fetch-depth: 0

Даёт сборке всю историю, и у каждой страницы появляется настоящая дата правки.

Лимиты

Сайт до 1 ГБ, мягкий лимит 100 ГБ трафика в месяц, на бесплатном тарифе открытые репозитории. Бесплатный хостинг подробно

Переадресации

На GitHub Pages нет серверных 301. Если переносите старый сайт с множеством адресов, лучше сервер.

Предпросмотр перед живым сайтом

Добавьте второй сценарий для ветки dev с env: dev. Предпросмотр собирается закрытым от поисковиков, а в main вы сливаете, когда всё выглядит как надо.

name: preview
on:
  push:
    branches: [dev]
jobs:
  image:
    uses: FMSTM/HERON/.github/workflows/site-image.yml@prod
    permissions:
      contents: read
      packages: write
    with:
      env: dev
      engine: prod

Дополнение: HERON Агент

Вопросы

Нужен ли токен GitHub для сборки?

Нет. GitHub выдаёт сборке собственный короткоживущий токен для публикации образа. Личный токен нужен только серверу, который скачивает закрытый образ.

Что, если сборка упала?

Запуск станет красным, а журнал назовёт файл, строку и что сделать. На сайте ничего не меняется: прежняя версия продолжает работать.

Может ли ИИ-агент делать push за меня?

Да. Codex или Claude Code правят контент в отдельной ветке и открывают pull request; GitHub собирает и проверяет его до слияния. Сайт с Codex

Нужен ли HERON Агент?

Нет. Без него сервер обновляется одной командой, а GitHub Pages обновляется сам. Агент — платное дополнение для тех, кто вообще не хочет заходить на сервер.