mirror of
https://github.com/TheWanderingCrow/CrOS.git
synced 2026-01-12 02:04:09 -05:00
57 lines
1.6 KiB
Nix
57 lines
1.6 KiB
Nix
{
|
|
lib,
|
|
config,
|
|
...
|
|
}: {
|
|
sops = {
|
|
secrets."attic/server_token" = {};
|
|
secrets."cloudflare/r2/access_key" = {};
|
|
secrets."cloudflare/r2/secret_key" = {};
|
|
templates."attic-env".content = ''
|
|
ATTIC_SERVER_TOKEN_RS256_SECRET_BASE64=${config.sops.placeholder."attic/server_token"}
|
|
AWS_ACCESS_KEY_ID=${config.sops.placeholder."cloudflare/r2/access_key"}
|
|
AWS_SECRET_ACCESS_KEY=${config.sops.placeholder."cloudflare/r2/secret_key"}
|
|
'';
|
|
};
|
|
services = {
|
|
atticd = {
|
|
enable = true;
|
|
mode = "monolithic";
|
|
environmentFile = config.sops.templates."attic-env".path;
|
|
settings = {
|
|
listen = "[::]:8080";
|
|
api-endpoint = "https://cache.wanderingcrow.net/";
|
|
jwt = {};
|
|
chunking = {
|
|
nar-size-threshold = 64 * 1024; # 64 KiB
|
|
min-size = 16 * 1024; # 16 KiB
|
|
avg-size = 64 * 1024; # 64 KiB
|
|
max-size = 256 * 1024; # 256 KiB
|
|
};
|
|
storage = {
|
|
type = "s3";
|
|
region = "";
|
|
bucket = "wce-attic-cache";
|
|
endpoint = "https://68c4b3ab47c1a97037ab5a938f772d69.r2.cloudflarestorage.com";
|
|
};
|
|
};
|
|
};
|
|
nginx = {
|
|
enable = true;
|
|
recommendedProxySettings = true;
|
|
virtualHosts = {
|
|
"cache.wanderingcrow.net" = {
|
|
forceSSL = true;
|
|
extraConfig = ''
|
|
client_max_body_size 0;
|
|
'';
|
|
useACMEHost = "cache.wanderingcrow.net";
|
|
locations."/" = {
|
|
proxyPass = "http://localhost:8080";
|
|
proxyWebsockets = true;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|