nixos-systems/modules/system/timecardbot.nix

44 lines
1.1 KiB
Nix
Raw Normal View History

{ config, inputs, lib, pkgs, ... }:
with lib;
let
timecard-bot-pkg = inputs.timecard-bot.packages.x86_64-linux.default;
in
{
options.myModules.timecardbot.enable = mkEnableOption "custom timecardbot configuration";
config = mkIf config.myModules.timecardbot.enable {
environment.systemPackages = with pkgs; [
timecard-bot-pkg
];
sops.secrets.timecarder-env = {
format = "dotenv";
group = "timecarder";
mode = "0440";
owner = "timecarder";
restartUnits = ["timecarder.service"];
sopsFile = ../../secrets/timecarder.env;
};
systemd.services.timecarder = {
after=["network.target" "network-online.target"];
description="Timecarder Matrix bot";
requires=["network-online.target"];
serviceConfig = {
EnvironmentFile="/var/run/secrets/timecarder-env";
Type = "simple";
User = "timecarder";
Group = "timecarder";
ExecStart = "${timecard-bot-pkg}/bin/timecardbot";
TimeoutStopSec = "5s";
PrivateTmp = true;
WorkingDirectory = "/tmp";
};
wantedBy = ["multi-user.target"];
};
users.groups.timecarder = {};
users.users.timecarder = {
group = "timecarder";
isSystemUser = true;
};
};
}