fix(caddy): switch dns provider from hetzner to cloudflare across all services

This commit is contained in:
uttarayan21
2025-11-27 22:17:31 +05:30
parent 9542689024
commit e53c1d2f25
16 changed files with 53 additions and 4845 deletions

View File

@@ -4,31 +4,31 @@
...
}: {
sops = {
secrets."hetzner/api_key".owner = config.services.caddy.user;
secrets."cloudflare/api_key".owner = config.services.caddy.user;
templates = {
"HETZNER_API_KEY.env".content = ''
HETZNER_API_KEY=${config.sops.placeholder."hetzner/api_key"}
"CLOUDFLARE_API_KEY.env".content = ''
CLOUDFLARE_API_KEY=${config.sops.placeholder."cloudflare/api_key"}
'';
};
};
services = {
caddy = {
enable = true;
environmentFile = config.sops.templates."HETZNER_API_KEY.env".path;
environmentFile = config.sops.templates."CLOUDFLARE_API_KEY.env".path;
globalConfig = ''
debug
'';
extraConfig = ''
(hetzner) {
(cloudflare) {
tls {
propagation_timeout -1
propagation_delay 120s
dns hetzner {env.HETZNER_API_KEY}
dns cloudflare {env.CLOUDFLARE_API_KEY}
resolvers 1.1.1.1
}
}
'';
package = pkgs.caddyWithHetzner;
package = pkgs.caddyWithCloudflare;
};
};
}

View File

@@ -1,7 +1,7 @@
{...}: {
services = {
caddy.virtualHosts."lmstudio.shiro.darksailor.dev" = ''
import hetzner
import cloudflare
reverse_proxy localhost:1234
'';
};

View File

@@ -4,10 +4,10 @@
...
}: {
sops = {
secrets."hetzner/api_key".owner = config.services.caddy.user;
secrets."cloudflare/api_key".owner = config.services.caddy.user;
templates = {
"HETZNER_API_KEY.env".content = ''
HETZNER_API_KEY=${config.sops.placeholder."hetzner/api_key"}
"CLOUDFLARE_API_KEY.env".content = ''
CLOUDFLARE_API_KEY=${config.sops.placeholder."cloudflare/api_key"}
'';
};
};
@@ -15,28 +15,22 @@
caddy = {
enable = true;
extraConfig = ''
(hetzner) {
(cloudflare) {
tls {
propagation_timeout -1
propagation_delay 120s
dns hetzner {env.HETZNER_API_KEY}
dns cloudflare {env.CLOUDFLARE_API_KEY}
resolvers 1.1.1.1
}
}
'';
package = pkgs.caddyWithHetzner;
# package = pkgs.caddy.withPlugins {
# plugins = ["github.com/caddy-dns/hetzner@v1.0.0"];
# # hash = "sha256-9ea0CfOHG7JhejB73HjfXQpnonn+ZRBqLNz1fFRkcDQ=";
# # hash = "sha256-9ea0CfOHG7JhejB73HjfXQpnonn+ZRBqLNz1fFRkcDQ="
# hash = "sha256-YUrprDZQL+cX3P8fVLKHouXTMG4rw3sCaQdGqiq37uA=";
# };
package = pkgs.caddyWithCloudflare;
};
};
systemd.services.caddy = {
after = ["sops-install-secrets.service"];
serviceConfig = {
EnvironmentFile = config.sops.templates."HETZNER_API_KEY.env".path;
EnvironmentFile = config.sops.templates."CLOUDFLARE_API_KEY.env".path;
};
};
}

View File

@@ -27,7 +27,7 @@
};
caddy = {
virtualHosts."llama.ryu.darksailor.dev".extraConfig = ''
import hetzner
import cloudflare
reverse_proxy localhost:${builtins.toString config.services.llama-cpp.port}
'';
};

View File

@@ -41,7 +41,7 @@
# };
caddy = {
# virtualHosts."llama.ryu.darksailor.dev".extraConfig = ''
# import hetzner
# import cloudflare
# forward_auth tako:5555 {
# uri /api/authz/forward-auth
# copy_headers Remote-User Remote-Groups Remote-Email Remote-Name
@@ -49,7 +49,7 @@
# reverse_proxy localhost:${builtins.toString config.services.open-webui.port}
# '';
virtualHosts."ollama.ryu.darksailor.dev".extraConfig = ''
import hetzner
import cloudflare
reverse_proxy localhost:${builtins.toString config.services.ollama.port}
'';
};

View File

@@ -5,14 +5,14 @@
./flaresolverr.nix
# # ./games
# ./gitea.nix
# ./homepage.nix
./homepage.nix
# # ./llama.nix
# # ./monitoring.nix
# # ./nextcloud.nix
# # ./paperless.nix
./prowlarr.nix
# ./resolved.nix
# ./searxng.nix
./searxng.nix
# ./headscale.nix
# ./shitpost.nix
./atuin.nix

