↓ Перейти к основному содержимому
  1. Posts/
  2. Self-Hosting/

Homelab с нуля - какое железо взять, что поставить и какой сервис поднять первым

··933 слов·5 минут· loading · loading · ·
Stilicho2011
Автор
Stilicho2011
Пишу о homelab, self-hosting, автоматизации и open-source решениях
Оглавление
Self-Hosting - This article is part of a series.
Part : This Article

Что такое homelab
#

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

Начинается все обычно с одного старого компьютера и одного сервиса, а заканчивается… на самом деле не заканчивается.

Зачем он нужен
#

Причин у всех свои, но чаще всего их три:

  1. Учиться руками. Прочитать про VLAN, реверс-прокси или кластер - одно, а настроить их и починить после того, как сам же сломал - совсем другое. Homelab - это место, где ошибка стоит вам вечера, а не рабочего дня всей компании.
  2. Свои сервисы вместо чужих облаков и подписок. Менеджер паролей, файловое хранилище, фото, медиатека, умный дом - все это можно держать у себя. Данные остаются у вас, а ежемесячные подписки заменяются железом, которое у вас, возможно, уже есть.
  3. Опыт, который видно. Для тех, кто работает в ИТ или DevOps, собственный homelab - это практический опыт с инфраструктурой, о котором можно предметно рассказать на собеседовании, а не просто строчка «знаком с Docker».

С чего реально начать - чек-лист первого homelab
#

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

  1. Сначала - железо, которое уже есть. Старый ноутбук, списанный офисный ПК, что угодно с 8+ ГБ памяти потянет полноценный homelab. Не покупайте ничего, пока не упретесь в реальный потолок того, что уже имеете. Единственное, о чем стоит помнить сразу, - электричество: сервер работает круглосуточно, и старый системный блок даже в простое потребляет в разы больше современного мини-ПК. Когда дойдете до покупки, компактного мини-ПК или SBC вполне хватит на сервисы одного-двух человек (я разбирал именно такую железку, ZimaBoard 2, в том числе с точки зрения энергопотребления).
  2. Поставьте на него гипервизор, а не десктопную ОС. Proxmox VE - стандартная рекомендация не просто так: бесплатный, гоняет виртуальные машины и легкие LXC-контейнеры бок о бок, позволяет снести и пересобрать тестовое окружение за пару минут вместо переустановки ОС. Есть и альтернативы - например, XCP-ng (он у меня стоит на отдельном стенде, я использовал его в обзоре Vinchin). А вот VMware ESXi для дома сейчас выбирают редко: после покупки VMware компанией Broadcom условия бесплатного использования несколько раз менялись. VirtualBox и подобные программы - это виртуализация для десктопа, для сервера, который работает круглосуточно, они не подходят.
  3. Выберите один нужный сервис, а не десять. Классическая ошибка новичка - поднять за выходные дюжину контейнеров и половину из них больше никогда не открыть. Менеджер паролей, которым будете пользоваться каждый день - например, Vaultwarden, - куда лучший первый проект, чем медиасервер, в который заглядываете раз в пару месяцев: сломается первый - вы это заметите сразу. Для начала хватит Docker, а когда станет интересно, чем он отличается от Podman и Kubernetes, - у меня есть отдельное сравнение.
  4. Бэкап - с первого дня, а не «потом». Если первым сервисом стал менеджер паролей, то его потеря - это не «сломался эксперимент», а потерянный доступ ко всему сразу. Снапшот виртуальной машины на том же диске - это не бэкап: умрет диск, умрут и снапшоты. Минимум - регулярная копия данных на другой носитель, а лучше сразу по правилу 3-2-1 (три копии, на двух разных носителях, одна - вне дома). Инструментов хватает: Proxmox Backup Server для виртуальных машин и контейнеров целиком, Zerobyte или Duplicati для файлов.
  5. Не выставляйте сервисы в интернет пробросом портов. Самая частая и самая опасная ошибка начинающих - открыть порт сервиса на роутере, чтобы пользоваться им вне дома. Сканеры находят такие порты за часы. Для доступа к своим сервисам снаружи проще и безопаснее использовать приватную сеть между устройствами - например, NetBird, - и не публиковать вообще ничего. А если что-то действительно нужно выставить наружу, то только через реверс-прокси с авторизацией (Traefik и Authentik) и с защитой вроде CrowdSec.
  6. Будьте готовы что-то сломать, специально или нет. Ценность homelab именно в том, что сломанный контейнер, сетевой конфиг или целая VM стоят вам вечера, а не должности. Сделайте снапшот перед тем, как трогать что-то важное, и дальше уже ковыряйтесь без страха, который был бы уместен на проде.
  7. И только потом наращивайте остальное - второй хост, сегментация сети, мониторинг. Все это рано или поздно понадобится, но не оно делает связку железа «homelab» - делает его тот самый один сервис, которым вы реально пользуетесь каждый день.

Как выглядит мой homelab сейчас
#

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

  • Сеть. Маршрутизатор на OPNsense, установленном на отдельное железо, с GeoIP-блокировкой, списками FireHOL и CrowdSec, и с разделением сети на сегменты по VLAN. Плюсы и минусы виртуализации маршрутизатора я разбирал отдельно.
  • Виртуализация. Кластер Proxmox VE плюс отдельные хосты под задачи, которые не хочется смешивать с основным кластером.
  • Вход в сервисы. Traefik в отдельном LXC-контейнере и в своем VLAN как единая точка входа, Authentik для единого входа во все сервисы.
  • Деплой. Compose-файлы всех сервисов лежат в git, а Forgejo и Komodo сами раскатывают изменения на нужные хосты после git push.
  • Хранение и бэкапы. Самосборный NAS на OpenZFS и Proxmox Backup Server.
  • Уведомления. Все события инфраструктуры - бэкапы, баны CrowdSec, падения сервисов - приходят в Gotify, отдельно от личных мессенджеров.

Куда двигаться дальше
#

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

  • кластер Proxmox - когда хостов становится больше одного;
  • Traefik в LXC и Authentik - когда сервисов становится больше, чем хочется запоминать портов и паролей;
  • OPNsense - когда хочется взять под контроль саму домашнюю сеть;
  • Forgejo и Komodo - когда надоест править compose-файлы руками прямо на сервере.
Self-Hosting - This article is part of a series.
Part : This Article

Related

NetBird - публикация сервисов без белого IP и проброса портов

·1746 слов·9 минут· loading · loading
Netbird позволяет публиковать локальные сервисы в интернет без открытия портов, используя безопасные туннели и удобный веб-интерфейс - идеальное решение для домашнего сервера и homelab.

Pangolin - простой способ открыть доступ к homelab

·2399 слов·12 минут· loading · loading
Pangolin позволяет публиковать локальные сервисы в интернет без открытия портов, используя безопасные туннели и удобный веб-интерфейс - идеальное решение для домашнего сервера и homelab.

Автоматические снапшоты ZFS на Fedora Server 44 с помощью Sanoid

·1690 слов·8 минут· loading · loading
Продолжение цикла статей про домашний NAS на Fedora Server 44. На этот раз настраиваем автоматическое создание и очистку снапшотов ZFS с помощью Sanoid, разбираем политику хранения снимков и systemd-таймеры, а также знакомимся с Syncoid для будущей репликации данных на резервный сервер.