# GitOps / Infrastructure as Code для homelab

**URL:** <https://forum.samohosting.ru/t/gitops-infrastructure-as-code-dlya-homelab/374>\
**Category:** Уголок разработчика\
**Tags:** devtools, homelab\
**Created:** [30.Июнь.2025 22:55:30 UTC](https://forum.samohosting.ru/t/gitops-infrastructure-as-code-dlya-homelab/374 "2025-06-30T22:55:30Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Kristian](https://forum.samohosting.ru/letter_avatar_proxy/v4/letter/k/e8c25b/32.png) [@Kristian](https://forum.samohosting.ru/u/Kristian)\
**Post date:** [30.Июнь.2025 22:55:30 UTC](https://forum.samohosting.ru/t/gitops-infrastructure-as-code-dlya-homelab/374/1 "2025-06-30T22:55:30Z")

</div>

Всем привет!

Увидел у зарубежных homelab-блогеров практику использования GitOps подхода для управления сервисами на домашних серверах. Суть в том, что все конфигурации (docker-compose, env-файлы, скрипты) хранятся в репозитории на GitHub (или другом Git-хостинге). При любом изменении в этом репозитории сервер _автоматически_ подхватывает изменения, обновляет и разворачивает сервисы. Это выглядит очень удобно по двум причинам:

1. **Быстрое восстановление/миграция:** Развернуть все сервисы с нуля на новом железе становится вопросом клонирования репозитория и запуска автоматизации.
2. **Централизация и контроль версий:** Все настройки всегда под рукой, в одном месте, с историей изменений.

Видел много решений, ориентированных на Kubernetes (FluxCD, ArgoCD и т.д.), но **погружаться в k8s пока не хочется**. Мой сервер работает на **TrueNAS Scale** , где для контейнеризации используется **Docker** (через систему приложений, но под капотом - Docker).

**Вопрос к сообществу:**  
Посоветуйте, пожалуйста, какие инструменты или решения для реализации GitOps подхода **именно для среды Docker** (не Kubernetes) вы используете или считаете подходящими для homelab? Особенно интересен опыт работы с TrueNAS Scale, если он есть.

Заранее спасибо за советы!

---

<div class="post-metadata">

**Author:** ![kitsunoff](https://forum.samohosting.ru/user_avatar/forum.samohosting.ru/kitsunoff/32/382_2.png) [@kitsunoff](https://forum.samohosting.ru/u/kitsunoff)\
**Post date:** [01.Июль.2025 07:08:02 UTC](https://forum.samohosting.ru/t/gitops-infrastructure-as-code-dlya-homelab/374/2 "2025-07-01T07:08:02Z")

</div>

GitOps по факту это ничто иное как Infrastructure as a Code обычный, просто переименованный)  
Проблема в том что я щас погуглил и я не нашел terraform provider’а для truenas который живой.

Поэтому у меня большие сомнение что получится сделать нормальный IaC.

Был бы у тебя обычный Docker на хосте - это было бы оч легко сделать. К нему провайдеры есть.

А вообще раз хочется гитопс - время в кубер)

---

<div class="post-metadata">

**Author:** ![KRom](https://forum.samohosting.ru/user_avatar/forum.samohosting.ru/krom/32/362_2.png) [@KRom](https://forum.samohosting.ru/u/KRom)\
**Post date:** [10.Июль.2025 20:49:20 UTC](https://forum.samohosting.ru/t/gitops-infrastructure-as-code-dlya-homelab/374/3 "2025-07-10T20:49:20Z")

</div>

### Немного формальностей

Для начала определиться с СI/CD и GitOps результат у них одинаковый, а подход разный - CD -push, GitOps - pull

Что касается docker и разворачивания, то я надавно перешел на [Komodo](https://komo.do/) и даже тут создал [тему](https://forum.samohosting.ru/t/komodo-orkestracziya-na-docker-compose/455) соответствующую, рекомендую к ознакомлению.

В целом,

> [@Kristian](#):
>
> все конфигурации (docker-compose, env-файлы, скрипты) хранятся в репозитории на GitHub

Komodo с успехом реализует, но он как и dockge, как и arcane да и portainer использует в качестве основы стеки, это docker-compose файлы, описывающие приложения, но помимо стеков имеет еще возможности по сборке, деплою и работе с git.

Собственно, описанная Вами задача была реализована в сценарии 2 и 3 в выше указанной [теме](https://forum.samohosting.ru/t/komodo-orkestracziya-na-docker-compose/455), но редеплой можно либо руками запустить из веб интерфейса или через git actions триггерить событие деплоя

Что же касается TrueNAS Scale, то это оооочень сырая штука и очень глючная, они долгое время использовали k3s под катом, но потом ушли в строну docker-compose или чего-то похожего (ковырялся в конфигах приложений и там такой 💩 , что лучше не смотреть + легаси на легаси и костылями обмазано.

Вообще TrueNas это операционка поверх ZFS и лучше внутрь не лезть, максимум, что можно сделать это через API попытаться работать с этой штукой.

Если хост система на truenas, и хочется IaC, то лучше развернуть LXC или KVM (правда, они тоже недавно обновились и сейчас в бете), поставить туда komodo periphery и разворачивать уже внутри приложения. Но при этом потеряете в гибкости работы с датасетами, которые для приложений truenasа создаются автоматом

Штатные приложения имеют собственные манифесты, режим обновлениям, миграции форматов манифестов и работу с датасетами, я пробовал создавать кастомные приложения со своими образами, работает, но оооочень криво. + приложения версионируются опять же на уровне ZFS (я писал выше, что это операционка на ZFS, а не дебиан)

---

<div class="post-metadata">

**Author:** ![Kristian](https://forum.samohosting.ru/letter_avatar_proxy/v4/letter/k/e8c25b/32.png) [@Kristian](https://forum.samohosting.ru/u/Kristian)\
**Post date:** [10.Июль.2025 21:36:39 UTC](https://forum.samohosting.ru/t/gitops-infrastructure-as-code-dlya-homelab/374/4 "2025-07-10T21:36:39Z")

</div>

Большое спасибо! Как раз на днях видел что вы про komodo писали. Тогда думаю пока остановлюсь на варианте lxc контейнера с komodo от [Helper-Scripts](https://bketelsen.github.io/IncusScripts/scripts?id=komodo)

---

<div class="post-metadata">

**Author:** ![Sanek\_Pushkin](https://forum.samohosting.ru/letter_avatar_proxy/v4/letter/s/d78d45/32.png) [@Sanek\_Pushkin](https://forum.samohosting.ru/u/Sanek_Pushkin)\
**Post date:** [26.Июль.2025 17:55:05 UTC](https://forum.samohosting.ru/t/gitops-infrastructure-as-code-dlya-homelab/374/5 "2025-07-26T17:55:05Z")

</div>

ещё могу предложить варианты:

1. [coolify](https://coolify.io/)
2. [dokploy](https://dokploy.com/)

тестировал оба варианта, но из-за разных причин не выбрал ни один из них.  
первый у меня вёл довольно странно при перезагрузке сервера на бэкап. делаю авто бэкап с выключением, после включения пару сервисов стабильно не стартуют, причем всегда рандом. Контейнеры сами стартуют, но приложение недоступно до перезагрузки.  
так же странно с переменными, что не жуёт переменные в компоус на пути к папкам, к примеру, из .env. На вопрос в поддержку - а почему так и что я делаю не так, ответили, что такого не подразумевали в функционале, указывайте полный путь к папкам, в самом конфиге. Это странно.

второй же так же перестал запускать пару контейнеров при любой перезагрузке. В логах же “connection refused”. При ручной перезагрузке контейнера через гуи - всё запустилось сразу