View File

@@ -86,13 +86,13 @@
href = "https://cloud.darksailor.dev";
};
}
{
"Open WebUI" = {
icon = "open-webui.png";
description = "Open WebUI for self hosted llms";
href = "https://llama.darksailor.dev";
};
}
# {
# "Open WebUI" = {
# icon = "open-webui.png";
# description = "Open WebUI for self hosted llms";
# href = "https://llama.darksailor.dev";
# };
# }
{
"Immich" = {
icon = "immich.png";
@@ -159,7 +159,7 @@
};
caddy = {
virtualHosts."dashboard.darksailor.dev".extraConfig = ''
import auth
# import auth
reverse_proxy localhost:${builtins.toString config.services.homepage-dashboard.listenPort}
'';
};

View File

@@ -4,10 +4,10 @@
...
}: {
sops = {
secrets."hetzner/api_key".owner = config.services.caddy.user;
secrets."cloudflare/api_key".owner = config.services.caddy.user;
templates = {
"HETZNER_API_KEY.env".content = ''
HETZNER_API_KEY=${config.sops.placeholder."hetzner/api_key"}
"CLOUDFLARE_API_KEY.env".content = ''
CLOUDFLARE_API_KEY=${config.sops.placeholder."cloudflare/api_key"}
'';
};
};
@@ -15,11 +15,11 @@
caddy = {
enable = true;
extraConfig = ''
(hetzner) {
(cloudflare) {
tls {
propagation_timeout -1
propagation_delay 120s
dns hetzner {env.HETZNER_API_KEY}
dns cloudflare {env.CLOUDFLARE_API_KEY}
resolvers 1.1.1.1
}
}
@@ -31,17 +31,13 @@
}
}
'';
package = pkgs.caddy.withPlugins {
plugins = ["github.com/caddy-dns/hetzner@v1.0.0"];
hash = "sha256-Iwsu3s1qOwavcmmnd1w4GVeCkU1HhlWAJXMuc5NOc24=";
};
# package = pkgs.caddyWithHetzner;
package = pkgs.caddyWithCloudflare;
};
};
systemd.services.caddy = {
after = ["sops-install-secrets.service"];
serviceConfig = {
EnvironmentFile = config.sops.templates."HETZNER_API_KEY.env".path;
EnvironmentFile = config.sops.templates."CLOUDFLARE_API_KEY.env".path;
};
};
}

View File

@@ -7,7 +7,7 @@
};
caddy = {
virtualHosts."deluge.tsuba.darksailor.dev".extraConfig = ''
import hetzner
import cloudflare
reverse_proxy localhost:8112
'';
};

View File

@@ -36,7 +36,7 @@
services.caddy = {
virtualHosts."home.darksailor.dev".extraConfig = ''
import hetzner
import cloudflare
reverse_proxy localhost:8123
'';
};

View File

@@ -33,15 +33,15 @@
# };
caddy = {
# virtualHosts."jellyseerr.tsuba.darksailor.dev".extraConfig = ''
# import hetzner
# import cloudflare
# reverse_proxy localhost:${builtins.toString config.services.jellyseerr.port}
# '';
virtualHosts."jellyfin.tsuba.darksailor.dev".extraConfig = ''
import hetzner
import cloudflare
reverse_proxy localhost:8096
'';
virtualHosts."media.darksailor.dev".extraConfig = ''
import hetzner
import cloudflare
reverse_proxy localhost:8096
'';
};

View File

@@ -6,7 +6,7 @@
};
caddy = {
virtualHosts."prowlarr.tsuba.darksailor.dev".extraConfig = ''
import hetzner
import cloudflare
reverse_proxy localhost:9696
'';
};

View File

