Jellyfin deployment + eidola restore
This commit is contained in:
parent
7a39a2610f
commit
de6f0e39cb
|
@ -1,5 +1,5 @@
|
||||||
{inputs, ...}: let
|
{inputs, ...}: let
|
||||||
systems = makeSystems ["silver"];
|
systems = makeSystems ["silver" "eidola"];
|
||||||
|
|
||||||
inherit (inputs.nixpkgs) lib;
|
inherit (inputs.nixpkgs) lib;
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
|
|
||||||
# Basic networking
|
# Basic networking
|
||||||
networking.firewall.enable = true;
|
networking.firewall.enable = true;
|
||||||
networking.firewall.allowedTCPPorts = [5201 8081];
|
networking.firewall.allowedTCPPorts = [5201];
|
||||||
networking.firewall.allowedUDPPorts = [5201];
|
networking.firewall.allowedUDPPorts = [5201];
|
||||||
|
|
||||||
# Locales
|
# Locales
|
||||||
|
|
|
@ -14,6 +14,9 @@ _: {
|
||||||
"/etc/zfs"
|
"/etc/zfs"
|
||||||
"/var/lib/samba"
|
"/var/lib/samba"
|
||||||
|
|
||||||
|
"/var/lib/jellyfin"
|
||||||
|
"/var/cache/jellyfin"
|
||||||
|
|
||||||
"/var/lib/bitwarden_rs"
|
"/var/lib/bitwarden_rs"
|
||||||
];
|
];
|
||||||
files = [
|
files = [
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{...}: {
|
{...}: {
|
||||||
imports = [
|
imports = [
|
||||||
|
./jellyfin.nix
|
||||||
./samba.nix
|
./samba.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
_: {
|
||||||
|
hardware.graphics.enable = true;
|
||||||
|
|
||||||
|
services.jellyfin = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
# allow it to access network shares
|
||||||
|
group = "share";
|
||||||
|
};
|
||||||
|
}
|
|
@ -19,21 +19,20 @@ _: {
|
||||||
enable = true;
|
enable = true;
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
|
|
||||||
securityType = "user";
|
settings = {
|
||||||
|
global = {
|
||||||
|
"security" = "user";
|
||||||
|
"browseable" = true;
|
||||||
|
"smb encrypt" = "required";
|
||||||
|
|
||||||
extraConfig = ''
|
"valid users" = "@share";
|
||||||
browseable = yes
|
};
|
||||||
smb encrypt = required
|
|
||||||
|
|
||||||
valid users = @share
|
|
||||||
'';
|
|
||||||
|
|
||||||
shares = {
|
|
||||||
terrarium = {
|
terrarium = {
|
||||||
"path" = "/terra/terrarium";
|
"path" = "/terra/terrarium";
|
||||||
"browseable" = "yes";
|
"browseable" = true;
|
||||||
"read only" = "no";
|
"read only" = false;
|
||||||
"guest ok" = "no";
|
"guest ok" = false;
|
||||||
"create mask" = "0664";
|
"create mask" = "0664";
|
||||||
"directory mask" = "0775";
|
"directory mask" = "0775";
|
||||||
};
|
};
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
./prometheus.nix
|
./prometheus.nix
|
||||||
./grafana.nix
|
./grafana.nix
|
||||||
./vaultwarden.nix
|
./vaultwarden.nix
|
||||||
|
./shim-jellyfin.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
security.acme = {
|
security.acme = {
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
_: let
|
||||||
|
httpIntAddr = "10.13.1.1";
|
||||||
|
httpIntPort = 8096;
|
||||||
|
dom = "mov.min.rip";
|
||||||
|
in {
|
||||||
|
services.nginx.virtualHosts.${dom} = {
|
||||||
|
forceSSL = true;
|
||||||
|
enableACME = true;
|
||||||
|
|
||||||
|
locations."/" = {
|
||||||
|
proxyPass = "http://${toString httpIntAddr}:${toString httpIntPort}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in New Issue