DevOps / Home Lab

Умный дашборд домашней инфраструктуры

home.damba.dev — персональный дашборд-хаб на базе Homepage. Он объединяет медиа, умный дом, системные сервисы, хранилище, сеть и гостевую инфраструктуру в одном интерфейсе с авторским брендингом DAMBA.

Обсудить похожий проект
Интерфейс home.damba.dev с живыми показателями домашней инфраструктуры

Задача

Объединить домашнюю и гостевую инфраструктуру в одной защищённой точке входа с живыми данными из всех ключевых сервисов.

Решение

Как реализовали проект

На Proxmox VE собрана сетка изолированных LXC-контейнеров. Homepage работает в Docker внутри LXC 213 рядом с Caddy и Authelia, получает живые данные из 8+ сервисов и доступен по защищённому домену home.damba.dev. Внешний доступ закрыт SSO-гейтом, а удалённое администрирование проходит через Tailscale.

Состав работ

Что вошло в решение

  • 01Единый интерфейс для 8+ сервисов
  • 02Живые системные и сетевые показатели
  • 03SSO-защита внешнего доступа
  • 04Автоматизированный деплой и откат

Инфраструктура

Архитектура решения

  1. 01

    Proxmox VE хост damba с сеткой unprivileged LXC-контейнеров; каждый сервис изолирован, Docker-in-LXC работает с nesting=1 и keyctl=1.

  2. 02

    Homepage развёрнут в Docker на LXC 213 рядом с Caddy reverse proxy и Authelia SSO / forward_auth.

  3. 03

    Домен home.damba.dev и wildcard *.damba.dev обслуживаются через Cloudflare DNS и Let's Encrypt; внутренний wildcard-DNS настроен в AdGuard Home.

  4. 04

    Удалённый доступ к управлению организован через Tailscale в режиме subnet router.

Возможности

Функционал

01

Единый центр управления

Медиа, умный дом, серверы, хранилище, сеть и гостевые сервисы собраны в одной адаптивной панели.

02

Живые данные из сервисов

Виджеты показывают состояние контейнеров, камер, автоматизаций, DNS, сети, фотографий, репозиториев и VPN без перехода между панелями.

03

Собственные метрики

Cron-скрипты агрегируют коммиты Gitea и VPN-статистику с двух внешних VPS, формируя JSON-виджеты для Homepage.

04

Защищённый удалённый доступ

Authelia перехватывает неавторизованные запросы, а Tailscale предоставляет безопасный административный доступ к внутренней сети.

05

Адаптивная тема DAMBA

Glassmorphism-интерфейс, hover-focus, клавиатурная навигация, защита от длинного контента и поддержка prefers-reduced-motion.

Стек проекта

Технологии

Proxmox VE
Docker
Caddy
Authelia
Cloudflare
Tailscale
YAML
CSS3
JavaScript
Bash

Защита данных

Безопасность

  • Секреты хранятся только в серверных env_file с правами 600; в git находятся плейсхолдеры и .example-файлы.
  • Для VPN-статистики используются отдельные read-only SSH-ключи с command= restriction — физически доступна только одна разрешённая команда.
  • API-токены имеют минимально необходимый scope: например, Gitea ограничен чтением, а Immich — серверной статистикой.
  • Неавторизованный внешний запрос получает 302 на auth.damba.dev через Authelia forward_auth.

Живые данные

Интеграции

Home AssistantFrigate NVRProxmox VEKomodoAdGuard HomeUniFi NetworkImmichGiteaVPN custom API

UX / UI

Дизайн-процесс

Интерфейс спроектирован как продуктовая панель, а не стандартная стартовая страница: сетка сужена до 1200 px, значения визуально отделены от подписей, добавлены focus-visible, line-clamp и hover-focus. Фирменная тема «морское стекло» использует Baltic teal, янтарный акцент, CSS-градиенты, blur и spring-easing без тяжёлых анимационных библиотек.

Инженерная работа

Нетривиальные решения

Фон без статических изображений

Next.js standalone не отдавал пользовательские файлы по /images/* без symlink. Фон полностью собран на CSS-радиальных градиентах.

Обновление JSON-виджетов

Homepage кешировал список файлов /public при старте. После обновления данных в процесс добавлен автоматический docker compose restart.

Надёжный перенос Windows → Linux

Проблема владельцев файлов при распаковке tar решена флагом --no-same-owner внутри LXC.

Деплой одним бандлом

Процесс зафиксирован цепочкой tar → scp → pct push → распаковка → restart с автоматическим бэкапом текущей конфигурации и документированным откатом.

Результат

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

Следующий кейс

OFM Bot — Telegram-бот с CRM для PSP Alliance

Смотреть кейс →