From e45cfc0fbcbf88a5efb6091302e638bdeddb1355 Mon Sep 17 00:00:00 2001 From: Jo Date: Sun, 25 May 2025 19:09:33 +0200 Subject: [PATCH 1/3] =?UTF-8?q?=E2=9C=A8=E2=99=BB=EF=B8=8F=20Migrate=20and?= =?UTF-8?q?=20refactor=20all=20v1=20services,=20Add=20atticd=20service=20a?= =?UTF-8?q?nd=20cleanup?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .sops.yaml | 28 ++--- flake.nix | 5 + homes/x86_64-linux/cyn/default.nix | 4 +- modules/flake/systems.nix | 1 + modules/nixos/archetypes/server/default.nix | 38 +++++++ modules/nixos/services/atticd/default.nix | 53 ++++++++++ modules/nixos/services/default.nix | 13 +++ modules/nixos/services/docker/default.nix | 5 +- modules/nixos/services/duckdns/default.nix | 34 ++++++ modules/nixos/services/homepage/default.nix | 54 ++++++++++ modules/nixos/services/traefik/default.nix | 98 ++++++++++++++++++ .../nixos/services/vaultwarden/default.nix | 49 +++++++++ .../x86_64-nixos/absolutesolver/default.nix | 57 ++++++++++ .../homepage-config/config/bookmarks.yaml | 30 ++++++ .../homepage-config/config/docker.yaml | 10 ++ .../homepage-config/config/services.yaml | 14 +++ .../homepage-config/config/settings.yaml | 54 ++++++++++ .../homepage-config/config/widgets.yaml | 22 ++++ .../images/cozy_kitchen_rain_compressed.webp | Bin 0 -> 36976 bytes .../resources/homepage-config/images/logo.png | Bin 0 -> 17755 bytes .../absolutesolver/secrets/atticd.env | 9 ++ .../absolutesolver/secrets/duckdns.env | 14 +++ .../absolutesolver/secrets/traefik.env | 10 ++ .../absolutesolver/secrets/vaultwarden.env | 10 ++ 24 files changed, 592 insertions(+), 20 deletions(-) create mode 100644 modules/nixos/archetypes/server/default.nix create mode 100644 modules/nixos/services/atticd/default.nix create mode 100644 modules/nixos/services/default.nix create mode 100644 modules/nixos/services/duckdns/default.nix create mode 100644 modules/nixos/services/homepage/default.nix create mode 100644 modules/nixos/services/traefik/default.nix create mode 100644 modules/nixos/services/vaultwarden/default.nix create mode 100644 systems/x86_64-nixos/absolutesolver/default.nix create mode 100644 systems/x86_64-nixos/absolutesolver/resources/homepage-config/config/bookmarks.yaml create mode 100644 systems/x86_64-nixos/absolutesolver/resources/homepage-config/config/docker.yaml create mode 100644 systems/x86_64-nixos/absolutesolver/resources/homepage-config/config/services.yaml create mode 100644 systems/x86_64-nixos/absolutesolver/resources/homepage-config/config/settings.yaml create mode 100644 systems/x86_64-nixos/absolutesolver/resources/homepage-config/config/widgets.yaml create mode 100644 systems/x86_64-nixos/absolutesolver/resources/homepage-config/images/cozy_kitchen_rain_compressed.webp create mode 100644 systems/x86_64-nixos/absolutesolver/resources/homepage-config/images/logo.png create mode 100644 systems/x86_64-nixos/absolutesolver/secrets/atticd.env create mode 100644 systems/x86_64-nixos/absolutesolver/secrets/duckdns.env create mode 100644 systems/x86_64-nixos/absolutesolver/secrets/traefik.env create mode 100644 systems/x86_64-nixos/absolutesolver/secrets/vaultwarden.env diff --git a/.sops.yaml b/.sops.yaml index 8995ac5..68f0d8b 100644 --- a/.sops.yaml +++ b/.sops.yaml @@ -1,31 +1,25 @@ keys: - &jo age1qcjcwh9tq8pzf2yr7m3hm2n3n3y5rlc30fpkr0eytju9w57ucgcsgcy79d - - &absolutesolver age1ajkq0lalyc75tjhdtpx2yshw5y3wt85fwjy24luf69rvpavg33vqw6c3tc + - &absolutesolver age1gudgza8lv02nwec0pejqpp5t7zu0tzjsfkmvgvy3ckfscr9f4qrq2sl5dv creation_rules: - path_regex: secrets/[^/]+\.(yaml|json|env|cfg)$ key_groups: - - age: - - *jo - - *absolutesolver + - age: + - *jo + - *absolutesolver - path_regex: systems/[^/]+/absolutesolver/secrets/.*\.(yaml|env|json|cfg)$ key_groups: - - age: - - *jo - - *absolutesolver + - age: + - *jo + - *absolutesolver - path_regex: systems/[^/]+/puzzlevision/secrets/.*\.(yaml|env|json|cfg)$ key_groups: - - age: - - *jo + - age: + - *jo - path_regex: homes/[^/]+/jo/secrets/.*\.(yaml|env|json|cfg)$ key_groups: - - age: - - *jo - - - path_regex: homes/[^/]+/cyn/secrets/.*\.(yaml|env|json|cfg)$ - key_groups: - - age: - - *jo - - *absolutesolver + - age: + - *jo diff --git a/flake.nix b/flake.nix index 9ec7a9f..d0ae4f4 100644 --- a/flake.nix +++ b/flake.nix @@ -44,6 +44,11 @@ url = "github:h-banii/youtube-music-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; + + attic = { + url = "github:zhaofengli/attic"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; outputs = {flake-parts, ...} @ inputs: diff --git a/homes/x86_64-linux/cyn/default.nix b/homes/x86_64-linux/cyn/default.nix index bdf7c40..f2b8274 100644 --- a/homes/x86_64-linux/cyn/default.nix +++ b/homes/x86_64-linux/cyn/default.nix @@ -1,6 +1,6 @@ {pkgs, ...}: { home.packages = with pkgs; [ - cowsay - cmatrix + ### Tools + git ]; } diff --git a/modules/flake/systems.nix b/modules/flake/systems.nix index 97be68f..2538911 100644 --- a/modules/flake/systems.nix +++ b/modules/flake/systems.nix @@ -17,6 +17,7 @@ (lib.optionals (class == "nixos") [ inputs.home-manager.nixosModules.default inputs.sops-nix.nixosModules.sops + inputs.attic.nixosModules.atticd ]) ++ (self.lib.dirToModuleList ../${class}); # Import modules based on current classname. }; diff --git a/modules/nixos/archetypes/server/default.nix b/modules/nixos/archetypes/server/default.nix new file mode 100644 index 0000000..222e633 --- /dev/null +++ b/modules/nixos/archetypes/server/default.nix @@ -0,0 +1,38 @@ +{ + lib, + self, + config, + ... +}: let + inherit (lib) mkEnableOption mkIf; + inherit (self) namespace; + + cfg = config.${namespace}.archetypes.server; +in { + options.${namespace}.archetypes.server = { + enable = mkEnableOption "the server archetype for your current system"; + }; + + config = mkIf cfg.enable { + puzzlevision = { + system = { + nix = { + enable = true; + use-lix = true; + }; + grub.enable = true; + networking.enable = true; + kernel.enable = true; + shell.enable = true; + locale.enable = true; + }; + + services = { + docker.enable = true; + }; + }; + + # Enable SSH for remote login + services.openssh.enable = true; + }; +} diff --git a/modules/nixos/services/atticd/default.nix b/modules/nixos/services/atticd/default.nix new file mode 100644 index 0000000..e85ead6 --- /dev/null +++ b/modules/nixos/services/atticd/default.nix @@ -0,0 +1,53 @@ +{ + lib, + self, + config, + ... +}: let + inherit (lib) mkEnableOption mkIf; + inherit (self) namespace; + + cfg = config.${namespace}.services.atticd; +in { + options.${namespace}.services.atticd = { + enable = mkEnableOption "the attic service, a multi-tenant nix binary cache."; + sopsFile = mkOpt types.str null "The location of the sops secret file for the Atticd service."; + sopsFormat = mkOpt types.str null "The format of the sops secret file for the Atticd service."; + subdomain = mkOpt types.str "cache" "The subdomain, of the system domain, the service should be exposed on."; + }; + + config = mkIf cfg.enable { + config.sops.secrets."services/atticd" = { + sopsFile = cfg.sopsFile; + format = cfg.sopsFormat; + }; + + services.atticd = { + enable = true; + + environmentFile = config.sops.secrets."services/atticd".path; + + settings = { + listen = "[::]:3900"; + 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 + }; + }; + }; + + services.traefik.dynamicConfigOptions = { + http = { + services.atticd.loadBalancer.server.url = "http://localhost:3900"; + routers.atticd = { + entrypoints = ["websecure"]; + rule = "Host(`${cfg.subdomain}.${config.services.domain}`)"; + }; + }; + }; + }; +} diff --git a/modules/nixos/services/default.nix b/modules/nixos/services/default.nix new file mode 100644 index 0000000..6c1ec3c --- /dev/null +++ b/modules/nixos/services/default.nix @@ -0,0 +1,13 @@ +{ + lib, + self, + ... +}: let + inherit (lib) types; + inherit (self) namespace; + inherit (self.lib) mkOpt; +in { + options.${namespace}.services = { + domain = mkOpt types.str "thevoid.cafe" "The main system domain, used for exposing services."; + }; +} diff --git a/modules/nixos/services/docker/default.nix b/modules/nixos/services/docker/default.nix index bb3f805..346bc08 100644 --- a/modules/nixos/services/docker/default.nix +++ b/modules/nixos/services/docker/default.nix @@ -15,6 +15,9 @@ in { config = mkIf cfg.enable { # Enable docker - virtualisation.docker.enable = true; + virtualisation = { + docker.enable = true; + oci-containers.backend = "docker"; + }; }; } diff --git a/modules/nixos/services/duckdns/default.nix b/modules/nixos/services/duckdns/default.nix new file mode 100644 index 0000000..f40fca5 --- /dev/null +++ b/modules/nixos/services/duckdns/default.nix @@ -0,0 +1,34 @@ +{ + lib, + self, + config, + ... +}: let + inherit (lib) mkEnableOption mkIf types; + inherit (self) namespace; + inherit (self.lib) mkOpt; + + cfg = config.${namespace}.services.duckdns; +in { + options.${namespace}.services.duckdns = { + enable = mkEnableOption "DuckDNS, the dynamic dns service. Will periodically refresh your IP."; + sopsFile = mkOpt types.str null "The location of the sops secret file for the DuckDNS service."; + sopsFormat = mkOpt types.str null "The format of the sops secret file for the DuckDNS service."; + }; + + config = mkIf cfg.enable { + sops.secrets.duckdns = { + sopsFile = cfg.sopsFile; + format = cfg.sopsFormat; + }; + + virtualisation.oci-containers.containers.duckdns = { + image = "lscr.io/linuxserver/duckdns:latest"; + autoStart = true; + hostname = config.networking.hostname; + environmentFiles = [ + config.sops.secrets.duckdns.path + ]; + }; + }; +} diff --git a/modules/nixos/services/homepage/default.nix b/modules/nixos/services/homepage/default.nix new file mode 100644 index 0000000..1ce24dc --- /dev/null +++ b/modules/nixos/services/homepage/default.nix @@ -0,0 +1,54 @@ +{ + lib, + self, + config, + ... +}: let + inherit (lib) mkEnableOption mkIf types; + inherit (self) namespace; + inherit (self.lib) mkOpt; + + cfg = config.${namespace}.services.homepage; +in { + options.${namespace}.services.homepage = { + enable = mkEnableOption "Homepage, an intuitive dashboard for your services."; + subdomain = mkOpt types.str "home" "The subdomain, of the system domain, the service should be exposed on."; + configDir = mkOpt types.str null "The config directory, which will be copied to the Homepage directory during compilation."; + }; + + config = mkIf cfg.enable { + systemd.tmpfiles.rules = [ + "d /var/lib/containers/homepage 0700 root root -" + "d /var/lib/containers/homepage/config 0700 root root -" + "d /var/lib/containers/homepage/images 0700 root root -" + ]; + + # Copy files from homepageConfigDirectory to the target directory + system.activationScripts.homepage = '' + cp -r ${cfg.configDir}/* /var/lib/containers/homepage/ + ''; + + virtualisation.oci-containers.containers.homepage = { + image = "ghcr.io/gethomepage/homepage:latest"; + autoStart = true; + hostname = config.networking.hostname; + labels = { + "traefik.enable" = "true"; + "traefik.http.routers.homepage.entrypoints" = "websecure"; + "traefik.http.routers.homepage.rule" = "Host(`${cfg.subdomain}.${config.services.domain}`)"; + "traefik.http.services.homepage.loadbalancer.server.port" = "3000"; + }; + volumes = [ + "/var/lib/containers/homepage/config:/app/config:rw" + "/var/lib/containers/homepage/images:/app/public/images:rw" + + # Optional, used for docker integration. + "/var/run/docker.sock:/var/run/docker.sock:ro" + ]; + environment = { + "HOMEPAGE_ALLOWED_HOSTS" = "${cfg.subdomain}.${config.services.domain}"; + }; + extraOptions = ["--network=proxy"]; + }; + }; +} diff --git a/modules/nixos/services/traefik/default.nix b/modules/nixos/services/traefik/default.nix new file mode 100644 index 0000000..0b063ae --- /dev/null +++ b/modules/nixos/services/traefik/default.nix @@ -0,0 +1,98 @@ +{ + lib, + self, + config, + ... +}: let + inherit (lib) mkEnableOption mkIf mkOption; + inherit (self) namespace; + + cfg = config.${namespace}.services.traefik; +in { + options.${namespace}.services.traefik = { + enable = mkEnableOption "the Traefik service."; + sopsFile = mkOpt types.str null "The location of the sops secret file for the Traefik service."; + sopsFormat = mkOpt types.str null "The format of the sops secret file for the Traefik service."; + }; + + config = mkIf cfg.enable { + networking.firewall.allowedTCPPorts = [80 8080 443]; # http, dashboard, https + + sops.secrets."services/traefik" = { + sopsFile = cfg.sopsFile; + format = cfg.sopsFormat; + }; + + systemd.services.traefik = { + serviceConfig = { + EnvironmentFile = [config.sops.secrets."services/traefik".path]; + }; + }; + + services.traefik = { + enable = true; + group = "docker"; + + staticConfigOptions = { + log = { + level = "INFO"; + filePath = "/var/lib/traefik/traefik.log"; + noColor = false; + maxSize = 100; + compress = true; + }; + + api = { + dashboard = true; + insecure = true; + }; + + providers = { + docker = { + exposedByDefault = false; + network = "proxy"; + }; + }; + + certificatesResolvers = { + letsencrypt = { + acme = { + email = cfg.cloudflareEmail; + storage = "/var/lib/traefik/acme.json"; + #caServer = "https://acme-staging-v02.api.letsencrypt.org/directory"; # Uncomment this when testing stuff! + dnsChallenge = { + provider = "cloudflare"; + }; + }; + }; + }; + + entryPoints.web = { + address = ":80"; + http.redirections.entryPoint = { + to = "websecure"; + scheme = "https"; + permanent = true; + }; + }; + + entryPoints.websecure = { + address = ":443"; + http.tls = { + certResolver = "letsencrypt"; + domains = [ + { + main = "thevoid.cafe"; + sans = ["*.thevoid.cafe"]; + } + { + main = "rhysbot.co.uk"; + sans = ["*.rhysbot.co.uk"]; + } + ]; + }; + }; + }; + }; + }; +} diff --git a/modules/nixos/services/vaultwarden/default.nix b/modules/nixos/services/vaultwarden/default.nix new file mode 100644 index 0000000..be7e0b1 --- /dev/null +++ b/modules/nixos/services/vaultwarden/default.nix @@ -0,0 +1,49 @@ +{ + lib, + self, + config, + ... +}: let + inherit (lib) mkEnableOption mkIf types; + inherit (self) namespace; + inherit (self.lib) mkOpt; + + cfg = config.${namespace}.services.vaultwarden; +in { + options.${namespace}.services.vaultwarden = { + enable = mkEnableOption "Vaultwarden, a self-hostable password manager."; + sopsFile = mkOpt types.str null "The location of the sops secret file for the Vaultwarden service."; + sopsFormat = mkOpt types.str null "The format of the sops secret file for the Vaultwarden service."; + subdomain = mkOpt types.str "vault" "The subdomain, of the system domain, the service should be exposed on."; + }; + + config = mkIf cfg.enable { + sops.secrets."services/vaultwarden" = { + sopsFile = cfg.sopsFile; + format = cfg.sopsFormat; + }; + + # Ensure directories exist before OCI container is launched. + systemd.tmpfiles.rules = [ + "d /var/lib/containers/vaultwarden/data 0700 root root -" + ]; + + virtualisation.oci-containers.containers.vaultwarden = { + image = "vaultwarden/server"; + autoStart = true; + hostname = config.networking.hostname; + labels = { + "traefik.enable" = "true"; + "traefik.http.routers.vaultwarden.entrypoints" = "websecure"; + "traefik.http.routers.vaultwarden.rule" = "Host(`${cfg.subdomain}.${config.services.domain}`)"; + }; + volumes = [ + "/var/lib/containers/vaultwarden/data:/data:rw" + ]; + environmentFiles = [ + config.sops.secrets."services/vaultwarden".path + ]; + extraOptions = ["--network=proxy"]; + }; + }; +} diff --git a/systems/x86_64-nixos/absolutesolver/default.nix b/systems/x86_64-nixos/absolutesolver/default.nix new file mode 100644 index 0000000..26c5186 --- /dev/null +++ b/systems/x86_64-nixos/absolutesolver/default.nix @@ -0,0 +1,57 @@ +{pkgs, ...}: { + # Setup Sops + sops.age.sshKeyPaths = ["/etc/ssh/ssh_host_ed25519_key"]; + sops.age.keyFile = "/var/lib/sops-nix/key.txt"; + sops.age.generateKey = true; + + puzzlevision = { + users.cyn = { + enable = true; + hashedPassword = "$6$mvK9bT756Aok54Vt$vBRnT66Vb3HL0Y5rEMJlHvKkvzVQ.KUciInTmW3FCBFT00IuFMpz3q9RhXPLTLMRPho65bTg9hMnFPb84I774."; + extraGroups = ["wheel" "docker"]; + }; + + archetypes.server.enable = true; + + services = { + traefik = { + enable = true; + sopsFile = ./secrets/traefik.env; + sopsFormat = "dotenv"; + }; + + duckdns = { + enable = true; + sopsFile = ./secrets/duckdns.env; + sopsFormat = "dotenv"; + }; + + vaultwarden = { + enable = true; + sopsFile = ./secrets/vaultwarden.env; + sopsFormat = "dotenv"; + }; + + homepage = { + enable = true; + configDir = ./resources/homepage-config; + }; + }; + }; + + services.cron = { + enable = true; + systemCronJobs = [ + "*/5 * * * * cyn docker exec -u www-data nextcloud-nextcloud-1 php /var/www/html/cron.php" + "*/15 * * * * cyn docker exec -u www-data nextcloud-nextcloud-1 php /var/www/nextcloud/occ preview:pre-generate" + "* 3 * * * cyn cd /home/cyn/docker/compose/satisfactory && docker compose up -d --force-recreate" + ]; + }; + + environment.systemPackages = with pkgs; [ + nano + ]; + + networking.hostName = "absolutesolver"; + system.stateVersion = "25.05"; +} diff --git a/systems/x86_64-nixos/absolutesolver/resources/homepage-config/config/bookmarks.yaml b/systems/x86_64-nixos/absolutesolver/resources/homepage-config/config/bookmarks.yaml new file mode 100644 index 0000000..1d69336 --- /dev/null +++ b/systems/x86_64-nixos/absolutesolver/resources/homepage-config/config/bookmarks.yaml @@ -0,0 +1,30 @@ +--- +# For configuration options and examples, please see: +# https://gethomepage.dev/en/configs/bookmarks + +- IT: + - Github: + - abbr: GH + href: https://github.com/ + - Codeberg: + - icon: mdi-image-filter-hdr-outline + href: https://codeberg.org/ + - Stackoverflow: + - abbr: SO + href: https://stackoverflow.com/ + +- Social: + - Reddit: + - abbr: RE + href: https://reddit.com/ + - Whatsapp: + - icon: mdi-chat-outline + href: https://web.whatsapp.com/ + +- Fun: + - YouTube: + - icon: mdi-video-vintage + href: https://youtube.com/ + - A-Dark-Room: + - icon: mdi-campfire + href: https://adarkroom.doublespeakgames.com/ diff --git a/systems/x86_64-nixos/absolutesolver/resources/homepage-config/config/docker.yaml b/systems/x86_64-nixos/absolutesolver/resources/homepage-config/config/docker.yaml new file mode 100644 index 0000000..1897cca --- /dev/null +++ b/systems/x86_64-nixos/absolutesolver/resources/homepage-config/config/docker.yaml @@ -0,0 +1,10 @@ +--- +# For configuration options and examples, please see: +# https://gethomepage.dev/en/configs/docker/ + +# my-docker: +# host: 127.0.0.1 +# port: 2375 + +default-docker: + socket: /var/run/docker.sock diff --git a/systems/x86_64-nixos/absolutesolver/resources/homepage-config/config/services.yaml b/systems/x86_64-nixos/absolutesolver/resources/homepage-config/config/services.yaml new file mode 100644 index 0000000..967c3fb --- /dev/null +++ b/systems/x86_64-nixos/absolutesolver/resources/homepage-config/config/services.yaml @@ -0,0 +1,14 @@ +--- +# For configuration options and examples, please see: +# https://gethomepage.dev/en/configs/services + +- System: + - Fritz!Box: + name: Fritz!Box + icon: avm-fritzbox.png + href: http://192.168.178.1 + description: Home router configuration + widget: + type: "fritzbox" + url: http://192.168.178.1 + ping: http://192.168.178.1 diff --git a/systems/x86_64-nixos/absolutesolver/resources/homepage-config/config/settings.yaml b/systems/x86_64-nixos/absolutesolver/resources/homepage-config/config/settings.yaml new file mode 100644 index 0000000..df2defd --- /dev/null +++ b/systems/x86_64-nixos/absolutesolver/resources/homepage-config/config/settings.yaml @@ -0,0 +1,54 @@ +--- +# For configuration options and examples, please see: +# https://gethomepage.dev/en/configs/settings + +title: Jo's Home +background: + image: /images/cozy_kitchen_rain_compressed.webp + blur: md + opacity: 45 + +favicon: /images/logo.png + +theme: dark +color: slate +iconStyle: theme + +layout: + Media: + style: row + columns: 1 + Utilities: + style: column + columns: 2 + Entertainment: + style: column + column: 3 + System: + style: column + columns: 3 + Development: + style: row + columns: 2 + Social: + style: column + columns: 3 + IT: + style: column + columns: 3 + Fun: + style: column + columns: 3 + +headerStyle: clean + +target: _blank + +quicklaunch: + searchDescriptions: true + hideInternetSearch: false + hideVisitURL: false + +hideVersion: true + +showStats: false diff --git a/systems/x86_64-nixos/absolutesolver/resources/homepage-config/config/widgets.yaml b/systems/x86_64-nixos/absolutesolver/resources/homepage-config/config/widgets.yaml new file mode 100644 index 0000000..c152c86 --- /dev/null +++ b/systems/x86_64-nixos/absolutesolver/resources/homepage-config/config/widgets.yaml @@ -0,0 +1,22 @@ +--- +# For configuration options and examples, please see: +# https://gethomepage.dev/en/configs/widgets + +- resources: + label: System + cpu: true + memory: true + uptime: true + units: metric + +- resources: + label: Storage + disk: / + +- datetime: + text_size: xl + format: + timeStyle: short + dateStyle: long + hourCycle: h23 + locale: de diff --git a/systems/x86_64-nixos/absolutesolver/resources/homepage-config/images/cozy_kitchen_rain_compressed.webp b/systems/x86_64-nixos/absolutesolver/resources/homepage-config/images/cozy_kitchen_rain_compressed.webp new file mode 100644 index 0000000000000000000000000000000000000000..915d1da2aadca4d631e2b7f283505ff29d5cf146 GIT binary patch literal 36976 zcmZ_V2T)U8yD;nkA{L6+=tT&kg474;1RD^gSZGQI5d{$fgb)G*3nJ130wNL>q*tZ4 zfRxaq2!tLXkVs1m5kd$gU!LcE&pGe^{olz+ndv?uKlLO$MS((jzx{p*Sh0DzZ!pJf-f zU7gdJ07(9N`m?_>0~wTj;M(yB4sX#7)3=@1@h_$)>g<+gIjTFaoUSPSk-NzwQ9WHt z)IdG@G3BH328~aisDoC~<@QyQi`RolG_s9I%Y`+5Go(kp@ci=!L4tOcXx@);nLF>_ zi+;!)y>a65hPL2vjC1b~ftNGVfS*~KAJ~wyFG@xt1G^hJHjsgf$2#^OxN_q3Q-vc3 zzEm<;UUIbg*n-|u!J?ug#`o3oXC{^R2?5$UnfKgpvS0MinD@^+pZcvUXRh_SN8NJW zQQuN}`O~`gz?v_pJbg&^*{Sr2*Bu}0tX|EUU5t@9alc@xcDyt(T{Vx&30hpK*ePuy zKPYB{K5_!(!AaADFX9zMY65vyPFeKzK}#xtw5t3MQR>Ug4areR5&Y4G+|pv-(dqHR ztpYF@4|AK&;7_3)Q5=F^5Uh*I!&CSzJIp^x@o)8 zczD&NkG=q(XP{&=)2H3U{fJEW7Iqc{Q8Le*_AVQSceR>i=2u^E8j(%Sk4oQVn<03e z1l*8By`GtHFsjl-zpKTVo{*oLn$vaxX_#~hthe9~b(IrrVA>-mIh-Nat%d2P_0L-9$w7_Q4b7k-_>n-1m4uotPzRW`?RO1 zpJB{HIslBT6jAHZ(M$V_#1FOshhIFJEB2zlqi0tdd~wuPYm|u6pn0r5^C(vcrh22O zf-&CG>PhgK%GBeQdrCSBh`|TRMoNA7HvA=2ICw*KaPDJZuDZ4JyYVIZhrk4{q50s3 zooj)tSNq__{fgAP82LVd;Z^g=XZ5Gy_$iSd!wYR9#kz{P=GL3)u@<*xR>?*4#@9CB z;8j#`xeecMSEQK?)%ob0lhkgliA)MG2VeNRxtJ2q|4{{uh^IQBg77jO)FGbE#8`=d z=eXFgs!e@Yi=zXxDdD2K{*1r&A)aT?EguB;G#nNMZ^>*=ksf}{o|A1KBRBLKAMSaZ ze0gPH0^@*~{Z3Sxi_PlXRW+8YZEaonveoXAwMITkW|o^I`T)xz$nU{m>`TJkx6OgG zM;PHc zZfy-V=IaHdIUj!H_5l}99m})17^@^$+X~gotN{%JyN$tj1LkffRO1KU7bms$9=>dB zerq{=>VRATMRXXr4w(_%55D`1d1pte2TrOHhyAJez6yL@k(rSGQA!2Y@?93*d4_c7 z@Bjj}bILO^UU~m=xE-oH9NyJZtCwjjl0dG1gz+5gd`3WaMYyEO#z3ZxU5b`u1bk4W z;OdQP*%vfPCEc!;UAXx~>lG~PbmU&i6OCqAGa)}|Cz(ob*8*#G7$fzn9WDf>lBFw48b< z13ZX#`{g4GqPTQ!N^i4H+9*f3s-aV)={5P}*nZl04}qXRe34E)44+kCN2CtuS-ZLH z0Fr!Wzr**E;u~X$R^SGO#<^^x(+4>@V_PgRK|oxD-ts+*W@ao26Sj$Ryhe~%r#5*7 z?fdmEuYIif_dqe}LCIbaG;HH`p({vtiU>_!;@3F4;;`-A^f)=^`qwZ7DZHcwmh=FG z+dGWXzkQ(#CkM`idfpEVR ztlAXbE*x1}yrH9vr(-Z(Cj3@QZr5u_4S9)!hE1Pr1}BLNzsixz-UR06sV&<_E#&Atn}A%Tm`y>M)hHm+wW8}QYO9x zS_LI4n8X9=8$%ekmjt=LDBa25D&2|a57{=(>GUDd$K#x6xMc=vN1U`C7azG^|GJs>MPm$KWMkIU8#mCc? zPGp0|`@><;<$XV1`wsdI5FtcVn*nIBw zbN)cwNb!!aT83TX<`o(qIw*3x9J>k(rXe7d)ZM~-F>uAeG>|sPlEMMkg)9e+4`2wN z)htL0&6LeJIQ3dTSq>FJkJ~k$P;aA(3LOTMqE|r)7g3Q1S;oBJyS`zoN9evk12|FY z$uuLynHEK7R;8xNS<=`upynX)3o$AD$X3`s5VYkms(~ugS8emMc!3rP4%(GbS{n1B zbW4!q5J0?&R<247*g2a3`%471c6oc~U-sfl;EBO8#~MKzqNNB?4m<>}E`&&Q`=e=rtv zip$tKPU{mK--QdRL`KrjdP(7#&+t>@a(YS1%GQtE@)8k(!}O)Mk@Vm^F_$LupjHJO z>W`QNC+fg>C;R?cjh}?W+0@97U9_>z03E6J=gWR&tBFKOa*}j_OAoZTETR23Dw zw|Ao~X0Lq2{bj5AXbbGsamD*OvVt+SJ${*^6u+D_a(D3;YHt&*_1>a#9pzV8Cp`G^*yhhFZs+!^L38QdfQ8cPMnjm06XW%pGzAIorPBM?Y%2&ud|fFh%+0i;I&Be zaVc2(vsOx2guN_qGWf{AK|0N>c4d*_`IB+1+RZc9dmV1BD_hZq@XU4CWyo|a9h3&f zJpm$wdV-^W`^9&yrvJc;D`%*X7^hv(4oYLDsD-tM1ktczrKR5&`dW6M3#46NV92ar z{f!grzvHwo4Yw;RoI~y$zC0zxR$M$mTT%j-^rZoV_0w!)F=;i*?P)(iFJpkLBP(+@ z`&K>rCT+U(UhFJ_Y|?R^Pt{SJInf@tzxA9!sflOqkUD*vZSmP!)Ksqdx~9cv0iGXt zM}*5wBS@v%L?~UWZiV=2U*9-`-#qg^exnAMBZ}W!cgU$`ouS_~0 zQ}-m&<_B~$Z!>#V6KS=bZO?UBlEJifu3ye0vT)SBmbNy6Y!(9-yB$>o&dWt80DW;f2FN<&% zSyIjbMWg_8TOj6HTXW6PGCsB4#+T zMB-=KwxB*__}@(sW#;tcc{D zM{D{CESu`Z+)t-<#%0z8^j<*BOe}&Z?=Eb&NR!Namv~TNp02{s9eKPdYicM zNioUW1|vr z#S`R`GPTZYI~YYrdy{?mmY2o=Qqwe!snj>Oe^5^`2iE)?$iO8kgOPus@}mwsa`Re? zQov#ZVkIwUMm_I!5NUcIPd%#O<`S_x`pHddFQiD4*1gbVIo63H;Z8jyHdL#LT;Ahj zx0#i}67*VA#yc{dlAcM*a`Vzh;G-hu#`|cYpk$gJ4?<(?tQJnUP!y>Mhg+=3^x_U< z>nXn)TIUWP#5SnGzHW4f9dsyD!*e`k{2^!~I~k?T8%s+KAo@26zs8ssz0t+!sEvP0ldB zZgQc*(T!B?Zahs0bIXPLdf))-Y+0zHG;NZv1s!6x?KV zPshr1(TuR&8sDl7}Zu>~0*c=LR^I(T0&=F!edm zP7d5O-^NO^_HIR6WMil4^8v&x=kDU5zT!eTq%)&i_GD6PH$$^8EP{Zlsr~~S-SmA@ zOkVD)2O`YY8gir~7}DjzA|r;tYKF`vRwtQ2mN8FdAK|p*YGN{<5AdKu(011xd**0# zp1!#woNU?PUDt%e4S@($$rDb~W|K2`>M-4aqyW~J#y2Q7{YlJ^;^zHclt`gee{2Ki z!%?YDqbO9(_NtzM6rOew#omrmhy${W7IM*z^(RsHi26fS#AJ&g=S4*@CS!C}lpg5L zR(}=L0@Y{3&4H6dh|<~Q>R6Shoto6%PkJ=CdEwzYi)8b`crTU|WO2)CC%MW#b=9dc z{G@LfV%`tD+0lajZ1OrnJIxqhnNgi(FI z8}HcR40DTY-;7@A`I>BamkK!dA@@ZK4v;a^)-k0?iEp|ZxY^#5iSx9V*c4m);lx)4 zyZbaAviq*oYZ5c&RAnx5og(_UaFn@L8L)ZA8N9VIbLA-z0cxw0o0QrAvJXl`9 zG!KAV;{p6#(#PS>HRgUjgXlfnnjv`@S% zOi-M>_WYgRu|pScyhZM(wCS}lMFem5glf;ORWT(hCJ*UDeD_1@_YMm5Ycm{L9A|tz z=JO66aRq#S5UF};Mb-dVbDuTc1zO`%jiQ1gy09YHZ{)rMg#@cRxD0agwF6U`zNC~7FK2bSX`hYJp z;QRh*YbSil?QcnYo6|GJvKhT+A23Y7nCLpyR54Nfg^33OW3or;ig@A!ADtDGpVSX2j%4p_vBP z7wA})npNq+wyf<0 z_37rEr&}R_y$Zn20dy+C@?n_ zR4aUMJOjz)-E$V8@Xq#0Y;Erxv~;`djE{uq?X5`Mxc~Q<1{H3Ofg)6e5SFdH*3D7x zX^rabG}`n)m}TZ21*~V5VIq53HF!GFL&{Eu6X94{;tdh7(0fqPG7&!_2(K6Ww6o~m zGRZw=R*C(J&Uw1oa7DNm`o5)lo@iLuO50J4MpbW{G*F}=5(N9-?5 z90~OI0Uh%~*|(ASk-A+zZhT=+Nd7dXn90wHUfvcM)Lsg3!jBrvioI832=-nVXNUdb z@OKt`@_R9JYapaV+RCMC6?N#e4IlC}ds7hL~}^?1`D zU^+vYc1@p4cT*^IztbSlJ|DG|)HI`9`w&imXAiCD7)FzC{d2^*H``B@sY057ET_&GmL~`8rnaR)pbdEF#Z(bw&TQ z*KoVRqV1}B>g5f<8NaDYK4Js)+?Q-0(>81ffn2p>L`CExeT*UN9oq74#J0OVHOWYH zzAG=)axBtx++pD#!*^OyFqztbW({sJtQc=M%G%9r0AN%dtTHG`11A5{<);rs3 z%Bhn~8_<{dZil9?mgT9rMwJrRGfCkyfC6%jSL=)eF$8|ZKRmH@u4oT?5D5sGUwmp1 zi7s$X4$AS3pa^EoDVFgamSJ)9Ks?<$!!C9sP49;6tU53!KSaA3Ayn zIsVX<4_kPu(!H5NUxBThDv52eqq|vS97O1c#;38zOg%e%bB2)rzJ6WLq@+)?wNKMA zR_?mKCIFzXK}{wtxz-qF-+OAO7kjSST_?#rt%>LF*nR7NiQNYO6}!9^(UV{sC$Lo6k&diY0A# z=$FI;ryTXBLieHrr=meQYE^an=M4o$gz}4V(y64N=MVS~lMkN*2=d9>RE4p7f0ekK zDnaZPLf)b&*J@A3CiflP_tXsYj5E(sdHT4t<7kd&4aR7TA_1JJE3dP9Y~L#Z_M!ER7m^pAK`H2@T=bTN@Pu(v%sQ`f%_C0 z9;u|oKhWv2k2L9HTj0)an!)bq6&MjAciySvu*=T&d3+=vq(v=|BO47g3p@M1ebK) zwvH?7IZ@k6e;C0CSJseDwll*;8EQ-YAX#Ip)ZSJNkA5pS`sV3o`)lpcsOL*+-9V8l z>n2DK&d1q$G_(?Yv{=;pE#SyyyztCH49W#2pGxS)?2bhcCy4Hs86#BH;&6DFx? zL>byj7{6{PNt<@GR=cf%n~ALTe{3}6s&HEa?K0hvUx&F;;6B&5T+HJ>6(+P#J3Dg= zpYr9*=+KlP_4A2<==lO#r!_a;Sa$3N>t~9ze-3{0l(}TH0kt z696%B4EaemDq3u1yK-8~t!!zs^FJ55@6bls zH+3OkZvD!e(R&(g)GH5NO^N|;oHvWc-cq7YYMqNTCyD zJ^x;3|6V{yod`fbsqRpqP*E`9kAJg>E%Pa6C5#(|Y(|#@Wxf%XWOgueNgz|q!#5Hv zNTmYwyDRs*Mq~9q-o1c{HgHC8aEhFOFJ-eP{!|C{WE@E_qrUlY4MKKqE^f=PZAGvH zqr(l_4~uwf(8M3#O)~p_=?WL`QIaK}XMKVfTMq<@ja_&&uv9%oShBXAt}gFntAVQ6 zqu=U|-bpk!eYd`MFuj_(8EO!XH?45LV=xw!bbT>oy>b7j;pt*zT+TsLL+N%6wNi*c z(X`dEWV`4`-A2>(LvpY49@+>^CIXyy~>{FG+YEo|Z3QD$PZ z>75yeSV-rlaV4+!*p1AA78hd$O_B%Jx-0bi-QcO&Zzs&HBUm=KYIi{h>>N*5#eE_S&axMn6xz zpGv~7z@d(r0`QWITIyz@FDoP28L;CblJuw#W>+iC0H06$(k>yNS>;T4MzD+4(ktX$ zyxq^@=oQs@wEk%6YuM|zeC6BVp)>r?FKqX3{@&6EdzRJp$#bO}C-k(0?0}`bRXB5b zj+V3AhE&RV$7I&qN%83a4z5GUuRbDMMdzdlgX34t(A-%0-kq%5Gmmih6RWhe<_Nx(kr!&pJNrkO)uWR<5jTTlyo*@arl5cosZ?X083J2kWkoAy zsi+j`^5(4S_0|4POg(niP~IWSXSKhw#MjuC=QFx43Tc_F#%V<2_fw;9c#V7S8b&|P zoNeLjH#+^$xykVLMY=?9)XM4#vrRznro> zZ*`QSG%fQ*HUIS~#)N18dQkcWId!+6f>yn7W$%REkHL%eUZt8=0VEwUgxAS$SrpVD++$;eC4R_xo&dpT?dD`V7sVdlH?Bz z>wR5o^ZqFfg@EGHQZXx>{?aSVNdlmFErHL)TEYwrESJHD){3TOVXs~PODfan_uE;!A+wyo@Vrq;Ba8IjpG%5hmIzKynPn=$k_;hm0 z?sf9HZs1z68fG-Sd6#_t2FbrNQ~z?L;s(0DeZP49JK~ZIV17g0ij!`J}7()Ac3Oql~Uhq2FWQ=PIWxfl6o0^^X6iQ;n0q+_uZ@mxeJCe z;@KgZe3nn*jy}1VepHb6fQRUrGl!W5M(JlQR@%*~kMMRyR?@|;ScreVb$*>X0V2

