Перейти к основному контенту

Введение. Общая схема.

Данное руководство — это фундаментальный разбор классической, безопасной и масштабируемой архитектуры публикации домашних сервисов в глобальную сеть интернет. Этот метод универсален: пройдя эти шаги один раз на примере BookStack, вы сможете по аналогии поднимать десятки других приложений (Nextcloud, Matrix, Node-RED), в короткие сроки.


Общая схема движения трафика

Когда пользователь вводит в браузере адрес wiki.myserver.ru, запрос проходит цепочку узлов, прежде чем попасть в ваше приложение:

  • Браузер пользователя обращается к мировым серверам DNS и спрашивает: "Какой IP-адрес у wiki.myserver.ru?".
  • DNS отвечает: "Его адрес — ваш_белый_IP".
  • Браузер отправляет запрос по протоколу HTTPS (порт 443) на ваш Роутер.
  • Роутер, благодаря правилу Port Forwarding, перенаправляет этот трафик на внутренний статический IP вашего Сервера Debian.
  • На сервере запрос встречает Nginx (Обратный Прокси). Он проверяет SSL-сертификат от Let's Encrypt и перенаправляет (проксирует) чистый трафик внутрь изолированного Docker-контейнера.

Пошаговый план (8 пунктов к цели)

Шаг Название главы Суть этапа
1 Внешний мир: Статический IP Зачем нужен фиксированный IP от провайдера и чем он отличается от динамического.
2 Внутренний мир: Статика по MAC Фиксация локального IP-адреса сервера в настройках роутера через DHCP.
3 Шлюзы роутера: Port Forwarding Проброс портов 80 (HTTP) и 443 (HTTPS) из интернета на локальный сервер.
4 Имя в сети: Домен и DNS A-записи Покупка домена, привязка IP и создание субдоменов (поддоменов) для сервисов.
5 Изоляция: Запуск BookStack в Docker Создание конфигурации Docker Compose и запуск контейнеров приложения и СУБД.
6 Диспетчер: Базовый конфиг Nginx Настройка виртуального хоста Nginx на 80 порту для обработки первых запросов.
7 Защита: Certbot и SSL Let's Encrypt Автоматический выпуск криптографических сертификатов и переключение на безопасный HTTPS.
8 Активация: Симлинки и запуск сайта Включение конфигурации через sites-enabled, проверка синтаксиса и финальный запуск веб-приложения.

Важное примечание для сисадмина: Всегда держите этот план перед глазами. Когда вам понадобится поднять новый сервис (например, cloud.myserver.ru), вам больше не придется повторять пункты 1, 2, 3 и 4. Вы будете начинать сразу с Пункта 5 (Docker) и Пункта 6 (Nginx), масштабируя возможности своего сервера на ходу.