diff --git a/hosts/hetzner-arm/containers/music/data/ports.nix b/hosts/hetzner-arm/containers/music/data/ports.nix index c8e15c5..0d595c3 100644 --- a/hosts/hetzner-arm/containers/music/data/ports.nix +++ b/hosts/hetzner-arm/containers/music/data/ports.nix @@ -4,6 +4,4 @@ mpd-opus-medium = 4243; mpd-opus-high = 4244; mpd-flac = 4245; - slskd = 5000; - slskd-web = 5001; } diff --git a/hosts/hetzner-arm/containers/music/default.nix b/hosts/hetzner-arm/containers/music/default.nix index eb5aae9..54ef7fd 100644 --- a/hosts/hetzner-arm/containers/music/default.nix +++ b/hosts/hetzner-arm/containers/music/default.nix @@ -76,8 +76,8 @@ in { ++ (with hosts.hetzner-arm.containers.music.profiles; [ mpd #musicMount - #soulseek # takes up too much ram :( ]); + home-manager.users.root.imports = with tree; [home.apps.musicutil]; networking.firewall.allowedTCPPorts = with ports; [ @@ -86,8 +86,6 @@ in { mpd-opus-medium mpd-opus-high mpd-flac - slskd - slskd-web ]; home-manager.users.root.home.stateVersion = "23.05"; @@ -95,15 +93,6 @@ in { }; }; - services.nginx.virtualHosts."soulseek.owo.monster" = { - forceSSL = true; - enableACME = true; - locations."/" = { - proxyPass = "http://${containerIP}:${toString ports.slskd-web}"; - proxyWebsockets = true; - }; - }; - services.nginx.virtualHosts."mpd.owo.monster" = let extraConfig = '' auth_basic "Music Password"; @@ -134,15 +123,10 @@ in { sourcePort = ports.mpd; destination = "${containerIP}\:${toString ports.mpd}"; } - { - sourcePort = ports.slskd; - destination = "${containerIP}\:${toString ports.slskd}"; - } ]; firewall.allowedTCPPorts = with ports; [ mpd - slskd ]; }; } diff --git a/hosts/hetzner-arm/containers/music/profiles/musicMount.nix b/hosts/hetzner-arm/containers/music/profiles/musicMount.nix index 5e5d3a9..7deae05 100644 --- a/hosts/hetzner-arm/containers/music/profiles/musicMount.nix +++ b/hosts/hetzner-arm/containers/music/profiles/musicMount.nix @@ -1,5 +1,4 @@ { - self, pkgs, config, ... @@ -7,8 +6,6 @@ inherit (pkgs) writeShellScriptBin; inherit (builtins) toFile; - backupSchedules = import "${self}/data/backupSchedules.nix"; - rcloneConfig = toFile "rclone.conf" '' [Music] type = webdav diff --git a/hosts/hetzner-arm/containers/music/profiles/soulseek.nix b/hosts/hetzner-arm/containers/music/profiles/soulseek.nix deleted file mode 100644 index 53fce9e..0000000 --- a/hosts/hetzner-arm/containers/music/profiles/soulseek.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ - lib, - config, - ... -}: let - ports = import ../data/ports.nix; - inherit (config.services.secrets) secrets; - - inherit (lib.modules) mkForce; -in { - services.slskd = { - enable = true; - openFirewall = true; - environmentFile = secrets.slskd_env.path; - settings = { - remote_configuration = false; - remote_file_management = true; - soulseek = { - username = "chaoticryptidz"; - description = "chaos's soulseek"; - listen_port = ports.slskd; - }; - web = { - port = ports.slskd-web; - authentication = { - username = "chaos"; - }; - }; - shares.directories = [ - "/Music" - ]; - }; - nginx = { - enable = true; # I don't think this is even cheked - domainName = "soulseek.owo.monster"; - }; - }; - - services.nginx.virtualHosts."soulseek.owo.monster" = { - forceSSL = mkForce false; - enableACME = mkForce false; - }; -} diff --git a/hosts/hetzner-arm/containers/music/secrets.nix b/hosts/hetzner-arm/containers/music/secrets.nix index 1bdf745..c4e64e8 100644 --- a/hosts/hetzner-arm/containers/music/secrets.nix +++ b/hosts/hetzner-arm/containers/music/secrets.nix @@ -14,8 +14,6 @@ requiredVaultPaths = [ "api-keys/data/mpd" "api-keys/data/music-stream" - "passwords/data/soulseek" - "passwords/data/slskd" ]; packages = with pkgs; [ @@ -43,15 +41,6 @@ htpasswd -bc "$secretFile" "$username" "$password" 2>/dev/null ''; }; - slskd_env = { - fetchScript = '' - soulseek_password=$(simple_get "/passwords/soulseek" .password) - slskd_password=$(simple_get "/passwords/slskd" .password) - echo > "$secretFile" - echo "SLSKD_SLSK_PASSWORD=$soulseek_password" >> "$secretFile" - echo "SLSKD_PASSWORD=$slskd_password" >> "$secretFile" - ''; - }; }; }; } diff --git a/hosts/hetzner-arm/containers/stream/data/ports.nix b/hosts/hetzner-arm/containers/stream/data/ports.nix deleted file mode 100644 index c8e15c5..0000000 --- a/hosts/hetzner-arm/containers/stream/data/ports.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ - mpd = 6600; - mpd-opus-low = 4242; - mpd-opus-medium = 4243; - mpd-opus-high = 4244; - mpd-flac = 4245; - slskd = 5000; - slskd-web = 5001; -} diff --git a/hosts/hetzner-arm/containers/stream/profiles/mpd.nix b/hosts/hetzner-arm/containers/stream/profiles/mpd.nix deleted file mode 100644 index 3c61d52..0000000 --- a/hosts/hetzner-arm/containers/stream/profiles/mpd.nix +++ /dev/null @@ -1,69 +0,0 @@ -{ - lib, - pkgs, - config, - ... -}: let - inherit (lib.strings) concatStringsSep; - inherit (lib.lists) forEach; - - ports = import ../data/ports.nix; - inherit (config.services.secrets) secrets; -in { - environment.systemPackages = with pkgs; [ - mpc_cli - ]; - - services.mpd = { - enable = true; - network.listenAddress = "0.0.0.0"; - musicDirectory = "/Music"; - credentials = [ - { - passwordFile = "${secrets.mpd_control_password.path}"; - permissions = ["read" "add" "control" "admin"]; - } - ]; - extraConfig = - '' - host_permissions "127.0.0.1 read,add,control,admin" - samplerate_converter "0" - metadata_to_use "title,artist" - auto_update "yes" - audio_buffer_size "4096" - replaygain "track" - audio_output_format "44100:16:2" - '' - + concatStringsSep "\n" (forEach ["low" "medium" "high"] (quality: let - bitrates = { - "low" = "64"; - "medium" = "96"; - "high" = "128"; - }; - bitrate = bitrates.${quality}; - in '' - audio_output { - type "httpd" - name "HTTP Opus ${bitrate}k" - encoder "opus" - port "${toString ports."mpd-opus-${quality}"}" - bitrate "${bitrate}000" - format "44100:16:2" - always_on "yes" - tags "yes" - signal "music" - } - '')) - + '' - audio_output { - type "httpd" - name "HTTP FLAC" - encoder "flac" - port "${toString ports.mpd-flac}" - format "44100:16:2" - always_on "yes" - tags "yes" - } - ''; - }; -} diff --git a/hosts/hetzner-arm/containers/stream/profiles/soulseek.nix b/hosts/hetzner-arm/containers/stream/profiles/soulseek.nix deleted file mode 100644 index 53fce9e..0000000 --- a/hosts/hetzner-arm/containers/stream/profiles/soulseek.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ - lib, - config, - ... -}: let - ports = import ../data/ports.nix; - inherit (config.services.secrets) secrets; - - inherit (lib.modules) mkForce; -in { - services.slskd = { - enable = true; - openFirewall = true; - environmentFile = secrets.slskd_env.path; - settings = { - remote_configuration = false; - remote_file_management = true; - soulseek = { - username = "chaoticryptidz"; - description = "chaos's soulseek"; - listen_port = ports.slskd; - }; - web = { - port = ports.slskd-web; - authentication = { - username = "chaos"; - }; - }; - shares.directories = [ - "/Music" - ]; - }; - nginx = { - enable = true; # I don't think this is even cheked - domainName = "soulseek.owo.monster"; - }; - }; - - services.nginx.virtualHosts."soulseek.owo.monster" = { - forceSSL = mkForce false; - enableACME = mkForce false; - }; -} diff --git a/hosts/hetzner-arm/containers/stream/secrets.nix b/hosts/hetzner-arm/containers/stream/secrets.nix deleted file mode 100644 index 1bdf745..0000000 --- a/hosts/hetzner-arm/containers/stream/secrets.nix +++ /dev/null @@ -1,57 +0,0 @@ -{pkgs, ...}: { - services.secrets = { - enable = true; - - vaultLogin = { - enable = true; - loginUsername = "hetzner-arm-container-music"; - }; - - autoSecrets = { - enable = true; - }; - - requiredVaultPaths = [ - "api-keys/data/mpd" - "api-keys/data/music-stream" - "passwords/data/soulseek" - "passwords/data/slskd" - ]; - - packages = with pkgs; [ - apacheHttpd - ]; - - secrets = { - vault_password = { - manual = true; - }; - - mpd_control_password = { - user = "mpd"; - group = "mpd"; - fetchScript = '' - simple_get "/api-keys/mpd" .password > "$secretFile" - ''; - }; - music_stream_passwd = { - user = "nginx"; - group = "nginx"; - fetchScript = '' - username=$(simple_get "/api-keys/music-stream" .username) - password=$(simple_get "/api-keys/music-stream" .password) - htpasswd -bc "$secretFile" "$username" "$password" 2>/dev/null - ''; - }; - slskd_env = { - fetchScript = '' - soulseek_password=$(simple_get "/passwords/soulseek" .password) - slskd_password=$(simple_get "/passwords/slskd" .password) - echo > "$secretFile" - echo "SLSKD_SLSK_PASSWORD=$soulseek_password" >> "$secretFile" - echo "SLSKD_PASSWORD=$slskd_password" >> "$secretFile" - ''; - }; - }; - }; -}