1
1
Fork 0

Compare commits

...

2 Commits

4 changed files with 63 additions and 58 deletions

View File

@ -3,6 +3,7 @@
{ {
imports = [ imports = [
./hardware-configuration.nix ./hardware-configuration.nix
./mopidy.nix
]; ];
beatific.hostName = "catacomb"; beatific.hostName = "catacomb";
@ -32,7 +33,7 @@
hostId = "beeeeee5"; # this must be consistent for ZFS hostId = "beeeeee5"; # this must be consistent for ZFS
firewall = { firewall = {
enable = true; enable = true;
allowedTCPPorts = [ 139 445 ]; allowedTCPPorts = [ 80 139 445 ];
allowedUDPPorts = [ 137 138 ]; allowedUDPPorts = [ 137 138 ];
}; };
wireless = { wireless = {
@ -55,6 +56,27 @@
services.rsyncd.enable = true; services.rsyncd.enable = true;
services.nginx = {
enable = true;
recommendedProxySettings = true;
virtualHosts = {
default = {
default = true;
locations."/".return = "444";
};
"mopidy.home.ktvb.site" = {
listen = [
{ addr = "10.22.20.2"; }
{ addr = "catacomb.lan"; }
];
locations."/" = {
proxyWebsockets = true;
proxyPass = "https://localhost:6680";
};
};
};
};
users.users.tvb = { users.users.tvb = {
uid = 1001; uid = 1001;
extraGroups = [ extraGroups = [

View File

@ -0,0 +1,39 @@
{ pkgs, ... }:
{
users.users.tvb.extraGroups = [
"mopidy"
];
users.groups.mopidy = {}; # rw group for media directory
users.users.mopidy.extraGroups = [
"mopidy"
"pipewire" # necessary to allow the system service to play sound
];
services.mopidy = let
mopidyPackages' = pkgs.mopidyPackages.overrideScope (prev: final: { extraPkgs = pkgs: [ pkgs.yt-dlp ]; });
in {
enable = true;
extensionPackages = with mopidyPackages'; [
mopidy-bandcamp
mopidy-jellyfin
mopidy-musicbox-webclient
mopidy-youtube
];
configuration = ''
[file]
media_dirs =
/media/music|Music
[jellyfin]
hostname = jellyfin.home.ktvb.site
username = mopidy
password = mopidy
libraries = Music,Weird Song Halftime
album_format = {Name} ({ProductionYear})
[youtube]
youtube_dl_package = yt_dlp
'';
};
}

View File

@ -32,64 +32,9 @@
]; ];
users.users.tvb.extraGroups = [ users.users.tvb.extraGroups = [
"mopidy"
"networkmanager" "networkmanager"
"pipewire" "pipewire"
]; ];
users.groups.mopidy = {}; # rw group for media directory
users.users.mopidy.extraGroups = [
"mopidy"
"pipewire" # necessary to allow the system service to play sound
];
services.mopidy = let
mopidyPackages' = pkgs.mopidyPackages.overrideScope (prev: final: { extraPkgs = pkgs: [ pkgs.yt-dlp ]; });
in {
enable = true;
extensionPackages = with mopidyPackages'; [
mopidy-bandcamp
mopidy-jellyfin
mopidy-musicbox-webclient
mopidy-youtube
];
configuration = ''
[file]
media_dirs =
/media/music|Music
[jellyfin]
hostname = jellyfin.home.ktvb.site
username = mopidy
password = mopidy
libraries = Music,Weird Song Halftime
album_format = {Name} ({ProductionYear})
[youtube]
youtube_dl_package = yt_dlp
'';
};
services.nginx = {
enable = true;
recommendedProxySettings = true;
virtualHosts = {
default = {
default = true;
locations."/".return = "444";
};
"mopidy.home.ktvb.site" = {
listen = [
{ addr = "10.22.20.7"; }
{ addr = "centroid.lan"; }
];
locations."/" = {
proxyWebsockets = true;
proxyPass = "http://localhost:6680";
};
};
};
};
networking.firewall.allowedTCPPorts = [ 80 ];
system.stateVersion = "23.11"; system.stateVersion = "23.11";
} }

View File

@ -239,7 +239,7 @@ in {
]; ];
"10.22.20.2" = [ "10.22.20.2" = [
"catacomb.home" "catacomb.home"
"mirror.catacomb.home" "mopidy.home.ktvb.site"
]; ];
"10.22.20.3" = [ "10.22.20.3" = [
"palamas.home" "palamas.home"
@ -255,7 +255,6 @@ in {
]; ];
"10.22.20.7" = [ "10.22.20.7" = [
"centroid.home" "centroid.home"
"mopidy.home.ktvb.site"
]; ];
"10.22.20.8" = [ "10.22.20.8" = [
"backyard.home" "backyard.home"