Skip to content

Instantly share code, notes, and snippets.

@pSub
Created February 3, 2023 20:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pSub/7f9a4e62b6fc6ab72cf23338bf36da8a to your computer and use it in GitHub Desktop.
Save pSub/7f9a4e62b6fc6ab72cf23338bf36da8a to your computer and use it in GitHub Desktop.
NixOS module for the dmn-check server component (see github.com/red6/dmn-check)
{ config, lib, pkgs, ... }:
let
cfg = config.services.homepage;
dmn-check-server =
pkgs.fetchurl {
url = "https://repo1.maven.org/maven2/de/redsix/dmn-check-server/1.2.4/dmn-check-server-1.2.4-jar-with-dependencies.jar";
sha256 = "0rnak9gnf5vr1h8pkzkgd0fnrv10mrkbir1qccrrz42z7vzc3wdb";
};
in
with lib;
{
options = {
services.dmn-check-server.enable =
mkEnableOption "Whether to enable dmn-check-server";
};
config = mkIf cfg.enable {
users.extraUsers.dmn-check = {
description = "dmn-check user";
home = "/var/dmn-check";
isNormalUser = true;
};
services.nginx.virtualHosts = {
"dmn-check.pascal-wittmann.de" = {
forceSSL = true;
enableACME = true;
locations."/demo/" = {
alias = "/srv/dmn-check-demo/";
};
locations."/" = { proxyPass = "http://127.0.0.1:42000"; };
};
};
systemd.services.dmn-check-server = {
description = "dmn-check-server systemd unit";
wantedBy = [ "multi-user.target" ];
wants = [ "nginx.service" ];
after = [ "nginx.service" ];
bindsTo = [ "nginx.service" ];
script = ''
${pkgs.jre8_headless}/bin/java -jar ${dmn-check-server}
'';
serviceConfig.KillSignal = "SIGINT";
serviceConfig.User = "dmn-check";
};
};
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment