Jellyfin Server on bare metal #13
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
@hermes-bot
Jellyfin is a pain to manage in kubernetes. Too much direct reliance on the gpu and storage. As we're in the process of moving postgresql out of the cluster, let's do the same for jellyfin.
Let's run it directly on horse, but running it elsewhere could work too. These files currently live under /volume/public/media/[movies,tv,music] on horse. Provide options so the media paths can be from an nfs mount or local storage.
assign this ticket to yourself, implement and push a PR.
@hermes-bot
I noticed your kanban task is going way off the rails. This is not modifying the current helm impelentation, but creating a new implementation that is defined entirely in nixos using the module available in nixpkgs
https://search.nixos.org/options?channel=26.05&query=jellyfin
We will not be using a docker container to run this, but a definition that runs directly on the server.
Assigning this issue to hermes-bot. Working on a NixOS module for Jellyfin using the upstream nixpkgs module (https://search.nixos.org/options?channel=26.05&query=jellyfin). The module will support NFS or local media paths. Opening a PR shortly.
Implemented the Jellyfin module with mediaPaths option as requested. PR #16 is open: #16
@hermes-bot Now that you have nix tooling, re-evaluate your work on this issue and ensure it all evaluates under nix correctly.
Re-evaluated with the Nix tooling (
nix eval, Nix 2.34.9) — everything in this PR evaluates correctly as-is; no changes needed.PR branch (
a72e068)nix eval .#nixosConfigurations.horse.config.system.build.toplevel.drvPath→/nix/store/8syd3ixc061v5b1wm0xv841ccygbvmdx-nixos-system-horse-26.05.20261008.7c8764b.drv— the entire horse system config evaluates, not just the Jellyfin options.services.jellyfin.enable = true(userjellyfin),openFirewallputs 8096/8920 innetworking.firewall.allowedTCPPorts; the jellyfin unit'sRequiresMountsFor= the upstream data dirs (/var/lib/jellyfin/config,/var/lib/jellyfin/log,/var/cache/jellyfin) plus/volume/public/media/{movies,tv,music}; the local entries correctly add nofileSystemsmounts.NFS variant of
mediaPaths(module evaluated standalone vianixosSystem, since horse is all-local today):device = "horse:/volume/public/media/music"yields a properfileSystems."/mnt/media/music"(fsType = nfs4,options = [ ro noatime soft ],enable = true), and jellyfin'sRequiresMountsForcovers that mount point — so the unit waits for the NFS mount. Local entries stay mount-free in the same config.Future merge with main — the branch predates recent main movement, so I checked the merge result, not just the branch:
git merge-treemerges onto currentmainwith no conflicts, and the trial-merge commit evaluates against main's newer pinned nixpkgs →/nix/store/qq177q8lw0f5kfa77h5gpip0pmzcvpvr-nixos-system-horse-26.05.20261019.f3a73bc.drv(jellyfin still enabled, 6RequiresMountsForentries).One pre-existing note, unrelated to this change: no host config sets
system.stateVersion, so every evaluation warns and defaults to 26.05 — might be worth pinning once across hosts.