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 = { sops = {
secrets."hetzner/api_key".owner = config.services.caddy.user; secrets."cloudflare/api_key".owner = config.services.caddy.user;
templates = { templates = {
"HETZNER_API_KEY.env".content = '' "CLOUDFLARE_API_KEY.env".content = ''
HETZNER_API_KEY=${config.sops.placeholder."hetzner/api_key"} CLOUDFLARE_API_KEY=${config.sops.placeholder."cloudflare/api_key"}
''; '';
}; };
}; };
services = { services = {
caddy = { caddy = {
enable = true; enable = true;
environmentFile = config.sops.templates."HETZNER_API_KEY.env".path; environmentFile = config.sops.templates."CLOUDFLARE_API_KEY.env".path;
globalConfig = '' globalConfig = ''
debug debug
''; '';
extraConfig = '' extraConfig = ''
(hetzner) { (cloudflare) {
tls { tls {
propagation_timeout -1 propagation_timeout -1
propagation_delay 120s propagation_delay 120s
dns hetzner {env.HETZNER_API_KEY} dns cloudflare {env.CLOUDFLARE_API_KEY}
resolvers 1.1.1.1 resolvers 1.1.1.1
} }
} }
''; '';
package = pkgs.caddyWithHetzner; package = pkgs.caddyWithCloudflare;
}; };
}; };
} }

View File

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

View File

