Как настроить веб-сайт на Raspberry Pi

Как настроить веб-сайт на Raspberry Pi

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

Вам не нужна последняя версия Pi для размещения вашего сайта

Хотя вы, возможно, думаете, что для запуска веб-сайта вам понадобится Raspberry Pi 5, на самом деле вы можете обойтись хостингом на гораздо более старой системе.

Лично у меня в сетевом стеке в качестве веб-хостинга развернут Pi 3B. Хотя он определенно не самый быстрый, он легко справился с запуском моего блога Ghost. Однако Pi 4, вероятно, был бы лучшим вариантом, поскольку у него немного больше лошадиных сил, чтобы все запустить быстрее. На самом деле, любое поколение Raspberry Pi (кроме линейки Zero) идеально подходит для хостинга небольшого веб-сайта.

Как настроить веб-сайт на Raspberry Pi

Малина Pi 4 Модель B

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

Смотреть на Amazon $35 на CanaKit Развернуть Свернуть

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

Docker — ваша база операций

Docker будет тем, что будет управлять всем сайтом и всеми службами на вашем Raspberry Pi. К счастью, его довольно легко установить.

Как настроить веб-сайт на Raspberry Pi

Я предполагаю, что вы начинаете со стандартного Raspberry Pi под управлением Raspberry Pi OS, поскольку именно ее я рекомендую использовать для задач веб-сервера на вашем Pi.

Чтобы приступить к работе, вам нужно начать с установки Docker на Raspberry Pi, что довольно просто. Просто следуйте инструкциям по установке Debian для Docker, и вы сможете приступить к работе в кратчайшие сроки.

Затем я рекомендую развернуть Portainer. Лично я предпочитаю запускать Portainer для своих хостов Docker, так как это упрощает управление, но вы можете пропустить этот шаг, если хотите использовать только традиционный Docker Compose через командную строку.

Чтобы фактически развернуть ваш сайт, я создал удобный файл Docker Compose, в котором есть все, что вам нужно. Файл Compose развернет Nginx Proxy Manager, ddclient, Ghost и базу данных MySQL для использования Ghost, автоматически настроив все, что находится за пределами ваших собственных ключей API или паролей.

Однако для того, чтобы файл Docker Compose заработал, необходимо изменить несколько ключевых моментов. Я объясню это по ходу статьи.

Выберите свое доменное имя

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

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

Итак, зайдите на Cloudflare и выберите тот домен, который вы присматривали. Или, если у вас уже есть домен, это тоже подойдет!

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

Какой бы домен у вас ни был, он должен поддерживать динамический DNS. Динамический DNS автоматически обновляет IP-адрес вашего домена, если ваш IP-адрес меняется.

Как настроить веб-сайт на Raspberry Pi

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

Принцип работы заключается в следующем: программа запускается на компьютере или сервере у вас дома и подключается к API вашего регистратора доменов, добавляя IP-адрес вашего дома в качестве записи DNS для вашего домена каждый раз, когда он изменяется.

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

Настройка ddclient довольно проста. Сначала вам нужно выбрать домен в Cloudflare, а затем нажать «Получить токены API» в правом нижнем углу экрана.

На открывшейся странице создайте новый API-токен, который может редактировать зону DNS для домена, который вы хотите обновить. Это даст вам API-ключ, который вы затем введете в ddclient.conf файл. Я предоставил вам образец файла для использования на моем GitHub.

Внутри файла ddclient.conf вы также добавите свой домен и любые записи, которые вы хотите обновить. По умолчанию он обновляет только @ запись вашего домена, который является корнем (т.е. yourdomain.com). Однако вы также можете добавить сюда любые другие поддомены, которые вы захотите использовать, например WWW, Блог, магазин, или что-нибудь еще.

Nginx Proxy Manager управляет маршрутизацией вашего сайта и SSL-сертификатами

Nginx Proxy Manager — это то, как вы собираетесь управлять маршрутизацией веб-трафика в контейнер Ghost Docker.

После развертывания Nginx Proxy Manager вам просто нужно будет добавить новый прокси-хост с нужным вам доменом, IP-адресом вашего Raspberry Pi и портом, на котором работает Ghost. Порт 2368 используется по умолчанию.

Закрыто

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

Ghost — лучшая платформа для создания веб-сайтов для начинающих

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

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

Как настроить веб-сайт на Raspberry Pi

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

Однако есть одна вещь, которую Ghost делает по-другому, что действительно заставляет его блистать: членство. Ghost разработан как блог или веб-сайт, но также и как сайт для участников. Вы можете настроить его с помощью Stripe и предлагать различные уровни членства, чтобы расширить свою базу подписчиков. Думайте об этом как о Substack или Patreon, но размещенном на вашем собственном сервере.

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

Однако прежде чем завершить создание стека и развернуть сервер, вам необходимо внести несколько последних изменений в файл Compose.

Для начала обновите URL-переменная окружения контейнера ghost-server в качестве URL для вашего веб-сайта. Вам также нужно будет сгенерировать действительно безопасный пароль базы данных и ввести его в сервер-призрак и ghost-db контейнеры.

Как только вы получите ddclient.conf исправьте все файлы и обновите файл Docker Compose, добавив в него информацию о вашем веб-сайте и базе данных Ghost, и все готово!

Я хочу сказать, что эта часть может занять некоторое время. Я развернул свой сайт Ghost на своем Raspberry Pi 3 B, и потребовалось около 15-20 минут, прежде чем он полностью заработал. База данных MySQL, в частности, потребовала некоторое время для полного запуска и готовности. Так что просто дайте ему немного времени после развертывания и используйте это время для завершения некоторых вещей в вашей сети.

Убедитесь, что на вашем маршрутизаторе настроена переадресация портов

Чтобы получить доступ к вашему веб-сайту из-за пределов локальной сети, вам потребуется открыть несколько портов на маршрутизаторе.

Для доступа к вашему новому веб-сайту, размещенному на собственном сервере, мы сосредоточимся на двух портах: 80 и 443. То, как именно вы откроете эти порты, зависит от маршрутизатора и, в зависимости от вашего интернет-провайдера, может оказаться невозможным.

Как настроить веб-сайт на Raspberry Pi

Однако, как только вы попадете в область переадресации портов вашего маршрутизатора, вот что вам нужно будет сделать.

Настройте внешний порт 80 переслать внутренний порт 8080, и внешний порт 443 переслать внутренний порт 4443. Это два порта, которые использует Nginx Proxy Manager, и именно с их помощью вы сможете получить доступ к своему веб-сайту из-за пределов локальной сети.

Вот и все! Если вы следовали этому руководству, ваш сайт должен быть запущен! На этом этапе вам нужно будет пройти и начать настраивать тему Ghost, создавать страницы и придумывать уровни подписки — если это то, что вам интересно.

Теперь взгляните на эти семь контейнеров Docker, которые питают мою домашнюю сеть. Если вы размещаете свой собственный веб-сайт, один из моих любимых сервисов, которые я развернул в своей сети, — это Uptime-Kuma, поскольку он может помочь контролировать время безотказной работы вашего веб-сайта, не платя кому-то другому за мониторинг.

Валентин Павлов/ автор статьи
Страсть Влентина к играм началась с Resident Evil, и с тех пор он не переставал играть в хоррор-игры. Пишет экспертные руководства для самых сложных игр и обзоры для самых громких релизов. Является магистром журналистики и имеет степень бакалавра лингвистики. Любимые игры: GTA 5, Silent Hill 2, Call of Duty: Modern Warfare 2, Heavy Rain, Metro 2033 и другие.
Понравилась статья? Поделиться с друзьями:
Добавить комментарий