33 lines
1.2 KiB
Nix
33 lines
1.2 KiB
Nix
{ depot, pkgs, ... }:
|
|
let
|
|
service = {
|
|
wantedBy = [ "ts3musicbot.target" ];
|
|
partOf = [ "ts3musicbot.target" ];
|
|
};
|
|
audioService = service // {
|
|
after = [ "ts3musicbot-pulseaudio.service" ];
|
|
bindsTo = [ "ts3musicbot-pulseaudio.service" ];
|
|
};
|
|
in
|
|
{
|
|
users.users.ts3musicbot = {
|
|
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";
|
|
};
|
|
}
|