`3zqZ0&JY!cy_o3?S~V$#Fv@qD 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 literal 0 HcmV?d00001 diff --git a/systems/x86_64-nixos/absolutesolver/resources/homepage-config/images/logo.png b/systems/x86_64-nixos/absolutesolver/resources/homepage-config/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..aec64c4441ff3817899f8c1390170cec11a562af GIT binary patch literal 17755 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 literal 0 HcmV?d00001 diff --git a/systems/x86_64-nixos/absolutesolver/secrets/atticd.env b/systems/x86_64-nixos/absolutesolver/secrets/atticd.env new file mode 100644 index 0000000..8a12f7c --- /dev/null +++ b/systems/x86_64-nixos/absolutesolver/secrets/atticd.env @@ -0,0 +1,9 @@ +ATTIC_SERVER_TOKEN_RS256_SECRET_BASE64=ENC[AES256_GCM,data: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,iv:JNZB10Ibu2eSOvUurCGxbNpY3nYBv9+qkriHMNL0dpY=,tag:Il1Q8+4FgznazApPaEw1Dg==,type:str] +sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBuS00rQUpVNHJsVisyRTAr\nV3ZDM24wNGlrZnRiNEtlb0FhWTkzNkVESHlZCmo0TXFCQm1QQjl6aE4zUHZjcFZX\nRWxWWHRFNnNRNGMvaFNXUnhwemUybjgKLS0tIEMxRkpFa05DL2daWDFtbEc1cnlP\nb0NGRGRHcVJlYmEyUzN2R01wK1JscVEKIfyz9CttFhzAPPGJupcUGw7+q8+jW231\nIoI+EE75RmuLP5mpH4O12lckHOFXwvnjHyG4SjuHNV2L9aWSxxoyJg==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_0__map_recipient=age1qcjcwh9tq8pzf2yr7m3hm2n3n3y5rlc30fpkr0eytju9w57ucgcsgcy79d +sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBkOXNZeGFGQXlyRzgvcmFz\nQm4zQ05HUVRDNWtEOFRPL3Awbjh4b3Y5SGpVCktEZGtqVU1JeE1rRUJSd3ZLOUR2\nbzVEUW9HOFdaVE40Z1U4UzdLLzNwNEUKLS0tIFp5SlprTXlUVDI2c2lDT0dveEsw\nTjVISkJiUEF0WlBOVEpMMHBQaG9PMzAKf/Mq2VPH7GlrdjhUfzhwMTQjq2eWiFyf\nGsVnXE0xqghiQg+kkVre9RIP3tESEvGfl3TwnBgtdU3wgVFppF4okQ==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_1__map_recipient=age1ajkq0lalyc75tjhdtpx2yshw5y3wt85fwjy24luf69rvpavg33vqw6c3tc +sops_lastmodified=2025-05-25T16:46:56Z +sops_mac=ENC[AES256_GCM,data:GVISKiF8PDa4YHikMnhwyPdvyMBE5BTrrR+Xix+Hwtk41CE0sx+UUMUhN4mPdQ28+1Wmv2t2gZ6f1VEsUPinDiT5H/SnEMd9DE83ksUqBRtPWLyVqIMIqkMCrkCBklX646pPVGZq53AT8xa+5ntxFVSU2wfUqwseaxZbNXVdKhU=,iv:FTKVyBUCchSTFBu9UJji8kATcpzrHjnx5IAkowY6Xjk=,tag:pOMIvYzHodF3Fm4YVrTg1w==,type:str] +sops_unencrypted_suffix=_unencrypted +sops_version=3.10.2 diff --git a/systems/x86_64-nixos/absolutesolver/secrets/duckdns.env b/systems/x86_64-nixos/absolutesolver/secrets/duckdns.env new file mode 100644 index 0000000..de2ca9a --- /dev/null +++ b/systems/x86_64-nixos/absolutesolver/secrets/duckdns.env @@ -0,0 +1,14 @@ +PUID=ENC[AES256_GCM,data:lxkuog==,iv:yP4a8/yPDxqaMWF7B98fx4EnvQTjeLEFHbQfZJKIj5w=,tag:5E71lSVVyFEtW2x9K1bmKg==,type:str] +PGID=ENC[AES256_GCM,data:oLPGtg==,iv:VnXy7EqnelYfXlYpLWHykmyR12AffsdODCUfL9QAvig=,tag:+Gv8qPuMrj1A151FtjPcMA==,type:str] +TZ=ENC[AES256_GCM,data:sf3Yq4iqZt1AOyII/Q==,iv:X8T/uFcBjJ4O8+WDPv8hSjYQzIlp0hkDCq+IwoixP1g=,tag:TDSjLOhvQp0nNopPP0Bf/w==,type:str] +SUBDOMAINS=ENC[AES256_GCM,data:w7fOE6X6l0dbRGRJekNRZFAA,iv:/4E8c2YzQW1zwnRRCTa8X8tnEvkLffM+1wy+4KWuTL0=,tag:MTKGOWLsGvNZGzBrjev8KQ==,type:str] +TOKEN=ENC[AES256_GCM,data:QPGrbiwqJY4smVgCkzF4rg91VpoWjx+3FzQYL5v36LeBGZ0e,iv:aEf8b7pnsBwjv/2NPSJpgq1LZH6pioTo+5QrwXgBRrI=,tag:hU2GEvPMk/oZ1f0/aF/JPg==,type:str] +LOG_FILE=ENC[AES256_GCM,data:Ggb5fCg=,iv:mYZSsNHBSObpqdoFRovWy2CwqAFqsgPCODHvQQtRZyY=,tag:i1WB2x32z+lQ0fQYZXPabA==,type:str] +sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBQSFEzMTFVTGRuTzdRc1d3\nT01LaVFlN0NQUE5KR1V3cTFhWHFETHNwVm1NClo0RWxyNjYwVFQxbUVoYlp3VGhh\nN21xd2JiUlJiSFVheDV1cndwUFhzUmcKLS0tIHd6NjNlSUUzZ3g0czhuZnVxajhL\nbWhPbzRiU3dzQk13RCt3bkIyV2tjOUUKn/tpVbegYBU1vn59vWmkO2UxZHFzc63k\nKFEou1Gp77uh9IrA/uT5ZF7BFrADMQmX54+whUMsqKHaSAUeuVnzJw==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_0__map_recipient=age1qcjcwh9tq8pzf2yr7m3hm2n3n3y5rlc30fpkr0eytju9w57ucgcsgcy79d +sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxUTN4OG9WWDVLTnFwcmhr\nY3JXa0dURXg1ODZGN0hkRGF3TEZTZjZIVkdjCmNRMXFWWmxXQUxmV2dHUTJzR1pz\nR1gyZVV5bUhjZENOeW14K3lHV0dDakUKLS0tIFhvRHJtVHdQOUI0WlhtY0kwT3Vu\nbnB5RzA0RmtrZWQ5VVBCZXJMbGxwdlEKGWFr/KBbaj9WxleuNhtV/0KJWz6lpcrI\nnJ5GEf4e0d1CgOAayPKzLpgf5Pz9GAfsHD72NWv7dNAdRrOoa1pL0g==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_1__map_recipient=age1ajkq0lalyc75tjhdtpx2yshw5y3wt85fwjy24luf69rvpavg33vqw6c3tc +sops_lastmodified=2025-05-25T17:02:19Z +sops_mac=ENC[AES256_GCM,data:yx+YDiv04ZZBjuag+lF6GObqgL6cJVfj2TZLnl22/U8Yp1Su/IgiPFpqyWqYbjdbnoc2pFe0FhdvUoN58yPjOIm50jdNM3OgQNBhtP/oJU0hwuZGrvI1R9iUhVFDvDjqwDGsC+e92/EGgFKU/rjj0oByhrukqL2khvj/0FeQ8sg=,iv:pLy5UO5Zaqv/bL7OYJqUZ+oRPqaWfaoBkkJpMkvPjzQ=,tag:B9kIFdgHxrvbug2fKUtkDg==,type:str] +sops_unencrypted_suffix=_unencrypted +sops_version=3.10.2 diff --git a/systems/x86_64-nixos/absolutesolver/secrets/traefik.env b/systems/x86_64-nixos/absolutesolver/secrets/traefik.env new file mode 100644 index 0000000..7a10eaa --- /dev/null +++ b/systems/x86_64-nixos/absolutesolver/secrets/traefik.env @@ -0,0 +1,10 @@ +CF_API_KEY=ENC[AES256_GCM,data:TSDR5dnNolSErwfjAjyOZsyCapan6dumv2Ti2fttkcAY3zIamA==,iv:pJqVyZ8Q7jVa9LOBhiyXP84yAQDGIWcgHf3S5Kmynek=,tag:Rei3sW5oaCcqCsLopEoeKQ==,type:str] +CF_API_EMAIL=ENC[AES256_GCM,data:85E6UE8QCfBxhdWxVvwrnWetC6ZtQBXcujPbXgk=,iv:qEmGfZguzppCJGsPSAj0VsmPI5K4gVHZJzRT6C7bPmM=,tag:LvgXKz1GwWaFJSMgkfh0eg==,type:str] +sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBma3VZRkh6MzBLNkZZS3Ay\nZWpiU2NsMjcwc3hlb1J0K0NPdXJTYVYwcG00CjJUV052Vkt0N2tZOU13d0NrTEZj\neXVla2RWUzZDUHFvZ2lmYzYyb0w2RVkKLS0tIFdkZGYweW9nTDNCb3hqdU1HVVBt\na01ucjZVZUhOS3JxNWI3dDllT2FwUmMKWtRC1AsyiE7WGwG8i+kyy3ejNU/EVDvC\n2JwnbAX/E8yLjhx68zTbQ0jF6j7xxfdUqNgOOgK1IlK7zriXuA+y1Q==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_0__map_recipient=age1qcjcwh9tq8pzf2yr7m3hm2n3n3y5rlc30fpkr0eytju9w57ucgcsgcy79d +sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBNZlZwZGk0bGlpdmhCeENs\ncUJJTEhJQllrdDE4WVVLT01qSGZEeFpNL0VnCmZDWWM4L1l5S3dzc20xQTlhVHBi\nRW4vWWxEYjVmK0l3TWJOSjN5VG5ZUFUKLS0tIElZRzZpUGRpSjc3ZHJaTDZYRTJB\ndmoyN2lXYUVSQ3RQaXRuMkgwejdXTTQKGFM9TouDfvIlb6tyymuAAVsDb/LMhPDP\nNX7zSAHNWdTxo+h913NnVFSZJZzPxIR4dMB+sCn+5p6YawB61K5zpg==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_1__map_recipient=age1ajkq0lalyc75tjhdtpx2yshw5y3wt85fwjy24luf69rvpavg33vqw6c3tc +sops_lastmodified=2025-05-25T15:36:17Z +sops_mac=ENC[AES256_GCM,data:y2DNwdfrffQA1gcjlI3006+6c9NYXV+2Wsn6IVJcunFoan73iAn/u6D/XZHiF7R2z8/cZOvLW6BCQzEIeUvtm/LeSh9HOz/LV+kYEqvCb2qvc/h8dSXwZY/P+4eIpuSPR0BqeILUAZBzlLbMRQ8vEK+7wA95+72ixl4jaZxPXps=,iv:rjmS6QraVr4gJljwFRkIOcRTLBugWnd9YsZ0m6cvyos=,tag:DIDiHdkuVgCJh9/YWBEEow==,type:str] +sops_unencrypted_suffix=_unencrypted +sops_version=3.10.2 diff --git a/systems/x86_64-nixos/absolutesolver/secrets/vaultwarden.env b/systems/x86_64-nixos/absolutesolver/secrets/vaultwarden.env new file mode 100644 index 0000000..331f2c1 --- /dev/null +++ b/systems/x86_64-nixos/absolutesolver/secrets/vaultwarden.env @@ -0,0 +1,10 @@ +DOMAIN=ENC[AES256_GCM,data:XtVmddel4uwamadpRlUgwez7AcBSVYBrBL4=,iv:1XILsuKg2iw3HesEEx4aPxKT4uVGItfk1h0i1zFFE50=,tag:ebB7eLD/FudKZ8vihVGrug==,type:str] +SIGNUPS_ALLOWED=ENC[AES256_GCM,data:UZcXAWY=,iv:gsJhwcCeTtDMQuGrwqavLXolIGbqE6xsabl26FWmW2I=,tag:/IUwBMJvG3vXrO4EbFg8Hw==,type:str] +sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArYVBPbEY3MEdVSFlZNnlM\nWFJ0L1oyTituV29BQk9BZUNoNzFzRVZWcVYwCktUeElQQ2s0aGtLdzB5dThzUFZU\nVmlxQ3c3RFpGb2h5U0lESmVoUFgxeE0KLS0tIDBGMzBtb3d3T2RobUFMN0FGem5L\nWlRvU25rL2xQNkx1cDJ5dld4YUVpcTQKxPoVeLMB4OkF8C2REvDW1xHB1qnDkqsD\nyzCXhs8HkAZFfv1zw3gNeG2SB7JRTQM4JPCrA0ceg1q9OO7iEInzKA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_0__map_recipient=age1qcjcwh9tq8pzf2yr7m3hm2n3n3y5rlc30fpkr0eytju9w57ucgcsgcy79d +sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCWHlkMjhnb0NsVTNSSHox\nTUZtZUlVRkNveDFqVjR2TGFCSWVFWXppRXo4CjF5SWYvRTdzUWFoemxJaFR2VU9B\nbXY3d3RaY3UvUlNCV3FwZDNGd0M0RGcKLS0tIFpUd3VzRDl4aVM5VXoyV3FiWDNy\ndmE0Rk0ySVBiVW9CZ2Jqb1A1aUdNT2MKtiJZLpoOUxpTUosauNZejzK3d/2wpJ33\ndWjowUn4/TKzZ4VjV9hGuokiwlf9ohJJCodINI4PBHWhb3OfXMsGMQ==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_1__map_recipient=age1ajkq0lalyc75tjhdtpx2yshw5y3wt85fwjy24luf69rvpavg33vqw6c3tc +sops_lastmodified=2025-05-25T17:01:30Z +sops_mac=ENC[AES256_GCM,data:2h3KjAcdeDjGJ0lKmkucBxyDrNTl+FgRvoUcWiURHOyDO6RrM3SIyGbqjrr4jRR8Zv6a45SsqgcA8DrwRKWN+dV/IvDY15NNo279JmnS+jK00x+FnYxmSB63GLyz5zWEEY3DV4lOGwsr2eKd2UmH5H9W4Nb0ARMitKIXRMnzzxE=,iv:ip1xWy9XDHQO7KjHPzKmkuv3uGMhrRMXZp3MXWqndHg=,tag:ex+JxUkWj/13/twi0g+Rzw==,type:str] +sops_unencrypted_suffix=_unencrypted +sops_version=3.10.2 From fc96bb9a5a08cf087e96fe532f2b6d84cad44ec9 Mon Sep 17 00:00:00 2001 From: "Jokiller230 Jokiller230@users.noreply.github.com" Date: Sun, 25 May 2025 17:10:48 +0000 Subject: [PATCH 2/3] Remove dead Nix code --- modules/nixos/services/traefik/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nixos/services/traefik/default.nix b/modules/nixos/services/traefik/default.nix index 0b063ae..7d00513 100644 --- a/modules/nixos/services/traefik/default.nix +++ b/modules/nixos/services/traefik/default.nix @@ -4,7 +4,7 @@ config, ... }: let - inherit (lib) mkEnableOption mkIf mkOption; + inherit (lib) mkEnableOption mkIf; inherit (self) namespace; cfg = config.${namespace}.services.traefik; From d2633457a5c07a358efe2a7b5f9b1772f5b1f25d Mon Sep 17 00:00:00 2001 From: Jo Date: Sun, 25 May 2025 19:12:18 +0200 Subject: [PATCH 3/3] =?UTF-8?q?=F0=9F=90=9B=20Fix=20missing=20inherit=20st?= =?UTF-8?q?atement?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/nixos/services/atticd/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/nixos/services/atticd/default.nix b/modules/nixos/services/atticd/default.nix index e85ead6..1f60aa8 100644 --- a/modules/nixos/services/atticd/default.nix +++ b/modules/nixos/services/atticd/default.nix @@ -6,6 +6,7 @@ }: let inherit (lib) mkEnableOption mkIf; inherit (self) namespace; + inherit (self.lib) mkOpt; cfg = config.${namespace}.services.atticd; in {