moved setup.nix outside of the servers block.
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
{ lib, config, ... }:
|
||||
let
|
||||
cfg = config.my.servers.atticd;
|
||||
setup = import ./setup.nix { inherit lib config; };
|
||||
setup = import ../factories/setup.nix { inherit lib config; };
|
||||
in
|
||||
{
|
||||
options.my.servers.atticd = setup.mkOptions "atticd" "cache" 2343;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ lib, config, ... }:
|
||||
let
|
||||
cfg = config.my.servers.audiobookshelf;
|
||||
setup = import ./setup.nix { inherit lib config; };
|
||||
setup = import ../factories/setup.nix { inherit lib config; };
|
||||
in
|
||||
{
|
||||
options.my.servers.audiobookshelf = setup.mkOptions "audiobookshelf" "audiobooks" 5687;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ lib, config, ... }:
|
||||
let
|
||||
cfg = config.my.servers.bazarr;
|
||||
setup = import ./setup.nix { inherit lib config; };
|
||||
setup = import ../factories/setup.nix { inherit lib config; };
|
||||
in
|
||||
{
|
||||
options.my.servers.bazarr = setup.mkOptions "bazarr" "subs" config.services.bazarr.listenPort;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ lib, config, ... }:
|
||||
let
|
||||
cfg = config.my.servers.drpp;
|
||||
setup = import ./setup.nix { inherit lib config; };
|
||||
setup = import ../factories/setup.nix { inherit lib config; };
|
||||
in
|
||||
{
|
||||
options.my.servers.drpp = setup.mkOptions "drpp" "drpp" 0;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ lib, config, ... }:
|
||||
let
|
||||
cfg = config.my.servers.firefox-syncserver;
|
||||
setup = import ./setup.nix { inherit lib config; };
|
||||
setup = import ../factories/setup.nix { inherit lib config; };
|
||||
in
|
||||
{
|
||||
options.my.servers.firefox-syncserver = setup.mkOptions "firefox-syncserver" "sync" 4233;
|
||||
|
||||
@@ -3,7 +3,7 @@ let
|
||||
cfg = config.my.servers.flame;
|
||||
cfgS = config.my.servers.flameSecret;
|
||||
enable = (cfg.enable || cfgS.enable) && config.my.secureHost;
|
||||
setup = import ./setup.nix { inherit lib config; };
|
||||
setup = import ../factories/setup.nix { inherit lib config; };
|
||||
in
|
||||
{
|
||||
options.my.servers = {
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
}:
|
||||
let
|
||||
cfg = config.my.servers.gitea;
|
||||
setup = import ./setup.nix { inherit lib config; };
|
||||
setup = import ../factories/setup.nix { inherit lib config; };
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ lib, config, ... }:
|
||||
let
|
||||
cfg = config.my.servers.homepage;
|
||||
setup = import ./setup.nix { inherit lib config; };
|
||||
setup = import ../factories/setup.nix { inherit lib config; };
|
||||
in
|
||||
{
|
||||
options.my.servers.homepage = setup.mkOptions "homepage" "home" 8082;
|
||||
|
||||
@@ -19,7 +19,7 @@ let
|
||||
pkgs.gum
|
||||
sub-sync
|
||||
];
|
||||
setup = import ./setup.nix { inherit lib config; };
|
||||
setup = import ../factories/setup.nix { inherit lib config; };
|
||||
in
|
||||
{
|
||||
options.my.servers.jellyfin = setup.mkOptions "jellyfin" "flix" 8096;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ lib, config, ... }:
|
||||
let
|
||||
cfg = config.my.servers.kavita;
|
||||
setup = import ./setup.nix { inherit lib config; };
|
||||
setup = import ../factories/setup.nix { inherit lib config; };
|
||||
in
|
||||
{
|
||||
options.my.servers.kavita = setup.mkOptions "kavita" "library" config.services.kavita.settings.Port;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ lib, config, ... }:
|
||||
let
|
||||
cfg = config.my.servers.lidarr;
|
||||
setup = import ./setup.nix { inherit lib config; };
|
||||
setup = import ../factories/setup.nix { inherit lib config; };
|
||||
in
|
||||
{
|
||||
options.my.servers.lidarr = setup.mkOptions "lidarr" "music" 8686;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ lib, config, ... }:
|
||||
let
|
||||
cfg = config.my.servers.maloja;
|
||||
setup = import ./setup.nix { inherit lib config; };
|
||||
setup = import ../factories/setup.nix { inherit lib config; };
|
||||
in
|
||||
{
|
||||
options.my.servers.maloja = setup.mkOptions "maloja" "maloja" 42010;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ lib, config, ... }:
|
||||
let
|
||||
cfg = config.my.servers.mealie;
|
||||
setup = import ./setup.nix { inherit lib config; };
|
||||
setup = import ../factories/setup.nix { inherit lib config; };
|
||||
in
|
||||
{
|
||||
options.my.servers.mealie = setup.mkOptions "mealie" "mealie" 9925;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ lib, config, ... }:
|
||||
let
|
||||
cfg = config.my.servers.metube;
|
||||
setup = import ./setup.nix { inherit lib config; };
|
||||
setup = import ../factories/setup.nix { inherit lib config; };
|
||||
in
|
||||
{
|
||||
options.my.servers.metube = setup.mkOptions "metube" "bajameesta" 8881;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ lib, config, ... }:
|
||||
let
|
||||
cfg = config.my.servers.microbin;
|
||||
setup = import ./setup.nix { inherit lib config; };
|
||||
setup = import ../factories/setup.nix { inherit lib config; };
|
||||
in
|
||||
{
|
||||
options.my.servers.microbin = setup.mkOptions "microbin" "copy" 8086;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ lib, config, ... }:
|
||||
let
|
||||
cfg = config.my.servers.multi-scrobbler;
|
||||
setup = import ./setup.nix { inherit lib config; };
|
||||
setup = import ../factories/setup.nix { inherit lib config; };
|
||||
in
|
||||
{
|
||||
options.my.servers.multi-scrobbler = setup.mkOptions "multi-scrobbler" "scrobble" 9078;
|
||||
|
||||
@@ -31,7 +31,7 @@ let
|
||||
pytensorflow = pkgs.python311.withPackages (ps: [ ps.tensorflow ]);
|
||||
cfg = config.my.servers.nextcloud;
|
||||
cfgC = config.my.servers.collabora;
|
||||
setup = import ./setup.nix { inherit lib config; };
|
||||
setup = import ../factories/setup.nix { inherit lib config; };
|
||||
in
|
||||
{
|
||||
options.my.servers = {
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
}:
|
||||
let
|
||||
cfg = config.my.servers.nix-serve;
|
||||
setup = import ./setup.nix { inherit lib config; };
|
||||
setup = import ../factories/setup.nix { inherit lib config; };
|
||||
in
|
||||
{
|
||||
options.my.servers.nix-serve = setup.mkOptions "nix-serve" "cache" 5000;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ lib, config, ... }:
|
||||
let
|
||||
cfg = config.my.servers.ombi;
|
||||
setup = import ./setup.nix { inherit lib config; };
|
||||
setup = import ../factories/setup.nix { inherit lib config; };
|
||||
in
|
||||
{
|
||||
options.my.servers.ombi = setup.mkOptions "ombi" "requests" 3425;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ lib, config, ... }:
|
||||
let
|
||||
cfg = config.my.servers.plex-discord-bot;
|
||||
setup = import ./setup.nix { inherit lib config; };
|
||||
setup = import ../factories/setup.nix { inherit lib config; };
|
||||
name = "plex-discord-bot";
|
||||
in
|
||||
{
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
}:
|
||||
let
|
||||
cfg = config.my.servers.plex;
|
||||
setup = import ./setup.nix { inherit lib config; };
|
||||
setup = import ../factories/setup.nix { inherit lib config; };
|
||||
in
|
||||
{
|
||||
options.my.servers.plex = setup.mkOptions "plex" "plex" 32400;
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
}:
|
||||
let
|
||||
cfg = config.my.websites.portfolio;
|
||||
setup = import ./setup.nix { inherit lib config; };
|
||||
setup = import ../factories/setup.nix { inherit lib config; };
|
||||
in
|
||||
{
|
||||
options.my.websites.portfolio = setup.mkOptions "portfolio" "portfolio" 0;
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
}:
|
||||
let
|
||||
cfg = config.my.servers.prowlarr;
|
||||
setup = import ./setup.nix { inherit lib config; };
|
||||
setup = import ../factories/setup.nix { inherit lib config; };
|
||||
in
|
||||
{
|
||||
options.my.servers.prowlarr = setup.mkOptions "prowlarr" "indexer" 9696;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ lib, config, ... }:
|
||||
let
|
||||
cfg = config.my.servers.radarr;
|
||||
setup = import ./setup.nix { inherit lib config; };
|
||||
setup = import ../factories/setup.nix { inherit lib config; };
|
||||
in
|
||||
{
|
||||
options.my.servers.radarr = setup.mkOptions "radarr" "movies" 7878;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ lib, config, ... }:
|
||||
let
|
||||
cfg = config.my.servers.readeck;
|
||||
setup = import ./setup.nix { inherit lib config; };
|
||||
setup = import ../factories/setup.nix { inherit lib config; };
|
||||
in
|
||||
{
|
||||
options.my.servers.readeck = setup.mkOptions "readeck" "laters" 9546;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ lib, config, ... }:
|
||||
let
|
||||
cfg = config.my.servers.ryot;
|
||||
setup = import ./setup.nix { inherit lib config; };
|
||||
setup = import ../factories/setup.nix { inherit lib config; };
|
||||
in
|
||||
{
|
||||
options.my.servers.ryot = setup.mkOptions "ryot" "tracker" 8765;
|
||||
|
||||
@@ -1,110 +0,0 @@
|
||||
{ lib, config, ... }:
|
||||
let
|
||||
mkOptions = name: subdomain: port: {
|
||||
enable = lib.mkEnableOption "enable";
|
||||
enableCron = lib.mkEnableOption "enable cronjob";
|
||||
enableProxy = lib.mkEnableOption "enable reverse proxy";
|
||||
port = lib.mkOption {
|
||||
type = lib.types.int;
|
||||
default = port;
|
||||
};
|
||||
name = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = name;
|
||||
};
|
||||
domain = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = config.my.domain;
|
||||
};
|
||||
host = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "${subdomain}.${config.my.servers.${name}.domain}";
|
||||
};
|
||||
hostName = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = config.networking.hostName;
|
||||
};
|
||||
url = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "https://${config.my.servers.${name}.host}";
|
||||
};
|
||||
ip = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default =
|
||||
if config.my.servers."${name}".isLocal then
|
||||
config.my.localhost
|
||||
else
|
||||
config.my.ips."${config.my.servers.${name}.hostName}";
|
||||
};
|
||||
local = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "http://${config.my.servers.${name}.ip}:${toString port}";
|
||||
};
|
||||
isLocal = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = "${config.my.servers.${name}.hostName}" == config.my.mainServer;
|
||||
};
|
||||
enableSocket = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
};
|
||||
certPath = lib.mkOption {
|
||||
type = lib.types.nullOr lib.types.path;
|
||||
default = null;
|
||||
};
|
||||
};
|
||||
proxy = locations: {
|
||||
inherit locations;
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
http2 = true;
|
||||
};
|
||||
proxyReverse =
|
||||
cfg:
|
||||
proxy {
|
||||
"/" = {
|
||||
proxyPass = "http://${cfg.ip}:${toString cfg.port}/";
|
||||
proxyWebsockets = cfg.enableSocket;
|
||||
};
|
||||
};
|
||||
proxyReverseFix =
|
||||
cfg:
|
||||
let
|
||||
useLocalhost = cfg.hostName == config.networking.hostName;
|
||||
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 cfg
|
||||
// {
|
||||
extraConfig = ''
|
||||
${if useLocalhost then localHeaders else ""}
|
||||
proxy_set_header X-Forwarded-Host $host;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection $http_connection;
|
||||
proxy_redirect off;
|
||||
proxy_http_version 1.1;
|
||||
'';
|
||||
};
|
||||
proxyReversePrivate =
|
||||
cfg:
|
||||
proxyReverse cfg
|
||||
// {
|
||||
extraConfig = ''
|
||||
ssl_verify_client on;
|
||||
ssl_client_certificate ${cfg.certPath};
|
||||
error_page 403 /403.html;
|
||||
'';
|
||||
};
|
||||
in
|
||||
{
|
||||
inherit
|
||||
mkOptions
|
||||
proxy
|
||||
proxyReverse
|
||||
proxyReverseFix
|
||||
proxyReversePrivate
|
||||
;
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
{ lib, config, ... }:
|
||||
let
|
||||
cfg = config.my.servers.shiori;
|
||||
setup = import ./setup.nix { inherit lib config; };
|
||||
setup = import ../factories/setup.nix { inherit lib config; };
|
||||
in
|
||||
{
|
||||
options.my.servers.shiori = setup.mkOptions "shiori" "bookmarks" 4368;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ lib, config, ... }:
|
||||
let
|
||||
cfg = config.my.servers.sonarr;
|
||||
setup = import ./setup.nix { inherit lib config; };
|
||||
setup = import ../factories/setup.nix { inherit lib config; };
|
||||
in
|
||||
{
|
||||
options.my.servers.sonarr = setup.mkOptions "sonarr" "series" 8989;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ lib, config, ... }:
|
||||
let
|
||||
cfg = config.my.servers.stash;
|
||||
setup = import ./setup.nix { inherit lib config; };
|
||||
setup = import ../factories/setup.nix { inherit lib config; };
|
||||
in
|
||||
{
|
||||
options.my.servers.stash = setup.mkOptions "stash" "xxx" 9999;
|
||||
|
||||
@@ -8,7 +8,7 @@ let
|
||||
cfg = config.my.servers.synapse;
|
||||
cfgE = config.my.servers.element;
|
||||
domain = "wedsgk5ac2qcaf9yb.click";
|
||||
setup = import ./setup.nix { inherit lib config; };
|
||||
setup = import ../factories/setup.nix { inherit lib config; };
|
||||
clientConfig."m.homeserver".base_url = cfg.url;
|
||||
serverConfig."m.server" = "${cfg.host}:443";
|
||||
mkWellKnown = data: ''
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{ config, lib, ... }:
|
||||
let
|
||||
setup = import ./setup.nix { inherit lib config; };
|
||||
setup = import ../factories/setup.nix { inherit lib config; };
|
||||
cfg = config.my.servers.tranga;
|
||||
in
|
||||
{
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
}:
|
||||
let
|
||||
cfg = config.my.servers.vaultwarden;
|
||||
setup = import ./setup.nix { inherit lib config; };
|
||||
setup = import ../factories/setup.nix { inherit lib config; };
|
||||
in
|
||||
{
|
||||
options.my.servers.vaultwarden = setup.mkOptions "vaultwarden" "vault" 8222;
|
||||
|
||||
Reference in New Issue
Block a user