traefik: init cloudflare challenge

This commit is contained in:
notohh 2023-05-14 09:56:51 -04:00
parent b4ba6d5894
commit a026229611
Signed by: notohh
GPG key ID: BD47506D475EE86D

View file

@ -1,6 +1,15 @@
{...}: { {config, ...}: {
networking.firewall.allowedTCPPorts = [80 443 8080]; networking.firewall.allowedTCPPorts = [80 443 8080];
systemd.user.services.traefik.after = ["docker.service"];
systemd.services.traefik = {
environment = {
CLOUDFLARE_EMAIL = "jch0tm2e@notohh.dev";
};
serviceConfig = {
EnvironmentFile = config.sops.secrets.cloudflare-api-key.path;
};
};
services.traefik = { services.traefik = {
enable = true; enable = true;
group = "docker"; group = "docker";
@ -13,29 +22,39 @@
service = "api@internal"; service = "api@internal";
}; };
homepage = { homepage = {
rule = "Host(`homepage.lab`)"; rule = "Host(`dashboard.lab`)";
entrypoints = ["web"]; entrypoints = ["web"];
service = "homepage@docker"; service = "homepage@docker";
}; };
searxng = { searxng = {
rule = "Host(`test`)"; rule = "Host(`searxng.lab`)";
entrypoints = ["web"]; entrypoints = ["web"];
service = "searxng@docker"; service = "searxng@docker";
}; };
hugo = { hugo = {
rule = "Host(`hugo.lab`)"; rule = "Host(`notohh.dev`)";
entryPoints = ["websecure"]; entryPoints = ["websecure"];
service = "hugo@docker"; service = "hugo@docker";
tls.domains = [{main = "*.notohh.dev";}];
tls.certresolver = "staging";
}; };
stash = { stash = {
rule = "Host(`stash.lab`)"; rule = "Host(`stash.lab`)";
entrypoints = ["web"]; entrypoints = ["web"];
service = "stash@docker"; service = "stash@docker";
}; };
foundryvtt = {
rule = "Host(`foundry.notohh.dev`)";
entrypoints = ["websecure"];
service = "foundryvtt@docker";
tls.domains = [{main = "*.notohh.dev";}];
tls.certresolver = "staging";
};
}; };
}; };
}; };
staticConfigOptions = { staticConfigOptions = {
log.level = "DEBUG";
api.dashboard = true; api.dashboard = true;
api.insecure = true; api.insecure = true;
providers.docker = true; providers.docker = true;
@ -54,7 +73,7 @@
caServer = "https://acme-staging-v02.api.letsencrypt.org/directory"; caServer = "https://acme-staging-v02.api.letsencrypt.org/directory";
dnsChallenge = { dnsChallenge = {
provider = "cloudflare"; provider = "cloudflare";
delayBeforeCheck = 0; delayBeforeCheck = "0";
}; };
}; };
production.acme = { production.acme = {
@ -63,7 +82,7 @@
caServer = "https://acme-v02.api.letsencrypt.org/directory"; caServer = "https://acme-v02.api.letsencrypt.org/directory";
dnsChallenge = { dnsChallenge = {
provider = "cloudflare"; provider = "cloudflare";
delayBeforeCheck = 0; delayBeforeCheck = "0";
}; };
}; };
}; };