diff --git a/README.md b/README.md index e32da0c..8c54d06 100755 --- a/README.md +++ b/README.md @@ -71,7 +71,7 @@ A powerful AMD-based desktop with gaming capabilities, featuring: ### NAS A home server with various self-hosted services: -- Media management (Jellyfin, Jellyseerr) +- Media management (Jellyfin, seerr) - Download automation (Sonarr, Radarr, etc.) - Document management (Paperless) - File sharing (Samba, Nextcloud) diff --git a/docs/modules/README.md b/docs/modules/README.md index ab32459..7a264cd 100644 --- a/docs/modules/README.md +++ b/docs/modules/README.md @@ -140,7 +140,7 @@ mjallen.services.jellyfin = { Available services: -`actual`, `ai`, `appimage`, `arrs`, `attic`, `authentik`, `authentikRac`, `booklore`, `caddy`, `calibre`, `calibre-web`, `cockpit`, `code-server`, `collabora`, `coturn`, `crowdsec`, `dispatcharr`, `free-games-claimer`, `gitea`, `glance`, `glances`, `grafana`, `guacd`, `headscale`, `immich`, `jellyfin`, `jellyseerr`, `lubelogger`, `manyfold`, `matrix`, `minecraft`, `mongodb`, `nebula`, `netbootxyz`, `nextcloud`, `ntfy`, `onlyoffice`, `opencloud`, `orca`, `paperless`, `paperless-ai`, `protonmail-bridge`, `restic`, `samba`, `sparky-fitness`, `sparky-fitness-server`, `sunshine`, `tdarr`, `termix`, `tunarr`, `unmanic`, `uptime-kuma`, `wyoming`, `your-spotify` +`actual`, `ai`, `appimage`, `arrs`, `attic`, `authentik`, `authentikRac`, `booklore`, `caddy`, `calibre`, `calibre-web`, `cockpit`, `code-server`, `collabora`, `coturn`, `crowdsec`, `dispatcharr`, `free-games-claimer`, `gitea`, `glance`, `glances`, `grafana`, `guacd`, `headscale`, `immich`, `jellyfin`, `seerr`, `lubelogger`, `manyfold`, `matrix`, `minecraft`, `mongodb`, `nebula`, `netbootxyz`, `nextcloud`, `ntfy`, `onlyoffice`, `opencloud`, `orca`, `paperless`, `paperless-ai`, `protonmail-bridge`, `restic`, `samba`, `sparky-fitness`, `sparky-fitness-server`, `sunshine`, `tdarr`, `termix`, `tunarr`, `unmanic`, `uptime-kuma`, `wyoming`, `your-spotify` #### Nebula VPN (`services/nebula/`) diff --git a/docs/services.md b/docs/services.md new file mode 100644 index 0000000..a61c290 --- /dev/null +++ b/docs/services.md @@ -0,0 +1,90 @@ +# Services + +All services are derived from `lib.mjallen.network` (`lib/network/default.nix`). +Domain: `mjallen.dev` + +Services are grouped by host. The **URL** column is only present when a reverse proxy +is configured (i.e. `reverseProxy.enable = true`) or a well-known public URL exists. +Services without a public URL are accessible only on the LAN or internally. + +--- + +## NAS (`jallen-nas` — `10.0.1.3`) + +| Service | Enabled | Port | URL | +|---------|---------|------|-----| +| actual | No | 3333 | https://actual.mjallen.dev | +| ai (Ollama + llama.cpp + Open-WebUI) | Yes | 8127 / 11434 / various | https://chat.mjallen.dev | +| arrs (Sonarr + Radarr + SABnzbd) | Yes | 8989 / 7878 / 8280 | — | +| attic | Yes | 9012 | https://cache.mjallen.dev | +| authentik | Yes | 9000 | https://authentik.mjallen.dev | +| authentikRac | Yes | 4823 | — | +| caddy | Yes | 80 / 443 | — | +| calibre | No | 8084 | https://calibre.mjallen.dev | +| calibre-web | No | 8083 | https://calibre-web.mjallen.dev | +| cockpit | Yes | 9091 | — | +| code-server | Yes | 4444 | https://code.mjallen.dev | +| collabora | Yes | 9980 | https://office.mjallen.dev | +| coturn | Yes | 3478 | — | +| crowdsec | Yes | 8181 | — | +| dispatcharr | No | 9191 | https://dispatcharr.mjallen.dev | +| free-games-claimer | No | 6080 | — | +| gitea | Yes | 3000 / SSH 2222 | https://gitea.mjallen.dev | +| glance | Yes | 5555 | https://glance.mjallen.dev | +| glances | Yes | 61208 | https://glances.mjallen.dev | +| grafana | Yes | 9999 | https://grafana.mjallen.dev | +| grimmory | No | 6066 | https://grimmory.mjallen.dev | +| guacd | Yes | 4822 | — | +| headscale | No | 2112 | https://headscale.mjallen.dev | +| immich | Yes | 2283 | https://immich.mjallen.dev | +| jellyfin | Yes | 8096 | https://jellyfin.mjallen.dev | +| seerr | Yes | 5055 | https://seerr.mjallen.dev | +| kavita | Yes | 5000 | — | +| lemonade | No | 8001 | — | +| lubelogger | Yes | 6754 | https://lubelogger.mjallen.dev | +| manyfold | Yes | 3214 | — | +| matrix | Yes | 8448 | https://matrix.mjallen.dev | +| minecraft | No | 25565 | — | +| mongodb | No | 27017 | — | +| nebula | Yes | 4242 | — | +| netbootxyz | No | 4000 | https://netbootxyz.mjallen.dev | +| nextcloud | Yes | 9988 | https://cloud.mjallen.dev | +| ntfy | Yes | 2586 | https://ntfy.mjallen.dev | +| ocis | No | 9200 | — | +| onlyoffice | No | 9943 | — | +| opencloud | No | 9200 | — | +| orca-slicer | No | 3100 | https://orca-slicer.mjallen.dev | +| paperless | Yes | 28981 | — | +| paperless-ai | Yes | 28982 | — | +| protonmail-bridge | Yes | SMTP 1025 / IMAP 1143 | — | +| restic-server | Yes | 8008 | — | +| sparky-fitness (frontend) | Yes | 3004 | https://sparky.mjallen.dev | +| sparky-fitness-server (backend) | Yes | 3010 | — | +| sunshine | Yes | 47989 | — | +| tdarr | No | 8265 / 8266 | https://tdarr.mjallen.dev | +| termix | Yes | 7777 | https://termix.mjallen.dev | +| tunarr | Yes | 8000 | https://tunarr.mjallen.dev | +| unmanic | Yes | 8265 | https://unmanic.mjallen.dev | +| uptime-kuma | Yes | 3001 | — | +| wyoming (Whisper + Piper) | Yes | 10300 / 10200 | — | + +--- + +## NUC (`nuc-nixos` — `10.0.1.4`) + +| Service | Enabled | Port | URL | +|---------|---------|------|-----| +| home-assistant | Yes | 8123 | https://hass.mjallen.dev | +| esphome | Yes | 6052 | — | +| otbr (OpenThread Border Router) | Yes | 8880 / REST 8881 | — | +| mosquitto (MQTT) | Yes | 1883 | — | + +--- + +## Pi5 (`pi5` — `10.0.1.2`) + +| Service | Enabled | Port | URL | +|---------|---------|------|-----| +| adguard | Yes | 3000 | — | +| nebula (lighthouse) | Yes | 4242 | — | +| dns | Yes | 53 | — | diff --git a/docs/systems/jallen-nas.md b/docs/systems/jallen-nas.md index e501c95..eb98d9b 100644 --- a/docs/systems/jallen-nas.md +++ b/docs/systems/jallen-nas.md @@ -54,7 +54,7 @@ | Attic | 9012 | Nix binary cache (`cache.mjallen.dev`) | | Immich | 2283 | Photo management | | Jellyfin | 8096 | Media server | -| Jellyseerr | 5055 | Media request manager | +| Seerr | 5055 | Media request manager | | Nextcloud | 9988 | Cloud storage | | Paperless | 28981 | Document management | | Paperless AI | 28982 | AI-assisted document tagging | diff --git a/homes/x86_64-linux/matt@matt-nixos/default.nix b/homes/x86_64-linux/matt@matt-nixos/default.nix index 3756d88..65b4420 100755 --- a/homes/x86_64-linux/matt@matt-nixos/default.nix +++ b/homes/x86_64-linux/matt@matt-nixos/default.nix @@ -181,7 +181,6 @@ in piper prismlauncher protontricks - protonvpn-gui runelite smile via diff --git a/lib/network/default.nix b/lib/network/default.nix index 644b777..44a6ac8 100644 --- a/lib/network/default.nix +++ b/lib/network/default.nix @@ -129,7 +129,7 @@ headscale = 2112; immich = 2283; jellyfin = 8096; - jellyseerr = 5055; + seerr = 5055; kavita = 5000; llamaCpp = 8127; lubelogger = 6754; diff --git a/modules/home/home/default.nix b/modules/home/home/default.nix index 32aee80..201f7f6 100644 --- a/modules/home/home/default.nix +++ b/modules/home/home/default.nix @@ -44,7 +44,7 @@ in pciutils proton-pass-cli proton-vpn-cli - protonvpn-gui + proton-vpn protonup-ng rsync smartmontools diff --git a/modules/nixos/services/actual/default.nix b/modules/nixos/services/actual/default.nix index 9cee9de..980fe38 100644 --- a/modules/nixos/services/actual/default.nix +++ b/modules/nixos/services/actual/default.nix @@ -21,17 +21,17 @@ let settings = { trustedProxies = [ config.${namespace}.network.ipv4.address ]; port = cfg.port; - configDir = "${cfg.configDir}/${name}"; serverFiles = "${cfg.configDir}/${name}/server-files"; userFiles = "${cfg.configDir}/${name}/user-files"; + dataDir = "${cfg.configDir}/${name}"; }; }; systemd.services = lib.mkIf cfg.createUser { actual = { - environment.ACTUAL_CONFIG_PATH = lib.mkForce "${cfg.configDir}/${name}/config.json"; + environment.ACTUAL_CONFIG_PATH = lib.mkForce "/run/actual/config.json"; serviceConfig = { - ExecStart = lib.mkForce "${lib.getExe pkgs.actual-server} --config ${cfg.configDir}/${name}/config.json"; + ExecStart = lib.mkForce "${lib.getExe pkgs.actual-server} --config /run/actual/config.json"; WorkingDirectory = lib.mkForce "${cfg.configDir}/${name}"; StateDirectoryMode = lib.mkForce 700; DynamicUser = lib.mkForce false; diff --git a/modules/nixos/services/jellyseerr/default.nix b/modules/nixos/services/jellyseerr/default.nix index 3541af1..099536d 100644 --- a/modules/nixos/services/jellyseerr/default.nix +++ b/modules/nixos/services/jellyseerr/default.nix @@ -6,16 +6,16 @@ }: with lib; let - name = "jellyseerr"; + name = "seerr"; cfg = config.${namespace}.services.${name}; - jellyseerrConfig = lib.${namespace}.mkModule { + seerrConfig = lib.${namespace}.mkModule { inherit config name; - description = "jellyseerr"; + description = "seerr"; options = { }; moduleConfig = { - # Enable jellyseerr service - services.jellyseerr = { + # Enable seerr service + services.seerr = { enable = true; port = cfg.port; openFirewall = cfg.openFirewall; @@ -23,7 +23,7 @@ let }; systemd.services = { - jellyseerr = { + seerr = { serviceConfig = { WorkingDirectory = lib.mkForce "${cfg.configDir}/jellyseerr"; StateDirectory = lib.mkForce "${cfg.configDir}/jellyseerr"; @@ -37,5 +37,5 @@ let }; in { - imports = [ jellyseerrConfig ]; + imports = [ seerrConfig ]; } diff --git a/systems/x86_64-linux/jallen-nas/apps.nix b/systems/x86_64-linux/jallen-nas/apps.nix index 7ae92af..50c2736 100755 --- a/systems/x86_64-linux/jallen-nas/apps.nix +++ b/systems/x86_64-linux/jallen-nas/apps.nix @@ -12,10 +12,10 @@ in ${namespace} = { services = { actual = { - enable = false; + enable = true; port = 3333; createUser = true; - reverseProxy = enabled; + reverseProxy = disabled; hostedService = { group = "Finance"; icon = "si:actualbudget"; @@ -319,7 +319,7 @@ in icon = "si:jellyfin"; }; }; - jellyseerr = { + seerr = { enable = true; port = 5055; createUser = true; diff --git a/systems/x86_64-linux/jallen-nas/default.nix b/systems/x86_64-linux/jallen-nas/default.nix index 198ac14..4ed4787 100755 --- a/systems/x86_64-linux/jallen-nas/default.nix +++ b/systems/x86_64-linux/jallen-nas/default.nix @@ -226,6 +226,7 @@ in shares = { "3d_printer".sharePath = "/media/nas/main/documents/3d-models"; Backup.sharePath = "/media/nas/main/backup"; + Books.sharePath = "/media/nas/main/books"; Documents.sharePath = "/media/nas/main/documents"; isos.sharePath = "/media/nas/main/documents/isos"; app_data.sharePath = "/media/nas/main/appdata"; @@ -338,7 +339,7 @@ in packagekit pass protonmail-bridge - protonvpn-gui + proton-vpn qrencode sbctl systemctl-tui diff --git a/systems/x86_64-linux/jallen-nas/disabled.nix b/systems/x86_64-linux/jallen-nas/disabled.nix index 2a75ebb..19d6592 100644 --- a/systems/x86_64-linux/jallen-nas/disabled.nix +++ b/systems/x86_64-linux/jallen-nas/disabled.nix @@ -39,7 +39,7 @@ in headscale = mkForce disabled; immich = mkForce disabled; jellyfin = mkForce disabled; - jellyseerr = mkForce disabled; + seerr = mkForce disabled; lubelogger = mkForce disabled; manyfold = mkForce disabled; matrix = mkForce disabled; diff --git a/systems/x86_64-linux/jallen-nas/nas-defaults.nix b/systems/x86_64-linux/jallen-nas/nas-defaults.nix index 4031c2d..d491ed5 100644 --- a/systems/x86_64-linux/jallen-nas/nas-defaults.nix +++ b/systems/x86_64-linux/jallen-nas/nas-defaults.nix @@ -56,7 +56,7 @@ in "headscale" "immich" "jellyfin" - "jellyseerr" + "seerr" "kavita" "lemonade" "lubelogger"