+++ /dev/null
-{ config, lib, pkgs, ... }:
-let
- cfg = config.services.zrepl;
-in
-{
- options = {
- services.zrepl = {
- enable = lib.mkEnableOption "Enable the zrepl daemon";
-
- config = lib.mkOption {
- type = lib.types.lines;
- default = "";
- description = "Configuration";
- };
- };
- };
-
- config = lib.mkIf cfg.enable {
- secrets.keys = {
- "zrepl/zrepl.yml" = {
- permissions = "0400";
- text = cfg.config;
- user = config.systemd.services.zrepl.serviceConfig.User or "root";
- group = config.systemd.services.zrepl.serviceConfig.Group or "root";
- };
- };
- services.filesWatcher.zrepl = {
- restart = true;
- paths = [ config.secrets.fullPaths."zrepl/zrepl.yml" ];
- };
- systemd.services.zrepl = {
- description = "zrepl daemon";
- wantedBy = [ "multi-user.target" ];
- path = [ pkgs.zfs pkgs.openssh ];
- serviceConfig = {
- ExecStart =
- let configFile = config.secrets.fullPaths."zrepl/zrepl.yml";
- in "${pkgs.zrepl}/bin/zrepl daemon --config ${configFile}";
- Type = "simple";
- RuntimeDirectory= "zrepl";
- RuntimeDirectoryMode= "0700";
- };
- };
- };
-}