nixfiles/hosts/hetzner-vm/services/mpd.nix

57 lines
1.5 KiB
Nix
Raw Normal View History

2022-01-25 12:15:56 +00:00
{ pkgs, lib, tree, ... }: {
2022-02-06 08:29:02 +00:00
#imports = [ ./mpd-broadcast/broadcast.nix ];
2022-01-24 21:18:03 +00:00
2022-01-25 12:15:56 +00:00
environment.systemPackages = with pkgs; [ mpc_cli ];
2022-01-23 10:30:56 +00:00
services.mpd = {
enable = true;
network.listenAddress = "0.0.0.0";
dataDir = "/mpd";
musicDirectory = "/storage/music";
playlistDirectory = "/mpd/playlists";
credentials = [{
passwordFile = "/secrets/mpd-password";
permissions = [ "read" "add" "control" "admin" ];
}];
extraConfig = ''
host_permissions "127.0.0.1 read,add,control,admin"
2022-02-06 08:29:02 +00:00
samplerate_converter "0"
metadata_to_use "title,artist"
auto_update "yes"
volume_normalization "yes"
audio_buffer_size "4096"
replaygain "track"
2022-01-23 10:30:56 +00:00
audio_output_format "44100:16:2"
audio_output {
type "httpd"
name "HTTP Music Out"
encoder "opus"
port "8012"
2022-02-06 08:29:02 +00:00
bitrate "96000"
format "44100:16:2"
2022-01-23 10:30:56 +00:00
always_on "yes"
tags "yes"
}
'';
};
2022-01-25 13:01:22 +00:00
systemd.services.mpd.serviceConfig.After = [ "pulseaudio.service" ];
systemd.services.mpd.serviceConfig.StateDirectory = [ "/mpd" ];
2022-01-23 10:30:56 +00:00
services.nginx.virtualHosts."stream.owo.monster" = {
forceSSL = true;
enableACME = true;
locations = {
"/" = {
proxyPass = "http://127.0.0.1:8012";
extraConfig = ''
auth_basic "Music Password";
auth_basic_user_file /secrets/music-stream-passwd;
'';
};
};
2022-01-23 10:30:56 +00:00
};
networking.firewall.allowedTCPPorts = [ 6600 ];
}