nix-podman-stacks: автоматизация развертывания контейнеров Podman

nix-podman-stacks: автоматизация развертывания контейнеров Podman

nix-podman-stacks — это набор модулей для Home Manager, упрощающий развертывание наборов контейнеров Podman.

Проект решает задачу автоматизации и упрощения процесса настройки различных самопривлекательных приложений, таких как обратные прокси, панели управления и системы мониторинга. В отличие от привычных Docker-контейнеров, здесь используется rootless Podman, что упрощает работу с контейнерами, и обеспечивается интеграция с Traefik, Grafana и другими сервисами. Такие решения подойдут разработчикам и администраторам, которые хотят легко управлять множеством сервисов на своем сервере.

Работает на большинстве дистрибутивов Linux, включая Ubuntu, Arch и Fedora. Чтобы запустить, необходимо настроить Home Manager и включить нужные стеки с помощью проверки флагов. Обрати внимание, что некоторые стеки потребуют дополнительных настроек. Ссылку на документацию можно найти в репозитории.

Проект Nix Podman Stacks представляет собой коллекцию готовых стеков для развертывания различных саморазмещаемых приложений с помощью Home Manager и контейнеров Podman. Эти стеки упрощают процесс развертывания таких решений, как обратные прокси, дашборды и системы мониторинга, и могут работать на большинстве дистрибутивов Linux, таких как Ubuntu, Arch, Mint, Fedora и других, не ограничиваясь только NixOS.

Одной из ключевых особенностей является возможность использования rootless Podman (Quadlets) для работы с контейнерами. Это позволяет запускать сервисы без необходимости доступа к правам администратора. Также в проекте доступны интеграции с Traefik, Homepage, Grafana и другими популярными инструментами.

Как установить и запустить

Чтобы начать работу с проектом, нужно добавить в конфигурацию Nix настройки для стека, который ты хочешь активировать. Пример конфигурации для активации Traefik (с сертификатами LetsEncrypt и геоблокировкой), Paperless и Homepage выглядит следующим образом:


{config, ...}:
{
  nps.stacks = {
    homepage.enable = true;
    paperless = {
      enable = true;
      secretKeyFile = config.sops.secrets."paperless/secret_key".path;
      db.passwordFile = config.sops.secrets."paperless/db_password".path;
    };
    traefik = {
      enable = true;
      domain = "example.com";
      geoblock.allowedCountries = ["DE"];
      extraEnv.CF_DNS_API_TOKEN.fromFile = config.sops.secrets."traefik/cf_api_token".path;
    };
  };
}

Контейнеры автоматически добавляются в Homepage и становятся доступны через обратный прокси Traefik. Для более подробной документации можно обратиться к официальной документации и использовать поиск опций.

Доступные стеки

В проекте представлено множество стеков, которые можно использовать, например:

Ограничения и управление секретами

Для активации большинства стеков достаточно установить один флаг. Однако некоторые стеки требуют обязательного указания значений, особенно для управления секретами. Рекомендуется использовать такие инструменты, как sops-nix или agenix, которые помогут управлять секретами и хранить их в одном репозитории Git вместе с конфигурацией.

Если тебе не хватает какого-либо стека, опции или интеграции, ты можешь открыть issue или внести изменения через pull request.

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

ИмпульсТемпЗрелостьСообществоСвежестьСтартПродакшенДовериеДокументацияЭкосистема57
  • Импульс 2 ≈ 4 звезды в месяц
  • Темп разработки 100 761 коммит за 12 недель
  • Зрелость 86 проекту 17 месяцев, 23 релиза
  • Сообщество 37 8 участников, 16 форков
  • Свежесть 97 последний коммит — 5 дней назад
  • Быстрый старт 15 есть: сайт/демо
  • Готовность к продакшену 75 релиз v0.19.0, автосборка, тесты
  • Безопасность и доверие 40 лицензия MIT
  • Документация 79 README 24.8 тыс. знаков, 5 разделов, папка docs
  • Экосистема 41 0 подписчиков на обновления, 8 тем
Как считаем

Только открытые данные GitHub на 07.11.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: Tarow/nix-podman-stacks →

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

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

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