@@ -37,27 +37,27 @@
};
caddy.virtualHosts = {
"sonarr.tsuba.darksailor.dev".extraConfig = ''
import hetzner
import cloudflare
import auth
reverse_proxy localhost:${builtins.toString config.services.sonarr.settings.server.port}
'';
"radarr.tsuba.darksailor.dev".extraConfig = ''
import hetzner
import cloudflare
import auth
reverse_proxy localhost:${builtins.toString config.services.radarr.settings.server.port}
'';
"lidarr.tsuba.darksailor.dev".extraConfig = ''
import hetzner
import cloudflare
import auth
reverse_proxy localhost:${builtins.toString config.services.lidarr.settings.server.port}
'';
"bazarr.tsuba.darksailor.dev".extraConfig = ''
import hetzner
import cloudflare
import auth
reverse_proxy localhost:${builtins.toString config.services.bazarr.listenPort}
'';
"prowlarr.tsuba.darksailor.dev".extraConfig = ''
import hetzner
import cloudflare
import auth
reverse_proxy tako.darksailor.dev:9696
'';

View File

@@ -162,9 +162,9 @@
cargoLock = {lockFile = "${src}/Cargo.lock";};
};
# alvr-master = inputs.alvr.packages.${prev.system}.default;
caddyWithHetzner = final.pkgs.caddy.withPlugins {
plugins = ["github.com/caddy-dns/hetzner@v1.0.0"];
hash = "sha256-KNKmbZ65NwbEbseo5S3O0HzKseJkm4ZPugNOjMai02s=";
caddyWithCloudflare = final.pkgs.caddy.withPlugins {
plugins = ["github.com/caddy-dns/cloudflare@v0.2.2"];
hash = "sha256-ea8PC/+SlPRdEVVF/I3c1CBprlVp1nrumKM5cMwJJ3U=";
};
nix-auth = inputs.nix-auth.packages.${prev.system}.nix-auth;
kitty = inputs.nixpkgs-stable.legacyPackages.${prev.system}.kitty;

View File

@@ -13,6 +13,8 @@ llama:
api_key: ENC[AES256_GCM,data:wib+xbb25sTY2K9pacc1mU5eVSyQRurHiCMZyDVSqCAmG4yjkzEykvBevpThNbTZlsk6GZuK4hH0SYJM,iv:GTU6CQ83chXHAuuL0bFMf4L+UWqlcVfXnEE0/SxLzj4=,tag:0LkOSQsuuQd6TK3KHE95TA==,type:str]
hetzner:
api_key: ENC[AES256_GCM,data:8lDAf8wyM5b7SH/TaQxXyfITStiiO0obDMdWuRHHxHA=,iv:tHwpmW1Unr8DQXOUKutqyssOKOxtNYMIEc2aMXcmSbE=,tag:N2o9tsdaeoi/cm0ETf3UTQ==,type:str]
cloudflare:
api_key: ENC[AES256_GCM,data:t8kBhlFUxIqjV9f6eJboUrYMAmi5sH3serhD8gBZHVKAAiuy4HHlpg==,iv:xm1EBj5xqnfLYRIJ3XJ0VgyTubG7PMvKrkmlk86YTsE=,tag:0APDuhkAaxv/ozNPVsANLg==,type:str]
openai:
api_key: ENC[AES256_GCM,data:d6z9TySB6r2myUYu4u9aZwdoy1qL+DdU4MIuel1lFMMKD4XAqn5U9Vc3t5sJ/E3hDXud,iv:500n8CY8Qd/tg+MuT+RDRAyjgy6E9Aolud/2KrRyyqk=,tag:nCowF/czJMkYoNuSl1c3ZA==,type:str]
openrouter:
@@ -82,7 +84,7 @@ sops:
VGZKdHpVeFRpQUxtSEkyaEhLMlBJcGsKLb0DvPNZosPBUuiX6qz1s5IO5INQh8CK
ZtXTVClwMSmaUYhdSB2gKFrKVZHXTJZ4oAL5t/BpC0pOHyr+o96T3Q==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2025-11-27T13:28:41Z"
mac: ENC[AES256_GCM,data:KVdCTn6EXEAnj76kUL0d5eaYQJUc1HdfWTlwF+vku5wo2f9aJA2s6uyKXmhhx0e6q8muu10gMVObZzgae0vYZBOhO7GSxlLU9gCi4PaQo2Vz5mC75liCt3geoO9PTShZmLGaEPeuA9DFt/t3ggC2yqXij6uwz0SifvCuKM2QNzw=,iv:FSAa/eJBRDcxY+RLPy9O2PxLDibzRJrLh6+CtQNFtaQ=,tag:iNDr5XvpTJS8pNt9vZgOFw==,type:str]
lastmodified: "2025-11-27T16:07:40Z"
mac: ENC[AES256_GCM,data:uoEAPUETfHQHnuvP1Mv4OqLUmWqMZxEr4VAElMwaOoYmkMR2blr6htMY5A3y1Qzc1CDv9o5p7cUUNdkYU1VoCj/bGwKgASYjZKM7gZDmrivyl0/XXcdA56pmgPfmO5PCkml1SJwQwwty4uwGNruKfUDrhMH5fIfS4KbS/GmnFeQ=,iv:IIQNHJOoMY9WrWEw2blenTv7RDGRVN8dXxYwMDyZPg8=,tag:vTP8Zv3TOoacVs8JqgMi3A==,type:str]
unencrypted_suffix: _unencrypted
version: 3.11.0

File diff suppressed because it is too large Load Diff