Гид по технологиям

Как превратить Raspberry Pi в домашний сервер

8 min read DevOps Обновлено 31 Dec 2025
Raspberry Pi как домашний сервер
Raspberry Pi как домашний сервер

Два SSD, подключённые к Raspberry Pi 4 через USB–SATA адаптеры

Введение

Raspberry Pi — компактная плата общего назначения, которая отлично подходит для превращения в домашний сервер: размещения сайтов, API, медиабиблиотек и тестовых сред. Этот гид рассчитан на практическое развёртывание: объясняется выбор ОС, базовая конфигурация, переадресация портов, установка ключевых пакетов и первичная безопасность.

Краткие определения (в одну строку):

  • SSH — защищённый удалённый доступ к командной строке устройства.
  • Docker — платформа для запуска приложений в контейнерах с изолированной средой.
  • Certbot — клиент для автоматического получения и продления бесплатных TLS/SSL сертификатов от Let’s Encrypt.

Важно: используйте модель Raspberry Pi 4B или новее и 64‑битную сборку Raspberry Pi OS для лучшей совместимости с современными контейнерами и программами.

Что понадобится

  • Raspberry Pi (рекомендуется модель 4B)
  • microSD карта или USB SSD (лучше SSD для надёжности и скорости)
  • Блок питания для Pi
  • Ethernet‑кабель (проводное подключение стабильнее для сервера)
  • Резервирование или статический локальный IP (через роутер)
  • Доменное имя (для публичного доступа и SSL)
  • Другой ПК в той же сети для первоначальной настройки

Примечание: для постоянных публичных сервисов SSD предпочтительнее microSD — SD карты подвержены износу при частых записях.

Выбор операционной системы и образа

Для серверных задач обычно выбирают лёгкую 64‑битную сборку без графики. Мы рекомендуем Raspberry Pi OS Lite (64‑bit) — это Debian с минимальным набором пакетов.

Альтернативы, которые подойдут в зависимости от задач:

  • Ubuntu Server — популярна для совместимости с некоторыми облачными инструкциями.
  • Debian minimal — близка по духу к Raspberry Pi OS.
  • DietPi — очень лёгкая, оптимизированная под производительность.

Когда Raspberry Pi не лучший выбор:

  • Если вы ожидаете высокую нагрузку (тысячи одновременных соединений).
  • Для задач с интенсивной обработкой (большие компиляции, ML‑тренировки).
  • Если нужна гарантированная SLA — лучше облачный VPS или выделенный сервер.

Как записать Raspberry Pi OS на носитель и включить SSH

  1. Вставьте microSD или подключите USB SSD к рабочему компьютеру.
  2. Установите Raspberry Pi Imager с официального сайта и запустите его.
  3. В Imager выберите: Choose OS → Raspberry Pi OS (other) → Raspberry Pi OS Lite (64‑bit).
  4. Выберите носитель (Choose Storage) — будьте внимательны, выбранный диск будет перезаписан.
  5. Нажмите на шестерёнку (конфигурация) и включите следующие опции:
    • Enable SSH
    • Set username and password — укажите имя пользователя и пароль
    • Set locale settings — выберите часовой пояс и раскладку клавиатуры
  6. Нажмите Save → Write и дождитесь завершения записи образа.

Экран Raspberry Pi Imager: выбран образ и диск, внизу видна шестерёнка для настроек

Совет: не используйте дефолтные логин/пароль (например, pi/raspberry) для публичных серверов.

Включение Raspberry Pi и поиск в локальной сети

  1. Вставьте SD/SSD в Raspberry Pi. Подключите питание и Ethernet‑кабель к роутеру.
  2. Откройте страницу админки роутера с компьютера в той же сети (обычно 192.168.0.1 или 192.168.1.1 — см. документацию роутера).
  3. В списке подключённых устройств найдите ваш Pi и запишите его локальный IP.

Страница админки роутера со списком устройств; всплывающая подсказка показывает IP-адрес

Замечание: предпочтительнее сделать резервирование IP в настройках роутера (DHCP reservation), чтобы адрес не менялся при перезагрузках.

Подключение по SSH

Откройте терминал на компьютере и выполните:

ssh user@local.pi.ip.address

Где user — имя пользователя, заданное в Imager, а local.pi.ip.address — IP‑адрес вашего Pi.

При первом подключении вы увидите предупреждение о неизвестном ключе — введите yes и продолжите. Затем введите пароль.

Терминал с предупреждением о том, что подлинность хоста не может быть установлена

После входа вы окажетесь в командной оболочке Raspberry Pi и сможете управлять системой удалённо.

Переадресация портов (Port Forwarding) для публичного доступа

Чтобы сервер был доступен из интернета, настройте проброс портов на роутере:

  • HTTP: внешние и внутренние порты 80 → локальный IP Raspberry Pi
  • HTTPS: внешние и внутренние порты 443 → локальный IP Raspberry Pi

