diff --git a/common/fragments/mc-status-bot.nix b/common/fragments/mc-status-bot.nix new file mode 100644 index 0000000..ecb8c06 --- /dev/null +++ b/common/fragments/mc-status-bot.nix @@ -0,0 +1,16 @@ +{ pkgs, ... }: { + systemd.services.mc-status-bot = { + wantedBy = [ "multi-user.target" ]; + description = "Minecraft server status bot for Matrix"; + after = [ "network.target" ]; + + serviceConfig = { + Type = "simple"; + ExecStart = "${ + pkgs.callPackage ../pkgs/mc-status-bot.nix { } + }/bin/mc-status-bot.sh"; + EnvironmentFile = "/var/lib/secrets/mc-status-bot-env"; + Restart = "always"; + }; + }; +} diff --git a/common/pkgs/mc-status-bot.nix b/common/pkgs/mc-status-bot.nix new file mode 100644 index 0000000..e05e2ae --- /dev/null +++ b/common/pkgs/mc-status-bot.nix @@ -0,0 +1,21 @@ +{ pkgs }: +with pkgs; +stdenv.mkDerivation rec { + pname = "mc-status-bot"; + version = "0.1.0"; + + src = fetchgit { + url = "https://git.lain.faith/sorceress/e8-status-bot.git"; + rev = "c35abf0aba0ca524bc1d3dab9576b41e2b319138"; + hash = "sha256-sK0Azd/3ymk5Jsj/GYmNJvYh9fMXFozTuWZhKnYTGbs="; + }; + + buildInputs = [ curl jq ]; + nativeBuildInputs = [ makeWrapper ]; + installPhase = '' + mkdir -p $out/bin + cp run.sh $out/bin/mc-status-bot.sh + wrapProgram $out/bin/mc-status-bot.sh \ + --prefix PATH : ${lib.makeBinPath buildInputs} + ''; +} diff --git a/flake.nix b/flake.nix index 88d418f..ae42a80 100644 --- a/flake.nix +++ b/flake.nix @@ -147,6 +147,10 @@ keyCommand = [ "cat" "./secrets/hurricane-tokens" ]; destDir = "/var/lib/secrets/"; }; + "mc-status-bot-env" = { + keyCommand = [ "cat" "./secrets/mc-status-bot-env" ]; + destDir = "/var/lib/secrets"; + }; "fedi-data.toml" = { keyCommand = [ "cat" "./secrets/frq-friend-fedi-data.toml" ]; destDir = "/var/lib/frq-friend"; diff --git a/hosts/bloodletting/configuration.nix b/hosts/bloodletting/configuration.nix index 963d6b3..84bef03 100644 --- a/hosts/bloodletting/configuration.nix +++ b/hosts/bloodletting/configuration.nix @@ -10,6 +10,7 @@ ../../common/fragments/mastodon.nix ../../common/fragments/matrix-ril100.nix ../../common/fragments/matterbridge.nix + ../../common/fragments/mc-status-bot.nix ../../common/fragments/minecraft.nix ../../common/fragments/nyandroid.nix ../../common/fragments/postgres.nix