format nix code
All checks were successful
nixos config pipeline / show-flake (push) Successful in 27s
nixos config pipeline / deploy (push) Successful in 1m38s

This commit is contained in:
smayzy 2025-10-09 17:55:32 +02:00
parent e776e94484
commit d341c0c3f1
6 changed files with 444 additions and 365 deletions

View File

@ -9,9 +9,18 @@
networking.hostName = "desktop1"; networking.hostName = "desktop1";
networking.bridges.br0.interfaces = [ "enp4s0" ]; networking.bridges.br0.interfaces = [ "enp4s0" ];
networking.interfaces.br0.ipv4.addresses = [ { address = "192.168.1.146"; prefixLength = 24; } ]; networking.interfaces.br0.ipv4.addresses = [
{
address = "192.168.1.146";
prefixLength = 24;
}
];
networking.defaultGateway = "192.168.1.254"; networking.defaultGateway = "192.168.1.254";
networking.nameservers = [ "192.168.1.202" "192.168.1.137" "192.168.1.49" ]; networking.nameservers = [
"192.168.1.202"
"192.168.1.137"
"192.168.1.49"
];
age.identityPaths = [ "/etc/ssh/ssh_host_ed25519_key" ]; age.identityPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];

View File

@ -9,9 +9,18 @@
networking.hostName = "server1"; networking.hostName = "server1";
networking.bridges.br0.interfaces = [ "ens18" ]; networking.bridges.br0.interfaces = [ "ens18" ];
networking.interfaces.br0.ipv4.addresses = [ { address = "192.168.1.197"; prefixLength = 24; } ]; networking.interfaces.br0.ipv4.addresses = [
{
address = "192.168.1.197";
prefixLength = 24;
}
];
networking.defaultGateway = "192.168.1.254"; networking.defaultGateway = "192.168.1.254";
networking.nameservers = [ "192.168.1.202" "192.168.1.137" "192.168.1.49" ]; networking.nameservers = [
"192.168.1.202"
"192.168.1.137"
"192.168.1.49"
];
age.identityPaths = [ "/etc/ssh/ssh_host_ed25519_key" ]; age.identityPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];

View File

@ -23,16 +23,18 @@ in
privateNetwork = true; privateNetwork = true;
hostBridge = net.bridge; hostBridge = net.bridge;
localAddress = cfg.ip; localAddress = cfg.ip;
config = { ... }: { config =
system.stateVersion = "25.11"; { ... }:
{
system.stateVersion = "25.11";
services.httpd = { services.httpd = {
enable = true; enable = true;
};
networking.defaultGateway = net.gateway;
networking.nameservers = net.dns;
networking.firewall.allowedTCPPorts = [ 80 ];
}; };
networking.defaultGateway = net.gateway;
networking.nameservers = net.dns;
networking.firewall.allowedTCPPorts = [ 80 ];
};
}; };
}; };
} }

View File

