homelab: автоматизация развертывания и управления домашними серверами
Проект homelab — это инфраструктура для домашних серверов, управляемая с помощью GitOps, на базе Kubernetes, Talos, ArgoCD и Terraform.
Он решает задачу автоматизации развертывания и управления домашними лабораториями, позволяя пользователям легко поддерживать и обновлять свою инфраструктуру через код. В отличие от классифицируемых решений, которые предполагают ручное или частично автоматизированное управление, homelab использует концепции GitOps, что минимизирует ошибки и упрощает процесс внедрения изменений. Подход подойдет тем, кто хочет углубиться в DevOps и облачные технологии, применяя современные инструменты в домашних условиях.
Проект написан с использованием YAML и Bash, и для запуска может потребоваться опыт работы с Terraform и Kubernetes. Однако стоит учесть, что он нацеливается на пользователей с определённым уровнем подготовки, так как потребует установки и настройки упомянутых технологий. Проверь README для деталей и возможных ограничений.
# 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 — рабочий, но с оговорками
- Импульс 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 →
RepoRadar