Я давно ставил перед собой задачу собрать домашний сервер. Сначала это было увлечение, но теперь он стал моим основным инструментом, без которого невозможно представить работу.
Основные функции сервера
- Резервное копирование всех виртуальных машин по расписанию
- Хостинг пет-проектов
- Тестовые рабочие стенды
- Мониторинг серверов через Grafana и Prometheus
- Хостинг карт OpenStreetMap
- Личная автоматизация через OpenClaw с управлением из Matrix
- Семейный чат в Matrix
- Домашний кинотеатр на Jellyfin
- Личное облако для данных
- Эксперименты с новыми сервисами и версиями ПО
Аппаратная конфигурация
Я предпочитаю брать железо с запасом. Мой текущий сервер:
- Материнская плата — ASUS WS C246 PRO
- Процессор — Intel Xeon E-2276G, 3.8 GHz
- Оперативная память — Samsung 64 ГБ DDR4 ECC 2666
- Видеокарта — Nvidia RTX 2060
- Накопители — 8 ТБ HDD, 1 ТБ NVMe, 1 ТБ SSD
Видеокарта оказалась полезной только для транскодинга видео. Для LLM её мощности недостаточно, а остальные задачи решаются встроенным в CPU графическим ядром.
Резервное копирование
Для бэкапа самого сервера я использую NAS Synology DS220+ с двумя дисками в RAID. Это позволяет восстановить данные, даже если основной сервер выйдет из строя.
От Proxmox к Ubuntu Server
Сначала я использовал Proxmox для виртуализации, но со временем понял, что это замедляет работу. Управление виртуальными машинами и контейнерами, особенно с пробросом GPU, требовало слишком много усилий. В итоге я перешёл на Ubuntu Server 24.04 LTS, который использую до сих пор.
Организация данных по "температуре"
Я разделил хранилище на уровни в зависимости от скорости доступа и важности данных:
- 2× NVMe по 500 ГБ — на одном система, на втором папка
/datahotс PostgreSQL, ClickHouse и другими БД, требующими быстрого доступа. - 1× SSD 2 ТБ — папка
/datawarm, там работает отдельный инстанс PostgreSQL для OpenStreetMap. - 2× HDD по 4 ТБ в RAID1 — папка
/datacold, хранит бэкапы и критически важные данные. - Synology NAS — папка
/dataice, куда копируются чувствительные данные через крон-скрипты.
Такой подход напоминает стратегию облачных провайдеров. Я не доверяю SSD из-за их склонности к внезапному выходу из строя, поэтому выбрал более сложную, но надёжную архитектуру.
Базы данных
Я не использую контейнеризацию для БД. На сервере установлены bare-metal инстансы PostgreSQL и ClickHouse. Я создаю отдельных пользователей и базы под нужды каждого сервиса — так проще управлять и контролировать доступ.
ClickHouse оказался особенно прожорливым к оперативной памяти. Если вы работаете с большими объёмами данных, рекомендую брать больше RAM.
Веб-сервер и проксирование
Используется Nginx как веб-сервер и обратный прокси. Поскольку я часто нахожусь вне локальной сети, некоторые сервисы доступны через интернет. Это позволяет подключаться к ним, даже если нет доступа к домашнему VPN.
Резервное копирование виртуальных машин
Мой стек — PHP / Laravel / PostgreSQL, и у меня десятки виртуальных машин. Чтобы централизованно сохранять и файлы, и базы данных, я использую:
- laravel-backup-server — еженедельные бэкапы файловой системы, особенно ценно сохранение папок, исключённых из git (изображения, видео и т.д.).
- laravel-backup — ежедневные бэкапы PostgreSQL.
Решение не имеет веб-интерфейса, всё настраивается через консоль. За каждый бэкап приходит email-уведомление — это уже неоднократно спасало мои данные.
Хостинг пет-проектов
При появлении новой идеи я использую отлаженный процесс, иногда с помощью Cursor или Claude Code:
mkdir /var/wwwlaravel new example-appилиgit clonenpm install & npm run build & composer installnano /etc/nginx/sites-available/example, включение сайта и получение SSL черезcertbot --nginx -d example.com
Недавно я создал бота для управления Яндекс Трекером. Он работает на дешёвой китайской ИИ-модели, создаёт задачи, генерирует тексты релизов и помогает в повседневной рутине.
Тестовые рабочие стенды
Процесс аналогичен развёртыванию пет-проектов, но с импортом обезличенных данных из рабочих баз. Это позволяет тестировать изменения в безопасной среде.
Мониторинг серверов
Используется стек Prometheus / Grafana / Node Exporter. Prometheus и Grafana установлены на основном сервере, Node Exporter разворачивается на каждой VM. В Grafana настроены алерты в Matrix и Telegram — например, при нехватке места на диске или аномальной нагрузке.
OpenStreetMap
Для базы OSM выделен отдельный SSD объёмом более 1 ТБ. Импорт в PostgreSQL выполняется стандартными инструментами. Это не только полезно, но и интересно — можно анализировать распределение школ, общественных туалетов и других объектов по миру с помощью сложных SQL-запросов.
Личная автоматизация через OpenClaw
OpenClaw я запускаю в Docker-контейнере или на отдельном VPS. Он решает несколько задач:
- Проверка балансов — ежедневный крон-скрипт проверяет состояние счетов (хостинг, SMS-сервисы и т.д.). Если баланс критически низкий, приходит уведомление. Для сервисов без API используется автоматизация через Chrome и Playwright.
- Погода — бот присылает утреннюю сводку с учётом условий для бега и велосипеда.
- Персональный дайджест по здоровью — напоминания о тренировках, проверка расписания фитнес-центра, массажа и т.д.
OpenClaw поддерживает разные каналы связи, включая Matrix. В качестве ИИ-модели я рекомендую Minimax 2.7 — она мощная и экономичная.
Matrix-чат для близких
После блокировок популярных мессенджеров я перешёл на Matrix / Element / Synapse. Семейная и дружеская переписка теперь идёт там. Интерфейс близок к привычным мессенджерам, хотя производительность ниже. Все данные хранятся в моей PostgreSQL-базе и участвуют в общей системе бэкапов.
Домашний кинотеатр на Jellyfin
Я пробовал Plex, но не привык. Jellyfin оказался удобнее — у него есть клиенты для всех устройств. Фильмы хранятся на сервере, а транслируются по локальной сети на телевизор. При необходимости можно скачать контент на телефон и смотреть оффлайн.
Текущие вызовы
Из-за блокировок и ограничений даже в open-source проектах возникают фантомные ошибки. Простые задачи, вроде apt update, теперь могут не работать. DevOps-инструменты стали излишне сложными, что усугубляет ситуацию.
Мне помогает подход bare-metal с минимальной контейнеризацией. Это снижает зависимости и упрощает диагностику.
Планы на будущее
Я не доволен Nextcloud — он слишком медленный и перегруженный. Seafile не хватает функциональности. Планирую продолжить поиски альтернативы для личного облака.
Также хочу развернуть сервис для хранения и обработки фотографий. Интересует Immich, но пока не ставил.
Развиваю ИИ-автоматизацию для CTO-задач: управление трекером через мессенджер, отчётность перед руководством. Впереди — много интересной работы.
Эта статья — не инструкция, а рассказ о моём трёхлетнем опыте. Это взгляд на цифровую независимость и автоматизацию. Буду рад обсудить подходы и узнать о вашем опыте.