kek
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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/`)
|
||||
|
||||
|
||||
90
docs/services.md
Normal file
90
docs/services.md
Normal file
@@ -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 | — |
|
||||
@@ -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 |
|
||||
|
||||
@@ -181,7 +181,6 @@ in
|
||||
piper
|
||||
prismlauncher
|
||||
protontricks
|
||||
protonvpn-gui
|
||||
runelite
|
||||
smile
|
||||
via
|
||||
|
||||
@@ -129,7 +129,7 @@
|
||||
headscale = 2112;
|
||||
immich = 2283;
|
||||
jellyfin = 8096;
|
||||
jellyseerr = 5055;
|
||||
seerr = 5055;
|
||||
kavita = 5000;
|
||||
llamaCpp = 8127;
|
||||
lubelogger = 6754;
|
||||
|
||||
@@ -44,7 +44,7 @@ in
|
||||
pciutils
|
||||
proton-pass-cli
|
||||
proton-vpn-cli
|
||||
protonvpn-gui
|
||||
proton-vpn
|
||||
protonup-ng
|
||||
rsync
|
||||
smartmontools
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 ];
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -56,7 +56,7 @@ in
|
||||
"headscale"
|
||||
"immich"
|
||||
"jellyfin"
|
||||
"jellyseerr"
|
||||
"seerr"
|
||||
"kavita"
|
||||
"lemonade"
|
||||
"lubelogger"
|
||||
|
||||
Reference in New Issue
Block a user