depot/ops/nixos/lib/ts3spotifybot.nix

36 lines
1.2 KiB
Nix
Raw Normal View History

2021-01-27 18:39:58 +00:00
{ depot, pkgs, ... }:
let
service = {
wantedBy = [ "ts3musicbot.target" ];
partOf = [ "ts3musicbot.target" ];
};
audioService = service // {
after = [ "ts3musicbot-pulseaudio.service" ];
bindsTo = [ "ts3musicbot-pulseaudio.service" ];
};
in
{
users.users.ts3musicbot = {
isNormalUser = true;
group = "nogroup";
2021-01-27 18:39:58 +00:00
createHome = true;
home = "/var/lib/ts3musicbot";
};
systemd.targets.ts3musicbot = {
wantedBy = [ "multi-user.target" ];
};
systemd.services.ts3musicbot-pulseaudio = service // {
serviceConfig.ExecStart = "${pkgs.pulseaudio}/bin/pulseaudio --start --daemonize=false --load=\"module-null-sink sink_name=Loop\" --load=\"module-null-sink sink_name=The Void\" --load=\"module-native-protocol-unix\"";
serviceConfig.User = "ts3musicbot";
};
systemd.services.ts3musicbot-spotifyd = audioService // {
serviceConfig.ExecStart = "${pkgs.spotifyd}/bin/spotifyd --no-daemon --config-path ${depot.ops.secrets.spotifyd}";
serviceConfig.User = "ts3musicbot";
};
systemd.services.ts3musicbot-teamspeak = audioService // {
serviceConfig.ExecStart = "${pkgs.xvfb_run}/bin/xvfb-run -d -s \"-screen 0 1280x1024x24\" ${pkgs.teamspeak_client}/bin/ts3client";
serviceConfig.User = "ts3musicbot";
};
}