diff --git a/modules/nixos/services/bookshelf/default.nix b/modules/nixos/services/bookshelf/default.nix new file mode 100644 index 0000000..26f5c9c --- /dev/null +++ b/modules/nixos/services/bookshelf/default.nix @@ -0,0 +1,25 @@ +{ + lib, + config, + namespace, + ... +}: +let + cfg = config.${namespace}.services."bookshelf"; +in +{ + imports = [ + (lib.${namespace}.mkContainerService { + inherit config; + name = "bookshelf"; + image = "ghcr.io/pennydreadful/bookshelf:hardcover"; + internalPort = 8787; + volumes = [ + "${cfg.configDir}/bookshelf:/config" + "${cfg.configDir}/incomplete:/media/nas/main/appdata/incomplete" + "${cfg.dataDir}/books:/media/nas/main/books" + ]; + environmentFiles = [ ]; + }) + ]; +} diff --git a/modules/nixos/services/suggestarr/default.nix b/modules/nixos/services/suggestarr/default.nix new file mode 100644 index 0000000..f1b964b --- /dev/null +++ b/modules/nixos/services/suggestarr/default.nix @@ -0,0 +1,23 @@ +{ + lib, + config, + namespace, + ... +}: +let + cfg = config.${namespace}.services."suggestarr"; +in +{ + imports = [ + (lib.${namespace}.mkContainerService { + inherit config; + name = "suggestarr"; + image = "ciuse99/suggestarr"; + internalPort = 5000; + volumes = [ + "${cfg.configDir}/suggestarr:/app/config/config_files" + ]; + environmentFiles = [ ]; + }) + ]; +} diff --git a/systems/x86_64-linux/jallen-nas/apps.nix b/systems/x86_64-linux/jallen-nas/apps.nix index 50c2736..4016320 100755 --- a/systems/x86_64-linux/jallen-nas/apps.nix +++ b/systems/x86_64-linux/jallen-nas/apps.nix @@ -57,6 +57,10 @@ in port = 4823; # environmentFile = "/run/secrets/jallen-nas/authentik-env"; # TODO }; + bookshelf = { + enable = true; + port = 8787; + }; caddy = enabled; cockpit = { enable = true; @@ -319,19 +323,10 @@ in icon = "si:jellyfin"; }; }; - seerr = { - enable = true; - port = 5055; - createUser = true; - reverseProxy = enabled; - hostedService = { - group = "Media"; - }; - }; kavita = { enable = true; port = 5000; - reverseProxy = disabled; + reverseProxy = enabled; }; lemonade = { enable = false; @@ -430,6 +425,15 @@ in enable = true; port = 8008; }; + seerr = { + enable = true; + port = 5055; + createUser = true; + reverseProxy = enabled; + hostedService = { + group = "Media"; + }; + }; sparky-fitness-server = { enable = true; port = 3010; @@ -442,6 +446,10 @@ in subdomain = "sparky"; }; }; + suggestarr = { + enable = true; + port = 5001; + }; sunshine = { enable = true; port = 47989; diff --git a/systems/x86_64-linux/jallen-nas/nas-defaults.nix b/systems/x86_64-linux/jallen-nas/nas-defaults.nix index d491ed5..8dc6965 100644 --- a/systems/x86_64-linux/jallen-nas/nas-defaults.nix +++ b/systems/x86_64-linux/jallen-nas/nas-defaults.nix @@ -38,6 +38,7 @@ in "attic" "authentik" "authentikRac" + "bookshelf" "caddy" "calibre" "calibre-web" @@ -77,6 +78,7 @@ in "restic-server" "sparky-fitness" "sparky-fitness-server" + "suggestarr" "sunshine" "tdarr" "termix" diff --git a/systems/x86_64-linux/jallen-nas/services.nix b/systems/x86_64-linux/jallen-nas/services.nix index 61db820..1979f44 100755 --- a/systems/x86_64-linux/jallen-nas/services.nix +++ b/systems/x86_64-linux/jallen-nas/services.nix @@ -68,6 +68,7 @@ in "onlyoffice" "synapse" "sparkyfitness" + "suggestarr" ]; ensureUsers = [ { @@ -94,6 +95,10 @@ in name = "sparkyfitness"; ensureDBOwnership = true; } + { + name = "suggestarr"; + ensureDBOwnership = true; + } ]; # pg_hba.conf — use lib.mkForce to replace the module defaults entirely. # @@ -116,6 +121,9 @@ in # Podman container network — sparkyfitness server connects via host LAN IP host sparkyfitness sparkyfitness 10.88.0.0/16 scram-sha-256 + + # Podman container network — suggestarr server connects via host LAN IP + host suggestarr suggestarr 10.88.0.0/16 scram-sha-256 ''; # identMap — maps OS usernames to PostgreSQL usernames for peer auth.