reo101
df9ce2d4e2
Update flake (`neovim-nightly-overlay` is fixed) Format all `.nix` files Unify package/module argument order: - `inputs`, `outputs`, `lib`, `pkgs`, `config`, ... Move Jellyfin config to a `NixOS` module (first one, yay) Add `direnv` to `reo101-shell` modules (was used, but not defined as wanted) - TODO: make it optional (module config options)
61 lines
1.4 KiB
Nix
61 lines
1.4 KiB
Nix
{ lib, pkgs, config, ... }:
|
|
|
|
with lib;
|
|
let
|
|
cfg = config.reo101.jellyfin;
|
|
in
|
|
{
|
|
imports = [
|
|
];
|
|
|
|
options = {
|
|
reo101.jellyfin = {
|
|
enable = mkEnableOption "reo101 Jellyfin config";
|
|
image = mkOption {
|
|
type = types.strMatching ".+/.+:.+";
|
|
default = "docker.io/jellyfin/jellyfin:latest";
|
|
defaultText = "docker.io/jellyfin/jellyfin:latest";
|
|
description = ''
|
|
The Docker image for Jellyfin
|
|
'';
|
|
};
|
|
volumes = mkOption {
|
|
type = types.listOf (types.strMatching ".+:.+");
|
|
default = [
|
|
"/var/cache/jellyfin/config:/config"
|
|
"/var/cache/jellyfin/cache:/cache"
|
|
"/var/log/jellyfin:/log"
|
|
"/media:/media:ro"
|
|
];
|
|
description = ''
|
|
The volumes the Jellyfin container should bind to
|
|
'';
|
|
};
|
|
ports = mkOption {
|
|
type = types.listOf (types.strMatching ".+:.+");
|
|
default = [
|
|
"8096:8096"
|
|
];
|
|
description = ''
|
|
The ports the Jellyfin container should bind to
|
|
'';
|
|
};
|
|
};
|
|
};
|
|
|
|
config = mkIf cfg.enable {
|
|
virtualisation.oci-containers.containers."jellyfin" = {
|
|
autoStart = true;
|
|
image = cfg.image;
|
|
volumes = cfg.volumes;
|
|
ports = cfg.ports;
|
|
environment = {
|
|
JELLYFIN_LOG_DIR = "/log";
|
|
};
|
|
};
|
|
};
|
|
|
|
meta = {
|
|
maintainers = with lib.maintainers; [ reo101 ];
|
|
};
|
|
}
|