@ -47,330 +47,382 @@ in
privateNetwork = true; privateNetwork = true;
hostBridge = net.bridge; hostBridge = net.bridge;
localAddress = cfg.ip; localAddress = cfg.ip;
config = { ... }: { config =
system.stateVersion = "25.11"; { ... }:
{
system.stateVersion = "25.11";
networking.defaultGateway = net.gateway; networking.defaultGateway = net.gateway;
networking.nameservers = net.dns; networking.nameservers = net.dns;
networking.firewall.allowedTCPPorts = [ 80 443 880 4443 ]; networking.firewall.allowedTCPPorts = [
80
443
880
4443
];
systemd.services.traefik.serviceConfig.EnvironmentFile = [ systemd.services.traefik.serviceConfig.EnvironmentFile = [
"/run/secrets/traefik-cf-tk" "/run/secrets/traefik-cf-tk"
]; ];
services.traefik = { services.traefik = {
enable = true; enable = true;
staticConfigOptions = { staticConfigOptions = {
global = { global = {
checkNewVersion = false; checkNewVersion = false;
sendAnonymousUsage = false; sendAnonymousUsage = false;
};
log = {
level = "WARN";
};
api = {
dashboard = true;
disabledashboardad = true;
};
entryPoints = {
local = {
address = ":80";
}; };
localSec = { log = {
address = ":443"; level = "WARN";
}; };
ext = { api = {
address = ":880"; dashboard = true;
disabledashboardad = true;
}; };
extSec = { entryPoints = {
address = ":4443"; local = {
address = ":80";
};
localSec = {
address = ":443";
};
ext = {
address = ":880";
};
extSec = {
address = ":4443";
};
}; };
}; certificatesResolvers = {
certificatesResolvers = { cloudflare = {
cloudflare = { acme = {
acme = { email = "smayzy@smayzy.ovh";
email = "smayzy@smayzy.ovh"; storage = "/var/lib/traefik/acme.json";
storage = "/var/lib/traefik/acme.json"; dnsChallenge = {
dnsChallenge = { provider = "cloudflare";
provider = "cloudflare"; resolvers = [ "192.168.1.202" ];
resolvers = [ "192.168.1.202" ]; propagation.delayBeforeChecks = 15;
propagation.delayBeforeChecks = 15; };
}; };
}; };
}; };
}; };
dynamicConfigOptions = {
http = {
routers = {
traefik = {
rule = "Host(`traefik.internal.smayzy.ovh`) && (PathPrefix(`/api`) || PathPrefix(`/dashboard`))";
entryPoints = [ "localSec" ];
service = "api@internal";
tls.certResolver = "cloudflare";
middlewares = [ "dashboard-auth" ];
};
bazarr-anime = {
rule = "Host(`bazarr-anime.internal.smayzy.ovh`)";
entryPoints = [ "localSec" ];
service = "bazarr-anime";
tls.certResolver = "cloudflare";
};
bazarr = {
rule = "Host(`bazarr.internal.smayzy.ovh`)";
entryPoints = [ "localSec" ];
service = "bazarr";
tls.certResolver = "cloudflare";
};
lidarr = {
rule = "Host(`lidarr.internal.smayzy.ovh`)";
entryPoints = [ "localSec" ];
service = "lidarr";
tls.certResolver = "cloudflare";
};
nzbget = {
rule = "Host(`nzbget.internal.smayzy.ovh`)";
entryPoints = [ "localSec" ];
service = "nzbget";
tls.certResolver = "cloudflare";
};
prowlarr = {
rule = "Host(`prowlarr.internal.smayzy.ovh`)";
entryPoints = [ "localSec" ];
service = "prowlarr";
tls.certResolver = "cloudflare";
};
qbittorrent = {
rule = "Host(`qbittorrent.internal.smayzy.ovh`)";
entryPoints = [ "localSec" ];
service = "qbittorrent";
tls.certResolver = "cloudflare";
};
radarr = {
rule = "Host(`radarr.internal.smayzy.ovh`)";
entryPoints = [ "localSec" ];
service = "radarr";
tls.certResolver = "cloudflare";
};
sonarr-anime = {
rule = "Host(`sonarr-anime.internal.smayzy.ovh`)";
entryPoints = [ "localSec" ];
service = "sonarr-anime";
tls.certResolver = "cloudflare";
};
sonarr = {
rule = "Host(`sonarr.internal.smayzy.ovh`)";
entryPoints = [ "localSec" ];
service = "sonarr";
tls.certResolver = "cloudflare";
};
srv1-proxmox = {
rule = "Host(`srv1-proxmox.internal.smayzy.ovh`)";
entryPoints = [ "localSec" ];
service = "srv1-proxmox";
tls.certResolver = "cloudflare";
};
srv2-proxmox = {
rule = "Host(`srv2-proxmox.internal.smayzy.ovh`)";
entryPoints = [ "localSec" ];
service = "srv2-proxmox";
tls.certResolver = "cloudflare";
};
}; chat = {
dynamicConfigOptions = { rule = "Host(`chat.smayzy.ovh`)";
http = { entryPoints = [
routers = { "ext"
traefik = { "extSec"
rule = "Host(`traefik.internal.smayzy.ovh`) && (PathPrefix(`/api`) || PathPrefix(`/dashboard`))"; ];
entryPoints = [ "localSec" ]; service = "chat";
service = "api@internal"; tls.certResolver = "cloudflare";
tls.certResolver = "cloudflare"; };
middlewares = [ "dashboard-auth" ]; crafty = {
}; rule = "Host(`crafty.smayzy.ovh`)";
bazarr-anime = { entryPoints = [
rule = "Host(`bazarr-anime.internal.smayzy.ovh`)"; "ext"
entryPoints = [ "localSec" ]; "extSec"
service = "bazarr-anime"; ];
tls.certResolver = "cloudflare"; service = "crafty";
}; tls.certResolver = "cloudflare";
bazarr = { };
rule = "Host(`bazarr.internal.smayzy.ovh`)"; cyberchef = {
entryPoints = [ "localSec" ]; rule = "Host(`cyberchef.smayzy.ovh`)";
service = "bazarr"; entryPoints = [
tls.certResolver = "cloudflare"; "ext"
}; "extSec"
lidarr = { ];
rule = "Host(`lidarr.internal.smayzy.ovh`)"; service = "cyberchef";
entryPoints = [ "localSec" ]; tls.certResolver = "cloudflare";
service = "lidarr"; };
tls.certResolver = "cloudflare"; gitea = {
}; rule = "Host(`gitea.smayzy.ovh`)";
nzbget = { entryPoints = [
rule = "Host(`nzbget.internal.smayzy.ovh`)"; "ext"
entryPoints = [ "localSec" ]; "extSec"
service = "nzbget"; ];
tls.certResolver = "cloudflare"; service = "gitea";
}; tls.certResolver = "cloudflare";
prowlarr = { };
rule = "Host(`prowlarr.internal.smayzy.ovh`)"; jellyfin = {
entryPoints = [ "localSec" ]; rule = "Host(`jellyfin.smayzy.ovh`)";
service = "prowlarr"; entryPoints = [
tls.certResolver = "cloudflare"; "ext"
}; "extSec"
qbittorrent = { ];
rule = "Host(`qbittorrent.internal.smayzy.ovh`)"; service = "jellyfin";
entryPoints = [ "localSec" ]; tls.certResolver = "cloudflare";
service = "qbittorrent"; };
tls.certResolver = "cloudflare"; kuma = {
}; rule = "Host(`kuma.smayzy.ovh`)";
radarr = { entryPoints = [
rule = "Host(`radarr.internal.smayzy.ovh`)"; "ext"
entryPoints = [ "localSec" ]; "extSec"
service = "radarr"; ];
tls.certResolver = "cloudflare"; service = "kuma";
}; tls.certResolver = "cloudflare";
sonarr-anime = { };
rule = "Host(`sonarr-anime.internal.smayzy.ovh`)"; kutt = {
entryPoints = [ "localSec" ]; rule = "Host(`kutt.smayzy.ovh`)";
service = "sonarr-anime"; entryPoints = [
tls.certResolver = "cloudflare"; "ext"
}; "extSec"
sonarr = { ];
rule = "Host(`sonarr.internal.smayzy.ovh`)"; service = "kutt";
entryPoints = [ "localSec" ]; tls.certResolver = "cloudflare";
service = "sonarr"; };
tls.certResolver = "cloudflare"; matrix = {
}; rule = "Host(`matrix.smayzy.ovh`)";
srv1-proxmox = { entryPoints = [
rule = "Host(`srv1-proxmox.internal.smayzy.ovh`)"; "ext"
entryPoints = [ "localSec" ]; "extSec"
service = "srv1-proxmox"; ];
tls.certResolver = "cloudflare"; service = "matrix";
}; tls.certResolver = "cloudflare";
srv2-proxmox = { };
rule = "Host(`srv2-proxmox.internal.smayzy.ovh`)"; mirror = {
entryPoints = [ "localSec" ]; rule = "Host(`mirror.smayzy.ovh`)";
service = "srv2-proxmox"; entryPoints = [
tls.certResolver = "cloudflare"; "ext"
}; "extSec"
];
chat = { service = "mirror";
rule = "Host(`chat.smayzy.ovh`)"; tls.certResolver = "cloudflare";
entryPoints = [ "ext" "extSec" ]; };
service = "chat"; ombi-anime = {
tls.certResolver = "cloudflare"; rule = "Host(`ombi-anime.smayzy.ovh`)";
}; entryPoints = [
crafty = { "ext"
rule = "Host(`crafty.smayzy.ovh`)"; "extSec"
entryPoints = [ "ext" "extSec" ]; ];
service = "crafty"; service = "ombi-anime";
tls.certResolver = "cloudflare"; tls.certResolver = "cloudflare";
}; };
cyberchef = { ombi = {
rule = "Host(`cyberchef.smayzy.ovh`)"; rule = "Host(`ombi.smayzy.ovh`)";
entryPoints = [ "ext" "extSec" ]; entryPoints = [
service = "cyberchef"; "ext"
tls.certResolver = "cloudflare"; "extSec"
}; ];
gitea = { service = "ombi";
rule = "Host(`gitea.smayzy.ovh`)"; tls.certResolver = "cloudflare";
entryPoints = [ "ext" "extSec" ]; };
service = "gitea"; share = {
tls.certResolver = "cloudflare"; rule = "Host(`share.smayzy.ovh`)";
}; entryPoints = [
jellyfin = { "ext"
rule = "Host(`jellyfin.smayzy.ovh`)"; "extSec"
entryPoints = [ "ext" "extSec" ]; ];
service = "jellyfin"; service = "share";
tls.certResolver = "cloudflare"; tls.certResolver = "cloudflare";
}; };
kuma = { vault = {
rule = "Host(`kuma.smayzy.ovh`)"; rule = "Host(`vault.smayzy.ovh`)";
entryPoints = [ "ext" "extSec" ]; entryPoints = [
service = "kuma"; "ext"
tls.certResolver = "cloudflare"; "extSec"
}; ];
kutt = { service = "vault";
rule = "Host(`kutt.smayzy.ovh`)"; tls.certResolver = "cloudflare";
entryPoints = [ "ext" "extSec" ]; };
service = "kutt"; wordpress = {
tls.certResolver = "cloudflare"; rule = "Host(`wordpress.smayzy.ovh`)";
}; entryPoints = [
matrix = { "ext"
rule = "Host(`matrix.smayzy.ovh`)"; "extSec"
entryPoints = [ "ext" "extSec" ]; ];
service = "matrix"; service = "wordpress";
tls.certResolver = "cloudflare"; tls.certResolver = "cloudflare";
}; };
mirror = { mail = {
rule = "Host(`mirror.smayzy.ovh`)"; rule = "Host(`autoconfig.smayzy.ovh`) || Host(`autodiscover.smayzy.ovh`) || Host(`mail.smayzy.ovh`) || Host(`mta-sts.mail.smayzy.ovh`) || Host(`mta-sts.smayzy.ovh`) || Host(`smayzy.ovh`) || Host(`www.smayzy.ovh`)";
entryPoints = [ "ext" "extSec" ]; entryPoints = [
service = "mirror"; "ext"
tls.certResolver = "cloudflare"; "extSec"
}; ];
ombi-anime = { service = "mail";
rule = "Host(`ombi-anime.smayzy.ovh`)"; tls.certResolver = "cloudflare";
entryPoints = [ "ext" "extSec" ];
service = "ombi-anime";
tls.certResolver = "cloudflare";
};
ombi = {
rule = "Host(`ombi.smayzy.ovh`)";
entryPoints = [ "ext" "extSec" ];
service = "ombi";
tls.certResolver = "cloudflare";
};
share = {
rule = "Host(`share.smayzy.ovh`)";
entryPoints = [ "ext" "extSec" ];
service = "share";
tls.certResolver = "cloudflare";
};
vault = {
rule = "Host(`vault.smayzy.ovh`)";
entryPoints = [ "ext" "extSec" ];
service = "vault";
tls.certResolver = "cloudflare";
};
wordpress = {
rule = "Host(`wordpress.smayzy.ovh`)";
entryPoints = [ "ext" "extSec" ];
service = "wordpress";
tls.certResolver = "cloudflare";
};
mail = {
rule = "Host(`autoconfig.smayzy.ovh`) || Host(`autodiscover.smayzy.ovh`) || Host(`mail.smayzy.ovh`) || Host(`mta-sts.mail.smayzy.ovh`) || Host(`mta-sts.smayzy.ovh`) || Host(`smayzy.ovh`) || Host(`www.smayzy.ovh`)";
entryPoints = [ "ext" "extSec" ];
service = "mail";
tls.certResolver = "cloudflare";
};
};
services = {
"bazarr-anime".loadBalancer = {
servers = [ { url = "http://192.168.1.147:6768" ; } ];
};
"bazarr".loadBalancer = {
servers = [ { url = "http://192.168.1.147:6767" ; } ];
};
"lidarr".loadBalancer = {
servers = [ { url = "http://192.168.1.147:8686" ; } ];
};
"nzbget".loadBalancer = {
servers = [ { url = "http://192.168.1.147:6789" ; } ];
};
"prowlarr".loadBalancer = {
servers = [ { url = "http://192.168.1.147:9696" ; } ];
};
"qbittorrent".loadBalancer = {
servers = [ { url = "http://192.168.1.147:8080" ; } ];
};
"radarr".loadBalancer = {
servers = [ { url = "http://192.168.1.147:7878" ; } ];
};
"sonarr-anime".loadBalancer = {
servers = [ { url = "http://192.168.1.147:8988" ; } ];
};
"sonarr".loadBalancer = {
servers = [ { url = "http://192.168.1.147:8989" ; } ];
};
"srv1-proxmox".loadBalancer = {
servers = [ { url = "https://192.168.1.193:8006"; } ];
serversTransport = "srv1-proxmox";
};
"srv2-proxmox".loadBalancer = {
servers = [ { url = "https://192.168.1.113:8006"; } ];
serversTransport = "srv2-proxmox";
};
"chat".loadBalancer = {
servers = [ { url = "http://192.168.1.114:80" ; } ];
};
"crafty".loadBalancer = {
servers = [ { url = "https://192.168.1.34:8443" ; } ];
};
"cyberchef".loadBalancer = {
servers = [ { url = "http://192.168.1.197:6900" ; } ];
};
"gitea".loadBalancer = {
servers = [ { url = "http://192.168.1.28:3000" ; } ];
};
"jellyfin".loadBalancer = {
servers = [ { url = "http://192.168.1.147:8096" ; } ];
};
"kuma".loadBalancer = {
servers = [ { url = "http://192.168.1.176:80" ; } ];
};
"kutt".loadBalancer = {
servers = [ { url = "http://192.168.1.132:80" ; } ];
};
"matrix".loadBalancer = {
servers = [ { url = "http://192.168.1.114:80" ; } ];
};
"mirror".loadBalancer = {
servers = [ { url = "http://192.168.1.185:80" ; } ];
};
"ombi-anime".loadBalancer = {
servers = [ { url = "http://192.168.1.147:3580" ; } ];
};
"ombi".loadBalancer = {
servers = [ { url = "http://192.168.1.147:3579" ; } ];
};
"share".loadBalancer = {
servers = [ { url = "http://192.168.1.98:80" ; } ];
};
"vault".loadBalancer = {
servers = [ { url = "http://192.168.1.160:80" ; } ];
};
"wordpress".loadBalancer = {
servers = [ { url = "http://192.168.1.16:80" ; } ];
};
"mail".loadBalancer = {
servers = [ { url = "https://192.168.1.128:443" ; } ];
};
};
serversTransports = {
srv1-proxmox = {
serverName = "srv1-proxmox.internal.smayzy.ovh";
};
srv2-proxmox = {
serverName = "srv2-proxmox.internal.smayzy.ovh";
};
};
middlewares ={
dashboard-auth = {
basicAuth = {
usersFile = "/run/secrets/traefik-dashboard-auth";
}; };
}; };
}; services = {
}; # http "bazarr-anime".loadBalancer = {
}; # dyna config servers = [ { url = "http://192.168.1.147:6768"; } ];
}; # services.traefik };
}; # config "bazarr".loadBalancer = {
servers = [ { url = "http://192.168.1.147:6767"; } ];
};
"lidarr".loadBalancer = {
servers = [ { url = "http://192.168.1.147:8686"; } ];
};
"nzbget".loadBalancer = {
servers = [ { url = "http://192.168.1.147:6789"; } ];
};
"prowlarr".loadBalancer = {
servers = [ { url = "http://192.168.1.147:9696"; } ];
};
"qbittorrent".loadBalancer = {
servers = [ { url = "http://192.168.1.147:8080"; } ];
};
"radarr".loadBalancer = {
servers = [ { url = "http://192.168.1.147:7878"; } ];
};
"sonarr-anime".loadBalancer = {
servers = [ { url = "http://192.168.1.147:8988"; } ];
};
"sonarr".loadBalancer = {
servers = [ { url = "http://192.168.1.147:8989"; } ];
};
"srv1-proxmox".loadBalancer = {
servers = [ { url = "https://192.168.1.193:8006"; } ];
serversTransport = "srv1-proxmox";
};
"srv2-proxmox".loadBalancer = {
servers = [ { url = "https://192.168.1.113:8006"; } ];
serversTransport = "srv2-proxmox";
};
"chat".loadBalancer = {
servers = [ { url = "http://192.168.1.114:80"; } ];
};
"crafty".loadBalancer = {
servers = [ { url = "https://192.168.1.34:8443"; } ];
};
"cyberchef".loadBalancer = {
servers = [ { url = "http://192.168.1.197:6900"; } ];
};
"gitea".loadBalancer = {
servers = [ { url = "http://192.168.1.28:3000"; } ];
};
"jellyfin".loadBalancer = {
servers = [ { url = "http://192.168.1.147:8096"; } ];
};
"kuma".loadBalancer = {
servers = [ { url = "http://192.168.1.176:80"; } ];
};
"kutt".loadBalancer = {
servers = [ { url = "http://192.168.1.132:80"; } ];
};
"matrix".loadBalancer = {
servers = [ { url = "http://192.168.1.114:80"; } ];
};
"mirror".loadBalancer = {
servers = [ { url = "http://192.168.1.185:80"; } ];
};
"ombi-anime".loadBalancer = {
servers = [ { url = "http://192.168.1.147:3580"; } ];
};
"ombi".loadBalancer = {
servers = [ { url = "http://192.168.1.147:3579"; } ];
};
"share".loadBalancer = {
servers = [ { url = "http://192.168.1.98:80"; } ];
};
"vault".loadBalancer = {
servers = [ { url = "http://192.168.1.160:80"; } ];
};
"wordpress".loadBalancer = {
servers = [ { url = "http://192.168.1.16:80"; } ];
};
"mail".loadBalancer = {
servers = [ { url = "https://192.168.1.128:443"; } ];
};
};
serversTransports = {
srv1-proxmox = {
serverName = "srv1-proxmox.internal.smayzy.ovh";
};
srv2-proxmox = {
serverName = "srv2-proxmox.internal.smayzy.ovh";
};
};
middlewares = {
dashboard-auth = {
basicAuth = {
usersFile = "/run/secrets/traefik-dashboard-auth";
};
};
};
}; # http
}; # dyna config
}; # services.traefik
}; # config
}; # ct traefik }; # ct traefik
}; # config }; # config
} }

