jelly
This commit is contained in:
@@ -32,6 +32,8 @@
|
|||||||
192.168.88.14 sobotka
|
192.168.88.14 sobotka
|
||||||
192.168.88.14 cnst.dev
|
192.168.88.14 cnst.dev
|
||||||
192.168.88.14 lidarr.cnst.dev
|
192.168.88.14 lidarr.cnst.dev
|
||||||
|
192.168.88.14 radarr.cnst.dev
|
||||||
|
192.168.88.14 sonarr.cnst.dev
|
||||||
192.168.88.14 prowlarr.cnst.dev
|
192.168.88.14 prowlarr.cnst.dev
|
||||||
192.168.88.14 qbt.cnst.dev
|
192.168.88.14 qbt.cnst.dev
|
||||||
'';
|
'';
|
||||||
|
|||||||
@@ -30,6 +30,12 @@
|
|||||||
radarr = {
|
radarr = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
jellyseerr = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
jellyfin = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
vaultwarden = {
|
vaultwarden = {
|
||||||
enable = true;
|
enable = true;
|
||||||
url = "vault.cnst.dev";
|
url = "vault.cnst.dev";
|
||||||
|
|||||||
@@ -129,6 +129,8 @@
|
|||||||
./server/lidarr
|
./server/lidarr
|
||||||
./server/radarr
|
./server/radarr
|
||||||
./server/sonarr
|
./server/sonarr
|
||||||
|
./server/jellyseerr
|
||||||
|
./server/jellyfin
|
||||||
./server/qbittorrent
|
./server/qbittorrent
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|||||||
52
modules/server/jellyfin/default.nix
Normal file
52
modules/server/jellyfin/default.nix
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
service = "jellyfin";
|
||||||
|
cfg = config.server.${service};
|
||||||
|
srv = config.server;
|
||||||
|
in {
|
||||||
|
options.server.${service} = {
|
||||||
|
enable = lib.mkEnableOption {
|
||||||
|
description = "Enable ${service}";
|
||||||
|
};
|
||||||
|
configDir = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = "/var/lib/${service}";
|
||||||
|
};
|
||||||
|
url = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = "jellyfin.${srv.domain}";
|
||||||
|
};
|
||||||
|
homepage.name = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = "Jellyfin";
|
||||||
|
};
|
||||||
|
homepage.description = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = "The Free Software Media System";
|
||||||
|
};
|
||||||
|
homepage.icon = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = "jellyfin.svg";
|
||||||
|
};
|
||||||
|
homepage.category = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = "Media";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
services.${service} = {
|
||||||
|
enable = true;
|
||||||
|
user = srv.user;
|
||||||
|
group = srv.group;
|
||||||
|
};
|
||||||
|
services.caddy.virtualHosts."${cfg.url}" = {
|
||||||
|
useACMEHost = srv.domain;
|
||||||
|
extraConfig = ''
|
||||||
|
reverse_proxy http://127.0.0.1:8096
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
51
modules/server/jellyseerr/default.nix
Normal file
51
modules/server/jellyseerr/default.nix
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
service = "jellyseerr";
|
||||||
|
srv = config.server;
|
||||||
|
cfg = config.server.${service};
|
||||||
|
in {
|
||||||
|
options.server.${service} = {
|
||||||
|
enable = lib.mkEnableOption {
|
||||||
|
description = "Enable ${service}";
|
||||||
|
};
|
||||||
|
url = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = "${service}.${srv.domain}";
|
||||||
|
};
|
||||||
|
port = lib.mkOption {
|
||||||
|
type = lib.types.port;
|
||||||
|
default = 5055;
|
||||||
|
};
|
||||||
|
homepage.name = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = "Jellyseerr";
|
||||||
|
};
|
||||||
|
homepage.description = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = "Media request and discovery manager";
|
||||||
|
};
|
||||||
|
homepage.icon = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = "jellyseerr.svg";
|
||||||
|
};
|
||||||
|
homepage.category = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = "Arr";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
services.${service} = {
|
||||||
|
enable = true;
|
||||||
|
port = cfg.port;
|
||||||
|
};
|
||||||
|
services.caddy.virtualHosts."${cfg.url}" = {
|
||||||
|
useACMEHost = srv.domain;
|
||||||
|
extraConfig = ''
|
||||||
|
reverse_proxy http://127.0.0.1:${toString cfg.port}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -25,7 +25,7 @@ in {
|
|||||||
};
|
};
|
||||||
homepage.description = lib.mkOption {
|
homepage.description = lib.mkOption {
|
||||||
type = lib.types.str;
|
type = lib.types.str;
|
||||||
default = "Music collection manager";
|
default = "Film collection manager";
|
||||||
};
|
};
|
||||||
homepage.icon = lib.mkOption {
|
homepage.icon = lib.mkOption {
|
||||||
type = lib.types.str;
|
type = lib.types.str;
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ in {
|
|||||||
};
|
};
|
||||||
homepage.description = lib.mkOption {
|
homepage.description = lib.mkOption {
|
||||||
type = lib.types.str;
|
type = lib.types.str;
|
||||||
default = "Music collection manager";
|
default = "Series collection manager";
|
||||||
};
|
};
|
||||||
homepage.icon = lib.mkOption {
|
homepage.icon = lib.mkOption {
|
||||||
type = lib.types.str;
|
type = lib.types.str;
|
||||||
|
|||||||
Reference in New Issue
Block a user