Добавить в корзинуПозвонить
Найти в Дзене
Герман Геншин

Как я за выходные поднял сайт на Raspberry Pi — и почему это проще, чем вы думаете

Хотите создать сайт без затрат на хостинг? Отличная новость — это гораздо проще, чем кажется! На Raspberry Pi можно легко развернуть собственный сайт всего за пару дней. Многие думают, что для хостинга нужен Raspberry Pi 5, но на самом деле даже старые модели отлично справляются с этой задачей. У меня, например, в работе Raspberry Pi 3B, который стабильно держит мой блог на Ghost. Конечно, Pi 4 мощнее и запускается быстрее, но практически любая модель Raspberry Pi (кроме серии Zero) вполне подойдет для небольшого сайта. Raspberry Pi 4 Model B — отличный выбор для самых разных интересных проектов и обновления умных устройств в доме. На нём можно установить полноценную настольную ОС и работать как на обычном компьютере. Если планируете масштабный сайт с тысячами пользователей одновременно, понадобится более мощное оборудование. Но для старта и небольшого проекта подойдёт практически любой Raspberry Pi. Весь хостинг сайта и связанных сервисов на Raspberry Pi я организовал через Docker. К
Оглавление

Хотите создать сайт без затрат на хостинг? Отличная новость — это гораздо проще, чем кажется! На Raspberry Pi можно легко развернуть собственный сайт всего за пару дней.

Не обязательно иметь самый новый Raspberry Pi, чтобы запустить сайт

Многие думают, что для хостинга нужен Raspberry Pi 5, но на самом деле даже старые модели отлично справляются с этой задачей.

У меня, например, в работе Raspberry Pi 3B, который стабильно держит мой блог на Ghost. Конечно, Pi 4 мощнее и запускается быстрее, но практически любая модель Raspberry Pi (кроме серии Zero) вполне подойдет для небольшого сайта.

-2

Raspberry Pi 4 Model B

Raspberry Pi 4 Model B — отличный выбор для самых разных интересных проектов и обновления умных устройств в доме. На нём можно установить полноценную настольную ОС и работать как на обычном компьютере.

Если планируете масштабный сайт с тысячами пользователей одновременно, понадобится более мощное оборудование. Но для старта и небольшого проекта подойдёт практически любой Raspberry Pi.

Docker — ваш незаменимый помощник

Весь хостинг сайта и связанных сервисов на Raspberry Pi я организовал через Docker. К счастью, его установить очень просто.

Docker для новичков: что нужно знать

Освойте этот популярный инструмент шаг за шагом.

Я рекомендую начинать с «чистой» установки Raspberry Pi OS — оптимального варианта для серверных задач на Pi.

Установка Docker на Raspberry Pi несложная: следуйте инструкциям для Debian, и вы быстро запустите систему.

После этого советую установить Portainer — удобную панель управления Docker, которая значительно упрощает настройку и контроль. Если предпочитаете командную строку и Docker Compose, этот шаг можно пропустить.

Для развёртывания сайта я подготовил специальный Docker Compose файл, который сразу запускает Nginx Proxy Manager, ddclient, Ghost и базу данных MySQL для Ghost. Практически всё настраивается автоматически — кроме личных ключей и паролей.

Некоторые важные параметры в файле потребуется изменить — расскажу об этом ниже.

Выбираем доменное имя

Прежде чем запустить сайт и Docker Compose, нужно выбрать домен, если его ещё нет.

Сейчас я предпочитаю регистрировать домены через Cloudflare из-за бесплатной функции динамического DNS. Раньше пользовался Google Domains и Namecheap, но Cloudflare выигрывает за счёт удобства и сервиса.

Зарегистрируйте нужный домен на Cloudflare или используйте уже имеющийся — с ним всё будет работать одинаково.

Настройка динамического DNS для домена

Чтобы сайт работал при изменении вашего IP-адреса, требуется динамический DNS (DDNS) — служба, которая автоматически обновляет IP в настройках домена.

Что такое динамический DNS и как его настроить

Практический лайфхак для гиков, актуальный и сегодня.

