masive rewriting and setup of server files
This commit is contained in:
@@ -5,28 +5,43 @@
|
||||
...
|
||||
}:
|
||||
let
|
||||
setup = import ./servers/base.nix { inherit lib config; };
|
||||
setup = import ./servers/setup.nix { inherit lib config; };
|
||||
proxy = locations: {
|
||||
inherit locations;
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
http2 = true;
|
||||
};
|
||||
proxyReverse = port: proxy { "/".proxyPass = "http://${config.my.localhost}:${toString port}/"; };
|
||||
proxyReverse =
|
||||
host: port:
|
||||
let
|
||||
useLocalhost = host == config.networking.hostName;
|
||||
proxyTarget = if useLocalhost then config.my.localhost else config.my.ips."${host}";
|
||||
in
|
||||
proxy { "/".proxyPass = "http://${proxyTarget}:${toString port}/"; };
|
||||
proxyReverseArr =
|
||||
port:
|
||||
proxyReverse port
|
||||
// {
|
||||
extraConfig = ''
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
host: port:
|
||||
let
|
||||
useLocalhost = host == config.networking.hostName;
|
||||
headers = ''
|
||||
proxy_set_header X-Forwarded-Host $host;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection $http_connection;
|
||||
proxy_redirect off;
|
||||
proxy_http_version 1.1;
|
||||
'';
|
||||
localHeaders = ''
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
'';
|
||||
in
|
||||
proxyReverse host port
|
||||
// {
|
||||
extraConfig = ''
|
||||
${if useLocalhost then localHeaders else ""}
|
||||
${headers}
|
||||
'';
|
||||
};
|
||||
enableContainers = lib.any (opt: opt) [
|
||||
config.my.servers.collabora.enable
|
||||
@@ -36,6 +51,7 @@ let
|
||||
config.my.servers.maloja.enable
|
||||
config.my.servers.multi-scrobbler.enable
|
||||
config.my.servers.flame.enable
|
||||
config.my.servers.flameSecret.enable
|
||||
config.my.servers.metube.enable
|
||||
config.my.servers.go-vod.enable
|
||||
];
|
||||
@@ -43,7 +59,7 @@ in
|
||||
{
|
||||
imports = [
|
||||
./servers/adguardhome.nix
|
||||
./servers/paperless.nix
|
||||
(import ./servers/paperless.nix { inherit lib config; })
|
||||
./servers/postgres.nix
|
||||
(import ./servers/audiobookshelf.nix {
|
||||
inherit
|
||||
@@ -53,14 +69,28 @@ in
|
||||
setup
|
||||
;
|
||||
})
|
||||
(import ./servers/bazarr.nix { inherit lib config proxyReverse; })
|
||||
(import ./servers/flame.nix { inherit lib config proxyReverse; })
|
||||
(import ./servers/bazarr.nix {
|
||||
inherit
|
||||
lib
|
||||
config
|
||||
proxyReverse
|
||||
setup
|
||||
;
|
||||
})
|
||||
(import ./servers/flame.nix {
|
||||
inherit
|
||||
lib
|
||||
config
|
||||
proxyReverse
|
||||
setup
|
||||
;
|
||||
})
|
||||
(import ./servers/homepage.nix {
|
||||
inherit
|
||||
lib
|
||||
config
|
||||
pkgs
|
||||
proxyReverse
|
||||
setup
|
||||
;
|
||||
})
|
||||
(import ./servers/jellyfin.nix {
|
||||
@@ -75,11 +105,18 @@ in
|
||||
inherit
|
||||
lib
|
||||
config
|
||||
pkgs
|
||||
proxyReverse
|
||||
setup
|
||||
;
|
||||
})
|
||||
(import ./servers/lidarr.nix {
|
||||
inherit
|
||||
lib
|
||||
config
|
||||
proxyReverseArr
|
||||
setup
|
||||
;
|
||||
})
|
||||
(import ./servers/lidarr.nix { inherit lib config proxyReverseArr; })
|
||||
(import ./servers/maloja.nix {
|
||||
inherit
|
||||
lib
|
||||
@@ -88,9 +125,30 @@ in
|
||||
setup
|
||||
;
|
||||
})
|
||||
(import ./servers/mealie.nix { inherit lib config proxyReverse; })
|
||||
(import ./servers/metube.nix { inherit lib config proxyReverse; })
|
||||
(import ./servers/microbin.nix { inherit lib config proxyReverse; })
|
||||
(import ./servers/mealie.nix {
|
||||
inherit
|
||||
lib
|
||||
config
|
||||
proxyReverse
|
||||
setup
|
||||
;
|
||||
})
|
||||
(import ./servers/metube.nix {
|
||||
inherit
|
||||
lib
|
||||
config
|
||||
proxyReverse
|
||||
setup
|
||||
;
|
||||
})
|
||||
(import ./servers/microbin.nix {
|
||||
inherit
|
||||
lib
|
||||
config
|
||||
proxyReverse
|
||||
setup
|
||||
;
|
||||
})
|
||||
(import ./servers/multi-scrobbler.nix {
|
||||
inherit
|
||||
lib
|
||||
@@ -99,27 +157,63 @@ in
|
||||
setup
|
||||
;
|
||||
})
|
||||
(import ./servers/nextcloud.nix { inherit lib config pkgs; })
|
||||
(import ./servers/prowlarr.nix { inherit lib config proxyReverseArr; })
|
||||
(import ./servers/qbittorrent.nix { inherit lib config pkgs; })
|
||||
(import ./servers/sabnzbd.nix { inherit lib config pkgs; })
|
||||
(import ./servers/radarr.nix { inherit lib config proxyReverseArr; })
|
||||
(import ./servers/ryot.nix { inherit lib config proxyReverse; })
|
||||
(import ./servers/shiori.nix {
|
||||
(import ./servers/nextcloud.nix {
|
||||
inherit
|
||||
lib
|
||||
config
|
||||
pkgs
|
||||
proxyReverse
|
||||
setup
|
||||
;
|
||||
})
|
||||
(import ./servers/prowlarr.nix {
|
||||
inherit
|
||||
lib
|
||||
config
|
||||
proxyReverseArr
|
||||
setup
|
||||
;
|
||||
})
|
||||
(import ./servers/qbittorrent.nix { inherit lib config pkgs; })
|
||||
(import ./servers/sabnzbd.nix { inherit lib config; })
|
||||
(import ./servers/radarr.nix {
|
||||
inherit
|
||||
lib
|
||||
config
|
||||
proxyReverseArr
|
||||
setup
|
||||
;
|
||||
})
|
||||
(import ./servers/ryot.nix {
|
||||
inherit
|
||||
lib
|
||||
config
|
||||
proxyReverse
|
||||
setup
|
||||
;
|
||||
})
|
||||
(import ./servers/shiori.nix {
|
||||
inherit
|
||||
lib
|
||||
config
|
||||
proxyReverse
|
||||
setup
|
||||
;
|
||||
})
|
||||
(import ./servers/sonarr.nix {
|
||||
inherit
|
||||
lib
|
||||
config
|
||||
proxyReverse
|
||||
setup
|
||||
;
|
||||
})
|
||||
(import ./servers/sonarr.nix { inherit lib config proxyReverse; })
|
||||
(import ./servers/vaultwarden.nix {
|
||||
inherit
|
||||
lib
|
||||
config
|
||||
pkgs
|
||||
proxyReverse
|
||||
setup
|
||||
;
|
||||
})
|
||||
(import ./servers/firefly-iii.nix { inherit lib config; })
|
||||
@@ -135,10 +229,19 @@ in
|
||||
default = "servidos.lat";
|
||||
description = "The domain name.";
|
||||
};
|
||||
miniserver-ip = lib.mkOption {
|
||||
ips = lib.mkOption {
|
||||
type = lib.types.attrsOf lib.types.str;
|
||||
default = {
|
||||
server = "192.168.1.69";
|
||||
miniserver = "192.168.1.100";
|
||||
workstation = "192.168.1.64";
|
||||
};
|
||||
description = "Set of IP's for all my computers.";
|
||||
};
|
||||
mainServer = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "192.168.1.100";
|
||||
description = "The miniserver ip.";
|
||||
default = "miniserver";
|
||||
description = "The hostname of the main server.";
|
||||
};
|
||||
postgresSocket = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
@@ -165,6 +268,11 @@ in
|
||||
default = "CaptainJawZ@protonmail.com";
|
||||
description = "localhost smtp email";
|
||||
};
|
||||
timeZone = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "America/Mexico_City";
|
||||
description = "Timezone";
|
||||
};
|
||||
enableContainers = lib.mkEnableOption "enable";
|
||||
enableProxy = lib.mkEnableOption "enable";
|
||||
};
|
||||
@@ -182,31 +290,88 @@ in
|
||||
enableCron = lib.mkDefault false;
|
||||
};
|
||||
adguardhome.enable = lib.mkDefault false;
|
||||
audiobookshelf.enable = lib.mkDefault false;
|
||||
bazarr.enable = lib.mkDefault false;
|
||||
collabora.enable = lib.mkDefault false;
|
||||
flame.enable = lib.mkDefault false;
|
||||
flameSecret.enable = lib.mkDefault false;
|
||||
audiobookshelf = {
|
||||
enable = lib.mkDefault false;
|
||||
enableProxy = lib.mkDefault false;
|
||||
};
|
||||
bazarr = {
|
||||
enable = lib.mkDefault false;
|
||||
enableProxy = lib.mkDefault false;
|
||||
};
|
||||
collabora = {
|
||||
enable = lib.mkDefault false;
|
||||
enableProxy = lib.mkDefault false;
|
||||
};
|
||||
flame = {
|
||||
enable = lib.mkDefault false;
|
||||
enableProxy = lib.mkDefault false;
|
||||
};
|
||||
flameSecret = {
|
||||
enable = lib.mkDefault false;
|
||||
enableProxy = lib.mkDefault false;
|
||||
};
|
||||
go-vod.enable = lib.mkDefault false;
|
||||
homepage.enable = lib.mkDefault false;
|
||||
kavita.enable = lib.mkDefault false;
|
||||
lidarr.enable = lib.mkDefault false;
|
||||
maloja.enable = lib.mkDefault false;
|
||||
mealie.enable = lib.mkDefault false;
|
||||
metube.enable = lib.mkDefault false;
|
||||
microbin.enable = lib.mkDefault false;
|
||||
multi-scrobbler.enable = lib.mkDefault false;
|
||||
homepage = {
|
||||
enable = lib.mkDefault false;
|
||||
enableProxy = lib.mkDefault false;
|
||||
};
|
||||
kavita = {
|
||||
enable = lib.mkDefault false;
|
||||
enableProxy = lib.mkDefault false;
|
||||
};
|
||||
lidarr = {
|
||||
enable = lib.mkDefault false;
|
||||
enableProxy = lib.mkDefault false;
|
||||
};
|
||||
maloja = {
|
||||
enable = lib.mkDefault false;
|
||||
enableProxy = lib.mkDefault false;
|
||||
};
|
||||
mealie = {
|
||||
enable = lib.mkDefault false;
|
||||
enableProxy = lib.mkDefault false;
|
||||
};
|
||||
metube = {
|
||||
enable = lib.mkDefault false;
|
||||
enableProxy = lib.mkDefault false;
|
||||
};
|
||||
microbin = {
|
||||
enable = lib.mkDefault false;
|
||||
enableProxy = lib.mkDefault false;
|
||||
};
|
||||
multi-scrobbler = {
|
||||
enable = lib.mkDefault false;
|
||||
enableProxy = lib.mkDefault false;
|
||||
};
|
||||
paperless.enable = lib.mkDefault false;
|
||||
postgres.enable = lib.mkDefault false;
|
||||
prowlarr.enable = lib.mkDefault false;
|
||||
prowlarr = {
|
||||
enable = lib.mkDefault false;
|
||||
enableProxy = lib.mkDefault false;
|
||||
};
|
||||
sabnzbd.enable = lib.mkDefault false;
|
||||
qbittorrent.enable = lib.mkDefault false;
|
||||
unpackerr.enable = lib.mkDefault false;
|
||||
radarr.enable = lib.mkDefault false;
|
||||
ryot.enable = lib.mkDefault false;
|
||||
shiori.enable = lib.mkDefault false;
|
||||
sonarr.enable = lib.mkDefault false;
|
||||
vaultwarden.enable = lib.mkDefault false;
|
||||
radarr = {
|
||||
enable = lib.mkDefault false;
|
||||
enableProxy = lib.mkDefault false;
|
||||
};
|
||||
ryot = {
|
||||
enable = lib.mkDefault false;
|
||||
enableProxy = lib.mkDefault false;
|
||||
};
|
||||
shiori = {
|
||||
enable = lib.mkDefault false;
|
||||
enableProxy = lib.mkDefault false;
|
||||
};
|
||||
sonarr = {
|
||||
enable = lib.mkDefault false;
|
||||
enableProxy = lib.mkDefault false;
|
||||
};
|
||||
vaultwarden = {
|
||||
enable = lib.mkDefault false;
|
||||
enableProxy = lib.mkDefault false;
|
||||
};
|
||||
firefly-iii.enable = lib.mkDefault false;
|
||||
};
|
||||
};
|
||||
@@ -242,7 +407,6 @@ in
|
||||
];
|
||||
in
|
||||
{
|
||||
enable = true;
|
||||
allowedTCPPorts = ports;
|
||||
allowedUDPPorts = ports;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user