View File

@ -23,48 +23,50 @@ in
privateNetwork = true; privateNetwork = true;
hostBridge = net.bridge; hostBridge = net.bridge;
localAddress = cfg.ip; localAddress = cfg.ip;
config = { ... }: { config =
system.stateVersion = "25.11"; { ... }:
{
system.stateVersion = "25.11";
services.unbound = { services.unbound = {
enable = true; enable = true;
settings = { settings = {
server = { server = {
interface = [ "0.0.0.0" ]; interface = [ "0.0.0.0" ];
qname-minimisation = "yes"; qname-minimisation = "yes";
minimal-responses = "no"; minimal-responses = "no";
access-control = [ access-control = [
"127.0.0.0/8 allow" "127.0.0.0/8 allow"
"192.168.0.0/16 allow" "192.168.0.0/16 allow"
]; ];
private-domain = [ "internal.smayzy.ovh" ]; private-domain = [ "internal.smayzy.ovh" ];
local-zone = [ "internal.smayzy.ovh. static" ]; local-zone = [ "internal.smayzy.ovh. static" ];
local-data = [ local-data = [
''"npm-local.internal.smayzy.ovh. A 192.168.1.181"'' ''"npm-local.internal.smayzy.ovh. A 192.168.1.181"''
''"npm.internal.smayzy.ovh. A 192.168.1.181"'' ''"npm.internal.smayzy.ovh. A 192.168.1.181"''
''"nfs-srv1.internal.smayzy.ovh. A 192.168.1.48"'' ''"nfs-srv1.internal.smayzy.ovh. A 192.168.1.48"''
''"traefik.internal.smayzy.ovh. A 192.168.1.203"'' ''"traefik.internal.smayzy.ovh. A 192.168.1.203"''
''"bazarr-anime.internal.smayzy.ovh. A 192.168.1.203"'' ''"bazarr-anime.internal.smayzy.ovh. A 192.168.1.203"''
''"bazarr.internal.smayzy.ovh. A 192.168.1.203"'' ''"bazarr.internal.smayzy.ovh. A 192.168.1.203"''
''"lidarr.internal.smayzy.ovh. A 192.168.1.203"'' ''"lidarr.internal.smayzy.ovh. A 192.168.1.203"''
''"nzbget.internal.smayzy.ovh. A 192.168.1.203"'' ''"nzbget.internal.smayzy.ovh. A 192.168.1.203"''
''"prowlarr.internal.smayzy.ovh. A 192.168.1.203"'' ''"prowlarr.internal.smayzy.ovh. A 192.168.1.203"''
''"qbittorrent.internal.smayzy.ovh. A 192.168.1.203"'' ''"qbittorrent.internal.smayzy.ovh. A 192.168.1.203"''
''"radarr.internal.smayzy.ovh. A 192.168.1.203"'' ''"radarr.internal.smayzy.ovh. A 192.168.1.203"''
''"sonarr-anime.internal.smayzy.ovh. A 192.168.1.203"'' ''"sonarr-anime.internal.smayzy.ovh. A 192.168.1.203"''
''"sonarr.internal.smayzy.ovh. A 192.168.1.203"'' ''"sonarr.internal.smayzy.ovh. A 192.168.1.203"''
''"srv1-proxmox.internal.smayzy.ovh. A 192.168.1.203"'' ''"srv1-proxmox.internal.smayzy.ovh. A 192.168.1.203"''
''"srv2-proxmox.internal.smayzy.ovh. A 192.168.1.203"'' ''"srv2-proxmox.internal.smayzy.ovh. A 192.168.1.203"''
]; ];
};
}; };
}; };
networking.defaultGateway = net.gateway;
networking.nameservers = net.dns;
networking.firewall.allowedTCPPorts = [ 53 ];
networking.firewall.allowedUDPPorts = [ 53 ];
}; };
networking.defaultGateway = net.gateway;
networking.nameservers = net.dns;
networking.firewall.allowedTCPPorts = [ 53 ];
networking.firewall.allowedUDPPorts = [ 53 ];
};
}; };
}; };
} }

View File

@ -1,4 +1,9 @@
{ lib, pkgs, config, ... }: {
lib,
pkgs,
config,
...
}:
let let
inherit (lib) mkIf mkOption types; inherit (lib) mkIf mkOption types;
in in