feat(nix-cache): proxy ustc and cachix, prefer the LAN cache

Assisted-by: DeepSeek Harness (deepseek-flash)
This commit is contained in:
Ryan Yin committed 2026-11-06 17:27:18 +08:00
1 parent 7cfda39c2c
commit 35155906c1
4 files changed
+35 -22

No files matched your search

@@ -1,11 +1,15 @@
{
nginxEnabled = true;
caddyVhostExists = true;
ustcRemainsFirst = true;
lanCacheFirst = true;
ustcProxyConfigured = true;
nixosProxyConfigured = true;
numtideProxyConfigured = true;
numtideDirectFallback = true;
cachixProxyConfigured = true;
directFallbacks = true;
cacheLivesOnDataVolume = true;
nixosUpstream = "https://cache.nixos.org/";
numtideUpstream = "https://cache.numtide.com/";
cachixUpstream = "https://ryan4yin.cachix.org/";
ustcUpstream = "https://mirrors.ustc.edu.cn/nix-channels/store/";
}
@@ -11,11 +11,19 @@ in
{
nginxEnabled = nginx.enable;
caddyVhostExists = cfg.services.caddy.virtualHosts ? "nix-cache.writefor.fun";
ustcRemainsFirst = builtins.head substituters == "https://mirrors.ustc.edu.cn/nix-channels/store";
lanCacheFirst = lib.hasPrefix "https://nix-cache.writefor.fun/" (builtins.head substituters);
ustcProxyConfigured = builtins.elem "https://nix-cache.writefor.fun/mirrors.ustc.edu.cn/nix-channels/store" substituters;
nixosProxyConfigured = builtins.elem "https://nix-cache.writefor.fun/cache.nixos.org" substituters;
numtideProxyConfigured = builtins.elem "https://nix-cache.writefor.fun/cache.numtide.com" substituters;
numtideDirectFallback = builtins.elem "https://cache.numtide.com" substituters;
cachixProxyConfigured = builtins.elem "https://nix-cache.writefor.fun/ryan4yin.cachix.org" substituters;
directFallbacks =
builtins.elem "https://mirrors.ustc.edu.cn/nix-channels/store" substituters
&& builtins.elem "https://cache.numtide.com" substituters
&& builtins.elem "https://ryan4yin.cachix.org" substituters;
cacheLivesOnDataVolume = lib.hasInfix "/data/apps/nix-cache-proxy" nginx.appendHttpConfig;
nixosUpstream = nginx.virtualHosts."nix-cache-proxy".locations."/cache.nixos.org/".proxyPass;
numtideUpstream = nginx.virtualHosts."nix-cache-proxy".locations."/cache.numtide.com/".proxyPass;
cachixUpstream = nginx.virtualHosts."nix-cache-proxy".locations."/ryan4yin.cachix.org/".proxyPass;
ustcUpstream =
nginx.virtualHosts."nix-cache-proxy".locations."/mirrors.ustc.edu.cn/nix-channels/store/".proxyPass;
}