Add NixOS module

This commit is contained in:
clerie 2024-11-24 20:39:16 +01:00
parent c07a209de3
commit f727e7f971
2 changed files with 55 additions and 0 deletions

View File

@ -15,11 +15,20 @@
src = ./.;
vendorHash = "sha256-SrsjcNtqQdE8Gekjn72JhCysfNmKJs7ju2BcKnOQf/U=";
meta = {
mainProgram = "scan-to-gpg";
};
};
default = scan-to-gpg;
});
nixosModules = rec {
scan-to-gpg = import ./module.nix;
default = scan-to-gpg;
};
hydraJobs = {
inherit (self)
packages;

46
module.nix Normal file
View File

@ -0,0 +1,46 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.scan-to-gpg;
in {
options = {
services.scan-to-gpg = {
enable = mkEnableOption "scan-to-gpg";
gpgkey = mkOption {
type = types.path;
description = "Path to a file containing to GPG public key to encrypt to";
};
};
};
config = mkIf cfg.enable {
systemd.services.scan-to-gpg = {
description = "FTP server that saves uploaded files GPG encrypted";
wantedBy = [ "multi-user.target" ];
requires = [ "network.target" ];
after = [ "network.target" ];
serviceConfig = {
type = "simple";
ExecStart = "${getExe pkgs.scan-to-gpg} -host 0.0.0.0 -output /var/lib/scan-to-gpg -gpgkey ${cfg.gpgkey}";
User = "scan-to-gpg";
Group = "scan-to-gpg";
StateDirectory = "scan-to-gpg";
StateDirectoryMode = "775";
};
};
users.users.scan-to-gpg = {
isSystemUser = true;
group = "scan-to-gpg";
};
users.groups.scan-to-gpg = {};
};
}