Интерфейсы роутеров различаются: ищите раздел Port Forwarding / Port Mapping / Port Management.

Скриншот админки роутера: правила проброса HTTP (80) и HTTPS (443)

Важно: если у вас динамический публичный IP от провайдера, используйте сервис динамического DNS (DynDNS, DuckDNS) или настройте HTTPS‑домен через прокси/Reverse proxy в облаке.

Безопасность при пробросе портов:

  • Пробрасывайте только необходимые порты.
  • Используйте HTTPS всегда для публичных веб‑сервисов.
  • По возможности ставьте обратный прокси (например, Nginx/Apache) и ограничивайте доступ на уровне хостов/фильтров.

Установка базового серверного ПО

Обновите пакеты и установите базовый набор: Apache, MariaDB, PHP, Docker и Certbot.

Обновление:

sudo apt update
sudo apt upgrade -y

Установка Apache:

sudo apt install apache2 -y

Включение модулей (полезные модули для проксирования и WebSocket):

sudo a2enmod rewrite http2 proxy proxy_http proxy_http2 proxy_wstunnel

Запуск и автозапуск Apache:

sudo systemctl start apache2
sudo systemctl enable apache2

Проверка: откройте в браузере ваш публичный или локальный IP — вы должны увидеть страницу по умолчанию Apache.

Стандартная страница Apache отображается в браузере

Установка PHP:

sudo apt install php -y

Установка MariaDB и базовая защита:

sudo apt install mariadb-server -y
sudo mysql_secure_installation

В интерактивном мастере следуйте подсказкам: обычно рекомендуется удалить анонимных пользователей, запретить удалённый вход root и удалить тестовую базу.

Доступ к MariaDB:

sudo mariadb

Установка Docker:

sudo apt install docker.io -y
sudo systemctl start docker
sudo systemctl enable docker
sudo usermod -aG docker your_username

Выйдите из сеанса и зайдите снова, чтобы изменения группы вступили в силу.

Docker Compose (примерный процесс):

  1. На странице релизов Docker Compose выберите файл для архитектуры aarch64 (Raspberry Pi 4/64bit).
  2. Скачайте бинарник (пример ссылки — замените на актуальную):
wget https://github.com/docker/compose/releases/download/v2.19.1/docker-compose-linux-aarch64
  1. Переместите и сделайте исполняемым:
sudo mv docker-compose-linux-aarch64 /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Установка Certbot (для автоматического получения сертификатов):

sudo apt install software-properties-common -y
sudo apt update
sudo add-apt-repository ppa:certbot/certbot -y
sudo apt-get install python3-certbot-apache -y

После этого вы сможете запускать

sudo certbot --apache

и следовать интерактивным подсказкам для привязки TLS к вашему домену.

Замечание: Certbot должен уметь проверять владение доменом — убедитесь, что DNS указывает на ваш публичный IP и что порты 80/443 открыты.

Резервирование и выбор дисковой подсистемы

Рекомендации по носителям:

  • SSD + USB 3.0 (на Pi 4) обеспечивает лучшую производительность и долговечность.
  • Для критичных данных используйте внешние NAS или регулярные резервные копии на удалённые серверы.
  • Планируйте бэкапы конфигураций (/etc), баз данных и каталога веб‑сайтов.

Пример простой стратегии резервного копирования:

  • Ежедневный дамп базы данных на внешнее хранилище.
  • Недельное архивирование веб‑документов с ротацией 4 копии.
  • Ежемесячное полное клонирование диска.

Безопасность и жёсткая конфигурация (Hardening)

  1. Обновления: включите автоматические обновления безопасности или настраивайте регулярные apt‑обновления.
  2. Ограничьте SSH:
    • Используйте ключи вместо паролей.
    • Отключите вход под root.
    • Поменяйте нестандартный порт (дополнительно).
  3. Настройте брандмауэр (ufw):
sudo apt install ufw -y
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
  1. Установите fail2ban для защиты от брутфорс‑атак.
  2. Регулярно проверяйте логи и используйте мониторинг (Prometheus, Netdata и т.п.).
  3. Используйте минимальные привилегии для сервисных аккаунтов в БД.

Роль Docker и vs. нативная установка

Когда использовать Docker:

  • Множество сервисов с различными зависимостями.
  • Удобство развёртывания и обновления (образ → контейнер).
  • Изоляция окружений.

Когда лучше установить нативно:

  • Требуется максимум производительности с минимальными накладными расходами.
  • Очень простые веб‑сайты, где контейнеры не приносят очевидной пользы.

Хибридный подход часто оптимален: критические службы (бэкапы, мониторинг) — нативно; остальные — в Docker.

DNS, домен и динамический IP

  • Зарегистрируйте домен у любого регистратора.
  • Настройте A‑запись, указывающую на ваш публичный IP.
  • Если провайдер даёт динамический IP — используйте динамический DNS (DuckDNS, No-IP) или задайте обратный прокси в облаке.

