summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoradikro <adikro@disroot.org>2026-05-10 23:02:01 +0200
committeradikro <adikro@disroot.org>2026-05-10 23:02:01 +0200
commit7c8503e8fa77cb20819e2ba5a6a0f1a261cf089f (patch)
tree212001f743fba7224ac57007e1a499c7615c0b19
parentbaf1cf5664b481de17849c97dc683fa81ade1c2e (diff)
added basic configuration for nginx, oci-containers and simplex-chat servers
-rw-r--r--flake.lock66
-rw-r--r--flake.nix2
-rw-r--r--hosts/desktop/configuration.nix25
-rw-r--r--os/srv/default.nix7
-rw-r--r--os/srv/gaming.nix18
-rw-r--r--os/srv/nginx.nix36
-rw-r--r--os/srv/oci.nix31
-rw-r--r--os/srv/ollama.nix27
-rw-r--r--os/srv/simplex.nix105
-rw-r--r--os/srv/sops.nix2
-rw-r--r--os/srv/syncthing.nix37
-rw-r--r--secrets.yaml6
12 files changed, 266 insertions, 96 deletions
diff --git a/flake.lock b/flake.lock
index e734e91..2ea490b 100644
--- a/flake.lock
+++ b/flake.lock
@@ -383,11 +383,11 @@
]
},
"locked": {
- "lastModified": 1778248595,
- "narHash": "sha256-dhFgEjoeJMYN/7OY6xfxS799YB4IjbbYXTjyGIJyLpc=",
+ "lastModified": 1778444552,
+ "narHash": "sha256-f18pIiR9q/p1vHY93gmAum7aHhQOG49oGvAB9+lptRo=",
"owner": "nix-community",
"repo": "home-manager",
- "rev": "fdb2ccba9d5e1238d32e0c4a3ec1a277efa80c1d",
+ "rev": "dcebe66f958673729896eec2de4abfd86ef22d21",
"type": "github"
},
"original": {
@@ -511,11 +511,11 @@
"spectrum": "spectrum"
},
"locked": {
- "lastModified": 1778200184,
- "narHash": "sha256-WL0cPwbYms7fUVTWnnayo4DhXeNPOfL1a8RDPBuAzBc=",
+ "lastModified": 1778369133,
+ "narHash": "sha256-zfYJAAVau1dDlVo8PfA0oQFVwvRjpp8Zz+T61+ywogI=",
"owner": "microvm-nix",
"repo": "microvm.nix",
- "rev": "b00d7c12745b15442c618c7e23f2d7442d7a51da",
+ "rev": "9ddb425679d44e6e1e5cd5df9db0c42ed99df4a4",
"type": "github"
},
"original": {
@@ -712,11 +712,11 @@
]
},
"locked": {
- "lastModified": 1778285091,
- "narHash": "sha256-4YwkGkjvLD0EB7rQGCRA9J/zgwrnTL20dJd7Wmnicj0=",
+ "lastModified": 1778371477,
+ "narHash": "sha256-sVlZeFIds47ABfBbAmBLexCFnkE1GIBTNGjAMRh+BfA=",
"owner": "nix-community",
"repo": "neovim-nightly-overlay",
- "rev": "cca2a2d1c03f763fdcd7066791363d792313c641",
+ "rev": "b9ee678fadf59b3c998e180d62f4cee0641d21d9",
"type": "github"
},
"original": {
@@ -728,11 +728,11 @@
"neovim-src": {
"flake": false,
"locked": {
- "lastModified": 1778266020,
- "narHash": "sha256-qoydKalrn/QGsGYVRicz0Hzb7bfGmV7Z9CnVONXN/Lc=",
+ "lastModified": 1778321961,
+ "narHash": "sha256-lrPZ0C+uixk+6jx+maWM998GZaj4lAuicAz/dZHFNBk=",
"owner": "neovim",
"repo": "neovim",
- "rev": "b7d8a41d91dcfebe9a5f3d0cf2f0bb0b8d59e32e",
+ "rev": "b44c2bdd16226f6caa5324d91f1ae9781ffdc12b",
"type": "github"
},
"original": {
@@ -753,11 +753,11 @@
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
},
"locked": {
- "lastModified": 1778224717,
- "narHash": "sha256-lzpzFAinsI1YriR+iVDIDZVkps2oQw1LG2QvFcDVYCk=",
+ "lastModified": 1778392415,
+ "narHash": "sha256-UbEC8dOIWwCG4mww7SGhYMgM1yi8ewgKLi8O3uhX33M=",
"owner": "sodiboo",
"repo": "niri-flake",
- "rev": "cb2fdda815a0c2c03f8a7fe7075c433d4ef37110",
+ "rev": "670859bacca122ec1158c882b4cf2828930b3669",
"type": "github"
},
"original": {
@@ -786,11 +786,11 @@
"niri-unstable": {
"flake": false,
"locked": {
- "lastModified": 1778221858,
- "narHash": "sha256-+nZlx8MKCs973N9Bm0hNzFHjY+2lmBrBOQeTALeCRhI=",
+ "lastModified": 1778389445,
+ "narHash": "sha256-9NyDMVf8ydUZGTzcPcLMQf0o1B3bte/00UGbuXHNWh8=",
"owner": "YaLTeR",
"repo": "niri",
- "rev": "0200670d9ee8cfbdb154e3e14d92b5ff61aedd59",
+ "rev": "38191826cb1e5fb9051a7e141fefe4941a2b4bed",
"type": "github"
},
"original": {
@@ -965,11 +965,11 @@
"systems": "systems_3"
},
"locked": {
- "lastModified": 1778049651,
- "narHash": "sha256-EC5pBiLcP/EVmYWldJRNfkChCqF9rkeTnTs8t9Cs+ZY=",
+ "lastModified": 1778408907,
+ "narHash": "sha256-QXjdRz5fssxAWDrtfBYxvjMtTqJzQAbnAmX3u22xCck=",
"owner": "NotAShelf",
"repo": "nvf",
- "rev": "88dbbad1f44efe3d2c18903e2c7542452f7bdfd6",
+ "rev": "e86a92e4b29b499e5f1285b737b7612115103da9",
"type": "github"
},
"original": {
@@ -1011,17 +1011,17 @@
"snowfall-lib": "snowfall-lib"
},
"locked": {
- "lastModified": 1772077063,
- "narHash": "sha256-HGXXCld+zf9UFUVA6or/XI0yLyOCgLk3ce0QcNO2TsM=",
+ "lastModified": 1778367333,
+ "narHash": "sha256-67oFYjFyqh+PELrxtSQL2eTVfyBp/NIDNTD5Wt4IHmg=",
"ref": "refs/heads/main",
- "rev": "99469e2c34f528043d7f6e7d58785e2a5ab0f830",
- "revCount": 160,
+ "rev": "02e2fee4d6c4b3c8dd2f9f0978c777ac1841a3d4",
+ "revCount": 161,
"type": "git",
- "url": "https://codeberg.org/PopeRigby/openmw-nix.git"
+ "url": "https://codeberg.org/adikro/openmw-nix.git"
},
"original": {
"type": "git",
- "url": "https://codeberg.org/PopeRigby/openmw-nix.git"
+ "url": "https://codeberg.org/adikro/openmw-nix.git"
}
},
"otter-launcher": {
@@ -1249,11 +1249,11 @@
"systems": "systems_6"
},
"locked": {
- "lastModified": 1777789800,
- "narHash": "sha256-XHCvLGu/bEEZRzXVKFu1i+2YB102Nr00n8e7xrzsfVs=",
+ "lastModified": 1778395012,
+ "narHash": "sha256-A/VRiNFQIwGp8cOC/8yNCRexFHjtFCzBwhajrkyGojo=",
"owner": "Gerg-L",
"repo": "spicetify-nix",
- "rev": "d0e921cc48aab6137d203a3eab19601dc2bdc0c3",
+ "rev": "3b4991bfc064c3361957f23141351ae2d9833234",
"type": "github"
},
"original": {
@@ -1447,11 +1447,11 @@
"rust-overlay": "rust-overlay_2"
},
"locked": {
- "lastModified": 1778289967,
- "narHash": "sha256-dOjtSPuMpCDUcVS6rHWcKdCc2Qn0aB+1g9rdmcJfRX4=",
+ "lastModified": 1778345877,
+ "narHash": "sha256-wunFw3vId/JP0bkdF7F7i2xuJwSH/wBLOx6rNvHXI/0=",
"owner": "sxyazi",
"repo": "yazi",
- "rev": "92b9ea37945ed128a79ea96d58e182d9d09b7fd1",
+ "rev": "247f925e532236aa4e0dc6ac1a3e0a0263083ce6",
"type": "github"
},
"original": {
diff --git a/flake.nix b/flake.nix
index bdbe9d6..6572bf7 100644
--- a/flake.nix
+++ b/flake.nix
@@ -14,7 +14,7 @@
};
openmw-nix = {
- url = "git+https://codeberg.org/PopeRigby/openmw-nix.git";
+ url = "git+https://codeberg.org/adikro/openmw-nix.git";
inputs.nixpkgs.follows = "nixpkgs";
};
diff --git a/hosts/desktop/configuration.nix b/hosts/desktop/configuration.nix
index b334630..2458dec 100644
--- a/hosts/desktop/configuration.nix
+++ b/hosts/desktop/configuration.nix
@@ -2,6 +2,7 @@
config,
username,
pkgs-stable,
+ pkgs,
...
}:
{
@@ -27,6 +28,7 @@
};
drivers = {
enable = true;
+ kernel = "zen";
cpu = "amd";
graphics = {
enable = true;
@@ -83,7 +85,6 @@
virtualization.kvm.enable = true;
kdeconnect.enable = true;
nix-helper.enable = true;
- ollama.enable = true;
monero.enable = true;
sops.enable = true;
syncthing.enable = true;
@@ -96,18 +97,9 @@
};
};
- services.xserver.desktopManager.xfce = {
- enable = true;
- enableWaylandSession = true;
- waylandSessionCompositor = "labwc";
- enableScreensaver = false;
- };
-
- programs = {
- xfconf.enable = true;
- thunar.enable = true;
- };
-
+ environment.systemPackages = with pkgs; [
+ openmw
+ ];
boot = {
kernelModules = [
"nct6687"
@@ -119,6 +111,12 @@
];
};
+ boot.kernelParams = [
+ "split_lock_detect=off"
+ "amdgpu.ppfeaturemask=0xffffffff"
+ "preempt=full"
+ ];
+
services.netbox = {
enable = true;
package = pkgs-stable.netbox;
@@ -134,7 +132,6 @@
};
};
- networking.firewall.allowedTCPPorts = [ 80 ];
services.nginx = {
enable = true;
user = "netbox";
diff --git a/os/srv/default.nix b/os/srv/default.nix
index 7f87cfd..b83e892 100644
--- a/os/srv/default.nix
+++ b/os/srv/default.nix
@@ -8,9 +8,12 @@
./i2p.nix
./kdeconnect.nix
./monero.nix
+ ./nginx.nix
./nix-helper.nix
- ./ollama.nix
+ ./oci.nix
./omnisearch.nix
+ ./opnsense.nix
+ ./simplex.nix
./sops.nix
./sunshine.nix
./syncthing.nix
@@ -18,7 +21,5 @@
./virtualization.nix
./vpn.nix
./yggdrasil.nix
-
- ./opnsense.nix
];
}
diff --git a/os/srv/gaming.nix b/os/srv/gaming.nix
index 164670f..eb8ca81 100644
--- a/os/srv/gaming.nix
+++ b/os/srv/gaming.nix
@@ -3,7 +3,6 @@
lib,
pkgs,
username,
- inputs,
...
}:
let
@@ -37,11 +36,11 @@ in
enableRenice = true;
settings = {
general.renice = 10;
- # gpu = {
- # apply_gpu_optimisations = "accept-responsibility";
- # gpu_device = 0;
- # amd_performance_level = "high";
- # };
+ gpu = {
+ apply_gpu_optimisations = "accept-responsibility";
+ gpu_device = 0;
+ amd_performance_level = "high";
+ };
};
};
@@ -71,13 +70,6 @@ in
environment.systemPackages = with pkgs; [
openttd-jgrpp
openmw
- inputs.openmw-nix.packages.x86_64-linux.umo
- inputs.openmw-nix.packages.x86_64-linux.momw-configurator
- inputs.openmw-nix.packages.x86_64-linux.delta-plugin
- inputs.openmw-nix.packages.x86_64-linux.openmw-validator
- inputs.openmw-nix.packages.x86_64-linux.groundcoverify
- inputs.openmw-nix.packages.x86_64-linux.plox
- inputs.openmw-nix.packages.x86_64-linux.s3lightfixes
];
})
diff --git a/os/srv/nginx.nix b/os/srv/nginx.nix
new file mode 100644
index 0000000..b0c01a7
--- /dev/null
+++ b/os/srv/nginx.nix
@@ -0,0 +1,36 @@
+{ config, lib, ... }:
+
+let
+ cfg = config.os.srv.nginx;
+in
+{
+ options.os.srv.nginx = {
+ enable = lib.mkEnableOption "the NGINX reverse proxy service";
+
+ openFirewall = lib.mkOption {
+ type = lib.types.bool;
+ default = true;
+ description = "Whether to open ports 80 and 443 in the firewall.";
+ };
+ };
+
+ config = lib.mkIf cfg.enable {
+ services.nginx = {
+ enable = true;
+
+ recommendedProxySettings = true;
+ recommendedTlsSettings = true;
+ recommendedOptimisation = true;
+ recommendedGzipSettings = true;
+ };
+
+ networking.firewall.allowedTCPPorts = lib.mkOptional cfg.openFirewall [
+ 80
+ 443
+ ];
+
+ systemd.tmpfiles.rules = [
+ "d /var/log/nginx 0750 nginx adm -"
+ ];
+ };
+}
diff --git a/os/srv/oci.nix b/os/srv/oci.nix
new file mode 100644
index 0000000..0d781a7
--- /dev/null
+++ b/os/srv/oci.nix
@@ -0,0 +1,31 @@
+{
+ config,
+ lib,
+ pkgs,
+ ...
+}:
+let
+ cfg = config.os.srv.oci;
+in
+{
+ options.os.srv.oci.enable = lib.mkEnableOption "OCI container support via Podman";
+ config = lib.mkIf cfg.enable {
+ virtualisation.podman = {
+ enable = true;
+ dockerCompat = true;
+ defaultNetwork.settings.dns_enabled = true;
+ autoPrune = {
+ enable = true;
+ dates = "weekly";
+ flags = [ "--all" ];
+ };
+ };
+
+ virtualisation.oci-containers.backend = "podman";
+
+ environment.systemPackages = with pkgs; [
+ podman-tui
+ podman-compose
+ ];
+ };
+}
diff --git a/os/srv/ollama.nix b/os/srv/ollama.nix
deleted file mode 100644
index 3afc684..0000000
--- a/os/srv/ollama.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}:
-let
- cfg = config.os.srv.ollama;
-in
-{
- options.os.srv.ollama.enable = lib.mkEnableOption "Ollama AI service";
- config = lib.mkIf cfg.enable {
- fileSystems."/models" = {
- device = "/home/ollama";
- fsType = "none";
- options = [ "bind" ];
- };
-
- services.ollama = {
- enable = true;
- package = pkgs.ollama-rocm;
- rocmOverrideGfx = "12.0.1";
- user = "ollama";
- models = "/models";
- };
- };
-}
diff --git a/os/srv/simplex.nix b/os/srv/simplex.nix
new file mode 100644
index 0000000..9ea54c3
--- /dev/null
+++ b/os/srv/simplex.nix
@@ -0,0 +1,105 @@
+{ config, lib, ... }:
+let
+ cfg = config.os.srv.simplex;
+ internalSmpPort = 5223;
+ internalXftpPort = 5224;
+in
+{
+ options.os.srv.simplex = {
+ enable = lib.mkEnableOption "enables SimpleX SMP and XFTP containers via Podman";
+ tor.enable = lib.mkEnableOption "enables Tor hidden services for SimpleX";
+ };
+
+ config = lib.mkIf cfg.enable (
+ lib.mkMerge [
+ {
+ assertions = [
+ {
+ assertion = config.os.srv.oci.enable;
+ message = "SimpleX requires os.srv.oci to be enabled to run containers.";
+ }
+ {
+ assertion = config.os.srv.nginx.enable;
+ message = "SimpleX requires os.srv.nginx to be enabled for clearnet proxying.";
+ }
+ ];
+
+ virtualisation.oci-containers.containers = {
+ simplex-smp = {
+ image = "simplexchat/smp-server:latest";
+ ports = [ "127.0.0.1:${toString internalSmpPort}:5223" ];
+ volumes = [
+ "/var/lib/simplex/smp/config:/etc/opt/simplex:rw"
+ "/var/lib/simplex/smp/logs:/var/opt/simplex:rw"
+ ];
+ };
+
+ simplex-xftp = {
+ image = "simplexchat/xftp-server:latest";
+ ports = [ "127.0.0.1:${toString internalXftpPort}:443" ];
+ volumes = [
+ "/var/lib/simplex/xftp/config:/etc/opt/simplex-xftp:rw"
+ "/var/lib/simplex/xftp/logs:/var/opt/simplex-xftp:rw"
+ ];
+ };
+ };
+
+ services.nginx = {
+ streamConfig = ''
+ server {
+ listen 5223;
+ proxy_pass 127.0.0.1:${toString internalSmpPort};
+ }
+ server {
+ listen 5224;
+ proxy_pass 127.0.0.1:${toString internalXftpPort};
+ }
+ '';
+ };
+
+ systemd.tmpfiles.rules = [
+ "d /var/lib/simplex/smp/config 0755 root root -"
+ "d /var/lib/simplex/smp/logs 0755 root root -"
+ "d /var/lib/simplex/xftp/config 0755 root root -"
+ "d /var/lib/simplex/xftp/logs 0755 root root -"
+ ];
+ }
+
+ (lib.mkIf cfg.tor.enable {
+ assertions = [
+ {
+ assertion = config.os.srv.tor.enable;
+ message = "SimpleX Tor support requires os.srv.tor to be enabled.";
+ }
+ ];
+
+ services.tor.relay.onionServices = {
+ simplex-smp = {
+ version = 3;
+ map = [
+ {
+ port = 5223;
+ target = {
+ addr = "127.0.0.1";
+ port = internalSmpPort;
+ };
+ }
+ ];
+ };
+ simplex-xftp = {
+ version = 3;
+ map = [
+ {
+ port = 5224;
+ target = {
+ addr = "127.0.0.1";
+ port = internalXftpPort;
+ };
+ }
+ ];
+ };
+ };
+ })
+ ]
+ );
+}
diff --git a/os/srv/sops.nix b/os/srv/sops.nix
index b5bf3af..20e1891 100644
--- a/os/srv/sops.nix
+++ b/os/srv/sops.nix
@@ -24,6 +24,8 @@ in
secrets = {
"syncthing/gui_password".owner = username;
+ "syncthing/encryption/openmw-config".owner = username;
+ "syncthing/encryption/openmw-mods".owner = username;
"syncthing/encryption/game-saves".owner = username;
"syncthing/encryption/keepass".owner = username;
"syncthing/encryption/sync".owner = username;
diff --git a/os/srv/syncthing.nix b/os/srv/syncthing.nix
index 2234b88..28806f1 100644
--- a/os/srv/syncthing.nix
+++ b/os/srv/syncthing.nix
@@ -24,6 +24,40 @@ in
devices."oci".id = "DQXGVDC-KGPM6RK-5NDEBJJ-R7PEWYZ-N6Z3WFZ-TSVJG5X-235SHG4-4BEJNQJ";
folders = {
+ "openmw-config" = {
+ path = "/home/${username}/.config/openmw";
+ id = "openmw-config";
+ devices = [
+ {
+ name = "oci";
+ encryptionPasswordFile = config.sops.secrets."syncthing/encryption/openmw-config".path;
+ }
+ ];
+ versioning = {
+ type = "simple";
+ params.keep = "3";
+ };
+ ignorePatterns = [
+ "settings.cfg"
+ "*.log"
+ ];
+ };
+
+ "openmw-mods" = {
+ path = "/home/${username}/games/openmw";
+ id = "openmw-mods";
+ devices = [
+ {
+ name = "oci";
+ encryptionPasswordFile = config.sops.secrets."syncthing/encryption/openmw-mods".path;
+ }
+ ];
+ versioning = {
+ type = "trashcan";
+ params.cleanoutDays = "7";
+ };
+ };
+
"game-saves" = {
path = "/home/${username}/.saves";
id = "game-saves";
@@ -31,7 +65,6 @@ in
{
name = "oci";
encryptionPasswordFile = config.sops.secrets."syncthing/encryption/game-saves".path;
- compression = "always";
}
];
versioning = {
@@ -50,7 +83,6 @@ in
{
name = "oci";
encryptionPasswordFile = config.sops.secrets."syncthing/encryption/keepass".path;
- compression = "metadata";
}
];
versioning = {
@@ -66,7 +98,6 @@ in
{
name = "oci";
encryptionPasswordFile = config.sops.secrets."syncthing/encryption/sync".path;
- compression = "metadata";
}
];
versioning = {
diff --git a/secrets.yaml b/secrets.yaml
index d06b199..44fd8fa 100644
--- a/secrets.yaml
+++ b/secrets.yaml
@@ -7,6 +7,8 @@ vpn:
syncthing:
gui_password: ENC[AES256_GCM,data:l1qUM6MfrCTnv2LlFeRDy4o4eYQbLBzfI5C9BgcmVGQNnwjT5HWCXQqY54XHfhlPuSXO4bZs7u8JcKbQFW/+Pg==,iv:IIBWrmgX8nhP6B7WkZisEK1zmvMBqNYCg4eHgJX68Ak=,tag:1DggOF7x60nvz9gS9Ou29g==,type:str]
encryption:
+ openmw-config: ENC[AES256_GCM,data:sxd+erAmTxUw35laMtjxiy2i+tR9VXZXQiwSeFdGLCDy5eIMDJtf4y3oVIzUW/4K3yjG2kpmoIdKtdTMHf5A9A==,iv:KQUX9CeubeUY7sZKFYrPwn9i6lEjCToNt4VtDyS+fqg=,tag:w6vztiLs9WoquXeYB6dNbQ==,type:str]
+ openmw-mods: ENC[AES256_GCM,data:oxmeu/u/Hl9uRhKcbKebu/hpCEucFcjFMFDplmPawdLMQGBkxV2F1bpRvQhBurrW0l6v+Myc2GHl6q08DTffrA==,iv:ZVBhPnS5mfXKzN5ohcFqYA4xk8TcGWidvFQSrZjr7vw=,tag:yh4saE4umy36HY6gNX07dg==,type:str]
game-saves: ENC[AES256_GCM,data:67kubvePq/KYxJKJkNR8gBEf3VGczFkJE469XSYvBg/a4HfAAmdJuL2kfv62zEXVVb5BXx7NK1Xr5s+81AEaZw==,iv:1ERuh9X8IX/+XM22rreNUzt+i4CcJhVhS+IM210Z6dU=,tag:iSkTHHUF/WosX94JqJAjiQ==,type:str]
keepass: ENC[AES256_GCM,data:OLU0tYB9TTKZ5V1Mzj5FDE9YdCpj0ajJaoxzqd7HtTmaBqETjs7CjYriq7kCOgSEVBtwzek/NA1vetwuMQhI8Q==,iv:P9aBZCIbj23aOvuMBtAjAZ2L+0lUT5Xjk7XRikbc9u0=,tag:xnWUxctkKVTUOV0AtpnTug==,type:str]
sync: ENC[AES256_GCM,data:XaD+8knm2VLHGFE5AOc9V4GSJ4opGNcz7ujCH2rfMVTtQ270QzohMsQoKMjSM18a44AxZ/vtnZjLtTo+ZOWYcA==,iv:wchjwjuICqY6CQyQQmxS++9H5YECCVjURUlB2ebFSO8=,tag:v8CxGv7ZnV3WsTz5wEZFMQ==,type:str]
@@ -49,7 +51,7 @@ sops:
SHVLdytlK0RzSWVURTM2NldLVlR0eXMKvOEQCjWrr6lKQBuiTkRHV4SsCukflnKg
CXZbLjjZ0Q5we+RTisnyT8pqVIJtD2oyCliBdpGoM+HuX6pc9YbwKg==
-----END AGE ENCRYPTED FILE-----
- lastmodified: "2026-04-17T13:02:30Z"
- mac: ENC[AES256_GCM,data:dVqS5hgPvhj5a4tcVZpbuSPcTr4thkdDN84rk45kI0HaXiSIxFy2l7WwlJb4ZkTdLhNFw1THgXMr4nHXW00ne8QzEt90ITKjHb6hXAFqCTcOPuzYDkwe9wPtJiu0FnTUiVqKSFlH/ZKoMlyU1vSvGrX0GqeNBMEtRuST39NNrfI=,iv:hotanmPBRJ8bByxs//Dbd7K03N6rDj7zPMgRb+1xk50=,tag:S/zE35gJKcUpQhXVjK4Mcw==,type:str]
+ lastmodified: "2026-05-09T23:02:53Z"
+ mac: ENC[AES256_GCM,data:t3A70Nc2NTwKzD7YLjWzCWjUZ4dUygzF2mV6wHBvcvrWG/TtvF86jps9KIVXBRoZXvZem2Vmc6V94xmPzZrPz3rrUybJVEC2kouNEVV0Fds1efmidkVF1K1ButiiX1MjbjZS0cYeSSpaBssNyQbc6YVe9FdgjKEfu2j/Gf92eys=,iv:Dyn2mTsgAoMLZA0GdAZcewCi4t5KR8hwTy9/umHUcIc=,tag:PaaS5hAQw8QS9HarV3vlUw==,type:str]
unencrypted_suffix: _unencrypted
version: 3.12.2