diff --git a/README.org b/README.org index f91ebd0..a3decd9 100755 --- a/README.org +++ b/README.org @@ -370,8 +370,6 @@ Doom has some nice output when viewing files in Vertico. I'm not sure how this i *** IDEA Module system? -** Emacs config - *** [#A] One-off environment changes without direnv I would like the ability to ergonomically e.g. add HLS to my current environment without setting up an entire project. Perhaps something like "create new workspace under a nix-shell invocation" could work? @@ -498,6 +496,8 @@ CLOSED: [2024-12-29 Sun 17:53] *** TODO readline +** TODO Declaratively install Jellyfin plugins + ** DONE disko CLOSED: [2024-12-28 Sat 18:13] @@ -541,13 +541,17 @@ Or Niri - mastercomfig integration? - define aliases / bindings from nix? -** TODO mpd +** DONE mpd +CLOSED: [2025-02-09 Sun 14:59] -*** TODO mpdscribble +*** DONE mpdscribble +CLOSED: [2025-02-09 Sun 14:59] -** TODO syncthing +** DONE syncthing +CLOSED: [2025-02-09 Sun 14:59] -** HOLD impermanence +** DONE impermanence +CLOSED: [2025-02-09 Sun 14:59] ** DONE ~sydnix.defaults~ module CLOSED: [2024-12-31 Tue 01:05] @@ -622,7 +626,11 @@ List persistent files per user, and show their mount strategy. * References -Following is a subset of the many places I've learnt from. Most important of all are Doom Emacs and Faye's Wishsys. Doom Emacs was my gateway drug to Emacs, as well as continually supportive parent as I've begun to move out — of course, that's a flowerism obfuscating the more direct statement "I've stolen a great deal of their code" }:). Beloved Faye's Wishsys is an incredibly impressive 3-kloc NixOS config with several hosts, users, and a beautiful level of modularity. Her system has a number of quirks that initially raise eyebrows, but the questioning turns to awe once you understand she really knows what she's doing }:). Faye and her config are entirely responsible for inspiring and motivating my effort expent here, as well as being a wonderful reference as I re-learnt Nix from the ground up. In the most nerdy moment of my life, I've genuinely /swooned/ over this damn config. +Following is a subset of the many places I've learnt from. Most important of all are Doom Emacs and Faye's Wishsys. + +Doom Emacs was my gateway drug to Emacs, as well as continually supportive parent as I've begun to move out — of course, that's a flowerism obfuscating the more direct statement "I've stolen a great deal of their code" }:). + +Beloved Faye's Wishsys is an incredibly impressive 3-kloc NixOS config with several hosts, users, and a beautiful level of modularity. Her system has a number of quirks that initially raise eyebrows, but the questioning turns to awe once you understand she really knows what she's doing }:). Faye and her config are entirely responsible for inspiring and motivating my effort expent here, as well as being a wonderful reference as I re-learnt Nix from the ground up. In the most nerdy moment of my life, I've genuinely /swooned/ over this damn config. - My darling dearest Faye's =wishsys= }:D - [[https://github.com/rasendubi/dotfiles][rasendubi/dotfiles]] diff --git a/hosts/deertopia/configuration.nix b/hosts/deertopia/configuration.nix index d0b8011..91bca03 100755 --- a/hosts/deertopia/configuration.nix +++ b/hosts/deertopia/configuration.nix @@ -92,7 +92,7 @@ }; deertopia = { - # slskd.enable = true; + slskd.enable = true; jellyfin.enable = true; nginx.enable = true; webdav.enable = true; diff --git a/modules/nixos/deertopia/slskd.nix b/modules/nixos/deertopia/slskd.nix index b8a2d27..3de8aba 100644 --- a/modules/nixos/deertopia/slskd.nix +++ b/modules/nixos/deertopia/slskd.nix @@ -1,16 +1,14 @@ { config, lib, pkgs, ... }: -with lib; - let cfg = config.sydnix.deertopia.slskd; in { options = { sydnix.deertopia.slskd = { - enable = mkEnableOption "Soulseek"; + enable = lib.mkEnableOption "Soulseek"; }; }; - config = mkIf cfg.enable { + config = lib.mkIf cfg.enable { sydnix.sops.secrets.slskd-credentials = {}; services.slskd = { @@ -21,7 +19,10 @@ in { environmentFile = "/run/secrets/slskd-credentials"; settings = { - shares.directories = [ "/persist/vault/jellyfin/Music" ]; + shares.directories = [ + "/persist/vault/jellyfin/Music" + "/persist/vault/jellyfin/Shows" + ]; # directories.downloads = "/persist/vault/jellyfin/Music"; }; }; @@ -30,15 +31,17 @@ in { config.services.slskd.settings.web.port ]; + # HACK: Consult with Molly on idiomatic Unix permissions. users.users.${config.services.slskd.user}.extraGroups = [ "jellyfin" ]; sydnix.deertopia.nginx.vhosts."slsk".vhost = { forceSSL = true; enableACME = true; locations."/" = { + proxyWebsockets = true; proxyPass = - "http://localhost:${builtins.toString - config.services.slskd.settings.web.port}"; + let port = builtins.toString config.services.slskd.settings.web.port; + in "http://localhost:${port}"; }; }; }; diff --git a/secrets.yaml b/secrets.yaml index 6e08c0b..4ab7125 100755 --- a/secrets.yaml +++ b/secrets.yaml @@ -1,6 +1,6 @@ nextcloud-admin: ENC[AES256_GCM,data:MfHTZw5Co7DdY6uYT7e4ydoVPg==,iv:KqK/UaDpiEM5MnR86peGZ4iLfhC5JK4IOdI2T7RDZNg=,tag:Tpx2FdYavXud4OLcT7drTQ==,type:str] bepasty-secret-key: ENC[AES256_GCM,data:JmR425LSZP0/kVQAkLfAettWyQmRpLF9CiZOfcnzr4Hdp8TP8doSKqv7+ggJfP2cKa3C9JHUXcKjEjZ5g0wllQ==,iv:XUg3ii7sJ8BScA1aA+AAoocV4CYn3pMQ2aMjrfZeQM0=,tag:uKMwnDxJFhHatpjLfJV73Q==,type:str] -slskd-credentials: ENC[AES256_GCM,data:xY+zgfVNX52GVfNNEtYxiS9pRpox+1PW3AdGq6S7rJyk16v0Hl7mFJDKr+K/U018IxFh97CWd90wL2FxKVvfaHu0v3zzncnxQkPFb5bygg0ofr4SeqktGigKM+NuBAQNDWvDelu3z16YmOOSe4lmk5Gyb55J,iv:VKBAXZ1785rg/qmb0cVXwDjASCevabeYE3ZNQj+NJ1o=,tag:kpeUkppfXO1JemxsnMNL2Q==,type:str] +slskd-credentials: ENC[AES256_GCM,data:CpZ0JpsO5De0E1eaNWBFEEHwzNkJTrDxVr+/tl0xuXaHx2BA2lkMNlsBs5mYr1fcLHsp+hIu1/jXVYYb08aPbKbzas1Le04/N0g3ADcHqIF7q5chU2/gkFnkRdcjgJaBtTmNbstx3Fh0Qe9w9iTEAGBXRmlDlpZO7wmycQBYRAdo6PnpidyBiJlqIWkXUCn+F9bdeCO7nRph9Ajqe/gxsl0nvAeIF/YAA2HlnxW9spxwyLYELkasLfQqebwdxOx4vbNjAPnUCE00Dw==,iv:XgqKguTc8Gx63j72ylttrooNeKOool9PU/jH3gEKjHI=,tag:0yeeNThfUgnyKDA5nUQDNA==,type:str] bepasty-secret-config: ENC[AES256_GCM,data:GQVZhuGYoDt4HSwX4HuRnn896SsNgDZ0loaAF2xbqyppSK0jEn0EFsOafREVxSibpm3v/oVwJ+WMZSegqGHSeFbD/EgHaOvHMfEjes74ayh2ZkHB7IrfxFGTUSJNDrscvvl8xLGkJR7c0fj25axtJw==,iv:8JAGAftFK+n4G7BbdphdUf10D3B0ianXbmqfWV78QeQ=,tag:7Hgu39+KW7ifHIfy3rh71w==,type:str] sops: kms: [] @@ -17,8 +17,8 @@ sops: aXZvL3RJRUtkOXR5OTFxcC9saXhGYVUKymDTIoxeHgJiM0rly5Zbp8kYoIUmmsWL CMfXunhtA+u/vjDUHjyj41TTFbZMVl8FUzqMYoMxhIH6dQw8u1HKBA== -----END AGE ENCRYPTED FILE----- - lastmodified: "2025-02-04T04:58:26Z" - mac: ENC[AES256_GCM,data:HIJg70kr35yJPDODn/UQsnkwNG291nYYeajpMQ/bPkE9g+JFdRSpxCKSWK17PlpEgNXDaDu/VrKSK0jQQ6jAJTwsyTGHCGM0RJ5t5BnxfLx3siIc0igEt+84R9gojmE5D5UtqIwzyoCjMkFOtDhn5fGt9pjyqnQ1mIMl1pYy/FE=,iv:3yQ4JVzKJrHd6l4toybYBcZeHD1EmeHeE8V5ZLEEWss=,tag:rfe/X1vXD08m8fNqAApQmw==,type:str] + lastmodified: "2025-02-09T21:23:22Z" + mac: ENC[AES256_GCM,data:VXgb0W0RpGO29lSFswN1iSWO6LmlnweVfmguzR+xUaVDngKWdrKwT/Eb3PDS4NVs0T9b0Mcu0CzFDAwxregQu8J74AqWPvD75CiGLnvDozznwgr4ZW2HtEY030jlUpnkooCVpDHh2UPdMzQBYiUCPWaBuTRfpEUyE/MQMzG8rY0=,iv:GPzbbMvJVZkizTHxWibtnO9DbJVt0YJFGHDEVW4d10M=,tag:NBYysUHb3OLqaQbCwZbJOA==,type:str] pgp: [] unencrypted_suffix: _unencrypted version: 3.9.4