В зависимости от провайдера IP может меняться редко (как у меня с AT&T Fiber) или каждый день (например, у 5G-интернета Straight Talk). В любом случае DDNS поможет держать сайт в сети без простоев.

Небольшая программа на вашем домашнем сервере обращается к API регистратора и обновляет IP в DNS-записях при изменении адреса.

Cloudflare поддерживает это напрямую через API. Для управления DDNS в Docker Compose я использую контейнер ddclient, который также совместим с другими регистраторами — проверьте совместимость, если не используете Cloudflare.

Чтобы настроить ddclient, выберите домен в Cloudflare и создайте новый API-токен с правами на редактирование DNS.

Полученный ключ вставьте в файл ddclient.conf, пример которого доступен на моём GitHub.

В файле указываются домен и нужные DNS-записи для обновления — по умолчанию обновляется только корневой @, но можно добавить поддомены вроде www, blog или store.

Nginx Proxy Manager — маршрутизация и SSL

Для маршрутизации запросов на контейнер Ghost и управления SSL-сертификатами я использую Nginx Proxy Manager.

После установки достаточно создать прокси-хост с вашим доменом, IP Raspberry Pi и портом, на котором работает Ghost (по умолчанию 2368).

Обязательно зайдите в вкладку SSL и сгенерируйте бесплатный сертификат для сайта — это обеспечит безопасное соединение для ваших посетителей.

Ghost — идеальная платформа для новичков

Существует множество платформ для создания сайтов и блогов, но я смело рекомендую Ghost. Он лёгкий, простой в установке и удобный в использовании. За годы работы с разными движками Ghost стал моим фаворитом.

Ghost использует язык разметки Markdown, который значительно ускоряет написание статей и страниц. Конечно, можно и форматировать текст вручную, но с Markdown это делается гораздо быстрее — заголовки, списки и прочее.

Платформа работает очень быстро и не перегружена плагинами, которые замедляют другие системы. Ghost делает одну вещь — создание качественных сайтов и блогов — и делает её отлично. Встроенной поддержки электронной коммерции или форумов здесь нет.

Однако у Ghost есть важная особенность — поддержка платных подписок и членства. Благодаря интеграции со Stripe можно создавать уровни подписки и расширять аудиторию, как на Substack или Patreon, но размещая всё на собственном сервере.

Этот функционал меня лично покорил: подписки необязательны, но часто становятся ключевым элементом сайта. Сейчас я строю два проекта именно с этой функцией Ghost.

Перед финальным запуском нужно внести пару изменений в Docker Compose файл:

Обновите переменную окружения URL в контейнере ghost-server, указав адрес вашего сайта. Также задайте надежный пароль для базы и пропишите его в ghost-server и ghost-db.

После настройки ddclient.conf и редактирования Compose файла с вашими данными о сайте и базе можно разворачивать проект!

Имейте в виду, что запуск может занять некоторое время. У меня Ghost на Pi 3B стартовал около 15–20 минут, а база MySQL поднималась дольше всего. Терпение и настройка сети — отличное время для подготовки других деталей.

Проверьте настройки переадресации портов на роутере

Чтобы сайт был доступен из интернета, нужно открыть порты на роутере.

Нас интересуют порты 80 и 443 — они отвечают за HTTP и HTTPS трафик. Настройка зависит от модели роутера и особенностей провайдера, иногда бывают ограничения.

Как открыть порты на роутере

Безопасно перенаправляем трафик и не подвергаем домашнюю сеть рискам.

В разделе переадресации портов назначьте внешний порт 80 на внутренний 8080, а внешний 443 — на внутренний 4443. Это порты, которые использует Nginx Proxy Manager для управления сайтом.

Если всё сделано правильно, сайт уже работает онлайн! Теперь можно приступать к персонализации темы Ghost, добавлению страниц и настройке подписок — если хотите.

И в завершение рекомендую взглянуть на мой список из семи Docker-контейнеров для управления домашней сетью. Особенно полезен Uptime-Kuma — он поможет следить за доступностью вашего сайта без обращения к сторонним сервисам.

Если вам понравилась эта статья, подпишитесь, чтобы не пропустить еще много полезных статей!

Вы также можете найти наши материалы в: