Add wastebin
All checks were successful
CI / Check, build and cache Nix flake (push) Successful in 27m3s
All checks were successful
CI / Check, build and cache Nix flake (push) Successful in 27m3s
This commit is contained in:
@@ -20,5 +20,6 @@
|
||||
nvme = ./nvme;
|
||||
spdk = ./spdk.nix;
|
||||
librespeed = ./librespeed;
|
||||
wastebin = ./wastebin.nix;
|
||||
};
|
||||
}
|
||||
|
@@ -492,6 +492,9 @@ in
|
||||
}
|
||||
];
|
||||
})
|
||||
(mkIf config.services.wastebin.enable {
|
||||
my.tmproot.persistence.config.directories = [ "/var/lib/private/wastebin" ];
|
||||
})
|
||||
]))
|
||||
]);
|
||||
|
||||
|
35
nixos/modules/wastebin.nix
Normal file
35
nixos/modules/wastebin.nix
Normal file
@@ -0,0 +1,35 @@
|
||||
{ lib, pkgs, config, ... }:
|
||||
let
|
||||
inherit (lib) mkIf mkDefault;
|
||||
inherit (lib.my) mkOpt' mkBoolOpt';
|
||||
|
||||
cfg = config.services.wastebin;
|
||||
in
|
||||
{
|
||||
options.services.wastebin = with lib.types; {
|
||||
enable = mkBoolOpt' false "Whether to enable wastebin.";
|
||||
package = mkOpt' package pkgs.wastebin "Package to use.";
|
||||
settings = mkOpt' (attrsOf str) { } "Environment variable settings.";
|
||||
extraSettingsFile = mkOpt' (nullOr str) null "Extra environment file (e.g. for signing key).";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
services.wastebin.settings = {
|
||||
WASTEBIN_ADDRESS_PORT = mkDefault "[::]:8088";
|
||||
WASTEBIN_DATABASE_PATH = mkDefault "/var/lib/wastebin/db.sqlite3";
|
||||
};
|
||||
|
||||
systemd.services.wastebin = {
|
||||
description = "wastebin minimal pastebin";
|
||||
after = [ "network.target" ];
|
||||
environment = cfg.settings;
|
||||
serviceConfig = {
|
||||
EnvironmentFile = mkIf (cfg.extraSettingsFile != null) cfg.extraSettingsFile;
|
||||
DynamicUser = true;
|
||||
StateDirectory = "wastebin";
|
||||
ExecStart = "${cfg.package}/bin/wastebin";
|
||||
};
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
};
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user