Бесплатный хостинг, ваш адрес
GitHub Pages со своим доменом
Чтобы подключить свой домен к GitHub Pages, укажите домен в настройках репозитория в разделе Pages и создайте DNS-записи у регистратора: четыре записи A на адреса GitHub для домена без www и запись CNAME для www на вашеимя.github.io. Когда проверка пройдёт, включите Enforce HTTPS.
Ниже — точные записи, порядок действий, частые ошибки и то же самое для Cloudflare Pages.
DNS-записи для GitHub Pages
Внесите их у регистратора домена. Вместо yourname подставьте имя своего пользователя или организации на GitHub.
| Тип | Имя (хост) | Значение |
|---|---|---|
| A | @ | 185.199.108.153 |
| A | @ | 185.199.109.153 |
| A | @ | 185.199.110.153 |
| A | @ | 185.199.111.153 |
| AAAA | @ | 2606:50c0:8000::153 |
| AAAA | @ | 2606:50c0:8001::153 |
| AAAA | @ | 2606:50c0:8002::153 |
| AAAA | @ | 2606:50c0:8003::153 |
| CNAME | www | yourname.github.io |
По шагам
- 1
Подтвердите домен
На GitHub: Settings вашего профиля → Pages → Add a domain. GitHub покажет запись TXT — добавьте её у регистратора. Так никто другой не сможет занять ваш домен на GitHub Pages. - 2
Укажите домен в репозитории
Репозиторий → Settings → Pages → Custom domain. Впишитеexample.comи сохраните. Если сайт собирается через GitHub Actions, действует именно эта настройка; если публикуется из ветки, GitHub ещё и добавит в неё файлCNAMEс доменом. - 3
Добавьте DNS-записи
Создайте записи A, AAAA и CNAME из таблицы выше. Удалите другие записи A и CNAME с теми же именами, например страницу-заглушку регистратора. - 4
Дождитесь DNS
Обычно минуты, иногда до суток. Когда GitHub увидит записи, он напишет «DNS check successful». - 5
Включите HTTPS
Отметьте Enforce HTTPS в тех же настройках Pages. Сертификат бесплатный и продлевается сам. Если галочка серая, подождите выпуска сертификата — до часа.
Частые ошибки
«Domain's DNS record could not be retrieved»
Enforce HTTPS недоступен
Домен сбрасывается после каждой публикации
CNAME. Держите файл CNAME с доменом в корне того, что публикуете.На домене 404, а адрес github.io работает
Предупреждения о смешанном содержимом
http://. Используйте https:// или адреса относительно сайта.Cloudflare Pages со своим доменом
Второй бесплатный вариант — Cloudflare Pages. Подключите репозиторий GitHub в панели Cloudflare → Workers & Pages → Create → Pages, затем откройте проект → Custom domains → Set up a domain.
Домен уже в Cloudflare
Домен у другого регистратора
вашпроект.pages.dev. Для домена без www Cloudflare попросит перенести DNS домена к себе.HTTPS
Сайт на HERON на GitHub Pages
HERON собирает папку dist/ со всеми страницами, картинками, картой сайта и llms.txt. GitHub Pages её раздаёт.
- 1
Укажите домен
Впишите домен вsite.yamlили в конфигураторе, чтобы канонические адреса и карта сайта шли с ним. - 2
Соберите
Строгая сборка проверит каждую ссылку и каждое описание. - 3
Опубликуйте `dist/`
Через GitHub Actions при каждом push или отправкой папки в ветку, из которой публикует Pages. Положите файлCNAMEс доменом вstatic/, и он окажется в корнеdist/. - 4
- 5
Обновление при каждом push
Когда домен заработал, публикация — обычная работа с git: поправили файл страницы, сделали commit и push. GitHub Actions запускает сборку HERON и передаёт dist/ в Pages. В Settings → Pages выберите Source «GitHub Actions» и добавьте этот файл как .github/workflows/pages.yml:
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
url: ${{ steps.deploy.outputs.page_url }}
steps:
- id: deploy
uses: actions/deploy-pages@v4
Что происходит при push
Где смотреть
Каждое следующее обновление
git add . && git commit -m "Страница услуг" && git push, через минуту откройте сайт.Ограничения и правила GitHub Pages
| Что | Ограничение |
|---|---|
| Опубликованный сайт | До 1 ГБ |
| Трафик | Мягкий лимит 100 ГБ в месяц |
| Сборки из ветки | Мягкий лимит 10 в час; на workflow в GitHub Actions, как выше, не распространяется |
| Репозиторий на бесплатном аккаунте | Только открытый; для закрытого нужен GitHub Pro или командный тариф |
| Для чего нельзя | Хостинг интернет-бизнеса, магазина или платного сервиса (SaaS) |
Вопросы
GitHub Pages со своим доменом бесплатный?
Да, для открытых репозиториев на бесплатном аккаунте. Для закрытых репозиториев Pages доступен на платных тарифах GitHub. Платите только регистратору за домен.
Какой адрес выбрать: с www или без?
Любой. Укажите один как основной в GitHub и создайте записи для обоих: второй GitHub перенаправит на первый.
Через сколько домен заработает?
Обычно через несколько минут после сохранения записей, иногда до суток — зависит от регистратора.
Умеет ли GitHub Pages переадресации со старых адресов?
Настоящие серверные — нет: GitHub Pages только отдаёт файлы. Для честных 301 используйте свой сервер с nginx, куда HERON сам вписывает правила, или правила переадресации Cloudflare по тому же списку из dist/redirects.map.
Есть ли ограничение по размеру?
Да: опубликованный сайт может весить до 1 ГБ, мягкий лимит трафика — 100 ГБ в месяц. Обычный сайт компании весит несколько мегабайт. См. ограничения.