1
0
mirror of https://github.com/kmein/niveum synced 2026-03-16 10:11:08 +01:00
Files
niveum/configs/mpd.nix

27 lines
1.1 KiB
Nix
Raw Normal View History

{ config, pkgs, lib, ... }:
let
2020-11-05 21:28:56 +01:00
playlists = import <niveum/lib/playlists.nix>;
playlistFiles = lib.mapAttrs (name: {tracks, ...}: pkgs.writeText "${name}.m3u" (builtins.concatStringsSep "\n" (map ({url, ...}: url) tracks))) playlists;
2020-10-29 07:54:57 +01:00
linkPlaylist = name: file: ''
ln -sfn "${toString file}" "/var/lib/mpd/playlists/${name}.m3u"
2020-10-29 07:54:57 +01:00
'';
linkPlaylists = lib.concatStringsSep "\n" (lib.mapAttrsToList linkPlaylist playlistFiles);
in
{
2020-10-30 08:09:00 +01:00
system.activationScripts.mpd-playlists = ''
rm -rf /var/lib/mpd/playlists
install -d /var/lib/mpd/playlists
2020-10-29 07:54:57 +01:00
${linkPlaylists}
'';
services.mpd.enable = true;
services.ympd.enable = true;
# dont let anyone outside localhost or local network in
networking.firewall.extraCommands = let ympdPort = config.services.ympd.webPort; in ''
${pkgs.iptables}/bin/iptables -A INPUT -p tcp --dport ${ympdPort} -s 192.168.0.0/16 -j ACCEPT
${pkgs.iptables}/bin/iptables -A INPUT -p tcp --dport ${ympdPort} -s 127.0.0.0/8 -j ACCEPT
${pkgs.iptables}/bin/iptables -A INPUT -p tcp --dport ${ympdPort} -j DROP
'';
}