From 2cdc130cfbd2c096541e6446607cec16358852b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Madeleine=20Sydney=20=C5=9Alaga?= Date: Wed, 4 Mar 2026 14:48:35 -0700 Subject: [PATCH] wip: attic --- hosts/deertopia/configuration.nix | 1 + modules/nixos/deertopia/atticd.nix | 39 ++++++++++++++++++++++++++++++ secrets.yaml | 5 ++-- 3 files changed, 43 insertions(+), 2 deletions(-) create mode 100644 modules/nixos/deertopia/atticd.nix diff --git a/hosts/deertopia/configuration.nix b/hosts/deertopia/configuration.nix index 13103ef..04d8563 100644 --- a/hosts/deertopia/configuration.nix +++ b/hosts/deertopia/configuration.nix @@ -49,6 +49,7 @@ deertopia = { authelia.enable = true; + # atticd.enable = true; gitea.enable = true; quiver.enable = true; www.enable = true; diff --git a/modules/nixos/deertopia/atticd.nix b/modules/nixos/deertopia/atticd.nix new file mode 100644 index 0000000..b7fd18a --- /dev/null +++ b/modules/nixos/deertopia/atticd.nix @@ -0,0 +1,39 @@ +{ config, lib, pkgs, ... }: + +let cfg = config.sydnix.deertopia.atticd; +in { + options.sydnix.deertopia.atticd = { + enable = lib.mkEnableOption "Atticd"; + port = lib.mkOption { + default = 8012; + type = lib.types.port; + }; + }; + + config = lib.mkIf cfg.enable { + sydnix.sops.secrets.atticd-token = { + # owner = config.services.atticd.user; + # group = config.services.atticd.group; + }; + + services.atticd = { + enable = true; + environmentFile = + config.sops.secrets.atticd-token.path; + settings = { + api-endpoint = "https://cache2.deertopia.net/"; + listen = "[::]:${toString cfg.port}"; + garbage-collection = { + default-retention-period = "3 months"; + }; + }; + }; + + sydnix.deertopia.nginx.vhosts."attic".vhost = { + forceSSL = true; + enableACME = true; + locations."/".proxyPass = + "http://127.0.0.1:${toString cfg.port}"; + }; + }; +} diff --git a/secrets.yaml b/secrets.yaml index d34b43e..cb632b6 100644 --- a/secrets.yaml +++ b/secrets.yaml @@ -30,6 +30,7 @@ anki-username: ENC[AES256_GCM,data:584uxjwyodM=,iv:/6HLSLzHgc77U1iN5JDLR9F+o8Nfe anki-password: ENC[AES256_GCM,data:plSKMTeeilKt6weAnzw/jMo65A==,iv:lzuPUt1+2Iwi9sHbaFj0OuBLd1p+Do2N5aCYXd45MFQ=,tag:WIABFp1T6NuIGpqqQFHmrg==,type:str] anki-sync-key: ENC[AES256_GCM,data:Ka4sPghPwmWQvdXw40ZRLogoMVTBjLnaSyHT9lTfn2XWHHqFAkANAg==,iv:bFkb/k7UUL8t26LjmQwiDYJpvq93NWuqUU/jNYkr7GQ=,tag:Mx5JdqjI3MDk7hsvOlPYIw==,type:str] gitea-actions-runner-token: ENC[AES256_GCM,data:JglbJ2hgXl1wV2bCkcged+D3UrpWMMBuX+ri6YeIqwLIlscvK/wVCdsxQZtDGw==,iv:BYhgfoIa/wHQkd4c7kU8AWAJQfpTfUvSamFXDBqQXTE=,tag:sIK1XxVPIU+uBGaJY3AmTQ==,type:str] +atticd-token: ENC[AES256_GCM,data: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,iv:CdM+EjkWqiJAAw9NmOpGYJcYdJN21oUlgGv+lGYvXkw=,tag:+ZKleIkqOZELjtlW29Dxsg==,type:str] sops: age: - recipient: age10fqh0td67alzpyjyhdex5ncj9thvaty506r0t63vs2nz4ldafgaqadl8mg @@ -50,7 +51,7 @@ sops: TXFLY2l0UHJ3Z0NGZjVpbTQ2UC8yaTQKA7wTmW9Ha6T2KmCr/nkXdizgv8+V6SAp ZhDO+uDQ1evIh2wLWMOXNJ3d/zplLCOTzR2xkqBIUp5V7MXj45RUIA== -----END AGE ENCRYPTED FILE----- - lastmodified: "2026-03-01T08:57:03Z" - mac: ENC[AES256_GCM,data:uNqk+x+nLgDUdHI5flUuXF/vGnkMpUUhdFfkOULm+bebkPL6PI5kJHV78GPs+aA9BPCmTvomgGe51zvyJFRcH3gBJ2bF5YfdC0ROrRbZS4KYIuZwrELf77zq73MbIFt//BTpDYK4cUC8CPRoAEwtoTG6lyHbxcAk4+B5w2NFfN8=,iv:rFaEaav1LHrhtKtiRfIqHTj5+cOBv3lC1UyqEvOoUsg=,tag:x/4n+rcQxd+neQGLcXa66g==,type:str] + lastmodified: "2026-03-04T21:46:22Z" + mac: ENC[AES256_GCM,data:OJA47n1nhiYIhy8b6n/PMPVy3H46+VnaBDel1n4aNSiqc2qwGk7r5S02nTE/Na1Ihg/91GitDhtS6/VSe2q41HM719d2iIq/lb7kfRZpRQeffvc+G4e82YmwqbM85I+OxvmbttGNjw6MwvQJBiMC1/fMFAeer9iaRByINnli96s=,iv:xzontZ7ZFkioY+XaPxlFyW1beRydvfd0Y6Ca2d48gxI=,tag:Wb0BZQrw8Bv3VT36oK9DJA==,type:str] unencrypted_suffix: _unencrypted version: 3.11.0