2 Commits

Author SHA1 Message Date
bfc9416c81 mob next [ci-skip] [ci skip] [skip ci]
lastFile:flake.lock
2026-02-03 18:03:04 +07:00
c1efa8b91e mob next [ci-skip] [ci skip] [skip ci]
lastFile:machines/rigel/configuration.nix
2026-02-03 17:43:46 +07:00
59 changed files with 196 additions and 2099 deletions

209
flake.lock generated
View File

@@ -1,26 +1,5 @@
{
"nodes": {
"androidPkgs": {
"inputs": {
"devshell": "devshell_2",
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1750710155,
"narHash": "sha256-2lBEwXgclOrSsrhubSfifU91+sXqikC8qbiZ6yFeaEY=",
"owner": "tadfisher",
"repo": "android-nixpkgs",
"rev": "0846fab1f060f646e1017053077ad38dedc5207b",
"type": "github"
},
"original": {
"owner": "tadfisher",
"ref": "stable",
"repo": "android-nixpkgs",
"type": "github"
}
},
"clan-core": {
"inputs": {
"data-mesher": "data-mesher",
@@ -30,6 +9,7 @@
],
"nix-darwin": "nix-darwin",
"nix-select": "nix-select",
"nixos-facter-modules": "nixos-facter-modules",
"nixpkgs": [
"nixpkgs"
],
@@ -40,11 +20,11 @@
]
},
"locked": {
"lastModified": 1772411144,
"narHash": "sha256-WhXudztwPNnKXaqGX4DOqNfHzHdBSiGCvKGHM20pscw=",
"lastModified": 1766984802,
"narHash": "sha256-SYZ/MXVtJEb3sRWxvPL/2HtpSL1CzQgu1o8ASXqCO98=",
"ref": "refs/heads/main",
"rev": "92cc85bc24eb31ce5725e1e72753129810ce3fe9",
"revCount": 13201,
"rev": "052b66d8dc724c3e519b9003281c2f9a210fc380",
"revCount": 11770,
"type": "git",
"url": "https://git.clan.lol/clan/clan-core"
},
@@ -69,11 +49,11 @@
]
},
"locked": {
"lastModified": 1772273147,
"narHash": "sha256-Wzhoc6ifjTDZi8aVRH3fuLJPdd4ouNTTwwVhgoMcMek=",
"rev": "d5de7a8d9e5726e678c94e62fe8ac3a809fee5da",
"lastModified": 1766977667,
"narHash": "sha256-LUALgG4ZpsA0k7pGYzMDto/r6T8aIPlYTok3lGlojjA=",
"rev": "3f852546b5d8bd2e9659a81c6b2cc14922e63a94",
"type": "tarball",
"url": "https://git.clan.lol/api/v1/repos/clan/data-mesher/archive/d5de7a8d9e5726e678c94e62fe8ac3a809fee5da.tar.gz"
"url": "https://git.clan.lol/api/v1/repos/clan/data-mesher/archive/3f852546b5d8bd2e9659a81c6b2cc14922e63a94.tar.gz"
},
"original": {
"type": "tarball",
@@ -100,28 +80,6 @@
"type": "github"
}
},
"devshell_2": {
"inputs": {
"nixpkgs": [
"robotnix",
"androidPkgs",
"nixpkgs"
]
},
"locked": {
"lastModified": 1741473158,
"narHash": "sha256-kWNaq6wQUbUMlPgw8Y+9/9wP0F8SHkjy24/mN3UAppg=",
"owner": "numtide",
"repo": "devshell",
"rev": "7c9e793ebe66bcba8292989a68c0419b737a22a0",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "devshell",
"type": "github"
}
},
"disko": {
"inputs": {
"nixpkgs": [
@@ -130,11 +88,11 @@
]
},
"locked": {
"lastModified": 1771881364,
"narHash": "sha256-A5uE/hMium5of/QGC6JwF5TGoDAfpNtW00T0s9u/PN8=",
"lastModified": 1766150702,
"narHash": "sha256-P0kM+5o+DKnB6raXgFEk3azw8Wqg5FL6wyl9jD+G5a4=",
"owner": "nix-community",
"repo": "disko",
"rev": "a4cb7bf73f264d40560ba527f9280469f1f081c6",
"rev": "916506443ecd0d0b4a0f4cf9d40a3c22ce39b378",
"type": "github"
},
"original": {
@@ -143,21 +101,6 @@
"type": "github"
}
},
"flake-compat": {
"locked": {
"lastModified": 1746162366,
"narHash": "sha256-5SSSZ/oQkwfcAz/o/6TlejlVGqeK08wyREBQ5qFFPhM=",
"owner": "nix-community",
"repo": "flake-compat",
"rev": "0f158086a2ecdbb138cd0429410e44994f1b7e4b",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "flake-compat",
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
@@ -178,24 +121,6 @@
"type": "github"
}
},
"flake-utils": {
"inputs": {
"systems": "systems_2"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
@@ -257,11 +182,11 @@
]
},
"locked": {
"lastModified": 1772379624,
"narHash": "sha256-NG9LLTWlz4YiaTAiRGChbrzbVxBfX+Auq4Ab/SWmk4A=",
"lastModified": 1766784396,
"narHash": "sha256-rIlgatT0JtwxsEpzq+UrrIJCRfVAXgbYPzose1DmAcM=",
"owner": "nix-darwin",
"repo": "nix-darwin",
"rev": "52d061516108769656a8bd9c6e811c677ec5b462",
"rev": "f0c8e1f6feb562b5db09cee9fb566a2f989e6b55",
"type": "github"
},
"original": {
@@ -283,77 +208,37 @@
"url": "https://git.clan.lol/clan/nix-select/archive/main.tar.gz"
}
},
"nixos-facter-modules": {
"locked": {
"lastModified": 1766558141,
"narHash": "sha256-Ud9v49ZPsoDBFuyJSQ2Mpw1ZgAH/aMwUwwzrVoetNus=",
"owner": "nix-community",
"repo": "nixos-facter-modules",
"rev": "e796d536e3d83de74267069e179dc620a608ed7d",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixos-facter-modules",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1772173633,
"narHash": "sha256-MOH58F4AIbCkh6qlQcwMycyk5SWvsqnS/TCfnqDlpj4=",
"owner": "nixos",
"lastModified": 1770115761,
"narHash": "sha256-tjQSjOk4TdngEzIwrNehqYFoa7b4S9JlWSqoTJo9KEI=",
"owner": "kurogeek",
"repo": "nixpkgs",
"rev": "c0f3d81a7ddbc2b1332be0d8481a672b4f6004d6",
"rev": "e9a5b19fa711f0e48dfc9816778ce09d63574a4b",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixpkgs-unstable",
"owner": "kurogeek",
"ref": "inventree",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1750506804,
"narHash": "sha256-VLFNc4egNjovYVxDGyBYTrvVCgDYgENp5bVi9fPTDYc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "4206c4cb56751df534751b058295ea61357bbbaa",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1767313136,
"narHash": "sha256-16KkgfdYqjaeRGBaYsNrhPRRENs0qzkQVUooNHtoy2w=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "ac62194c3917d5f474c1a844b6fd6da2db95077d",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-25.05",
"repo": "nixpkgs",
"type": "github"
}
},
"robotnix": {
"inputs": {
"androidPkgs": "androidPkgs",
"flake-compat": "flake-compat",
"nixpkgs": "nixpkgs_3",
"treefmt-nix": [
"treefmt-nix"
]
},
"locked": {
"lastModified": 1772653179,
"narHash": "sha256-n+bUVGrgOpkuoHaAJ273wuvdrsrc68YKZWl8E1nMZJ0=",
"owner": "nix-community",
"repo": "robotnix",
"rev": "b5e513ccb503c5bdb97bbaccca178d65082c01c1",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "robotnix",
"type": "github"
}
},
"root": {
"inputs": {
"clan-core": "clan-core",
@@ -363,7 +248,6 @@
"import-tree": "import-tree",
"liminix": "liminix",
"nixpkgs": "nixpkgs",
"robotnix": "robotnix",
"treefmt-nix": "treefmt-nix"
}
},
@@ -375,11 +259,11 @@
]
},
"locked": {
"lastModified": 1772340640,
"narHash": "sha256-1nq7+Kt5IUBD8Hu3nptVPbMf+22rNJoHT0t9L1X+GKA=",
"lastModified": 1766894905,
"narHash": "sha256-pn8AxxfajqyR/Dmr1wnZYdUXHgM3u6z9x0Z1Ijmz2UQ=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "dec4d8eac700dcd2fe3c020857d3ee220ec147f1",
"rev": "61b39c7b657081c2adc91b75dd3ad8a91d6f07a7",
"type": "github"
},
"original": {
@@ -403,21 +287,6 @@
"type": "github"
}
},
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": [

