add traefik dashboard
All checks were successful
nixos config pipeline / show-flake (push) Successful in 19s
nixos config pipeline / deploy (push) Successful in 8s

This commit is contained in:
smayzy 2025-09-02 15:49:10 +02:00
parent fe057f88e5
commit 7ffe9399e7
4 changed files with 23 additions and 4 deletions

View File

@ -11,7 +11,9 @@
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.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" ];
smayzy = { smayzy = {
desktop.enable = true; desktop.enable = true;
@ -22,6 +24,10 @@
docker.enable = true; docker.enable = true;
containers = { containers = {
nixos = { nixos = {
traefik = {
enable = true;
ip = "192.168.1.203/24";
};
}; };
docker = { docker = {
}; };

View File

@ -11,7 +11,9 @@
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.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" ];
smayzy = { smayzy = {
server.enable = true; server.enable = true;

View File

@ -41,7 +41,7 @@ in
networking.defaultGateway = net.gateway; networking.defaultGateway = net.gateway;
networking.nameservers = net.dns; networking.nameservers = net.dns;
networking.firewall.allowedTCPPorts = [ 8080 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"
@ -55,7 +55,6 @@ in
}; };
api = { api = {
dashboard = true; dashboard = true;
insecure = true;
}; };
entryPoints = { entryPoints = {
local = { local = {
@ -75,6 +74,7 @@ in
cloudflare = { cloudflare = {
acme = { acme = {
email = "smayzy@smayzy.ovh"; email = "smayzy@smayzy.ovh";
storage = "/var/lib/traefik/acme.json";
dnsChallenge = { dnsChallenge = {
provider = "cloudflare"; provider = "cloudflare";
resolvers = [ "192.168.1.202" ]; resolvers = [ "192.168.1.202" ];
@ -86,6 +86,16 @@ in
}; };
dynamicConfigOptions = { dynamicConfigOptions = {
http = {
routers = {
traefik = {
rule = "Host(`traefik.internal.smayzy.ovh`) && (PathPrefix(`/api`) || PathPrefix(`/dashboard`))";
entryPoints = [ "localSec" ];
service = "api@internal";
tls.certResolver = "cloudflare";
};
};
};
}; };
}; };
}; };

View File

@ -41,6 +41,7 @@ in
''"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.200"'' ''"npm.internal.smayzy.ovh. A 192.168.1.200"''
''"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"''
''"npm.internal.internal.smayzy.ovh. CNAME npm-local.internal.smayzy.ovh."'' ''"npm.internal.internal.smayzy.ovh. CNAME npm-local.internal.smayzy.ovh."''
''"bazarr-anime.internal.smayzy.ovh. CNAME npm-local.internal.smayzy.ovh."'' ''"bazarr-anime.internal.smayzy.ovh. CNAME npm-local.internal.smayzy.ovh."''