@@ -4,10 +4,10 @@
... ...
}: { }: {
sops = { sops = {
secrets."hetzner/api_key".owner = config.services.caddy.user; secrets."cloudflare/api_key".owner = config.services.caddy.user;
templates = { templates = {
"HETZNER_API_KEY.env".content = '' "CLOUDFLARE_API_KEY.env".content = ''
HETZNER_API_KEY=${config.sops.placeholder."hetzner/api_key"} CLOUDFLARE_API_KEY=${config.sops.placeholder."cloudflare/api_key"}
''; '';
}; };
}; };
@@ -15,28 +15,22 @@
caddy = { caddy = {
enable = true; enable = true;
extraConfig = '' extraConfig = ''
(hetzner) { (cloudflare) {
tls { tls {
propagation_timeout -1 propagation_timeout -1
propagation_delay 120s propagation_delay 120s
dns hetzner {env.HETZNER_API_KEY} dns cloudflare {env.CLOUDFLARE_API_KEY}
resolvers 1.1.1.1 resolvers 1.1.1.1
} }
} }
''; '';
package = pkgs.caddyWithHetzner; package = pkgs.caddyWithCloudflare;
# 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=";
# };
}; };
}; };
systemd.services.caddy = { systemd.services.caddy = {
after = ["sops-install-secrets.service"]; after = ["sops-install-secrets.service"];
serviceConfig = { 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 = { caddy = {
virtualHosts."llama.ryu.darksailor.dev".extraConfig = '' virtualHosts."llama.ryu.darksailor.dev".extraConfig = ''
import hetzner import cloudflare
reverse_proxy localhost:${builtins.toString config.services.llama-cpp.port} reverse_proxy localhost:${builtins.toString config.services.llama-cpp.port}
''; '';
}; };

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -162,9 +162,9 @@
cargoLock = {lockFile = "${src}/Cargo.lock";}; cargoLock = {lockFile = "${src}/Cargo.lock";};
}; };
# alvr-master = inputs.alvr.packages.${prev.system}.default; # alvr-master = inputs.alvr.packages.${prev.system}.default;
caddyWithHetzner = final.pkgs.caddy.withPlugins { caddyWithCloudflare = final.pkgs.caddy.withPlugins {
plugins = ["github.com/caddy-dns/hetzner@v1.0.0"]; plugins = ["github.com/caddy-dns/cloudflare@v0.2.2"];
hash = "sha256-KNKmbZ65NwbEbseo5S3O0HzKseJkm4ZPugNOjMai02s="; hash = "sha256-ea8PC/+SlPRdEVVF/I3c1CBprlVp1nrumKM5cMwJJ3U=";
}; };
nix-auth = inputs.nix-auth.packages.${prev.system}.nix-auth; nix-auth = inputs.nix-auth.packages.${prev.system}.nix-auth;
kitty = inputs.nixpkgs-stable.legacyPackages.${prev.system}.kitty; 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] api_key: ENC[AES256_GCM,data:wib+xbb25sTY2K9pacc1mU5eVSyQRurHiCMZyDVSqCAmG4yjkzEykvBevpThNbTZlsk6GZuK4hH0SYJM,iv:GTU6CQ83chXHAuuL0bFMf4L+UWqlcVfXnEE0/SxLzj4=,tag:0LkOSQsuuQd6TK3KHE95TA==,type:str]
hetzner: hetzner:
api_key: ENC[AES256_GCM,data:8lDAf8wyM5b7SH/TaQxXyfITStiiO0obDMdWuRHHxHA=,iv:tHwpmW1Unr8DQXOUKutqyssOKOxtNYMIEc2aMXcmSbE=,tag:N2o9tsdaeoi/cm0ETf3UTQ==,type:str] 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: openai:
api_key: ENC[AES256_GCM,data:d6z9TySB6r2myUYu4u9aZwdoy1qL+DdU4MIuel1lFMMKD4XAqn5U9Vc3t5sJ/E3hDXud,iv:500n8CY8Qd/tg+MuT+RDRAyjgy6E9Aolud/2KrRyyqk=,tag:nCowF/czJMkYoNuSl1c3ZA==,type:str] api_key: ENC[AES256_GCM,data:d6z9TySB6r2myUYu4u9aZwdoy1qL+DdU4MIuel1lFMMKD4XAqn5U9Vc3t5sJ/E3hDXud,iv:500n8CY8Qd/tg+MuT+RDRAyjgy6E9Aolud/2KrRyyqk=,tag:nCowF/czJMkYoNuSl1c3ZA==,type:str]
openrouter: openrouter:
@@ -82,7 +84,7 @@ sops:
VGZKdHpVeFRpQUxtSEkyaEhLMlBJcGsKLb0DvPNZosPBUuiX6qz1s5IO5INQh8CK VGZKdHpVeFRpQUxtSEkyaEhLMlBJcGsKLb0DvPNZosPBUuiX6qz1s5IO5INQh8CK
ZtXTVClwMSmaUYhdSB2gKFrKVZHXTJZ4oAL5t/BpC0pOHyr+o96T3Q== ZtXTVClwMSmaUYhdSB2gKFrKVZHXTJZ4oAL5t/BpC0pOHyr+o96T3Q==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2025-11-27T13:28:41Z" lastmodified: "2025-11-27T16:07:40Z"
mac: ENC[AES256_GCM,data:KVdCTn6EXEAnj76kUL0d5eaYQJUc1HdfWTlwF+vku5wo2f9aJA2s6uyKXmhhx0e6q8muu10gMVObZzgae0vYZBOhO7GSxlLU9gCi4PaQo2Vz5mC75liCt3geoO9PTShZmLGaEPeuA9DFt/t3ggC2yqXij6uwz0SifvCuKM2QNzw=,iv:FSAa/eJBRDcxY+RLPy9O2PxLDibzRJrLh6+CtQNFtaQ=,tag:iNDr5XvpTJS8pNt9vZgOFw==,type:str] mac: ENC[AES256_GCM,data:uoEAPUETfHQHnuvP1Mv4OqLUmWqMZxEr4VAElMwaOoYmkMR2blr6htMY5A3y1Qzc1CDv9o5p7cUUNdkYU1VoCj/bGwKgASYjZKM7gZDmrivyl0/XXcdA56pmgPfmO5PCkml1SJwQwwty4uwGNruKfUDrhMH5fIfS4KbS/GmnFeQ=,iv:IIQNHJOoMY9WrWEw2blenTv7RDGRVN8dXxYwMDyZPg8=,tag:vTP8Zv3TOoacVs8JqgMi3A==,type:str]
unencrypted_suffix: _unencrypted unencrypted_suffix: _unencrypted
version: 3.11.0 version: 3.11.0

File diff suppressed because it is too large Load Diff