36 lines
1 KiB
Nix
36 lines
1 KiB
Nix
{ config, lib, pkgs, ... }:
|
|
|
|
let
|
|
staticConfig = import ./configuration/static.nix { inherit lib config; };
|
|
middlewaresConfig = import ./configuration/middlewares.nix { inherit lib config; };
|
|
routersConfig = import ./configuration/routers.nix { inherit lib config; };
|
|
servicesConfig = import ./configuration/services.nix { inherit lib config; };
|
|
in
|
|
{
|
|
services.traefik = {
|
|
enable = true;
|
|
|
|
# ==== Static Configuration ====
|
|
staticConfigOptions = staticConfig;
|
|
|
|
# ==== Dynamic Configuration ====
|
|
dynamicConfigOptions.http = {
|
|
routers = routersConfig;
|
|
services = servicesConfig;
|
|
middlewares = middlewaresConfig;
|
|
|
|
serversTransports = {
|
|
insecureTransport = {
|
|
insecureSkipVerify = true;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
systemd.services.traefik.serviceConfig.Environment = [
|
|
"CLOUDFLARE_DNS_API_TOKEN=gQYyG6cRw-emp_qpsUj9TrkYgoVC1v9UUtv94ozA"
|
|
"CLOUDFLARE_ZONE_API_TOKEN=gQYyG6cRw-emp_qpsUj9TrkYgoVC1v9UUtv94ozA"
|
|
];
|
|
|
|
virtualisation.docker.enable = true;
|
|
}
|