Моя домашняя лаборатория: серверы, эксперименты, опыт
Год назад я понял, что домашняя лаборатория — это не просто коробка с сервером под столом. Это состояние ума. Когда у тебя дома стоит своя инфраструктура, ты начинаешь иначе думать о технологиях. Перестаёшь бояться «сломать» — и начинаешь экспериментировать. И это меняет твой подход к работе кардинально, причём не только в IT, но и в обычной жизни.
Всё началось с безобидного желания — поставить AdGuard Home, чтобы блокировать рекламу на всех устройствах. Я купил одноплатник Orange Pi Zero за 800 рублей на Aliexpress, ждал посылку три недели. Распаковал, подключил по UART-адаптеру (USB-TTL за 150 рублей), залил Armbian через Raspberry Pi Imager (да, он умеет писать образы на любые одноплатники, не только на RPi). Настроил за вечер: накатал конфиг сетевого интерфейса, установил AdGuard Home через скрипт, подкрутил DNS на роутере. И вдруг понял: на этом же железе можно поднять VPN, файловое хранилище, мониторинг. Через неделю на полке стояло уже три платы — Orange Pi Zero, NanoPi NEO2 и старый Raspberry Pi 3B+, который пылился в ящике. Роутер раздавал не только интернет, но и DNS-фильтрацию, WireGuard для подключения извне, локальный кеширующий DNS для ускорения запросов, SMB-шару для бэкапов с телефонов. Всё на одном Orange Pi. Он даже не грелся — радиатор размером 1×1 см справлялся с охлаждением на ура.
Тогда я впервые задумался: почему я плачу за VPS по 500 рублей в месяц, когда у меня есть железо дома и статический IP за 150 рублей у провайдера? Я позвонил в Ростелеком, попросил выделенный IP. Девушка на том конце провода долго пыталась понять, зачем мне «статик» домой. Объяснил, что хочу сервер держать. Она удивилась, но подключила за 10 минут. Доплата — 150 рублей в месяц. Я пробросил на роутере порт 443 на Orange Pi, настроил nginx как реверс-прокси, прикрутил Let’s Encrypt через certbot — и всё, я получил свой собственный сервер в интернете за копейки.
Сначала Git-сервер. Я развернул Forgejo в Docker на Orange Pi. Не потому что мне был жизненно необходим self-hosted Git, а просто потому, что мог. Процесс: установка Docker, docker-compose.yml на три сервиса — Forgejo, PostgreSQL, redis. Настройка CI/CD — простой пайплайн на 5 шагов: линтер, тесты, сборка Docker-образа, деплой на тестовый сервер, оповещение в Telegram через вебхук. Когда я впервые нажал push и через минуту получил в Telegram уведомление «Сборка успешна, образ опубликован», я чуть не запрыгал от радости. Чувство, когда твой маленький китайский одноплатник за 800 рублей сам собирает твой код, прогоняет тесты, билдит Docker-образ и отправляет уведомление — непередаваемое. Кажется, именно в этот момент я понял, что домашняя лаборатория — это наркотик.
Потом пошло-поехало. Home Assistant — для управления умным домом. Купил пару ESP32 с датчиками DHT22 на Aliexpress за 600 рублей за комплект. Прошил через ESPHome — это оказалось проще, чем я думал: написал YAML-конфиг, загрузил через USB, и данные полетели по MQTT на сервер. Построил дашборд в Grafana — температура по всем комнатам за неделю, влажность, график прогрева сервера в зависимости от температуры на улице. Жена сначала крутила пальцем у виска, когда я радостно показывал ей график температуры в детской за последние сутки. А потом начала сама заходить на дашборд проверять, не холодно ли ребёнку ночью. Победа.
Дальше — больше. InfluxDB для хранения метрик с хостов. Prometheus node_exporter на каждом сервере. Uptime Kuma для мониторинга внешних сервисов — проверяет каждые 30 секунд, доступен ли сайт. ntfy для отправки уведомлений на телефон — кастомизируемые пуши, когда что-то падает. OMV (OpenMediaVault) на старом ноутбуке как NAS — два диска по 2 ТБ в зеркале, SMB/NFS для всех устройств в сети, синхронизация бэкапов по rsync на внешний диск раз в сутки. Каждый новый сервис открывал следующий. Это как кроличья нора: ты ставишь одну вещь, понимаешь, что для её полноценной работы нужна вторая, для второй — третья, и через месяц у тебя работает 20 сервисов, о которых ты месяц назад даже не думал.
Сейчас моя лаборатория выглядит так: три Mini PC в кластере Proxmox (про них я писал отдельную статью), Orange Pi Zero 2 как IoT-шлюз для датчиков, старый ноутбук Lenovo ThinkPad T430 с OMV для хранения файлов. Всё стоит на полке ИКЕА «Лак» в углу комнаты. Провода — в кабель-каналы, сзади — миниатюрный свитч MikroTik на 8 портов (нашел на авито за 1500 рублей, модель CSS326-24G-2S+RM), блок питания на 12 В для одноплатников, маленький ИБП APC Back-UPS 650 (хватает на 25 минут работы всего зоопарка при отключении света). Вся эта красота жрёт меньше 100 Вт вместе с роутером MikroTik hAP ac2 и свитчем. Для сравнения: старый сервер в одиночку жрал больше 200 Вт простоем.
Самый большой провал случился, когда я обновлял Proxmox с версии 7.x до 8.x. Решил, что всё будет гладко — это же LTS-релиз, стабильный, проверенный. Не сделал снепшот перед обновлением. Поленился. Обновление легло криво — проблема совместимости с ZFS-пулом, созданным в старой версии. Кластер развалился, LXC-контейнеры не стартовали, база InfluxDB не открывалась. Вечер пятницы. Я без домашних сервисов. Жена без YouTube на телевизоре (AdGuard лежал, DNS не резолвился). Ребёнок без мультиков. Я восстанавливал всё до полуночи — благо бэкапы лежали на отдельном физическом диске, не затронутом обновлением. Восстановил Proxmox 7.x из бэкапа, сделал корректный снепшот, и только тогда повторил обновление уже по документации, а не «на глаз». Урок усвоил на всю жизнь: перед любым обновлением — снепшот всей VM или LXC. Даже если кажется, что обновление плёвое. Даже если спешишь. Даже если «в прошлый раз пронесло».
Что я вынес за этот год: лаборатория учит не столько технологиям, сколько подходу к инфраструктуре. Когда у тебя дома production-подобная среда, где отказ одного сервиса ломает просмотр мультиков ребёнку, ты начинаешь думать иначе. Документацию читаешь по-другому: не «как настроить», а «как настроить надёжно». Не «заработало», а «заработает ли это через месяц после обновления, после перезагрузки, после сбоя питания». Ты автоматизируешь всё, что автоматизируется, потому что восстанавливать вручную в пятницу вечером — так себе удовольствие. Ты настраиваешь мониторинг и алерты, потому что хочешь узнать о проблеме до того, как жена скажет «а почему у нас интернет не работает?».
Если ты думаешь, что домашняя лаборатория — это дорого и сложно — начни с малого. Купи Orange Pi Zero или Raspberry Pi Zero 2 W за 1000-1500 рублей. Поставь AdGuard Home или Pi-hole. Это бесплатно, настройка займёт один вечер. Потом добавишь WireGuard — чтобы подключаться к домашней сети из любого места. Потом Home Assistant — когда поймёшь, что хочешь автоматизировать дом. Потом метрики, мониторинг, Git, CI/CD. Через год оглянешься — а у тебя уже полноценный дата-центр на полке, который обходится в 300 рублей в месяц за электричество и в 150 за статический IP. И ты уже не представляешь жизни без него.
Домашняя лаборатория меняет мышление. Ты перестаёшь быть просто потребителем сервисов — ты становишься инженером, который их создаёт. Ты начинаешь понимать, как интернет работает на самом деле: DNS, маршрутизация, NAT, сертификаты, реверс-прокси. И однажды ты поймаешь себя на мысли, что читаешь документацию к PostgreSQL перед сном в кровати просто потому, что интересно. Добро пожаловать в клуб. У нас есть дашборды и печеньки.
Ещё один момент, который я не ожидал — сообщество. Оказалось, что вокруг домашних лабораторий существует огромное комьюнити. Reddit-разделы selfhosted, homelab, Proxmox — там тысячи людей, которые показывают свои стойки, делятся конфигами, помогают с проблемами. Я сам несколько раз находил решения своих проблем на Reddit, находясь в глухом углу с редкой ошибкой. А ещё встретил пару ребят из соседнего города, которые тоже собирают кластеры из Mini PC. Теперь переписываемся в Telegram, обмениваемся опытом. Домашняя лаборатория объединяет людей — звучит пафосно, но это правда.
Отдельно скажу про безопасность. Когда запускаешь свои сервисы в интернет, ты быстро учишься защищаться. Fail2ban на каждый открытый порт, crowdsec для анализа логов, автоматическая блокировка подозрительных IP, обязательный HTTPS через Let’s Encrypt, никаких паролей по умолчанию. Я за год отбил несколько тысяч попыток брутфорса SSH, пара десятков атак на nginx, кучу сканирований портов. Это лучшая практика по безопасности, которую ты можешь получить — реальный опыт, а не абстрактные уроки из курсов. Когда ты видишь в логах, как кто-то из Китая перебирает твои пароли, ты очень быстро настраиваешь двухфакторку и меняешь порты.
И последнее: не бойся начинать. Мой первый сервер был из старого ноутбука с выломанным экраном. Он грелся, шумел и вис раз в день. Но именно на нём я научился настраивать Linux, Docker, бэкапы и мониторинг. Если бы я ждал идеального момента, чтобы купить дорогое оборудование — я бы так и не начал. Лаборатория не требует больших вложений. Она требует интереса и готовности учиться на своих ошибках. А ошибок будет много — это нормально.
Ещё один неожиданный плюс — это экономия. За год домашняя лаборатория сэкономила мне больше, чем потратила на оборудование. Я перестал платить за VPS (было 500 руб/мес), за VPN-подписку (NordVPN — 1000 руб/год), за облачные хранилища (Google Drive 2 ТБ — 700 руб/мес). Свой NAS + свой VPN + свой сервер для экспериментов — и всё это за 300 рублей электричества в месяц. Оборудование окупилось за полгода. Теперь я только докупаю диски по мере заполнения. Считаю, что домашняя лаборатория — это лучшая инвестиция для IT-специалиста. Она окупается не только деньгами, но и знаниями. За год я узнал о сетях, безопасности, виртуализации, Docker, Linux больше, чем за предыдущие несколько лет чтения статей и прохождения курсов. Потому что теория без практики — ничто, а дома у тебя есть песочница, где можно ломать и чинить без последствий.