diff --git a/flake.lock b/flake.lock index e0c0bc2..f87ba7c 100644 --- a/flake.lock +++ b/flake.lock @@ -33,6 +33,50 @@ "type": "github" } }, + "atticd": { + "inputs": { + "crane": "crane", + "flake-compat": "flake-compat", + "flake-parts": "flake-parts", + "nix-github-actions": "nix-github-actions", + "nixpkgs": "nixpkgs", + "nixpkgs-stable": "nixpkgs-stable" + }, + "locked": { + "lastModified": 1731270564, + "narHash": "sha256-6KMC/NH/VWP5Eb+hA56hz0urel3jP6Y6cF2PX6xaTkk=", + "owner": "zhaofengli", + "repo": "attic", + "rev": "47752427561f1c34debb16728a210d378f0ece36", + "type": "github" + }, + "original": { + "owner": "zhaofengli", + "repo": "attic", + "type": "github" + } + }, + "crane": { + "inputs": { + "nixpkgs": [ + "atticd", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1722960479, + "narHash": "sha256-NhCkJJQhD5GUib8zN9JrmYGMwt4lCRp6ZVNzIiYCl0Y=", + "owner": "ipetkov", + "repo": "crane", + "rev": "4c6c77920b8d44cd6660c1621dea6b3fc4b4c4f4", + "type": "github" + }, + "original": { + "owner": "ipetkov", + "repo": "crane", + "type": "github" + } + }, "flake-compat": { "flake": false, "locked": { @@ -50,6 +94,22 @@ } }, "flake-compat_2": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_3": { "flake": false, "locked": { "lastModified": 1717312683, @@ -66,6 +126,27 @@ } }, "flake-parts": { + "inputs": { + "nixpkgs-lib": [ + "atticd", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1722555600, + "narHash": "sha256-XOQkdLafnb/p9ij77byFQjDf5m5QYl9b2REiVClC+x4=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "8471fe90ad337a8074e957b69ca4d0089218391d", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_2": { "inputs": { "nixpkgs-lib": "nixpkgs-lib" }, @@ -163,7 +244,7 @@ "hyprlang": "hyprlang", "hyprutils": "hyprutils", "hyprwayland-scanner": "hyprwayland-scanner", - "nixpkgs": "nixpkgs", + "nixpkgs": "nixpkgs_2", "pre-commit-hooks": "pre-commit-hooks", "systems": "systems", "xdph": "xdph" @@ -288,8 +369,8 @@ }, "nix-gaming": { "inputs": { - "flake-parts": "flake-parts", - "nixpkgs": "nixpkgs_2", + "flake-parts": "flake-parts_2", + "nixpkgs": "nixpkgs_3", "umu": "umu" }, "locked": { @@ -306,13 +387,34 @@ "type": "github" } }, + "nix-github-actions": { + "inputs": { + "nixpkgs": [ + "atticd", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1729742964, + "narHash": "sha256-B4mzTcQ0FZHdpeWcpDYPERtyjJd/NIuaQ9+BV1h+MpA=", + "owner": "nix-community", + "repo": "nix-github-actions", + "rev": "e04df33f62cdcf93d73e9a04142464753a16db67", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nix-github-actions", + "type": "github" + } + }, "nixos-cosmic": { "inputs": { - "flake-compat": "flake-compat_2", + "flake-compat": "flake-compat_3", "nixpkgs": [ "nixpkgs" ], - "nixpkgs-stable": "nixpkgs-stable_2", + "nixpkgs-stable": "nixpkgs-stable_3", "rust-overlay": "rust-overlay" }, "locked": { @@ -331,16 +433,16 @@ }, "nixpkgs": { "locked": { - "lastModified": 1730785428, - "narHash": "sha256-Zwl8YgTVJTEum+L+0zVAWvXAGbWAuXHax3KzuejaDyo=", + "lastModified": 1726042813, + "narHash": "sha256-LnNKCCxnwgF+575y0pxUdlGZBO/ru1CtGHIqQVfvjlA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "4aa36568d413aca0ea84a1684d2d46f55dbabad7", + "rev": "159be5db480d1df880a0135ca0bfed84c2f88353", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-unstable", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } @@ -358,6 +460,22 @@ } }, "nixpkgs-stable": { + "locked": { + "lastModified": 1724316499, + "narHash": "sha256-Qb9MhKBUTCfWg/wqqaxt89Xfi6qTD3XpTzQ9eXi3JmE=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "797f7dc49e0bc7fab4b57c021cdf68f595e47841", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-24.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable_2": { "locked": { "lastModified": 1730741070, "narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=", @@ -373,7 +491,7 @@ "type": "github" } }, - "nixpkgs-stable_2": { + "nixpkgs-stable_3": { "locked": { "lastModified": 1730963269, "narHash": "sha256-rz30HrFYCHiWEBCKHMffHbMdWJ35hEkcRVU0h7ms3x0=", @@ -389,7 +507,7 @@ "type": "github" } }, - "nixpkgs-stable_3": { + "nixpkgs-stable_4": { "locked": { "lastModified": 1730602179, "narHash": "sha256-efgLzQAWSzJuCLiCaQUCDu4NudNlHdg2NzGLX5GYaEY=", @@ -422,6 +540,22 @@ } }, "nixpkgs_2": { + "locked": { + "lastModified": 1730785428, + "narHash": "sha256-Zwl8YgTVJTEum+L+0zVAWvXAGbWAuXHax3KzuejaDyo=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "4aa36568d413aca0ea84a1684d2d46f55dbabad7", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { "locked": { "lastModified": 1730958623, "narHash": "sha256-JwQZIGSYnRNOgDDoIgqKITrPVil+RMWHsZH1eE1VGN0=", @@ -437,7 +571,7 @@ "type": "github" } }, - "nixpkgs_3": { + "nixpkgs_4": { "locked": { "lastModified": 1731139594, "narHash": "sha256-IigrKK3vYRpUu+HEjPL/phrfh7Ox881er1UEsZvw9Q4=", @@ -453,7 +587,7 @@ "type": "github" } }, - "nixpkgs_4": { + "nixpkgs_5": { "locked": { "lastModified": 1730531603, "narHash": "sha256-Dqg6si5CqIzm87sp57j5nTaeBbWhHFaVyG7V6L8k3lY=", @@ -469,7 +603,7 @@ "type": "github" } }, - "nixpkgs_5": { + "nixpkgs_6": { "locked": { "lastModified": 1727348695, "narHash": "sha256-J+PeFKSDV+pHL7ukkfpVzCOO7mBSrrpJ3svwBFABbhI=", @@ -487,13 +621,13 @@ }, "pre-commit-hooks": { "inputs": { - "flake-compat": "flake-compat", + "flake-compat": "flake-compat_2", "gitignore": "gitignore", "nixpkgs": [ "hyprland", "nixpkgs" ], - "nixpkgs-stable": "nixpkgs-stable" + "nixpkgs-stable": "nixpkgs-stable_2" }, "locked": { "lastModified": 1730814269, @@ -511,11 +645,12 @@ }, "root": { "inputs": { + "atticd": "atticd", "home-manager": "home-manager", "hyprland": "hyprland", "nix-gaming": "nix-gaming", "nixos-cosmic": "nixos-cosmic", - "nixpkgs": "nixpkgs_3", + "nixpkgs": "nixpkgs_4", "nixpkgsC": "nixpkgsC", "sops-nix": "sops-nix", "ucodenix": "ucodenix", @@ -548,7 +683,7 @@ "nixpkgs": [ "nixpkgs" ], - "nixpkgs-stable": "nixpkgs-stable_3" + "nixpkgs-stable": "nixpkgs-stable_4" }, "locked": { "lastModified": 1731364708, @@ -581,7 +716,7 @@ }, "ucodenix": { "inputs": { - "nixpkgs": "nixpkgs_4" + "nixpkgs": "nixpkgs_5" }, "locked": { "lastModified": 1731370323, @@ -665,7 +800,7 @@ }, "zen-browser": { "inputs": { - "nixpkgs": "nixpkgs_5" + "nixpkgs": "nixpkgs_6" }, "locked": { "lastModified": 1727721329, diff --git a/flake.nix b/flake.nix index 7ca2fe8..8e25336 100644 --- a/flake.nix +++ b/flake.nix @@ -3,13 +3,15 @@ inputs = { nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; nixpkgsC.url = "github:nixos/nixpkgs?rev=05bbf675397d5366259409139039af8077d695ce"; + ucodenix.url = "github:e-tho/ucodenix"; + nix-gaming.url = "github:fufexan/nix-gaming"; + hyprland.url = "github:hyprwm/Hyprland"; + zen-browser.url = "github:MarceColl/zen-browser-flake"; + atticd.url = "github:zhaofengli/attic"; home-manager = { url = "github:nix-community/home-manager/master"; inputs.nixpkgs.follows = "nixpkgs"; }; - ucodenix.url = "github:e-tho/ucodenix"; - nix-gaming.url = "github:fufexan/nix-gaming"; - hyprland.url = "github:hyprwm/Hyprland"; sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; @@ -18,17 +20,13 @@ url = "github:lilyinstarlight/nixos-cosmic"; inputs.nixpkgs.follows = "nixpkgs"; }; - zen-browser.url = "github:MarceColl/zen-browser-flake"; }; outputs = { self, nixpkgs, - nixpkgsC, home-manager, - sops-nix, - nixos-cosmic, ... }@inputs: let @@ -42,7 +40,7 @@ config.allowUnfree = true; }; pkgs = makePkgs nixpkgs; - pkgsC = makePkgs nixpkgsC; + pkgsC = makePkgs inputs.nixpkgsC; overlays = [ (import ./overlay.nix { inherit pkgs pkgsC; }) ]; createConfig = name: { inherit system; @@ -52,8 +50,9 @@ modules = [ (_: { nixpkgs.overlays = overlays; }) ./hosts/${name}/configuration.nix - sops-nix.nixosModules.sops - nixos-cosmic.nixosModules.default + inputs.sops-nix.nixosModules.sops + inputs.nixos-cosmic.nixosModules.default + inputs.attic.nixosModules.default ]; }; in diff --git a/modules/servers/attic.nix b/modules/servers/attic.nix new file mode 100644 index 0000000..0dbccf7 --- /dev/null +++ b/modules/servers/attic.nix @@ -0,0 +1,34 @@ +{ + lib, + config, + ... +}: +let + cfg = config.my.servers.atticd; + setup = import ./setup.nix { inherit lib config; }; +in +{ + options.my.servers.atticd = setup.mkOptions "atticd" "cache" 2343; + config = lib.mkIf cfg.enable { + sops.secrets."private_cache_keys/attic".sopsFile = ../../secrets/keys.yaml; + services = { + atticd = { + enable = true; + environmentFile = config.sops.secrets."private_cache_keys/miniserver".path; + settings = { + listen = "[::]:${toString cfg.port}"; + 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 + }; + }; + }; + nginx.virtualHosts."${cfg.host}" = lib.mkIf cfg.enableProxy ( + setup.proxyReverse cfg.hostName cfg.port // { } + ); + }; + }; +} diff --git a/secrets/keys.yaml b/secrets/keys.yaml index f3c1cc0..fa84bcf 100644 --- a/secrets/keys.yaml +++ b/secrets/keys.yaml @@ -1,7 +1,3 @@ -private_cache_keys: - miniserver: ENC[AES256_GCM,data:Qr7TFZodQKUK/v2IcvVtjk2hv7JlPHbztn7pEgxBHeo55Kzj/Dme+iNcF5nt/nrO2kooKPHdXkB6JpcyUh4/1Uv63VDgZ4S10VZaT9ZuretA0uODagaAo12HaKDPn/j6kVCmEKLDqBXZCoI=,iv:Dq6fpnJRRWub1CHAvBcvmtrhE2qglzuhBjsfAEgxpIM=,tag:WF4fXIqm3iVipnJk6fIzFQ==,type:str] -public_cache_keys: - miniserver: ENC[AES256_GCM,data:HttfFZyf+Cs+mMlsF43Kel0Kvivw/ONH8SQukPzPMz/ehdalXS3h4YxExUO+2UYv85DoddSEn5PFRgTwlCX4,iv:9M2/NkRQZII0v1ljlpu3AEZSNRaWv+444EMiex6dums=,tag:l+zHv94Fd2VB2/+KhQ74lQ==,type:str] public_keys: age: ENC[AES256_GCM,data:zHxSM0lMbOFgxR0zV/byXg1qfZ2fz+coAEnUg64HCYTir6Fbf4lKKLJPuN7md42IsCgzBkE2aR6EXfDxRNZk59kYqZw4GZtOQV9FWmeB5JsUwGP1TapRebmR/zcjgbwQ,iv:ispmW1I50n8WKn/34V+gdicEb7396SK7OcTLQWKq4+4=,tag:8PivakR8Mo/w2j0rLt/dUA==,type:str] workstation: ENC[AES256_GCM,data:g1qejAegE2WLQ8pW868ZOuCzxIeKAPnSTl1tfMS5WEZCI1iwFA8L5N/nEwPWpzr1AhnKAP2CxnguBes7AgR9qzaFf56fVByfA4Zc5LqYBiSyCpZ7mF/nGrcQzMiqttJq5g==,iv:58/tWUjNdLzOHrliAlyhtZSNEakA1sphYrrqcWRTIMY=,tag:1fY94k11cvNploDtbglQ/w==,type:str] @@ -36,6 +32,11 @@ syncthing_keys: workstation: ENC[AES256_GCM,data:3uObZ1zMR60gJt57R1b7ikjkShwXmGS7sEhxxyqES3B5pxjNgaD/XYihNTKAyzCHoFrvppzLfvVjfsx8wfWYccvcW6p6MYROSKLlA8SnjUAeiEB+NFFMP3dtqRD3qlJwA3twhfLQJD3AJqe8z0gMhdrar9aKa/iXi5W6VE52priCjjFPGkZGf0PtZDGTrBoNcGp6il898lU5XDZ6+99ywqROAf9vY2KY24NQvScMh80FTOyYGAS4rhvUVFYeHrf2u8ZIQTxV+dPGrXF50Jucc88UBaB9MsAXp7Eis3FBIjAIEx4Q4pPRJdgvuTAB9mT4HUKqzuUCnmCa+YNaFevunfiRBbzMcX+Gea72maQwAbb28EIl21f+xFkRlM0Lkuda,iv:dsxVqh8t48nvfzvQpvZ1qqC/f4hUDsGX+LT0WmGiT5s=,tag:vAOQugrOnJoek/lP1ZGksw==,type:str] server: ENC[AES256_GCM,data:xyPsIXDzMCDr9Vt30nHODid8RnMOuVmRGoft66/hWawJqrR18Jp7L9YInH3eTXFLKeZEeUPiZDjPpU+jyD0ROc2pdy9edHGYLcWLw1hpZHy4wD6zS9bdD9Wndej1v3JYtU3BJCD+h638az2oSZHDM6JfHuo0+J28pGday8j7s3HJ2zp1LFo1KgIvshXETrCY2dpRr5uSnct3w/82nLWuIw+EzTjt8aKD3GIat5a1gGGYGTL4FQOWXZKhzijccqUF/Db4YKf77z/20ZZVVKu2tx0yP3/WZhQtGViEQBTTof9uBzRlUIDOB7FnTu1GqXBard8riOGLn8ZrScvJE3MUJxbovLTYnl7EcVcQqDMJzJJFs1WSgyanCOU+hT6PV+11,iv:Xa0YmwjFlqVzB62hOKP3CXFmQvuxG8x9ORrA/bw7g6U=,tag:+P5OWmX0H6ZuzLFGOaqHtQ==,type:str] miniserver: ENC[AES256_GCM,data:wYeBPfbBg9ElClhOTk7eFW/pm+Gwf6io3y/FDGwmJXqZoX+ttyFVPawdamtg6iAnR3OQ18ofZeyTGGY6N9AYNjDd1m9ND+SizfBaiDMEF9QZwSpoRTvzUYo9Cp2sSsgMEaCyC5D9eL3AYFnExCSE+/d8tqiRjH7skml1aq0dE/31Z/202WcBVcFZrvdRxDzD1VNUWrkBl6pAVaLaGMOF7MUEIambEkzEH/abdm8o23KDfjyaXury6BcP8IGfWS5W0uHSLvxJP9DqR9QLSOtatX5my6iHCwDZ54/TPJEjmNQfMpVqdfZhgl0R17pgliKEBYdBrzEGy8/lK18ndWCfx++UAthEJlsc38SkSty7bKYjNzevsa3Bx2RpmRGRWzEu,iv:KGDsNKIHeK+c+9wIoPX7gJfwjNCKQ330ZkPTdfnmIg4=,tag:wD2SLxAhoz9yIgiSwsHiKA==,type:str] +private_cache_keys: + miniserver: ENC[AES256_GCM,data:Qr7TFZodQKUK/v2IcvVtjk2hv7JlPHbztn7pEgxBHeo55Kzj/Dme+iNcF5nt/nrO2kooKPHdXkB6JpcyUh4/1Uv63VDgZ4S10VZaT9ZuretA0uODagaAo12HaKDPn/j6kVCmEKLDqBXZCoI=,iv:Dq6fpnJRRWub1CHAvBcvmtrhE2qglzuhBjsfAEgxpIM=,tag:WF4fXIqm3iVipnJk6fIzFQ==,type:str] + attic: ENC[AES256_GCM,data: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,iv:9CZsC5cooGPy0KHQ7nV5pd/9lp0H/BI84M0Q8mHQbiw=,tag:BkZqAmd+IeMC3IHH9ICJwg==,type:str] +public_cache_keys: + miniserver: ENC[AES256_GCM,data:HttfFZyf+Cs+mMlsF43Kel0Kvivw/ONH8SQukPzPMz/ehdalXS3h4YxExUO+2UYv85DoddSEn5PFRgTwlCX4,iv:9M2/NkRQZII0v1ljlpu3AEZSNRaWv+444EMiex6dums=,tag:l+zHv94Fd2VB2/+KhQ74lQ==,type:str] sops: kms: [] gcp_kms: [] @@ -78,8 +79,8 @@ sops: dklwODNxYVo4a2FaWDJFM0FnV1l3SlUKMnq/MAJRwR7iEri2KomPrMj0gTkMyhzH P5E4zheU7chJTAz5jf6iecyOvKAt6q5g9Q1MU0D6dkOcv2gzWSNAAw== -----END AGE ENCRYPTED FILE----- - lastmodified: "2024-11-12T19:33:07Z" - mac: ENC[AES256_GCM,data:qTNxQX0G3JleBKt1+ki6weEzYlyuLT0xz70gVxHFgnJbJdFbS0H/wHhLkE5P/AHwjgvX/Ol1zRCYrR7piNmvBA2Kn6R9gCzACZDWpupvrSOrRaA5sz2u42omQAs2mlWxtAzcysUobx4gwHb/qZo2k/2+UFQRU2CfLuzyxN+Znw4=,iv:ocdRnrgvKwliFo75Al5JCGvhp2UVTgZJjrVSswK02pA=,tag:fYB6gLeD9VQ2lklepVMNtA==,type:str] + lastmodified: "2024-11-12T20:40:40Z" + mac: ENC[AES256_GCM,data:/aZ6KdmOyWLZXHXlBOX9IgVwZ/a0encJtOJeTkINY2iNNI+zeTzv1YqBsIK0oPf8MTSVcNQ2aY9RXMkW/ewTtRBByg5XUPEMhmOrpoMFtqXSfFFIxd5DYd8zsofI53lLB53Tbr8dvHkF1k1lC89m9ZPen9wh+ds6ut+CAa9RncY=,iv:G6xpyQm3xstG/a6ITvq9Lb75bB3TrdDR6Gpjmkg1bgo=,tag:cRRE6STQEhQQ2zdAZVN/pQ==,type:str] pgp: [] unencrypted_suffix: _unencrypted version: 3.9.1