40 lines
961 B
Nix
40 lines
961 B
Nix
{ 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;
|
|
};
|
|
};
|
|
}
|