homelab: автоматизация развертывания и управления домашними серверами

Проект homelab — это инфраструктура для домашних серверов, управляемая с помощью GitOps, на базе Kubernetes, Talos, ArgoCD и Terraform.

Он решает задачу автоматизации развертывания и управления домашними лабораториями, позволяя пользователям легко поддерживать и обновлять свою инфраструктуру через код. В отличие от классифицируемых решений, которые предполагают ручное или частично автоматизированное управление, homelab использует концепции GitOps, что минимизирует ошибки и упрощает процесс внедрения изменений. Подход подойдет тем, кто хочет углубиться в DevOps и облачные технологии, применяя современные инструменты в домашних условиях.

Проект написан с использованием YAML и Bash, и для запуска может потребоваться опыт работы с Terraform и Kubernetes. Однако стоит учесть, что он нацеливается на пользователей с определённым уровнем подготовки, так как потребует установки и настройки упомянутых технологий. Проверь README для деталей и возможных ограничений.

Eden # Eden ### Инфраструктура домашней лаборатории

Проект Eden — это личная лабораторная среда, которая используется для экспериментов с инфраструктурой и хостинга самоуправляемых сервисов. Автор проекта, Мортен Виктор Нордбье, работает с этими технологиями ежедневно, но в лаборатории он может свободно исследовать идеи и шаблоны, которые не всегда подходят для производственной среды. Это место для практического тестирования новых инструментов, решения реальных задач и, иногда, готовности к ошибкам ради обучения.

Репозиторий является публичным, что обеспечивает прозрачность и соблюдение лучших практик, даже если работа ведётся для удовольствия.

Статус кластера обновляется каждые 15 минут через API Kubernetes и Prometheus, и отображается на главной странице проекта.

Как это работает

Terraform создает виртуальные машины Talos на Proxmox, а все последующие изменения приходят через Git. Основной процесс выглядит следующим образом:


push to main
   ├─ GitHub Actions builds portfolio and blog, pushes to GHCR
   │     └─ Kargo promotes stage to prod as a pull request you merge
   ├─ external app repos call bump-image.yml, which opens a PR pinning an immutable sha tag
   └─ Argo CD reconciles k8s/talos/** onto the cluster
         ├─ External Secrets fetches credentials at runtime, so none are committed
         ├─ Traefik publishes routes through Gateway API, cert-manager and external-dns handle TLS and DNS
         └─ KEDA lets idle apps drop to zero; the HTTP interceptor wakes them on the first request

Система Argo CD управляет приложениями благодаря методу «приложение в приложении». Две корневые приложения в `k8s/talos/infra/argocd/` контролируют все остальные приложения, так что новое рабочее нагрузка предполагает создание новой директории.

Обзор репозитория

У репозитория есть структура, в которой различные компоненты организованы по папкам. Основные разделы включают:

  • k8s/talos/ — развертывание приложений и инфраструктура.
  • terraform/ — конфигурация для Proxmox и Azure.
  • blog/ — исходный код блога на Hugo.
  • portfolio/ — исходный код портфолио сайта.
  • ai/ — агенты ИИ и связанные проекты.

Технический стек Kubernetes

Проект использует следующие технологии:

  • GitOps: Argo CD, Kargo.
  • Сеть: Cilium, Traefik, external-dns.
  • Безопасность: Falco, Authentik, cert-manager.
  • Наблюдаемость: Prometheus, Grafana, Loki.
  • Масштабирование: KEDA с HTTP-дополнением.
  • Автоматизация: Reloader.
  • Хранилище: Proxmox CSI, csi-driver-nfs.
  • Базы данных: PostgreSQL 18.
  • Платформа: Proxmox VE на трёх узлах Lenovo, Talos Linux.

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

Проект включает автоматизированное сканирование контейнеров на наличие уязвимостей каждый месяц и при изменениях в Dockerfile с помощью Trivy. Falco мониторит активность на уровне системных вызовов для обнаружения аномалий.

CI/CD Рабочие процессы

Рабочие процессы CI/CD включают следующие этапы:

  • Сборка и развертывание блога.
  • Сборка и развертывание портфолио.
  • Сканирование уязвимостей контейнеров.
  • Автоматическое создание диаграмм состояния.

Оборудование

Лаборатория состоит из нескольких вычислительных узлов, NAS, сетевого оборудования и устройств IoT. Узлы работают на различных моделях Lenovo, каждый из которых обеспечивает 32 ГБ ОЗУ и 1 ТБ хранения.

Другие проекты

Кроме этого проекта, автор разрабатывает и хостит несколько других решений, например:

  • logeverylift — мобильное приложение для отслеживания тренировок.
  • lawless-waf — инструмент для настройки Azure WAF.
  • headroom — трекер личных финансов.

Радар проекта: 59 из 100 — рабочий, но с оговорками

ИмпульсТемпЗрелостьСообществоСвежестьСтартПродакшенДовериеДокументацияЭкосистема59
  • Импульс 1 ≈ 2 звезды в месяц
  • Темп разработки 100 1547 коммитов за 12 недель
  • Зрелость 58 проекту 20 месяцев, 2 релиза
  • Сообщество 34 5 участников, 15 форков
  • Свежесть 99 последний коммит — 1 день назад
  • Быстрый старт 15 есть: сайт/демо
  • Готовность к продакшену 55 релиз portfolio-v1-retirement, автосборка
  • Безопасность и доверие 80 лицензия Apache-2.0, SECURITY.md
  • Документация 100 README 17.5 тыс. знаков, 19 разделов, папка docs
  • Экосистема 48 1 подписчик на обновления, 9 тем
Как считаем

Только открытые данные GitHub на 31.10.2026, без оценок нейросети. Каждая ось — от 0 до 100, итог — среднее.

  • Импульс — звёзд в день: за время наших замеров, а пока их нет — за всю жизнь проекта; 200 в день — максимум.
  • Темп разработки — коммитов за последние 12 недель; 300 — максимум. Пока GitHub не досчитал статистику, ось не учитывается.
  • Зрелость — возраст проекта (3 года — максимум) и число релизов (30 — максимум), поровну.
  • Сообщество — участников с коммитами (200 — максимум) и форков (5000 — максимум), поровну.
  • Свежесть — дней с последнего коммита: сегодня — 100, полгода и больше или архив — 0.
  • Быстрый старт — в README есть команда установки, раздел «быстрый старт» или примеры использования, в репозитории — Docker и папка примеров, у проекта есть сайт или демо.
  • Готовность к продакшену — релизы, версия 1.0 и выше, автосборка (GitHub Actions), тесты, лицензия, журнал изменений.
  • Безопасность и доверие — открытая лицензия (своя — половина балла), политика безопасности (SECURITY.md), проект организации, правила для участников, не в архиве.
  • Документация — объём и структура README, папка docs или сайт, оценка «здоровья сообщества» GitHub.
  • Экосистема — звёзды (50 тыс. — максимум), подписчики на обновления (1000 — максимум), темы репозитория.

Открыть на GitHub: mortennordbye/homelab →

Что нового на GitHub — короткие обзоры на русском Новые обзоры приходят в Telegram. Без спама, по делу.
Подписаться

Похожие статьи

Популярные темы на сайте