LinuxRuLinux без лишней теории
Свой сервер

Домашний сервер на Raspberry Pi 5: практическая сборка от железа до Docker

Редакция LinuxRu7 мин чтенияСоветы

Raspberry Pi как домашний сервер в 2026 году собирается на Pi 5 с официальным блоком питания на 27 Вт, активным охлаждением и NVMe-накопителем вместо microSD. Дальше ставится Raspberry Pi OS Lite на Debian 13 с SSH по ключу, Docker для служб и WireGuard для доступа извне.

Домашний сервер на Raspberry Pi 5: практическая сборка от железа до Docker
Фото: Laserlicht, CC BY-SA 4.0, Wikimedia Commons
Содержание
  1. Комплектующие
  2. Запись системы
  3. Загрузка с NVMe
  4. Базовая настройка
  5. Docker
  6. Диски для данных
  7. Температура и питание
  8. Доступ и бэкап
  9. Частые вопросы

Что купить: Raspberry Pi 5 и обвязка без сюрпризов

Под круглосуточный домашний сервер в 2026 году берите Raspberry Pi 5. Модели на 4 ГБ хватит для пары лёгких служб (VPN, DNS-фильтр, синхронизация файлов), 8 ГБ - разумный выбор под десяток контейнеров, 16 ГБ нужны разве что под тяжёлые базы или медиасервер с большим каталогом. Pi 4 тоже справится, но у него нет PCIe, и быстрый накопитель придётся вешать на USB.

Сама плата - меньшая часть успеха. Почти все странные зависания домашних серверов на Pi упираются в питание, охлаждение и карту памяти.

КомпонентЧто братьПочему
Блок питанияОфициальный 27 Вт USB-C (5 В, 5 А)Обычные зарядки дают просадки, Pi ограничивает USB и троттлит
ОхлаждениеActive Cooler или корпус с вентиляторомПод длительной нагрузкой без обдува процессор сбрасывает частоту
НакопительNVMe SSD через M.2 HAT+ или аналогmicroSD изнашивается от постоянной записи логов и баз
СетьКабель Ethernet до роутераWi-Fi для сервера - лишняя точка отказа
ДанныеВнешний HDD с отдельным питаниемБольшие диски от USB платы питаются нестабильно

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

Записываем Raspberry Pi OS Lite с готовым SSH

Для сервера нужна 64-битная Raspberry Pi OS Lite без графического окружения. С конца 2025 года она основана на Debian 13 trixie. Разработчики советуют ставить trixie начисто, а не обновлять старую систему на Bookworm на месте.

Записывать удобнее всего через Raspberry Pi Imager 2.0, он есть для Linux, Windows и macOS. Мастер ведёт по шагам: модель платы, система, накопитель и настройки. На шаге настроек сразу задайте:

  • имя хоста, например homepi, чтобы обращаться к серверу как homepi.local;
  • пользователя и пароль (стандартного пользователя pi больше нет);
  • часовой пояс и раскладку;
  • включение SSH с входом только по ключу и вставьте свой открытый ключ.

Ключ, если его ещё нет, создаётся одной командой ssh-keygen -t ed25519, подробности в статье как подключиться по SSH. После первой загрузки найдите адрес Pi в списке клиентов роутера и подключитесь:

ssh имя_пользователя@homepi.local
# если .local не резолвится, используйте IP из роутера
ssh имя_пользователя@192.168.1.20

Сразу закрепите за Pi постоянный адрес. Надёжнее всего сделать это резервированием DHCP в роутере: и сервер не настраивать, и адрес не уплывёт после сброса сети.

Переносим систему на NVMe

Самый простой путь: загрузиться с microSD, установить на неё Imager или воспользоваться сетевым установщиком и записать систему прямо на NVMe. Сначала проверьте загрузчик:

sudo apt update
sudo apt full-upgrade
# дата загрузчика должна быть не старше декабря 2023 года
sudo rpi-eeprom-update
# накопитель виден системе
ls -l /dev/nvme*

Если загрузчик старый, в sudo raspi-config откройте Advanced Options, Bootloader Version, выберите Latest, затем выполните sudo rpi-eeprom-update -a и перезагрузитесь. Без карты памяти Pi загружается с NVMe автоматически. Если карту хочется оставить вставленной, в том же raspi-config поменяйте порядок загрузки: Advanced Options, Boot Order, NVMe/USB boot.

По умолчанию порт PCIe работает в режиме Gen 2 (до 500 МБ/с), и для сервера этого с запасом. Режим Gen 3 включается строкой dtparam=pciex1_gen=3 в /boot/firmware/config.txt, но Raspberry Pi официально его не сертифицирует. Мы бы не включали его на машине, которая должна работать годами без присмотра.

Перед переносом на NVMe проверьте накопитель с вашим HAT: часть недорогих SSD с контроллерами без DRAM капризничает на одной линии PCIe и пропадает после перезагрузки. Посмотрите совместимость у производителя переходника и после установки погоняйте сервер под нагрузкой день-другой, прежде чем переносить важные данные.

Базовая настройка: обновления, SSH, журнал

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

sudo apt install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
# проверка без реальной установки
sudo unattended-upgrade --dry-run --debug

Если при записи вы не отключили вход по паролю, сделайте это сейчас: создайте файл /etc/ssh/sshd_config.d/10-local.conf со строкой PasswordAuthentication no и перезапустите службу командой sudo systemctl restart ssh. Предварительно убедитесь, что вход по ключу работает, и не закрывайте текущую сессию до проверки.