View File

@@ -20,11 +20,7 @@
url = "github:nix-community/home-manager";
};
import-tree.url = "github:vic/import-tree";
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
robotnix = {
inputs.treefmt-nix.follows = "treefmt-nix";
url = "github:nix-community/robotnix";
};
nixpkgs.url = "github:kurogeek/nixpkgs/inventree";
treefmt-nix = {
url = "github:numtide/treefmt-nix";
inputs.nixpkgs.follows = "nixpkgs";
@@ -51,7 +47,6 @@
./machines
./routers
./phones
./inventories
./overlays
./tests

View File

@@ -26,7 +26,6 @@
];
global-network = [
"rana"
"sirius"
];
};
@@ -262,24 +261,6 @@
};
};
};
samba = {
module = {
name = "samba";
input = "self";
};
roles.server.machines."sirius".settings = {
globalUsers = {
w.writePerm = true;
};
sharedFolders = {
WHITEHOUSE = {
allowedGuest = true;
};
};
dataDir = "/mnt/hdd/samba";
};
};
};
};
};

View File

@@ -26,9 +26,6 @@
},
"petra": {
"installedAt": 1769064458
},
"sirius": {
"installedAt": 1770974584
}
}
}

View File

@@ -13,4 +13,8 @@
system.stateVersion = "25.11";
clan.core.sops.defaultGroups = [ "admins" ];
clan.core.networking.targetHost = "root@[${config.clan.core.vars.generators.zerotier.files.zerotier-ip.value}]";
services.inventree = {
enable = true;
};
}

View File

@@ -1,4 +1,5 @@
{
inputs,
config,
self,
...
@@ -6,30 +7,18 @@
{
imports = [
self.nixosModules.common
(inputs.import-tree ./services)
];
clan.core.sops.defaultGroups = [ "admins" ];
clan.core.networking.targetHost = "root@[${config.clan.core.vars.generators.zerotier.files.zerotier-ip.value}]";
nixpkgs.hostPlatform = {
system = "aarch64-linux";
system = "x86_64-linux";
};
system.stateVersion = "25.11";
services.journald.extraConfig = ''
Storage=volatile
RuntimeMaxUse=30M
RuntimeMaxFileSize=10M
'';
services.udisks2.enable = false;
nix.settings.log-lines = 25;
nix.settings.auto-optimise-store = true;
nix.gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 15d";
};
}

View File

@@ -1,10 +1,10 @@
{ lib, ... }:
let
hashDisk = disk: "os-${builtins.substring 0 5 (builtins.hashString "sha256" disk)}";
os = "/dev/disk/by-id/mmc-SD64G_0x8336354b";
os = "/dev/disk/by-id/mmc-FIXME";
vdev = [
"/dev/disk/by-id/ata-ST20000NM002H-3KV133_ZYDBVV7Z"
"/dev/disk/by-id/ata-ST20000NM002H-3KV133_ZYDBSJRE"
"/dev/disk/by-id/ata-FIXME"
"/dev/disk/by-id/ata-FIXME"
];
in
{
@@ -17,7 +17,6 @@ in
canTouchEfiVariables = true;
};
};
boot.tmp.useTmpfs = true;
disko.devices = {
disk = {
@@ -28,27 +27,26 @@ in
type = "gpt";
partitions = {
ESP = {
end = "500M";
size = "1G";
type = "EF00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
mountOptions = [ "umask=0077" ];
mountOptions = [ "nofail" ];
};
};
root = {
name = "root";
end = "-0";
system = {
size = "100%";
content = {
type = "filesystem";
format = "f2fs";
mountpoint = "/";
extraArgs = [
"-O"
"extra_attr,inode_checksum,sb_checksum,compression"
];
mountOptions = [ "compress_algorithm=zstd:6,compress_chksum,atgc,gc_merge,lazytime,nodiscard" ];
type = "zfs";
pool = "zroot";
};
};
swap = {
size = "16G";
content = {
type = "swap";
};
};
};
@@ -69,6 +67,41 @@ in
}) vdev
));
zpool = {
zroot = {
type = "zpool";
rootFsOptions = {
mountpoint = "none";
compression = "lz4";
acltype = "posixacl";
xattr = "sa";
"com.sun:auto-snapshot" = "true";
};
options.ashift = "12";
datasets = {
"root" = {
type = "zfs_fs";
options.mountpoint = "none";
};
"root/nixos" = {
type = "zfs_fs";
options.mountpoint = "/";
mountpoint = "/";
};
"root/home" = {
type = "zfs_fs";
options.mountpoint = "/home";
mountpoint = "/home";
};
"root/tmp" = {
type = "zfs_fs";
mountpoint = "/tmp";
options = {
mountpoint = "/tmp";
sync = "disabled";
};
};
};
};
zdata = {
type = "zpool";
options.ashift = "12";

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,93 @@
{
config,
lib,
...
}:
let
sambaUser = lib.filterAttrs (
name: user: user.isNormalUser && builtins.elem "samba" user.extraGroups
) config.users.users;
sharedFolders = {
WhiteHouse.users = [
"w"
"kurogeek"
"berwn"
];
};
in
{
services.samba = {
enable = true;
openFirewall = true;
settings = {
global = {
security = "user";
workgroup = "WORKGROUP";
"server string" = "WhiteHouse NAS";
interfaces = "eth* en*";
"max log size" = "50";
"dns proxy" = false;
"syslog only" = true;
"map to guest" = "Bad User";
"guest account" = "nobody";
};
}
// lib.mapAttrs (share: opts: {
path = "/mnt/hdd/samba/${share}";
comment = share;
"force user" = share;
"force group" = share;
public = "yes";
"guest ok" = "yes";
"create mask" = "0640";
"directory mask" = "0750";
writable = "no";
browseable = "yes";
printable = "no";
# TODO
# "valid users" = toString opts.users;
}) sharedFolders;
};
users.users = lib.mapAttrs (share: opts: {
isSystemUser = true;
group = share;
}) sharedFolders;
users.groups = lib.mapAttrs (share: opts: { }) sharedFolders;
systemd.services.samba-smbd.postStart =
lib.concatMapStrings (
user:
let
password = config.clan.core.vars.generators."${user}-smb-password".files.password.path;
in
''
mkdir -p /mnt/hdd/samba/${user}
chown ${user}:users /mnt/hdd/samba/${user}
# if a password is unchanged, this will error
(echo $(<${password}); echo $(<${password})) | ${config.services.samba.package}/bin/smbpasswd -s -a ${user}
''
) (lib.attrNames sambaUser)
+ lib.concatMapStrings (share: ''
mkdir -p /mnt/hdd/samba/${share}
chown ${share}:${share} /mnt/hdd/samba/${share}
'') (lib.attrNames sharedFolders);
services.samba-wsdd = {
enable = true;
openFirewall = true;
};
services.avahi = {
publish.enable = true;
publish.userServices = true;
# ^^ Needed to allow samba to automatically register mDNS records (without the need for an `extraServiceFile`
nssmdns4 = true;
# ^^ Not one hundred percent sure if this is needed- if it aint broke, don't fix it
enable = true;
openFirewall = true;
};
}

View File

