Nix flake that adds declarative configuration of jellyfin
Find a file
2025-04-07 16:51:15 +02:00
.forgejo/workflows added format checking to test cases 2025-04-03 22:24:52 +02:00
lib who added the formatting test my commits keep failing it smh 2025-04-05 23:25:13 +02:00
modules Assertions for users 2025-04-07 16:41:37 +02:00
tests Assertions for users 2025-04-07 16:41:37 +02:00
.clang-format Nettle C Program for generating pbkdf2-sha512 hash 2025-04-05 22:30:39 +02:00
.editorconfig Nettle C Program for generating pbkdf2-sha512 hash 2025-04-05 22:30:39 +02:00
flake.lock fixed weird nixpkgs issue 2025-04-03 00:20:42 +02:00
flake.nix Assertions for users 2025-04-07 16:41:37 +02:00
README.md Example flake readme 2025-04-07 16:51:15 +02:00

Declarative Jellyfin

This repository provides a nix flake that allows for declarative configuration of Users, Libraries, Plugins, Settings, etc.

Progress

  • Creating .xml files

  • Modifying databate

  • Test cases

    • XML Generation
    • Networking
    • Encoding
    • System
    • Users
      • Create users
      • Delete users
      • Insert users in middle (test InternalId)
      • MustUpdatePassword test
    • Libraries
    • Connecting
    • Fetching files
  • Users

    • Hashed passwords
    • Mutable users (override Users table with configured users table if false, like in nixpkgs user-groups.nix)
  • Libraries

  • Plugins

  • Settings

    • Scheduled jobs
    • Networking
      • Nix options
    • Encoding
      • Nix options
    • System settings
      • Nix options
    • Branding
      • Nix options

Usage

Setup

Add the flake to your inputs and import the nixosModule in your configuration.

Example minimal flake.nix:

{
  description = "An example using declarative-jellyfin flake";

  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
    declarative-jellyfin.url = "gitlab:SpoodyTheOne/declarative-jellyfin";
    # optional follow:
    declarative-jellyfin.inputs.nixpkgs.follows = "nixpkgs";
  };

  outputs = {
    nixpkgs,
    declarative-jellyfin,
    ...
  }: {
    nixosConfigurations."your-hostname" = nixpkgs.lib.nixosSystem {
      modules = [
        declarative-jellyfin.nixosModules.default # <- this imports the NixOS module that provides the options
        ./configuration.nix # <- your host entrypoint
      ];
    };
  };
}