{ config, pkgs, inputs, ... }: { users.users.mymx = { isSystemUser = true; group = "mymx"; description = "MyMX webhook service user"; }; users.groups.mymx = {}; services.postgresql = { enable = true; ensureDatabases = [ "mymx" ]; ensureUsers = [{ name = "mymx"; ensureDBOwnership = true; }]; }; systemd.services.mymx = { description = "MyMX Webhook Receiver"; after = [ "postgresql.service" "network.target" ]; requires = [ "postgresql.service" ]; wantedBy = [ "multi-user.target" ]; environment = { DATABASE_URL = "postgres:///mymx?host=/run/postgresql"; LISTEN_ADDR = "127.0.0.1:4002"; MYMX_WEBHOOK_SECRET = config.mySecrets.mymxWebhookSecret; }; serviceConfig = { ExecStart = "${inputs.mymx.packages.x86_64-linux.default}/bin/mymx-server"; User = "mymx"; Group = "mymx"; Restart = "on-failure"; RestartSec = 5; }; }; }