Типичные проблемы и как их решать

  1. SD‑карта «сдохла»: имейте образ системы для быстрого восстановления и/или используйте SSD.
  2. Низкая производительность под нагрузкой: перенос в облако или масштабирование за счёт нескольких устройств/балансировщика.
  3. Проблемы с привилегиями Docker: убедитесь, что пользователь добавлен в группу docker и вышел/вошёл заново.
  4. Certbot не может верифицировать домен: проверьте DNS, проверьте, что порты 80/443 открыты и не используются другим процессом.

Критерии приёмки

Перед тем как считать сервер готовым для публичного использования, проверьте:

  • Доступность сайта по HTTP и HTTPS из внешней сети.
  • Автоматическое обновление сертификатов (тестирование продления Certbot).
  • Наличие регулярных резервных копий и проверка их восстановления.
  • Настроенный firewall и fail2ban/аналогичная защита.
  • Мониторинг ответов сервиса и метрики нагрузки.

Роль‑ориентированные контрольные списки

Владелец (не тех):

  • Зарегистрирован домен и DNS указывает на IP.
  • Есть описание того, какие сайты/сервисы размещены.
  • Настроены бэкапы и проверено восстановление.

Системный администратор:

  • SSH настроен на ключи, root отключён.
  • Firewall и fail2ban активны.
  • Протестировано продление сертификата.
  • Логи ротации настроены и проверяются.

Разработчик:

  • Есть тестовая среда и CI/CD (если применимо).
  • Контейнеры документированы и запускаются через docker-compose.

Мини‑методология развёртывания нового сайта

  1. Создайте ветку конфигурации и docker‑compose файл для сервиса.
  2. Сверьте зависимости и требования CPU/RAM.
  3. Разверните на тестовом виртуальном хосте (локально или на стенде).
  4. Проверьте SSL и конфигурацию прокси.
  5. Перенесите в продакшн в нерабочее время и мониторьте метрики.

Инцидентный план и откат

  1. При падении сервиса — переключите трафик на статическую страницу/backup сервер.
  2. Восстановите из последней заведомо рабочей резервной копии.
  3. Посмотрите логи (systemd, веб‑сервер, Docker) и выявите причину.
  4. Если проблема связана с обновлением пакета, выполните откат до предыдущей версии образа/пакета.
  5. После восстановления выполните пост‑мортем и обновите инструкции.

Небольшой глоссарий (1‑строчные определения)

  • Reverse proxy — сервер, перенаправляющий входящие HTTP(S) запросы на внутренние приложения.
  • SSL/TLS — криптографические протоколы для шифрования веб‑трафика.
  • UFW — простой интерфейс для iptables (фаервол).

Примеры тестов / критерии приёмки

  • Страница по HTTPS загружается за < 3 с (зависит от сети и носителя).
  • Certbot успешно продлевает сертификат в тестовом режиме (–dry-run).
  • Резервная копия базы данных восстанавливается без ошибок.

Заключение

Теперь ваш Raspberry Pi подготовлен к роли домашнего сервера: установлен минимальный дистрибутив, настроен удалённый доступ по SSH, выполнена переадресация портов для внешнего доступа, установлены Apache, MariaDB, PHP, Docker и Certbot. Дальше подумайте о задачах, которые вы будете запускать (статический сайт, WordPress, медиасервер, облачное хранилище), и выбирайте между нативной установкой и контейнеризацией в зависимости от потребностей.

Ключевые рекомендации:

  • Используйте 64‑битную Raspberry Pi OS и, по возможности, SSD.
  • Настройте автоматическое обновление безопасности и firewall.
  • Регулярно делайте резервные копии и тестируйте восстановление.

Important: если вы планируете экспонировать критичные данные или ожидать высокий трафик, рассмотрите перенос на облачную платформу с SLA.

Summary

  • Raspberry Pi подходит для хобби‑ и малонагруженных продакшен задач.
  • Docker упрощает управление сервисами, но добавляет накладные расходы.
  • Безопасность и резервное копирование — ключевые элементы надёжного сервера.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Сирена Apple Watch Ultra: как включить и использовать
Безопасность

Сирена Apple Watch Ultra: как включить и использовать

Моделирование по референсу в Blender
3D моделирование

Моделирование по референсу в Blender

Snapchat и безопасность: уроки после Snappening
Конфиденциальность

Snapchat и безопасность: уроки после Snappening

Убрать тени на фото: Photoshop и простые способы
Фотография

Убрать тени на фото: Photoshop и простые способы

Автоматизация в DAW: оживите свой микс
Аудио

Автоматизация в DAW: оживите свой микс

Больше памяти на Android — 7 проверенных способов
Mobile

Больше памяти на Android — 7 проверенных способов