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.

Открыть на GitHub: Tarow/nix-podman-stacks →

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

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

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