summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authorSandro Jäckel <sandro.jaeckel@gmail.com>2021-03-27 23:33:22 +0100
committerSandro Jäckel <sandro.jaeckel@gmail.com>2021-04-03 02:34:12 +0200
commitd8a43688c9de7056b70e1d543838cb5db4d0e585 (patch)
tree16675ed4a58a7f919e0e106c215c6643305b6eec /nixos
parent3b5ce3144b1ca4abb5e3e00c682a7797b56271ff (diff)
downloadnixpkgs-d8a43688c9de7056b70e1d543838cb5db4d0e585.tar
nixpkgs-d8a43688c9de7056b70e1d543838cb5db4d0e585.tar.gz
nixpkgs-d8a43688c9de7056b70e1d543838cb5db4d0e585.tar.bz2
nixpkgs-d8a43688c9de7056b70e1d543838cb5db4d0e585.tar.lz
nixpkgs-d8a43688c9de7056b70e1d543838cb5db4d0e585.tar.xz
nixpkgs-d8a43688c9de7056b70e1d543838cb5db4d0e585.tar.zst
nixpkgs-d8a43688c9de7056b70e1d543838cb5db4d0e585.zip
nixos/jmusicbot: init
Diffstat (limited to 'nixos')
-rw-r--r--nixos/modules/module-list.nix1
-rw-r--r--nixos/modules/services/audio/jmusicbot.nix41
2 files changed, 42 insertions, 0 deletions
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 6524cc62bb7..568a0c51dae 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -231,6 +231,7 @@
   ./services/audio/alsa.nix
   ./services/audio/jack.nix
   ./services/audio/icecast.nix
+  ./services/audio/jmusicbot.nix
   ./services/audio/liquidsoap.nix
   ./services/audio/mpd.nix
   ./services/audio/mpdscribble.nix
diff --git a/nixos/modules/services/audio/jmusicbot.nix b/nixos/modules/services/audio/jmusicbot.nix
new file mode 100644
index 00000000000..f573bd2ab8d
--- /dev/null
+++ b/nixos/modules/services/audio/jmusicbot.nix
@@ -0,0 +1,41 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+let
+  cfg = config.services.jmusicbot;
+in
+{
+  options = {
+    services.jmusicbot = {
+      enable = mkEnableOption "jmusicbot, a Discord music bot that's easy to set up and run yourself";
+
+      stateDir = mkOption {
+        type = types.path;
+        description = ''
+          The directory where config.txt and serversettings.json is saved.
+          If left as the default value this directory will automatically be created before JMusicBot starts, otherwise the sysadmin is responsible for ensuring the directory exists with appropriate ownership and permissions.
+          Untouched by the value of this option config.txt needs to be placed manually into this directory.
+        '';
+        default = "/var/lib/jmusicbot/";
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    systemd.services.jmusicbot = {
+      wantedBy = [ "multi-user.target" ];
+      after = [ "network-online.target" ];
+      description = "Discord music bot that's easy to set up and run yourself!";
+      serviceConfig = mkMerge [{
+        ExecStart = "${pkgs.jmusicbot}/bin/JMusicBot";
+        WorkingDirectory = cfg.stateDir;
+        Restart = "always";
+        RestartSec = 20;
+        DynamicUser = true;
+      }
+        (mkIf (cfg.stateDir == "/var/lib/jmusicbot") { StateDirectory = "jmusicbot"; })];
+    };
+  };
+
+  meta.maintainers = with maintainers; [ SuperSandro2000 ];
+}