{ config, pkgs, lib, inputs, ... }: with lib; let cfg = config.custom.services.fileshelter; in { options.custom.services.fileshelter = { enable = mkEnableOption "Enables fileshelter"; uid = mkOption { default = 20000; description = "uid of the fileshelter user"; }; }; config = lib.mkIf cfg.enable { users.users.fileshelter = { isSystemUser = true; uid = cfg.uid; group = "fileshelter"; }; users.groups.fileshelter = { }; age.secrets.fileshelter-conf = { file = ../../secrets/fileshelter-conf.age; owner = "fileshelter"; }; systemd.tmpfiles.rules = [ "d /data/fileshelter 0770 fileshelter fileshelter -" ]; custom.misc.docker.enable = true; virtualisation.oci-containers.backend = "docker"; virtualisation.oci-containers.containers = { "fileshelter" = { autoStart = true; user = toString cfg.uid; image = "epoupon/fileshelter"; ports = [ "127.0.0.1:5091:5091" ]; volumes = [ "/data/fileshelter:/var/fileshelter" ]; extraOptions = [ "--mount=type=bind,source=/run/agenix/fileshelter-conf,destination=/etc/fileshelter.conf" ]; }; }; }; }