{ pkgs, inputs, ... }: let vars = import ../vars.nix; in { users = { users.signalbot = { isSystemUser = true; group = "signalbot"; }; groups.signalbot = { }; }; systemd.services.signal-bot = { description = "Signal command and control bot"; after = [ "network.target" "podman-signal_cli_rest_api.service" ]; wants = [ "podman-signal_cli_rest_api.service" ]; wantedBy = [ "multi-user.target" ]; environment = { PYTHONPATH = "${inputs.self}"; SIGNALBOT_DB = "signalbot"; SIGNALBOT_USER = "signalbot"; SIGNALBOT_HOST = "/run/postgresql"; SIGNALBOT_PORT = "5432"; }; serviceConfig = { Type = "simple"; WorkingDirectory = "${inputs.self}"; User = "signalbot"; Group = "signalbot"; EnvironmentFile = "${vars.secrets}/services/signal-bot"; ExecStart = "${pkgs.my_python}/bin/python -m python.signal_bot.main"; StateDirectory = "signal-bot"; Restart = "on-failure"; RestartSec = "10s"; StandardOutput = "journal"; StandardError = "journal"; NoNewPrivileges = true; ProtectSystem = "strict"; ProtectHome = "read-only"; PrivateTmp = true; ReadWritePaths = [ "/var/lib/signal-bot" ]; ReadOnlyPaths = [ "${inputs.self}" ]; }; }; }