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





