Что выбрать
Чем заменить GitHub Pages, если сайту нужен сервер, форма или база
Коротко
GitHub Pages подходит только для статических сайтов из HTML, CSS и JavaScript, поэтому для сервера, приёма форм или базы данных нужен хостинг, который запускает серверный код. Pages не выполняет PHP, Python или серверный Node.js и не может хранить данные, которые присылают посетители. Если сайту нужна такая часть, его публикуют на хостинге приложений — например, в Netrun, где сайт и его сервер работают по одной ссылке с HTTPS. Визитке, документации и портфолио без формы GitHub Pages хватает с запасом.
- GitHub Pages — хостинг статических сайтов: он публикует HTML, CSS и JavaScript из репозитория и не выполняет серверный код.
- Опубликованный сайт на GitHub Pages может весить не больше 1 ГБ, а мягкий лимит трафика — 100 ГБ в месяц.
- По правилам GitHub, Pages нельзя использовать как бесплатный хостинг для интернет-магазина, онлайн-бизнеса или коммерческого SaaS.
- На бесплатном аккаунте GitHub сайт на Pages публикуется только из публичного репозитория, из приватного — на платных тарифах GitHub.
- Секретный ключ в коде статического сайта видит любой посетитель, поэтому обращения к платным API с ключом требуют серверной части.
GitHub Pages — отличный способ бесплатно выложить сайт: положили файлы в репозиторий, включили Pages в настройках, и через пару минут сайт открывается по ссылке. Так живут тысячи портфолио, страниц документации и лендингов. Ограничение у Pages одно, но принципиальное: он раздаёт только готовые файлы и не запускает никакой программы на своей стороне.
Пока сайт состоит из страниц, этого достаточно. Но рано или поздно хочется, чтобы форма обратной связи присылала заявки, чтобы появился вход для пользователей, комментарии, база товаров или обращение к нейросети по ключу. Всё это требует сервера — программы, которая принимает данные и что-то с ними делает. Ниже — как понять, что вы переросли GitHub Pages, и куда двигаться дальше.
| Что нужно сайту | GitHub Pages | Netrun |
|---|---|---|
| Статические страницы (HTML, CSS, JS) | Да, бесплатно | Да |
| Серверный код: PHP, Python, Node.js | Нет | Да, язык определяется автоматически |
| Приём формы на своём сервере | Нет, только через сторонний сервис | Да, обработчик формы — часть вашего приложения |
| База данных | Нет | SQLite в папке /data или своя база в docker-compose |
| Секретные ключи API | Негде спрятать: код открыт посетителям | Хранятся зашифрованными в секретах проекта |
| Код в приватном репозитории | Только на платном тарифе GitHub | Можно импортировать из приватного репозитория или загрузить архивом |
| Свой домен и HTTPS | Да | HTTPS сразу, свой домен — на тарифе Pro |
| Работа без посетителей | Сайт всегда доступен | На бесплатном тарифе засыпает и просыпается за несколько секунд |
Проверьте, нужен ли вашему сайту сервер#
Сервер нужен, если сайт должен принимать данные от посетителей и что-то с ними делать: сохранять заявки, регистрировать пользователей, считать, отправлять письма, обращаться к платному API с секретным ключом. Если сайт только показывает текст, картинки и ссылки, сервер не нужен, и GitHub Pages подходит лучше всего. Хороший признак: в проекте есть файлы вроде app.py, server.js, index.php или папка api.
Оставьте GitHub Pages, если сайт статический#
Визитка, портфолио, документация, блог на генераторе статических сайтов — всё это прекрасно живёт на Pages бесплатно и без сна. Ограничения у Pages щедрые: до 1 ГБ на опубликованный сайт и мягкий лимит в 100 ГБ трафика в месяц. Переезжать ради переезда не нужно.
Не прячьте ключи в коде статического сайта#
Частая ошибка — подключить нейросеть или платный сервис прямо из JavaScript на странице и вписать ключ в код. На статическом сайте этот код скачивает браузер каждого посетителя, поэтому ключ виден всем и его быстро уносят. Ключ должен лежать на сервере, а страница — обращаться к вашему серверу, который уже сам ходит в платный сервис.
Решите, как обрабатывать форму#
Для одной формы обратной связи можно остаться на Pages и подключить сторонний сервис приёма форм: он пришлёт заявки на почту. Если же заявки нужно сохранять, показывать в своей админке, пересылать в Telegram или проверять, удобнее, когда обработчик формы — часть вашего собственного приложения. Тогда сайт и сервер живут вместе и не зависят от лимитов чужого сервиса.
Перенесите сайт вместе с сервером#
Когда сервер нужен, загрузите проект на хостинг, который его запускает. В Netrun проект можно импортировать из GitHub, в том числе из приватного репозитория, или загрузить архивом: язык определится по файлам, а сайт должен слушать адрес 0.0.0.0 и порт из переменной окружения PORT. Ключи добавьте на вкладке «Секреты», а базу SQLite храните в папке /data, чтобы она переживала обновления кода.
Учтите сон и свой домен#
На бесплатном тарифе Netrun сайт засыпает, когда на него никто не заходит, и просыпается за несколько секунд при открытии ссылки — в отличие от Pages, где статический сайт доступен всегда. Ссылку с HTTPS вы получаете сразу, а свой домен подключается на тарифе Pro, где сайт к тому же работает без сна. Если у вас уже есть домен, который смотрел на Pages, после переезда достаточно поменять DNS-запись у регистратора.
GitHub Pages — правильный выбор, пока сайт статический: он бесплатный, быстрый и не засыпает. Менять его стоит в тот момент, когда сайту понадобилась программа на сервере — форма с сохранением заявок, вход пользователей, база данных или ключ к платному API. Тогда сайт и его сервер удобнее держать в одном месте: импортируйте репозиторий или загрузите архив, и Netrun выдаст ссылку с HTTPS. Попробовать Netrun.
Частые вопросы
Можно ли запустить PHP или Python на GitHub Pages?
Нет. GitHub Pages только раздаёт готовые файлы — HTML, CSS, JavaScript и картинки — и не выполняет код на своей стороне. Python, PHP или серверный Node.js там не запустятся. Для них нужен хостинг, который запускает приложение.
Как сделать форму обратной связи на GitHub Pages?
Только через сторонний сервис приёма форм: страница отправляет данные ему, а он пересылает их вам на почту. Своего обработчика на Pages не сделать, потому что там нет сервера. Если заявки нужно хранить или обрабатывать, сайт переносят на хостинг с серверной частью.
Можно ли на GitHub Pages сделать интернет-магазин?
По правилам GitHub — нет: Pages нельзя использовать как бесплатный хостинг для онлайн-бизнеса, интернет-магазина или коммерческого SaaS. Кроме того, GitHub советует не передавать через такие сайты пароли и номера карт. Магазину нужен обычный хостинг с сервером или готовая платформа для магазинов.
Почему мой сайт на GitHub Pages не видит базу данных?
Потому что на Pages нет сервера, который мог бы к ней подключиться. Можно обращаться к внешней базе прямо из браузера, но тогда ключ доступа виден каждому посетителю. Надёжный путь — свой сервер, который хранит ключ и сам разговаривает с базой.
Можно ли перенести сайт с GitHub Pages и сохранить свой домен?
Да. Домен принадлежит вам, а не GitHub, поэтому после переезда достаточно поменять DNS-запись у регистратора на новую. В Netrun свои домены подключаются на тарифе Pro, и сертификат HTTPS выпускается автоматически.
Как выложить сайт в интернет?
Загрузите код сайта ZIP-архивом или из GitHub — Netrun соберёт его и выдаст рабочую ссылку с HTTPS. Подойдёт статический сайт (HTML, CSS, JS), приложение на React или сайт на Python. Покупать домен, настраивать сервер и сертификаты не нужно.
Можно ли подключить свой домен?
Да, на тарифе Pro, и не один: к сайту можно подключить столько своих доменов, сколько вам нужно. Откройте вкладку «Домены» на странице проекта, укажите домен, который вы купили у регистратора, и добавьте DNS-запись по подсказке — так же добавляется каждый следующий. Когда домены готовы, нажмите «Проверить»: Netrun проверит их все разом и выпустит на каждый свой HTTPS-сертификат, поэтому заминка с одним доменом не мешает остальным. Сайт открывается по любому из ваших адресов, а ссылка Netrun остаётся запасной. Если вы подключаете домен целиком (например myshop.com), можно добавить ещё одну запись, и сайт откроется и с www. Доступно для сайтов — боту и фоновому скрипту домен не нужен.
Сохранятся ли данные при обновлении кода?
Да, если данные лежат в постоянном хранилище. У обычного проекта это папка /data: всё, что приложение туда сохранило, остаётся при обновлении кода и перезапуске, а посмотреть и скачать файлы можно на вкладке «Данные». Если вы описали сервисы сами в docker-compose, постоянное хранилище — это именованные тома из вашего файла, и папки /data у такого проекта нет. Файлы, записанные мимо хранилища, при следующей публикации создаются заново. Ссылка проекта в любом случае остаётся прежней.