Ещё одна мелочь, которая сбережёт накопитель: ограничьте размер системного журнала. На карте памяти это особенно заметно, на NVMe просто аккуратно. Достаточно задать SystemMaxUse=200M в файле настроек journald и перезапустить службу systemd-journald.

Docker и первые службы в контейнерах

Большинство домашних служб удобнее держать в контейнерах: их легко обновить, перенести на другую машину и удалить без следов. Docker официально поддерживает 64-битную Raspberry Pi OS по инструкции для Debian. Для домашней машины можно использовать удобный скрипт установки, он подключит репозиторий Docker и поставит плагин compose:

curl -fsSL https://get.docker.com -o get-docker.sh
# прочитайте скрипт перед запуском
less get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
# перелогиньтесь и проверьте
docker run --rm hello-world

Помните, что группа docker даёт права, равные root. Если это смущает, есть вариант Docker Rootless, где демон работает от обычного пользователя. Для примера поднимем Syncthing, который будет синхронизировать папки с ноутбука и телефона. Создайте каталог ~/srv/syncthing и файл compose.yaml в нём:

services:
  syncthing:
    image: syncthing/syncthing
    hostname: homepi
    environment:
      - PUID=1000
      - PGID=1000
    volumes:
      - ./data:/var/syncthing
    ports:
      - 8384:8384
      - 22000:22000/tcp
      - 22000:22000/udp
      - 21027:21027/udp
    restart: unless-stopped
cd ~/srv/syncthing
docker compose up -d
docker compose logs -f

Веб-интерфейс откроется на порту 8384. Сразу задайте в нём пароль. Как устроена синхронизация и как подключать устройства, мы разобрали в статье про Syncthing, а современный синтаксис compose описан в материале про Docker Compose plugin. Остальные службы добавляйте по тому же шаблону: отдельный каталог, свой compose.yaml, данные рядом.

Подключаем диск под данные

Системный NVMe держите для ОС и контейнеров, а фото, видео и резервные копии кладите на отдельный диск. Чтобы он монтировался всегда в одно место, используйте UUID, а не имя вида /dev/sda1, которое может поменяться:

lsblk -f
sudo mkdir -p /srv/data
# строка для /etc/fstab, UUID подставьте свой
UUID=1234-abcd /srv/data ext4 defaults,nofail,x-systemd.device-timeout=10 0 2

Опция nofail важна: без неё сервер с отключённым диском не загрузится до конца, и придётся идти к нему с монитором. После правки проверьте всё командой sudo mount -a. Если диск новый, сначала отформатируйте его в ext4, например командой sudo mkfs.ext4 -L data /dev/sdX1, внимательно проверив имя раздела в выводе lsblk.

Следим за температурой и питанием

У Raspberry Pi есть встроенная утилита, которая честно расскажет, хватает ли плате питания и охлаждения:

# текущая температура процессора
vcgencmd measure_temp
# флаги просадки питания и троттлинга, 0x0 означает, что проблем не было
vcgencmd get_throttled

Если get_throttled возвращает что-то кроме 0x0, первым делом меняйте блок питания и кабель, потом смотрите на охлаждение. Температура в простое на Pi 5 с активным кулером обычно держится заметно ниже 60 градусов, а при длительных значениях около 80 и выше процессор начинает сбрасывать частоту.

Для общей картины пригодятся htop и docker stats. Если хочется графиков, подойдёт любой лёгкий мониторинг в контейнере, но на старте проще раз в неделю заходить по SSH и смотреть на эти две команды.

Доступ из интернета и резервные копии

Не пробрасывайте порты веб-интерфейсов на роутере. Правильный путь - VPN до дома: на этой же Pi поднимается WireGuard, и вы попадаете в домашнюю сеть с телефона или ноутбука, как будто сидите дома. Пошаговая настройка в статье WireGuard для доступа к домашней сети.

Резервные копии делайте с первого дня. Сохранять нужно каталоги с compose.yaml и данными служб (~/srv) плюс важные файлы с диска данных. Хорошо работают Restic и Borg, сравнение и схема 3-2-1 в материале Borg или Restic. Отдельно сохраните образ системного накопителя после того, как всё настроили: восстановление из него займёт минуты вместо вечера.

Полная документация по плате, загрузчику и config.txt есть на сайте Raspberry Pi.

Частые вопросы

Какую модель Raspberry Pi взять для домашнего сервера?

Raspberry Pi 5: на 4 ГБ хватит для VPN, DNS-фильтра и синхронизации, 8 ГБ подойдут для десятка контейнеров. Pi 4 тоже работает, но без PCIe для NVMe.

Можно ли оставить систему на microSD?

Для лёгких задач можно, но постоянная запись логов и баз изнашивает карты. Для круглосуточного сервера лучше NVMe через HAT или SSD по USB.

Как проверить, хватает ли питания?

Выполните vcgencmd get_throttled. Значение 0x0 означает, что просадок питания и троттлинга не было. Другое значение - повод сменить блок питания и кабель.

Нужно ли включать PCIe Gen 3?

Для домашнего сервера нет. Gen 2 даёт до 500 МБ/с, а режим Gen 3 Raspberry Pi официально не сертифицирует, и он может работать нестабильно.

Как безопасно открыть сервер из интернета?

Через VPN, например WireGuard на этой же Pi. Прямой проброс веб-интерфейсов служб на роутере делать не стоит.

Документация и источники

Читайте также

Команды проверены на актуальных версиях дистрибутивов на момент обновления. Перед изменением системных настроек сделайте резервную копию.