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. Для более подробной документации можно обратиться к официальной документации и использовать поиск опций.
Доступные стеки
В проекте представлено множество стеков, которые можно использовать, например:
- Adguard
- Home Assistant
- Traefik
- Paperless-ngx
- Grafana
- и многие другие...
Ограничения и управление секретами
Для активации большинства стеков достаточно установить один флаг. Однако некоторые стеки требуют обязательного указания значений, особенно для управления секретами. Рекомендуется использовать такие инструменты, как sops-nix или agenix, которые помогут управлять секретами и хранить их в одном репозитории Git вместе с конфигурацией.
Если тебе не хватает какого-либо стека, опции или интеграции, ты можешь открыть issue или внести изменения через pull request.
Радар проекта: 57 из 100 — рабочий, но с оговорками
- Импульс 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 →
RepoRadar