feat: add NixOS module for Jellyfin integration #17

Merged
sscoble merged 1 commit from issue-8-nixos-module into main 2026-05-16 04:55:59 +00:00
Owner

Closes #8

Adds nixosModules.default with:

Options:

  • services.jellyfin-lessons.enable — toggle on/off
  • services.jellyfin-lessons.dataDir — lessons database path (default /var/lib/jellyfin-lessons)
  • services.jellyfin-lessons.adminPort — admin UI port (default 3099)

What it does when enabled:

  1. Copies the built plugin DLL to /var/lib/jellyfin/plugins/Lessons/ on Jellyfin preStart
  2. Runs the admin UI as a user systemd service (jellyfin-lessons-admin)

The projectFile path was already correct (Jellyfin.Plugin.Lessons.csproj).

Verification

$ nix flake show
...
nixosModules
  └───default: NixOS module
...

$ nix flake check
✓ packages.x86_64-linux.default
✓ nixosModules.default

Usage

{
  inputs.jellyfin-lessons.url = "github:your/jellyfin-lessons";
  outputs = { self, nixpkgs, jellyfin-lessons }: {
    nixosConfigurations.yourhost = nixpkgs.lib.nixosSystem {
      modules = [
        jellyfin-lessons.nixosModules.default
        ({ services.jellyfin-lessons.enable = true; })
      ];
    };
  };
}
Closes #8 Adds `nixosModules.default` with: **Options:** - `services.jellyfin-lessons.enable` — toggle on/off - `services.jellyfin-lessons.dataDir` — lessons database path (default `/var/lib/jellyfin-lessons`) - `services.jellyfin-lessons.adminPort` — admin UI port (default 3099) **What it does when enabled:** 1. Copies the built plugin DLL to `/var/lib/jellyfin/plugins/Lessons/` on Jellyfin preStart 2. Runs the admin UI as a user systemd service (`jellyfin-lessons-admin`) The `projectFile` path was already correct (`Jellyfin.Plugin.Lessons.csproj`). ### Verification ``` $ nix flake show ... nixosModules └───default: NixOS module ... $ nix flake check ✓ packages.x86_64-linux.default ✓ nixosModules.default ``` ### Usage ```nix { inputs.jellyfin-lessons.url = "github:your/jellyfin-lessons"; outputs = { self, nixpkgs, jellyfin-lessons }: { nixosConfigurations.yourhost = nixpkgs.lib.nixosSystem { modules = [ jellyfin-lessons.nixosModules.default ({ services.jellyfin-lessons.enable = true; }) ]; }; }; } ```
sscoble added 1 commit 2026-05-16 04:55:30 +00:00
Add nixosModules.default with:
- services.jellyfin-lessons.enable toggle
- Configurable dataDir and adminPort options
- Plugin DLL auto-copy to Jellyfin plugins dir
- Admin UI as a user systemd service

The projectFile path was already correct (Jellyfin.Plugin.Lessons.csproj).
nix flake check passes.
First-time contributor

Reviewed — clean. Approving.

✅ NixOS module with enable/dataDir/adminPort options
✅ Plugin DLL auto-copied to Jellyfin plugins dir via preStart
✅ Admin UI as user systemd service
✅ flake check + flake show pass

All 8 issues complete. 🎉

Reviewed — clean. Approving. ✅ NixOS module with enable/dataDir/adminPort options ✅ Plugin DLL auto-copied to Jellyfin plugins dir via preStart ✅ Admin UI as user systemd service ✅ flake check + flake show pass All 8 issues complete. 🎉
sscoble merged commit 3000ec870c into main 2026-05-16 04:55:59 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: sscoble/jellyfin-lessons#17
No description provided.