@@ -13,28 +13,11 @@
{
config,
lib,
pkgs,
...
}:
{
clan.core.vars.generators.grafana = {
files = {
secret_key = {
owner = "grafana";
group = "grafana";
secret = true;
};
};
script = ''
openssl rand -hex 32 > "$out"/secret_key
'';
runtimeInputs = [
pkgs.openssl
];
};
services.grafana = {
enable = lib.mkDefault true;
settings.security.secret_key = "$__file{${config.clan.core.vars.generators.grafana.files.secret_key.path}}";
};
clan.core.state.grafana.folders = [ config.services.grafana.dataDir ];

View File

@@ -1,6 +1,6 @@
{ self, inputs, ... }:
{ lib, ... }:
let
module = ./default.nix;
module = lib.modules.importApply ./default.nix { };
in
{
clan.modules = {
@@ -11,7 +11,6 @@ in
{
clan.nixosTests.service-grafana = {
imports = [ ./tests/vm/default.nix ];
_module.args = { inherit self inputs; };
clan.modules."@clan/grafana" = module;
};

View File

@@ -1,23 +1,8 @@
{
self,
config,
lib,
hostPkgs,
...
}:
{
name = "service-grafana";
result.update-vars =
let
relativeDir = lib.removePrefix "${self}/" (toString config.clan.directory);
in
hostPkgs.writeShellScriptBin "update-vars" ''
set -x
export PRJ_ROOT=$(git rev-parse --show-toplevel)
${
self.inputs.clan-core.packages.${hostPkgs.system}.clan-cli
}/bin/clan-generate-test-vars $PRJ_ROOT/${relativeDir} ${config.name}
'';
clan = {
directory = ./.;

View File

@@ -1,6 +0,0 @@
[
{
"publickey": "age1chfz220hkkxvv25x4cmqsen38ppat9erplqus8gvynv0ajnu4uaqgfq3tj",
"type": "age"
}
]

View File

@@ -1,14 +0,0 @@
{
"data": "ENC[AES256_GCM,data:ZGt489y6VugKlhVLz6hC5sL+E+IDT6MkHS7jMU36WFWK9Co9btY4HRo+JtH/3C5iVuGLf/0j7n6W8SYZXigVCUTUQJvE56RfZ1s=,iv:rQM4ZZhN345KE2A16J9/ZKMZ9O+Qvb5y6kwXA/6SuZg=,tag:C+oeBtNFcImKd3HV/6yFCQ==,type:str]",
"sops": {
"age": [
{
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBZU0hqYmtDKzBRWDVMNVdm\nUW5XMXd4WDNha0ppbENwOHk1bk1mVWxVV0F3CktYT01XdktyenNvUzU4UXBReEVp\nZXJKS05kS0NsbFNqamlXMkVzRmRhUkEKLS0tIEgweFVCT2tOZmMrdERDV0FBN3N2\nVjZPZXR3L0x0dER4T1Q4cTBlV20vUjAK9QJ2p8VzNqVY/lrcKwL56YF2JBfJp11M\ns801/6IQ5WvMPziG/E/nppv/9zL0kQTh9EPGqevy0juGcvqQgn1KQw==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2026-03-02T07:38:10Z",
"mac": "ENC[AES256_GCM,data:ShP6xVJaIIyj5kqRJeIbTNJBkY3H/xvj/RgbEl65RZbJNVE0HTHkTmartKVEyROWQlMyhwesJr8FEKAnOrWysUOKQUKV9Cgfvr6J/IXZj1ZJkXbE9NcFmsRshv4Po4sCig7Hq7qt/hQLBqutUjXnpvLaKgARz2dcOv8HSoVkCKU=,iv:bvl6lFb2z8DGQkShEWe5XlYmhtXNf3bL5RHSsk9LAXs=,tag:HomMsFH3jEHCR0L6aXVsBw==,type:str]",
"version": "3.12.1"
}
}

View File

@@ -1 +0,0 @@
../../../users/admin

View File

@@ -1,4 +0,0 @@
{
"publickey": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"type": "age"
}

View File

@@ -1 +0,0 @@
../../../../../../sops/machines/server

View File

@@ -1,18 +0,0 @@
{
"data": "ENC[AES256_GCM,data:xXGuIJCmajuSHV3rBaAC0+XZZekqPd3rTr1bTKjMIU34IF9ueairclcSAUjFHakRG5EeGJ90PTosuC1vnqk/emQ=,iv:9Od0lV3SeTlT9sgJHY6yw/tLz5WNbaMDDFfjvIMO76M=,tag:T4ybZEUDGrp+p4I5NEr+Xg==,type:str]",
"sops": {
"age": [
{
"recipient": "age1chfz220hkkxvv25x4cmqsen38ppat9erplqus8gvynv0ajnu4uaqgfq3tj",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB4aUc5Yy8xOU0xcW02eDVK\nR0d5eXVtVU50dVk4L2dnZ3pObTJjOGQycHlnCjJBSndpdGNhRWVxeGZGdTJwZklU\nekdQTjZ1UTUzYklRVDd6WlVFeko0cEEKLS0tIDB2SkVpRXVEcG9nSGM0OG5hYmlR\ncXBMdUZ2MHdZd2hCaFF5Y1duOVlzc3MKgFUx3NZSoXiALUWj0gxPZLbmwfzRuq5w\nSc3CPCuEEALGq1unzndXJLSg+q4u/PAsZ/Q4l2CDHxuk5INct3Px7g==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTTmxFL0UyNlhCaVhKWVJ5\nRUpLV3ZJdnNpYWZLa2phTlVNMmpzd20yd0FnCk9sOTFOZWQ3MzRHb3EwNUdzRDZ1\ndDk4eDVJRGFrOVIwd0xsb3c1b3VpWmcKLS0tIG16Nkc1TmlvbDNaYWZwcUFHYkV4\nT3Y5M1VOMWF3MHBMVlNMam1sSXIwNTQKRVvOVcV5GWua5hfS2ijKT5+C6Y5rZsXN\nKVzvemCk7pEGjVRSi4P0hrPnD37A6uwwj8FJqiLd7Y1p3hIVvBqR3w==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2026-03-02T07:38:11Z",
"mac": "ENC[AES256_GCM,data:HiiWGBruyPo/vGDdz/Zc/8Vd8oB2aMqoDjJCTybe9tRTJAojiSYZR4YyBO2ApCnYDyStJqXL0ZRjjRB73dwvldaNASz2odl/GGprmxcCH3T0A+Zrgu2gN9yNA5i+LkBLC2URXYwra4Den/WvIOTnrvvQcszN9SUBs+MOJM56KZo=,iv:+pjWMIf0+wBvWzkvsvqP7CI6zJpO3+8sqaZUEocXkXU=,tag:yp2CpOb38Kp13f2CJSzHEg==,type:str]",
"version": "3.12.1"
}
}

View File

@@ -1 +0,0 @@
../../../../../../sops/users/admin

View File

@@ -11,9 +11,8 @@
homeDirectory = lib.mkForce "/home/${username}";
stateVersion = osConfig.system.stateVersion;
packages = with pkgs; [
libreoffice-fresh
libreoffice
element-desktop
signal-desktop
brave
firefox
keepassxc

View File

@@ -16,18 +16,6 @@
...
}:
{
nixpkgs.overlays = [
(final: prev: {
pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [
(pyFinal: pyPrev: {
psycopg = pyPrev.psycopg.overrideAttrs (old: {
disabledTests = old.disabledTests ++ [ "test_stats_connect" ];
});
})
];
})
];
services.paperless = {
enable = lib.mkDefault true;
};

View File

@@ -123,7 +123,6 @@
[${localNumber}](dynamiic_aor)
max_contacts=1
remove_existing=yes
'';
genLocalExtenConf =

View File

@@ -1,253 +0,0 @@
{ lib, ... }:
{
_class = "clan.service";
manifest.name = "samba";
manifest.description = "Samba configuration for NAS";
manifest.readme = "Samba configuration for NAS";
manifest.categories = [ "System" ];
roles.server = {
description = "A server role that host files";
interface =
{ lib, ... }:
let
userOptions = {
readPerm = lib.mkOption {
type = with lib.types; bool;
description = "Permission to read";
default = false;
};
writePerm = lib.mkOption {
type = with lib.types; bool;
description = "Permission to write";
default = false;
};
};
in
{
options = {
globalUsers = lib.mkOption {
type =
with lib.types;
attrsOf (submodule {
options = userOptions;
});
description = "List of global users with permissions, this will be applied to all the folders.";
default = {
admin = {
readPerm = true;
writePerm = true;
};
};
};
sharedFolders = lib.mkOption {
type =
with lib.types;
attrsOf (submodule {
options = {
users = lib.mkOption {
type =
with lib.types;
attrsOf (submodule {
options = userOptions;
});
description = "List of users with permissions, this will only applied to this particular folder.";
default = { };
};
allowedGuest = lib.mkOption {
type = with lib.types; bool;
description = "Whether to allow guest access to this folder.";
default = false;
};
};
});
description = "List of folders with users permissions.";
default = [
{
name = "DEFAULT";
}
];
};
dataDir = lib.mkOption {
type =
with lib.types;
oneOf [
str
path
];
description = "A directory where all samba folders will be.";
};
};
};
perInstance =
{ settings, ... }:
let
allUsernameList = lib.uniqueStrings (
lib.flatten (
(lib.mapAttrsToList (name: share: builtins.attrNames share.users) settings.sharedFolders)
++ builtins.attrNames settings.globalUsers
)
);
in
{
nixosModule =
{
lib,
config,
pkgs,
...
}:
{
users.users = builtins.listToAttrs (
map (
username:
lib.nameValuePair username {
isSystemUser = true;
group = username;
}
) (allUsernameList ++ builtins.attrNames settings.sharedFolders)
);
users.groups = builtins.listToAttrs (
map (username: lib.nameValuePair username { }) (
allUsernameList ++ builtins.attrNames settings.sharedFolders
)
);
clan.core.vars.generators = builtins.listToAttrs (
map (
username:
lib.nameValuePair "${username}-smb-password" {
files.password = { };
runtimeInputs = with pkgs; [
coreutils
xkcdpass
mkpasswd
];
script = ''
xkcdpass --numwords 3 --delimiter - --count 1 > $out/password
'';
}
) allUsernameList
);
systemd.services.samba-smbd.postStart =
lib.concatMapStrings (
user:
let
passwordPath = config.clan.core.vars.generators."${user}-smb-password".files.password.path;
userDir = "${settings.dataDir}/${user}";
in
''
mkdir -p ${userDir}
chown ${user}:users ${userDir}
# if a password is unchanged, this will error
(echo $(<${passwordPath}); echo $(<${passwordPath})) | ${config.services.samba.package}/bin/smbpasswd -s -a ${user}
''
) allUsernameList
+ lib.concatMapStrings (
share:
let
shareDir = "${settings.dataDir}/${share}";
in
''
mkdir -p ${shareDir}
chown ${share}:${share} ${shareDir}
''
) (builtins.attrNames settings.sharedFolders);
services.samba = {
enable = true;
openFirewall = true;
settings = {
global = {
security = "user";
workgroup = "WORKGROUP";
"server string" = "WhiteHouse NAS";
"max log size" = "50";
"dns proxy" = false;
"syslog only" = true;
"map to guest" = "Bad User";
"guest account" = "nobody";
};
}
// lib.mapAttrs (
shareName: value:
{
path = "${settings.dataDir}/${shareName}";
comment = shareName;
"force user" = shareName;
"force group" = shareName;
"create mask" = "0640";
"directory mask" = "0750";
"read only" = "yes";
browseable = "yes";
printable = "no";
"read list" = lib.concatStringsSep " " (
lib.uniqueStrings (
lib.flatten (
(builtins.attrNames (lib.filterAttrs (n: v: v.readPerm) value.users))
++ (builtins.attrNames (lib.filterAttrs (n: v: v.readPerm) settings.globalUsers))
)
)
);
"write list" = lib.concatStringsSep " " (
lib.uniqueStrings (
lib.flatten (
(builtins.attrNames (lib.filterAttrs (n: v: v.writePerm) value.users))
++ (builtins.attrNames (lib.filterAttrs (n: v: v.writePerm) settings.globalUsers))
)
)
);
}
// lib.optionalAttrs (value.allowedGuest) {
public = "yes";
"guest ok" = "yes";
}
) settings.sharedFolders
// builtins.listToAttrs (
map (
user:
lib.nameValuePair user {
comment = user;
path = "${settings.dataDir}/${user}";
"force user" = user;
"force group" = "users";
public = "yes";
"guest ok" = "no";
"create mask" = "0640";
"directory mask" = "0750";
writable = "yes";
browseable = "yes";
printable = "no";
"valid users" = user;
}
) allUsernameList
);
};
services.samba-wsdd = {
enable = true;
openFirewall = true;
};
services.avahi = {
publish.enable = true;
publish.userServices = true;
# ^^ Needed to allow samba to automatically register mDNS records (without the need for an `extraServiceFile`
nssmdns4 = true;
# ^^ Not one hundred percent sure if this is needed- if it aint broke, don't fix it
enable = true;
openFirewall = true;
};
};
};
};
}

View File

@@ -1,20 +0,0 @@
{ inputs, self, ... }:
let
module = ./default.nix;
in
{
clan.modules = {
samba = module;
};
perSystem =
{ ... }:
{
clan.nixosTests.service-samba = {
imports = [ ./tests/vm/default.nix ];
_module.args = { inherit self inputs; };
clan.modules."@clan/samba" = module;
};
};
}

View File

@@ -1,86 +0,0 @@
{
lib,
self,
config,
hostPkgs,
...
}:
let
testDir = "/mnt/hdd/samba";
in
{
name = "service-samba";
result.update-vars =
let
relativeDir = lib.removePrefix "${self}/" (toString config.clan.directory);
in
hostPkgs.writeShellScriptBin "update-vars" ''
set -x
export PRJ_ROOT=$(git rev-parse --show-toplevel)
${
self.inputs.clan-core.packages.${hostPkgs.system}.clan-cli
}/bin/clan-generate-test-vars $PRJ_ROOT/${relativeDir} ${config.name}
'';
clan = {
directory = ./.;
inventory = {
machines.server = { };
instances = {
samba-test = {
module.name = "@clan/samba";
module.input = "self";
roles.server.machines."server".settings = {
dataDir = testDir;
globalUsers = {
guser1 = {
readPerm = true;
writePerm = true;
};
};
sharedFolders = {
"share1" = {
users = {
"u1share1" = { };
"u2share1" = { };
};
};
"share2" = {
users = {
"u1share2" = { };
"u2share2" = { };
};
};
"share3" = { };
};
};
};
};
};
};
nodes = {
server = { };
};
testScript = ''
start_all()
server.wait_for_unit("samba-smbd")
server.succeed("systemctl status samba-smbd")
server.succeed("test -d ${testDir}/guser1")
server.succeed("test -d ${testDir}/u1share1")
server.succeed("test -d ${testDir}/u2share1")
server.succeed("test -d ${testDir}/u1share2")
server.succeed("test -d ${testDir}/u2share2")
server.succeed("test -d ${testDir}/share1")
server.succeed("test -d ${testDir}/share2")
server.succeed("runuser -u guser1 -- test -r ${testDir}/share1")
server.succeed("runuser -u guser1 -- test -r ${testDir}/share1")
server.succeed("runuser -u u1share1 -- test -r ${testDir}/share1")
'';
}

View File

@@ -1,6 +0,0 @@
[
{
"publickey": "age1jked5ykp2ch5k4030cewmgqr44jc9e7cxsyrfek4v3j4g3fydcxs4jk8jn",
"type": "age"
}
]

View File

@@ -1,14 +0,0 @@
{
"data": "ENC[AES256_GCM,data:EH+rEfBdg4O7dEsk0o95T7xBQK/7duVCnLpdFOC1rWVbwdt/qYzEobZCo9awzvmh6YlC9Ld/OKv5wIBJJJI8PpTII2jdlWMG778=,iv:nhswri4dJ+Yj/1zarXzvLUhfJPSlWCGjVYOP6sYOT3w=,tag:WKFP6xhiSAfuDY880tEyAw==,type:str]",
"sops": {
"age": [
{
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBheUV1blJCMFFoQmxVaGdK\nUmpsZHRkWDJXczFRaDdqWVRXeXYzSVZhdFUwCmY1Ym1uVWF2akJlc2JScWZWUUtI\nbXgvTFYvS0d1aXVSVkFUakJNSVdrZUEKLS0tIFA5WllweEhrK2hwYkFMaTRYeGJT\nU3YxY1ZIblhYdlJZaERodWVsSW1yYmsK5ow3QIvOt7nelW+aiBo1Z08SCqXTThTb\nAimCwnhqBhW08ipZ5hmQFqZc4cfoDapmemOBqW9Q6NPyNB0Mr2EIdg==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2026-02-11T02:53:23Z",
"mac": "ENC[AES256_GCM,data:TxoCasCZ4fRLU4gFWSDl4oi5YUIFSKirYV1kI5oMJcFqSFUZ0ZXCbuBX4i5UA/VWkY0/Th4scRqgvVCFcr/sO8DGh+oi14Ayu1o70Pjf/f0u6S3ROa84f5nBybq8oVQTzP23+a0OkpJTB2vS+ELB2Q7GOeQ7MIrya58XB+40QCg=,iv:9H+0luICB18332YyuUnF+d8sYDWYWakiIK95dmqOZVA=,tag:ldPbuLykRCp9sqI+vHoO3w==,type:str]",
"version": "3.11.0"
}
}

View File

@@ -1 +0,0 @@
../../../users/admin

View File

@@ -1,4 +0,0 @@
{
"publickey": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"type": "age"
}

View File

@@ -1 +0,0 @@
../../../../../../sops/machines/server

View File

@@ -1,18 +0,0 @@
{
"data": "ENC[AES256_GCM,data:WU0RGh0P17GqEfENAZO9/orLxtU8wpc=,iv:yFINf8UCfkSKmWSghHB1wsrsgMcgAxjXbuSbtQY7WhI=,tag:sugSGytBTks5EYk5gZUw/Q==,type:str]",
"sops": {
"age": [
{
"recipient": "age1jked5ykp2ch5k4030cewmgqr44jc9e7cxsyrfek4v3j4g3fydcxs4jk8jn",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBER2VuTUVpTnRDNzVKcW5I\nMTZ3NW5JVEJSVnB4UTBJQ2g5S3ZRdnZBaTFRCmZWTUwyckZwL1RhdXJaZUkyL1lH\nODdienVFWENrb0VDWENOK0hseFBKLzgKLS0tIHMrWDd3ZW9UM3lWZU9Vb2JYUC91\nZGhTTVBmSURPVmNITVlIM2swNXAxUW8K2/88jwpUI+gZ8B289I/AvxtXpQHRabcy\nS2tK1rww6umRYmEvN8X3Ek5cz7XeulgY3gMlS+IbtScjXCGySw5tTg==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBZRlFGV0FveEpkZVNhbjE0\nZ0c2cWtYTEVVTWlkeFMvT2twQVF1ZkRQcVJjCkVLRUpUY0RBQW54dU5McjUzbGQv\nSEorSFpXM3J3ZFgveUg3WDdMOVlwZWsKLS0tIHR2bXRVMnkxNThtNE5McmhzWWRE\ncHAyYW5FZXJ5T2piREhHY1F5WXpsQ0UKFyeMvgOogS9n8puvB0/0lq5+sOSq8yfZ\nSIGlqE0KTmFryNpPUINiJj5SpvdXvUeVqahoCB1QOGbodX1vKiwdgA==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2026-02-11T02:53:23Z",
"mac": "ENC[AES256_GCM,data:gRxnr9F8mT7OuooHRVgtNLut1BAEQiWpVr9iw7oN2mKlbZxq0X09K8jYZu0/dEMijbRfDoZ2bUmW7VIcqAZXwAZqLoqx3vzBqOGAQFcxyVFk0yRqPzR6odMYBdOeLFufN9l1IXOKiH4wZZB1kHean7XBlLzNUCTts12l+wInisY=,iv:zz7g/VcsBkY0kCELIIOBByLOj9bfXVOkw7JdTnlKRWc=,tag:FcGO6rsv+fBTHt+ymL6c0A==,type:str]",
"version": "3.11.0"
}
}

View File

@@ -1 +0,0 @@
../../../../../../sops/users/admin

View File

@@ -1 +0,0 @@
../../../../../../sops/machines/server

View File

@@ -1,18 +0,0 @@
{
"data": "ENC[AES256_GCM,data:bgmzK6ERM6e6uJMW8Cqfgo1ktvM6l83LxNJV,iv:aYAYbWvBLZZx9zdUUZ/K29heR/yKXRDeR48g8rhKIQY=,tag:ZhXGRovVumEa0lpT8P8KaQ==,type:str]",
"sops": {
"age": [
{
"recipient": "age1jked5ykp2ch5k4030cewmgqr44jc9e7cxsyrfek4v3j4g3fydcxs4jk8jn",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTTG4yRFM5T1B1SWdzWWYv\nQTd0M2RjVTVKNy9rNUM1TmtvcEZsTVZ1U0JFCjNTOS95alh6MVZubXhOTGRwakUz\nZDBFck8rUVhYay9iRTRHY0pCZDJsSEEKLS0tIHJPUXpOVnMxMk9aSjYrTEFvSEJo\ndTd1MmNabVI1YkkwbVhkMnJLRzZzYjQKP6ehM8PTOrPVMgViUPGsXTyOdr9k5OAO\npf0faZpfH/GHiVBT7vaLrE/BLOhxLNkltldqyS1IUy19iXG9wEjbOQ==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBRVDVZM3U4b0JveXVQL3BS\nR2x0SnlyK3FHMGdPL0hsb3lLOWt6aHBRbWdBClpzYWxEWUJHOGxzM0ZrUWhEa2hv\ncnFmOElUUkw5NEtEMmV3VDdiUGkyWlkKLS0tIHVtUlN0VTR1Y3ZxQ3JyRjA4ZzNk\nZWthMDJ5K1Z4Uzc0dVdWY2xWQUgzYkkKE0WIA/a1ZJXDS+qZyqadNYPRg7ixB8fU\n/mqsnJ6imb4+436LDfAd+ZknhS38IKe+56Tj27/frHFvcM4XIdBOuQ==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2026-02-11T02:53:27Z",
"mac": "ENC[AES256_GCM,data:rTA80/5n6DcTQns0UfuIJ61700exGeY/9zZaFA29bPFVzjuWz7EF4kQB8c3Qt1NcgGECn39pI/cT8SO1fWvz5mMRpBuoPthG8vzHGtjpqYYQhvOXh4CPmPA2EpWsC5Yz+ixSNF5BsrQqr+nnHLncmqVtdwKNx5WHZ+cHGHscqlk=,iv:ve7d0esVdq74ABai4NnS/W2hcLTmEf4QpxoJ24dLMNw=,tag:u99X2k0L7/iWSIJoTBR3KQ==,type:str]",
"version": "3.11.0"
}
}

View File

@@ -1 +0,0 @@
../../../../../../sops/users/admin

View File

@@ -1 +0,0 @@
../../../../../../sops/machines/server

View File

@@ -1,18 +0,0 @@
{
"data": "ENC[AES256_GCM,data:WgDWZkhHWOV+ziaXtaeTWQicasUPRXE=,iv:Mwgc7cohAOLNsN77fEMBuOQaeQYAUL2CpEE1WaXm0lk=,tag:05Xxc/rJg1bt1PF79MLd/g==,type:str]",
"sops": {
"age": [
{
"recipient": "age1jked5ykp2ch5k4030cewmgqr44jc9e7cxsyrfek4v3j4g3fydcxs4jk8jn",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpWThaNElOVmhxbWFuTkJR\nQlJYMkVNTW5oRUNqRlowK2RLelhqb2hwSldFCjMycUpGelo1M2N1QWsxT3BCYktR\nUlpTYTUxTnVGMVZoelU3ZUlvQ1pMcTQKLS0tIGNmd1NQSlROR3lzQ2JQdkF0elkz\nNkN0Y2Z2T0Q2QUk0d0kzQmwrcVZEOVEKiM3Y/uGy4dB/5rGKAjjZM95y8INx+e+q\nxU9TUfGQBgYVzZtloLz3O7mlwhlamk1BvPvHttU+35paw26IbUlIoA==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWczZZWk5OTGtCTUw3b1c3\ncU9UaE1RaHNMS01NeXNmYVVqVHhJOXdmUmxvClh4R0ZtZjVmblZCWjlBb2VEaUlE\nUDBmWTV5Wnhpa2tnTWo3bEhOYXlYRFkKLS0tIE5jV1Ivdzdxc0R6V1ZiZU5NWFNL\ndnNsK0dhTElVWDVMRUZiTG5kMnJVSlkKVXmgoqF2bdwia9VDlOOKA6DTZCqpl9DP\n2ClATf3YXnKQ/uBNpfWrKoqJDL2y+26rEeoisPUrkrgYbpr3hq6Nqg==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2026-02-11T02:53:29Z",
"mac": "ENC[AES256_GCM,data:Yf5hFEEQ+yYH6OOjI7GLBahLL8UPuLIhIIdYkRoj6cSHgqm/ZpQGcd8MlHLGq0dpUcGOYJV9CM9pBqX0MjpABiK4XdTpoTn80EOV+mI2k6idE5N0doDecymI5A9ueB+5lO187HP57j5blJIn9aW+xO6MI9kYRYOz3sroAPq/JX0=,iv:yH1mB6DD+h869bsmovywJQm2ccd1PmqA7sZ9DGQ2+W4=,tag:sqLDW7JjT+K0JeWr8cUAQg==,type:str]",
"version": "3.11.0"
}
}

View File

@@ -1 +0,0 @@
../../../../../../sops/users/admin

View File

@@ -1 +0,0 @@
../../../../../../sops/machines/server

View File

@@ -1,18 +0,0 @@
{
"data": "ENC[AES256_GCM,data:LgIGB2KkRtTiqyy97uHI87jzaWTn2oCiV+Jx,iv:fUBJ6d9svCfwS+nDcIxezV3Eevlyq6r81D4h10T7Tw8=,tag:jPTOtbwjYEZc2eyMAKBrkA==,type:str]",
"sops": {
"age": [
{
"recipient": "age1jked5ykp2ch5k4030cewmgqr44jc9e7cxsyrfek4v3j4g3fydcxs4jk8jn",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAyekpXT3lVSWErbWZBZW9l\nalBMVTB2M3Y2czZQWFR0Y3NWMlVLT0o0eWg0CmJWZmlHWFUwelI3ei9wTm5SZ2JC\nODRoYVRoVDFTRC8vcWgxaXd0ODB2TEkKLS0tIEhZL25mR1ZMY1Z1anBCTnltYjlr\nL2h4M0lieDFWS2lCMDY3MERORDZBS3MK3onTR08r0s8KA3qRC9xymVRhHQ9I6XjL\n/7bDzOR72fIHtCG8h+KTvN2v5H/YgHTVf6GzDw9FRRByuQ6YrP5lHQ==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIT1prVStXZnBTajNYeFNh\nL1BMNWxuM2RYRENPQ2JKVWJjZ0w2M1RodkRFCmFWU2hmbDBNZ0tOM0tGRlZaMkpL\nY3JtNnl0NXVsNnJUZThidXRuMlhNRTQKLS0tIHZMaUVZa0RBRHJoaSt4dDNyUGk5\nQ2hIUXJKTkFpR0szb1BWRi9FZ2MvK2cKzSfNN4PPx/AeyavqTMrpIOxQrdOi1Pt5\nrXrMYf1flYJ0xy0qjiBOSQlTlbq98A9sdB6OvfHFIMZU5Gq6jrnieQ==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2026-02-11T02:53:32Z",
"mac": "ENC[AES256_GCM,data:0jinh78IsYiqCEAjxk2gE9KP1vMmWT7XCgODdwT0tpQwlJ3T3aym2QCuC2fSFSpjqFrLBeclMOMH1Yz6dU873ZeRYX3uVovTYzOBJCYip/8PIUslum8Rafq7P/R0am1gZ6fwGkuY7kjIwaSxNc38mwx4TvIBZKNRdmkdnN9ZmnA=,iv:XpJAlFi/KSDaoZiMS6cc8RSwAw8MhikzAy1VlHFW6ig=,tag:i6ydBPpn/hvY/2AGaVkxZw==,type:str]",
"version": "3.11.0"
}
}

View File

@@ -1 +0,0 @@
../../../../../../sops/users/admin

View File

@@ -1 +0,0 @@
../../../../../../sops/machines/server

View File

@@ -1,18 +0,0 @@
{
"data": "ENC[AES256_GCM,data:n7e3+g4+mB7eB9fs6RShr8Weh/N58vuRTg==,iv:64jgKcVY4kJlL88hZujnN0w4Bd3BAvnx7qcL7jviaIs=,tag:qE0pNorMKPsQnguqSciiGQ==,type:str]",
"sops": {
"age": [
{
"recipient": "age1jked5ykp2ch5k4030cewmgqr44jc9e7cxsyrfek4v3j4g3fydcxs4jk8jn",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzRXFnb3RMV0srYUUzSkg5\nQUo5cWl3RlRoYnRWV0N0VzU3aE9MUUlHdUgwCjRha0VwY2ljSk43b0UyUWtic2g4\nRFhWbmhBOWRpc2pDRlVMRnhObXJCMjgKLS0tIE1jM0hBeWd4eTNKanV6V2ZOUW0w\nNVFnMzNpR01tSU5HUHY1cW1SOWk3NUUK9PT0IV210rjorKWcdfP324IPojJqdFfn\nGAL2mbI96jat2nyqkg1uRfighvVzGlGJWkLpToAUpqJTWu5tRbMrXg==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhUWVub0ZzMW8vWVJmK0pC\nUHMyNjFXZkhPV3BrUElwd1dFUzBRVFBhSUU0Cjh4NUV4L3F3RjYrclk3d0RWS1hv\nTEdlZUY5ZFYyQ2VkOG5xNUc2SFphU3cKLS0tIFc2MG9IVFJWbHBYWnJEMkJTZnZL\nMms2eUk2Nm03aURJYWJGclNJMk8wZUUKFz49E5sp23YLlewDHbjApgRxS2BZjBTk\nk4SVJYvvIoZiPdRTNzZ6HYZGD7p036WhYg43lduqUrq8AtCnEHPdbw==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2026-02-11T02:53:34Z",
"mac": "ENC[AES256_GCM,data:0XlREuaKL02o1KlUm5K/xM9cFZP1APpO9152Bl3328Pm/a/j4XoAu70keSUjE26UG5TLcxAkT7m5bOW5Clo/zxzPORAMMv9NTho4gwkfOABwymcR0giNFjpZ10a3PBHgxMm5AaXR0mfehFE+NV32oKfe2htpOSKin5kFe+0kmLQ=,iv:qXE5c8hRLM2lALo5JbDA9YoCDjc4A0OxmWkXocUDHBs=,tag:AXZjnULGKuIMdDkywa3PqA==,type:str]",
"version": "3.11.0"
}
}

View File

@@ -1 +0,0 @@
../../../../../../sops/users/admin

View File

@@ -14,12 +14,6 @@
...
}:
{
nixpkgs.overlays = [
(final: prev: {
libreoffice = prev.libreoffice-fresh;
})
];
services.stirling-pdf = {
enable = lib.mkDefault true;
environment = {

View File

@@ -1,6 +0,0 @@
{ inputs, ... }:
{
flake.robotnixConfigurations = {
eris = inputs.robotnix.lib.robotnixSystem ./eris/default.nix;
};
}

View File

@@ -1,17 +0,0 @@
{ ... }:
{
flavor = "grapheneos";
device = "lynx";
grapheneos = {
channel = "stable";
};
apps.fdroid.enable = true;
# Enables ccache for the build process. Remember to add /var/cache/ccache as
# an additional sandbox path to your Nix config.
ccache.enable = false;
stateVersion = "3";
}

View File

@@ -1 +0,0 @@
../../../../../../sops/groups/admins

View File

@@ -1 +0,0 @@
../../../../../../sops/machines/sirius

View File

@@ -1,50 +0,0 @@
{
"data": "ENC[AES256_GCM,data:yLAriT7uR/f+cH+9YmAtEPxd06nS,iv:jBGuP1T0HolOjuiFRcv66ANEimn0xUrP4jfhz+8skAM=,tag:eSpLwlKjzgHZqd1qdCJ5zg==,type:str]",
"sops": {
"age": [
{
"recipient": "age134vt63pjqpd0m7702fyn8vhdlzyj2deqc2q78sp9uw9052kxsgwq6d25ez",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFQ1VRcWxmcDlBOEdUbWtL\ndk0wU0VJamk1enRWaEFDUDVhNXMxRGR3QzB3CmNscmYzbXBJRzN2UXBxWk5Oajhs\nTWdZU0J5ayttMEdUWDl1enFkR2NhcUkKLS0tIHV1UE00YVlvckdVN1EzUGVaZERw\naXF6Qm9wZnJDeUxURlJmMHFKbFNGbXMKsQh7ixgiiUbZrpeVPLoRhyUtU3vThrZg\nN/fxoEBxZsa48kW0FA9oPCVA5zKY90WjgqPeTNfUh1hsm6WdZb9kCQ==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age16aerzyy7adcymezr4ewql3y7chq8wuvjpzsxm5um0u9jvvtdncnqmtsw05",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtVVk2Z2UzRTkrai9DM3Av\nYi9sbHVsd2dBbnBDVC9hanNwWjBwYisvVzA0CmNBcXNhWWhrRmlxUVhXS294eEFI\nZmczNjJyM2tvOEtzNFBXQ1BpWk1tVE0KLS0tIHNNT3ZvbVpIRDJwVmxOemo1aXhq\nYjRTbE5XY0Q3bUErUmIvUnRkZFVUY1EKsxcXC840I6avsAlEolerQI5Vl295rDvb\n3hfFzanIpgDeE7ylN4ycd7RD0kpFvb9qQZPdVmRUCeIti4XzTOlfFA==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age17d4qt0n9edq57tgcqyk8eu5mrendl59yt6z2y3a4vkq7el8krqtq6lq28g",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBmWXpKcHl3N3pzK3RubE8y\nWm5OODBXZ0tzT3gxamUwS1BibHZPMDJxU1dzClB6RkhpbzZxWmtFMnhrQjdzMEgy\nNVJzOWs3a1ZXeW12OUp3SHZDaTNDZ2MKLS0tIDdTNWFNWHNVNFdEdWZxbkU0MHBm\nRXVERlhmait3U0l5ZldydzgwRHJ5TGsKXEl9ojSeZgpb0Oy2h0f3ZhnvFuC2QpjI\nrPhaKOVIoQqBeSHN2oz8WGaEyVMFy0GdPk0xulyE7u0Mvx0+knV/Nw==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1fido2-hmac1qqpf43tgcfjm048lsqskvq34w2t4uvrm5qy6m2eg6zjj82ctca8wctgpczxvj0q4y6337uhvsxdh5j86k9h9ymautpvv2759ucwnef75ez7pa7fpkddklp40mxk2tedsp74359g0kefn5rsq0x0yss6cu4yd0h06up0rp08t6yc4l0hfa9y8jn5fkx6nk0hjhz06ykwv0fyxe7z42q683jy0",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIEFlN1hBd0N4\nMkp3NXVvcWxsZ1lrNG53cUdJbU53OXIxdXpoV0R3STJxamsgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpKSWNhVUpoeFBrK1A0YjNGYTJkY1Np\nVXlkWTEvcXlPMEJVeXZrQUJMd0ZJCi0tLSBaaFlLeVJJVnRUN3BPQlNsQkthNWlw\nbWNkZGhKYXdKZ2lVVUt2bEtyS2xFCioUTdxV4LH16zlUyBZmtMvLDujTJievIpW/\noLZlqOKbhOZkSHJ5OKZAXkXmsFQoXuHyyjyc9O+a9ZQNdGLY83A=\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1fido2-hmac1qqprw0vfpc8wzsu78quc777kmee54ln6nnsjrnrhl7nr33eh4kvkksqp05qqxj4kgfzrmrugrsvg7skx6ghh3q9xc0x0agthtkvy25d9eq7eklta5wf7s30hexkuyl5546rdz9ffa5tawlp5yweqkgccntw0ny540n2am3cqw3luhxkfmrp63kwr6mwplhr9u26wll48x0n3k5f60c7hg9a3",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGR1RnBXdGN6\nY1RjblkvaS94ZHdmMzR0S1EwTGNOMzVEZVlTWDVWb0xFeWsgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpBVGpsaHc5czBuWnJvaUwvamFCTjU1\nT3Q5V0h4ODRuQ1lLSW8rQnF4ckdBCi0tLSBxbmFIUmx5SXZuRnRPTk85aFNJUU5i\nM2x2SVNDTTFHUXc0VnNWMHduZFhVCq5lzyrHhHFcS6fGSmNwHqVCvkDJGEFSitYq\nKiXza2W0H2y/Zg1CniRCDgB5mhP6BJOTLPSqmYAVj/Dxg1bQvno=\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1fido2-hmac1qqpyewum3q8dfcumfgec8nn958aec9f4q9aqy0k06kw5kq27d6fdqdgp0p7y4ru3n5xk90u747xevxa2af3v37e85j9g3axrmw5hdwdfh0wz22hut5vrafxsx26a7vh8fjwkymz3ramfgvvu4detztu075kmpr8l9ydqda0rnjwatdwmfgswg849p37astvld98s3nleeq575azlwc2hhpuh",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIHVWZzFZOVVE\nUGUzMUpBSHJQOWVQRTI3SnQ4Ri9kTHNhaytOeWN4YUwxWGsgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpScWZOa0IveGFWQ0x5RDl4Q3R5ZFNq\nNEtxSTEvY1h1NlJITG5XRnl1YUJZCi0tLSBmVm9HeXZTMmhCaWgvVFZ3YTFHS0h5\nOHppUlh2K0ZzeVR1Rkg2eTlCTTdVCn8cLPK6JXIvLOSUeeLzWmG2GtbtIL09awO3\n1cR1p4tEzAl5C0zlyEgXOxlHxOPiGnCL5V0H5ePuWo21Va/xw+A=\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1hlzrpqqgndcthq5m5yj9egfgyet2fzrxwa6ynjzwx2r22uy6m3hqr3rd06",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBjYnNGV0d6QkJWcS94T21E\nYTZaK2RYbFRVUVc4cjN1NVJQZFlWclVYZm1rCmd4d3UvQnhuOHlJN3JnRjVTalRB\nVlR2VXVHMS9rV0o0TEQrNEg2VkYzdXMKLS0tIHlhS0FFODNJUFl6dWovdWEveTJ5\nTE15SFVld2RzcEl4VlZZSDVqbXRmMG8KjyV+Csx9EPNB19fbY0tRMYmxSXE7ykBU\nJZVcEJN0KQbmgQXNqVq3pE0rYmNavZ9ovpo6yFmlLp8g/WYfGjlI1g==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1sg0rvgyetdcqw7j2x983fh69kdkvqsngpe5x36e5920qa7fze3cqhj4wgx",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBibThZeld4MUN3WW5YVUM2\naTRvc085RFlrTTJhMzlBNENYYS9pemxaL1YwCkhLL00xUFBqZ0oreWh1Mk03REtm\nS3Q0clBYeGpOQVBiSVZGcnFWMUYyOHMKLS0tIGlYVnZOSkFpVUNaYWhSd1NnMkFQ\nK2hYUDE0VlZLQzh5eDRZb0ZSR1RLL0EKJ1h1uVkGtaDVOpR55W6cSsBz3cf1iyyU\nQq18HTweW8dIfwVdq+7I2V3ZqLWPd/83Syu1Wk08jj8rppEN9sbJaQ==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1swlyyk2rzvevqawyeekv75nx2dz34zpe3xqhkqme26gcgeavy4dqrfpcd8",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBjZGZTVWVXTkFITmtDZjAy\nUW9QRVlFakVlNlZkakUybW8yZml6SmNBeURNCnpCL0EyTmZ2VjhXcStqQnEra3p5\neHRqc0VCMEZXemZISk4zUFE0SFY5R2cKLS0tIGExWHp3ckRDUTVFd1NGYm9PcXZK\nL3QyWUZoRUhKZWdXZ3lrczAxNnpUencKALhwRnzEpux0jaCzTljo+uGZfuV5wQ8o\nLUa/TzULbhUsh1a09BwNrGSZWQ8hXN8jFHiGRomQK+mDToildolOaA==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1vphy2sr6uw4ptsua3gh9khrm2cqyt65t46tusmt44z98qa7q6ymq6prrdl",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUeTUzSmx5ZWVnY0VOd3Z0\nbXdoUFBSeTlpeG9CV3JVNEIxdVZrNjZqcTNRCnlGdjk0NzEzeHBSeVl5TENROU5k\nRWl0cDB2RS9GbHpLTC9iM1RNRWZNcUEKLS0tIFVDb1pVS2VMZWROYVdXOGZ2dWEr\nUmpPczZXdVAzMDl3dnVIL3ZYdkduVjAK7ytoCdWcNe2sUzucPuP1gSnhWFVRPpA2\nyiIOBumjQrricLHOv1FFxmLgxx/reaVlK80oS0EzDyFp2N6DDZT3dg==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2026-02-13T04:14:29Z",
"mac": "ENC[AES256_GCM,data:tCipieSazQgKulsci8czftQINVUYQV5bIGHkeV9xPwePQ05KpKG8PHJmPtB/VjG87wWqiQNlZOagt9WjPH8IYMHIWO74zyGk9N5Tw0Kb8SzR+NOFUTt7r5zMN2eOMbjPokZIyDx//Uk49f0LdJXKrBfMYO+gKJf0JFbw8R0ThUU=,iv:m9Tj14GJxeF3FtDlaWgpT8vc8CFMf09kkuGgrl9LeY8=,tag:+cX7/pDcGRSHvBTRqTffJQ==,type:str]",
"version": "3.11.0"
}
}

View File

@@ -1 +0,0 @@
../../../../../../sops/users/kurogeek

View File

@@ -1 +0,0 @@
201:e111:117e:7b21:f37d:a929:51dd:e8a2

View File

@@ -1 +0,0 @@
../../../../../../sops/groups/admins

View File

@@ -1 +0,0 @@
../../../../../../sops/machines/sirius

View File

@@ -1,50 +0,0 @@
{
"data": "ENC[AES256_GCM,data:jr9a0x73ipdhKv7GKCdrNqe00VFDh9LLcDha7notVjh8KIDfKhzsNSw+rNTCnpRN8BeXxkeuHaaaf1S8ywoiwL1FI/tJiurc0Do54pDjNV7wWjbAaQQ4f51395o/TMlyH4qFaRirpx0xQZlf0ZyMgezZzxumaR8=,iv:z4v0g6v5SfoB/vdt9q8Ii9eTiZBwUSC8fgGWMT6rl80=,tag:UNZw54WTA0YFkqfuXZ9tNA==,type:str]",
"sops": {
"age": [
{
"recipient": "age134vt63pjqpd0m7702fyn8vhdlzyj2deqc2q78sp9uw9052kxsgwq6d25ez",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArODRXRnBHaHQ1dU04aDhI\nUm1vd2wydFRxUTA1SnFlUXRZdFpudURKR2swCmFBMitraUJDUmcrbnNDeHAzZ0ln\nbzZKVzBjR011dlhRQ25lalZBVldpYjgKLS0tIFcvN1MvUjRJYzh6V0NZYW85Tk5m\nOHNGeTFSODZvVFQ3SWFEZ0pMalhOREUK4rEPS63ViaDfOjPC2jYb90WMU+ZvWhKp\ncxXxmM+HozvLtj1j9xM0LT9abAanPKHmRU8QkcCgBkzSMestsGJb9w==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age16aerzyy7adcymezr4ewql3y7chq8wuvjpzsxm5um0u9jvvtdncnqmtsw05",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKVzBINHJJajVxVWNMY3lV\nTk9wSHZOdDhuVnhNcmYxYTQ2dXMyZEhhRG00CmQzTExoMDBEVm1IK25aZ0NiV291\nNkNVNHlIZSs0N2VOTHN6cmQwRjAzdncKLS0tIE1tRkVMZ1VWNHI2b3kvUnhPRk1o\nMERqMXZTRlJTcXNUeU94TGVadUQ5akUKDD6MaUdEBcQxnh9NKtTUBe50ikb4FLL/\niuWjNYaIEyUp3TR+m0L4HQB6iDLEpWxoqycU7nMMJdVi6knvuRLAEQ==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age17d4qt0n9edq57tgcqyk8eu5mrendl59yt6z2y3a4vkq7el8krqtq6lq28g",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYL28ydWwrSzdzRlhrTyt6\naWpxOU95Ym8zWFMyMjZvTWtwOWtTd3dSZkZVCkNOYzU1ejF3bHY1THZSUkFqN0VZ\nQ1lPdTUvWFRvYmkvU1pFTFNXMi9HTjAKLS0tIHpXVHNBZjBzcWZCbjZ1a2ZZVWZR\nakZ3djBwL1NMaHd5MTdpMExDWHl6TEEKrclVI2SRuwTi3hdVrgiMac1jRT1D+qjV\nHWF4o/pP5c8hHM7xQQu5M+yKJLKzZhwQAxf0pF4wV7f21bkVD+7eCw==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1fido2-hmac1qqpf43tgcfjm048lsqskvq34w2t4uvrm5qy6m2eg6zjj82ctca8wctgpczxvj0q4y6337uhvsxdh5j86k9h9ymautpvv2759ucwnef75ez7pa7fpkddklp40mxk2tedsp74359g0kefn5rsq0x0yss6cu4yd0h06up0rp08t6yc4l0hfa9y8jn5fkx6nk0hjhz06ykwv0fyxe7z42q683jy0",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIEtQZ3kyNm5s\ndEZPUi8yYjJQUlQ0RkRjckc1Ry8yTlRjYUdGVWtZQ3Q5R0kgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQorY0JucTVhRnJQd2o3Z0ZVckMwdjJQ\ndVltcmNXR2Vlc09IakI4Sld5QWs0Ci0tLSBFRTUwQm9ZdlFKOEYzVVlkc2JnQUZp\nVmhxMGlTOGM2TlBVdER0by9TSm9JChCdHdKyNk/1LvIkMv/gQUCQOVUX62ESUVl3\n8kYwECMi2aLWUJ4WNDqfcfDKqKNeN/5zxtbhf5BUCNac9U7z3Hw=\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1fido2-hmac1qqprw0vfpc8wzsu78quc777kmee54ln6nnsjrnrhl7nr33eh4kvkksqp05qqxj4kgfzrmrugrsvg7skx6ghh3q9xc0x0agthtkvy25d9eq7eklta5wf7s30hexkuyl5546rdz9ffa5tawlp5yweqkgccntw0ny540n2am3cqw3luhxkfmrp63kwr6mwplhr9u26wll48x0n3k5f60c7hg9a3",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIEtDbnBpTWVU\nbVhFckJ5OFh5Y1BJSGhYQ0lrSjZzMDNvLzY5UW9RaDUzRGsgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwplMWRteXlTcURmNVE1WTZ4V0xwSlFR\ncTliSWNpS1JLeWJXd1BRRk1RRGNVCi0tLSA2M1VHUUlpNTd2WVlUZG5Iai9pWFVo\nak93dVN6QXVVaWd6NkVSTlF4aEo4CncLgOXO7UixjTzV8E/nY0RRAm43C2eqSry3\nq7E+tmiRSAxEfm3YytwqFn5j0s6Cf0nowsnYMXT9i36j23VeXyU=\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1fido2-hmac1qqpyewum3q8dfcumfgec8nn958aec9f4q9aqy0k06kw5kq27d6fdqdgp0p7y4ru3n5xk90u747xevxa2af3v37e85j9g3axrmw5hdwdfh0wz22hut5vrafxsx26a7vh8fjwkymz3ramfgvvu4detztu075kmpr8l9ydqda0rnjwatdwmfgswg849p37astvld98s3nleeq575azlwc2hhpuh",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIFVPTTNuMHZ6\nMzNid1Q5Qk1QYTFtRktuUUowYmlmNkl4Z0YrWFpvRjJPeFkgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpON2JzU3dwOGRXNUgzNnlIK1JzQnBu\nd1ZZc2ZJS3JIRVNPQ2F5OVRwNFVJCi0tLSBBUEhoUHBRUDlrNDZLNEVLQk5LWERH\nZWlVZnJMakJuZ1lOaytucDhuUlZjCvsQfDI84809RS8295VtmzYXIb77gzbURL9I\n3gptOBg7AqGSqPuAkTXDbpNsNHHQoTAZAN1l/7cMKSmkPW4bihY=\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1hlzrpqqgndcthq5m5yj9egfgyet2fzrxwa6ynjzwx2r22uy6m3hqr3rd06",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArcEdZMHBPWWhBMUhuUW1L\nN0Fza2o2U1RKa3RrbS9SMGM2MmtFU2JGblhzClA4SFVKWHVsQkxseVpxTEFYZ24z\nZ1ltS3VEZnF0K0oySFRManpQUjQvNmsKLS0tIGpIUVBXb25MVXFhU0FUUkYwRVZQ\nZFpvR2s2bHcvZXFtam1QVGVZS3ZTSUUKGWvAdjvS6le5xKSw8iqakUjGlbskkwN1\nEuG5J5wRRkzbYphXKon+UkXfvsN6FX/TzRKfW1h6ooFrM+nFI1ba4Q==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1sg0rvgyetdcqw7j2x983fh69kdkvqsngpe5x36e5920qa7fze3cqhj4wgx",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBjb1AwSTlzSFNVL3NhRU8x\nUmVJSCtHKy9KSzladFlpTHdRTWJHNS9TYlVBCmY1RjdYK0xXeHZCZlZKRnpQc3A5\ndVN2KzVEWkthRGZnTUlRYTRua0RsQTgKLS0tIEk4aUxQMzBYTk9DSzhKTFpWdmxD\nczdibXhRNjIrRDBOREsrckJxL3EyQk0K3vH9VstuafaXw+8P0DVYXUWHm3GMhGPs\nVygIKxq6kKue9s+WMZ7VieDI4sCmS2y88B5tBD7ND0Nj5uqIM17NYQ==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1swlyyk2rzvevqawyeekv75nx2dz34zpe3xqhkqme26gcgeavy4dqrfpcd8",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAydGluLys5cFREWVRiL0lr\nU216SGYxT202NkM3ZWt0UW54UUNINEd5VlZrClhwd0pEMXVOSnJTc3ptTzVPOWdS\nSU9VOUZMUUNZWGxMZDlLcldKdk5EVDgKLS0tIFNLalMwVzJUU0tDWkIzWGNDWWpE\nVldlM1NTMkd4alVwNTJzRWc5N0dzVG8KgsBGsNge4VtfkzmbZZM4REInYcPoV5Sd\n9CNDschMQ41GvWbZtVCP89dBSLm4XQ3KfxtA9JpFKXgLlSfpUWCTqg==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1vphy2sr6uw4ptsua3gh9khrm2cqyt65t46tusmt44z98qa7q6ymq6prrdl",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA2akJ3RUVqMEJGTE9ZZUdT\nTFArRlczNDF1S2kwMDlLVldHaVBHUm1FcGlNClRBa2Nrd0dQakpEWFg2djZNM2Nz\nbVNESGEyUDY0TWpRRzZROHBPREpjOXcKLS0tIElMamwrYXpQL2crem50eXB3b0xr\nek4xcW92UVZ4U1hydzdsbW42LzU0NTgKzz7zJvGF7t8ZRSSQlgqY+ryG3Pwunx2H\nt8qI44K9EWpDdbZ1+ykccI1kmI+1H2N8Msk+JnVW24KO27+lTmlcKQ==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2026-02-13T07:40:20Z",
"mac": "ENC[AES256_GCM,data:9CsWU70jzx8QstqfCW1z6biOUREYpohGTC2mj+VwSgDIRr18HBh6jWelgKWjNNm1gf0gFZQk+cW18/D+PvgplqIExxr6t45D6vlCwfu5J7CcGlzMtnrBCN6p5Pj7soo0jk/TQDXX6bfp5wkJUY/EZ1I4ZSqm2UeLU63Q1JUp2qc=,iv:+etudEqbxmoYhxntjdbbW818kO+iEG9a1UOSkqv4khk=,tag:fgmX40j9/uVK3Z0lkX1jAw==,type:str]",
"version": "3.11.0"
}
}

View File

@@ -1 +0,0 @@
../../../../../../sops/users/kurogeek

View File

@@ -1,3 +0,0 @@
-----BEGIN PUBLIC KEY-----
MCowBQYDK2VwAyEAR7u7oGE3gyCVtauIhddE0qcq+d3+0MzGGXGtTW2Kr70=
-----END PUBLIC KEY-----