Compare commits
16 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 421a49b463 | |||
| 77b487a709 | |||
| 2b239eb162 | |||
| 8e64e88d8f | |||
| 6276d9aee0 | |||
| 9471d1a4e6 | |||
| 77d8e42ec2 | |||
| 0dafb8cd52 | |||
| 8b12656149 | |||
| d622040d30 | |||
| 2bc05c2d6d | |||
| 5fa8444112 | |||
| 8874b33a5d | |||
| 521ccdc886 | |||
| 07b648db9a | |||
| da6be4946f |
Generated
+33
-32
@@ -72,11 +72,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1772411144,
|
||||
"narHash": "sha256-WhXudztwPNnKXaqGX4DOqNfHzHdBSiGCvKGHM20pscw=",
|
||||
"lastModified": 1781517972,
|
||||
"narHash": "sha256-G8bIXFqifs/y62GNPwg20Ksf71raYwzmyN99gf1tXak=",
|
||||
"ref": "refs/heads/main",
|
||||
"rev": "92cc85bc24eb31ce5725e1e72753129810ce3fe9",
|
||||
"revCount": 13201,
|
||||
"rev": "7fc62d0c25c7a97d7027a9c248e21c97c9b3acc1",
|
||||
"revCount": 14604,
|
||||
"type": "git",
|
||||
"url": "https://git.clan.lol/clan/clan-core"
|
||||
},
|
||||
@@ -101,11 +101,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1772273147,
|
||||
"narHash": "sha256-Wzhoc6ifjTDZi8aVRH3fuLJPdd4ouNTTwwVhgoMcMek=",
|
||||
"rev": "d5de7a8d9e5726e678c94e62fe8ac3a809fee5da",
|
||||
"lastModified": 1778718524,
|
||||
"narHash": "sha256-pXLoI6Ax0EnUK6r34UM1vibVC7CfTu6j72R2692ZzPs=",
|
||||
"rev": "12c552ad547d87254f33f33bddd1a2cdbeac754d",
|
||||
"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/12c552ad547d87254f33f33bddd1a2cdbeac754d.tar.gz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
@@ -140,11 +140,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1771881364,
|
||||
"narHash": "sha256-A5uE/hMium5of/QGC6JwF5TGoDAfpNtW00T0s9u/PN8=",
|
||||
"lastModified": 1781152676,
|
||||
"narHash": "sha256-RxWs5ND31KzTG7wvMM+PMfUjyNpmIEr999lqNARaM5o=",
|
||||
"owner": "nix-community",
|
||||
"repo": "disko",
|
||||
"rev": "a4cb7bf73f264d40560ba527f9280469f1f081c6",
|
||||
"rev": "ff8702b4de27f72b4c78573dfb89ec74e36abdf1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -294,11 +294,11 @@
|
||||
"std": "std"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1779175997,
|
||||
"narHash": "sha256-Ps/4s3jwaZdLVEpO+1cRs54VbPbgMeXJUqa4CWSPJSY=",
|
||||
"lastModified": 1780907315,
|
||||
"narHash": "sha256-MR859lKVKeItsC5wnd1oniBar2lBTA+FJ7Bx4xN1Wpk=",
|
||||
"owner": "kurogeek",
|
||||
"repo": "frappix",
|
||||
"rev": "0f1b4bcfb8c3b976e808a57e491d10857a1a45ac",
|
||||
"rev": "9c2bc4152bce6d91305bcf0563a8a715860c405d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -353,11 +353,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1768068402,
|
||||
"narHash": "sha256-bAXnnJZKJiF7Xr6eNW6+PhBf1lg2P1aFUO9+xgWkXfA=",
|
||||
"lastModified": 1781557312,
|
||||
"narHash": "sha256-QOIRYSUFSq7L5mY3dZymaVhcnne3tPgoR9riB0WocjA=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "8bc5473b6bc2b6e1529a9c4040411e1199c43b4c",
|
||||
"rev": "c03e4752899e55705dfa63979abd885c582a5c48",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -484,11 +484,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1772379624,
|
||||
"narHash": "sha256-NG9LLTWlz4YiaTAiRGChbrzbVxBfX+Auq4Ab/SWmk4A=",
|
||||
"lastModified": 1781242433,
|
||||
"narHash": "sha256-bchLZZ3sRn740zyvD2icZSnNoTaanN0nw7l6fjVXO+E=",
|
||||
"owner": "nix-darwin",
|
||||
"repo": "nix-darwin",
|
||||
"rev": "52d061516108769656a8bd9c6e811c677ec5b462",
|
||||
"rev": "aabb2037edfc0f210723b72cd5f528aab5dd3f0b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -522,11 +522,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1714086354,
|
||||
"narHash": "sha256-yKVQMxL9p7zCWUhnGhDzRVT8sDgHoI3V595lBK0C2YA=",
|
||||
"lastModified": 1746801636,
|
||||
"narHash": "sha256-dlcKfIXp/eqFHzFm+DzseXAWWlpVwyk9cTvCKGtVKkw=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixago",
|
||||
"rev": "5133633e9fe6b144c8e00e3b212cdbd5a173b63d",
|
||||
"rev": "8cc33f973ab3a891d8a41391e73ef451a783960b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -552,11 +552,11 @@
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1778458615,
|
||||
"narHash": "sha256-cY07EsdhBJ8tFXPzDYevgqxRev9ZLxFonuq9wmq5kwg=",
|
||||
"lastModified": 1781359544,
|
||||
"narHash": "sha256-iUuzKQcyXvopYDDzFpMK5eQKP3WIJExYny2kJtbgUcE=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "c6e5ca3c836a5f4dd9af9f2c1fc1c38f0fac988a",
|
||||
"rev": "9f11f828c213641c2369a9f1fa31fe31557e3156",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -673,11 +673,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1772340640,
|
||||
"narHash": "sha256-1nq7+Kt5IUBD8Hu3nptVPbMf+22rNJoHT0t9L1X+GKA=",
|
||||
"lastModified": 1780547341,
|
||||
"narHash": "sha256-Gq8KNx5A7hBB3uGJaj6eQfLDIz5YdLu92gqBcvHvoUo=",
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "dec4d8eac700dcd2fe3c020857d3ee220ec147f1",
|
||||
"rev": "9ed65852b6257fbeae4355bc24ecfea307ca759a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -764,15 +764,16 @@
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"lastModified": 1774449309,
|
||||
"narHash": "sha256-brhZ8DmuGtzkCYHJg4HEd602amKm89Y9ytsFZ5uWD1w=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"rev": "c29398b59d2048c4ab79345812849c9bd15e9150",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"ref": "future-26.11",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
|
||||
@@ -56,7 +56,6 @@
|
||||
./shell.nix
|
||||
|
||||
./overlays
|
||||
./modules/nixos
|
||||
./machines
|
||||
./routers
|
||||
./inventories
|
||||
|
||||
+43
-2
@@ -102,7 +102,13 @@
|
||||
name = "zerotier";
|
||||
input = "clan-core";
|
||||
};
|
||||
roles.controller.machines."vega" = { };
|
||||
roles.controller.machines."vega" = {
|
||||
settings.allowedIds = [
|
||||
"dbe44c0287" # Alex-gateway
|
||||
"b0e0b84fd3" # Alex
|
||||
"2bd36db8cc" # kurogeek-thinkpad
|
||||
];
|
||||
};
|
||||
roles.peer.tags.glom = { };
|
||||
};
|
||||
|
||||
@@ -111,7 +117,13 @@
|
||||
name = "zerotier";
|
||||
input = "clan-core";
|
||||
};
|
||||
roles.controller.machines."rigel" = { };
|
||||
roles.controller.machines."rigel" = {
|
||||
settings.allowedIds = [
|
||||
"dbe44c0287" # Alex-gateway
|
||||
"b0e0b84fd3" # Alex
|
||||
"2bd36db8cc" # kurogeek-thinkpad
|
||||
];
|
||||
};
|
||||
roles.peer.tags.b4l = { };
|
||||
};
|
||||
|
||||
@@ -166,6 +178,7 @@
|
||||
input = "clan-core";
|
||||
};
|
||||
roles.default.tags."phonebox" = { };
|
||||
roles.default.settings.extraYggdrasilIPs = [ "200:c806:c13b:b855:723f:473:55:7904" ];
|
||||
roles.default.settings.extraPeers = [
|
||||
"tls://ygg.jjolly.dev:3443"
|
||||
"tls://[2602:fc24:18:7a42::1]:993"
|
||||
@@ -183,6 +196,12 @@
|
||||
roles.default.machines."adhil".settings = {
|
||||
ata-ethernet-iface = "end0";
|
||||
};
|
||||
roles.default.machines."rigel".settings = {
|
||||
extraClientNumbers = [
|
||||
"01"
|
||||
"02"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
pulse-stream = {
|
||||
@@ -277,6 +296,28 @@
|
||||
dataDir = "/mnt/hdd/samba";
|
||||
};
|
||||
};
|
||||
|
||||
wordpress = {
|
||||
module = {
|
||||
name = "wordpress";
|
||||
input = "self";
|
||||
};
|
||||
roles.server.machines."tangra".settings = {
|
||||
tenants = [
|
||||
"poyfestival.com"
|
||||
];
|
||||
phpfpmOptions = ''
|
||||
upload_max_filesize=64M
|
||||
post_max_size=128M
|
||||
'';
|
||||
wpExtraConfig = ''
|
||||
define('WP_MEMORY_LIMIT', '256M');
|
||||
define('WP_DEBUG', false);
|
||||
define('WP_DEBUG_DISPLAY', false);
|
||||
define('WP_DEBUG_LOG', false);
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -47,6 +47,9 @@
|
||||
},
|
||||
"bosona": {
|
||||
"installedAt": 1779098893
|
||||
},
|
||||
"tangra": {
|
||||
"installedAt": 1779958921
|
||||
}
|
||||
}
|
||||
}
|
||||
+64
-215
@@ -25,10 +25,7 @@
|
||||
{
|
||||
"index": 8,
|
||||
"attached_to": 0,
|
||||
"class_list": [
|
||||
"pci",
|
||||
"bridge"
|
||||
],
|
||||
"class_list": ["pci", "bridge"],
|
||||
"bus_type": {
|
||||
"hex": "0004",
|
||||
"name": "PCI",
|
||||
@@ -76,10 +73,7 @@
|
||||
{
|
||||
"index": 9,
|
||||
"attached_to": 0,
|
||||
"class_list": [
|
||||
"pci",
|
||||
"bridge"
|
||||
],
|
||||
"class_list": ["pci", "bridge"],
|
||||
"bus_type": {
|
||||
"hex": "0004",
|
||||
"name": "PCI",
|
||||
@@ -131,10 +125,7 @@
|
||||
{
|
||||
"index": 10,
|
||||
"attached_to": 0,
|
||||
"class_list": [
|
||||
"pci",
|
||||
"bridge"
|
||||
],
|
||||
"class_list": ["pci", "bridge"],
|
||||
"bus_type": {
|
||||
"hex": "0004",
|
||||
"name": "PCI",
|
||||
@@ -182,10 +173,7 @@
|
||||
{
|
||||
"index": 11,
|
||||
"attached_to": 0,
|
||||
"class_list": [
|
||||
"pci",
|
||||
"bridge"
|
||||
],
|
||||
"class_list": ["pci", "bridge"],
|
||||
"bus_type": {
|
||||
"hex": "0004",
|
||||
"name": "PCI",
|
||||
@@ -241,10 +229,7 @@
|
||||
{
|
||||
"index": 12,
|
||||
"attached_to": 0,
|
||||
"class_list": [
|
||||
"pci",
|
||||
"bridge"
|
||||
],
|
||||
"class_list": ["pci", "bridge"],
|
||||
"bus_type": {
|
||||
"hex": "0004",
|
||||
"name": "PCI",
|
||||
@@ -297,21 +282,14 @@
|
||||
},
|
||||
"driver": "piix4_smbus",
|
||||
"driver_module": "i2c_piix4",
|
||||
"drivers": [
|
||||
"piix4_smbus"
|
||||
],
|
||||
"driver_modules": [
|
||||
"i2c_piix4"
|
||||
],
|
||||
"drivers": ["piix4_smbus"],
|
||||
"driver_modules": ["i2c_piix4"],
|
||||
"module_alias": "pci:v00008086d00007113sv00001AF4sd00001100bc06sc80i00"
|
||||
},
|
||||
{
|
||||
"index": 17,
|
||||
"attached_to": 0,
|
||||
"class_list": [
|
||||
"pci",
|
||||
"bridge"
|
||||
],
|
||||
"class_list": ["pci", "bridge"],
|
||||
"bus_type": {
|
||||
"hex": "0004",
|
||||
"name": "PCI",
|
||||
@@ -361,11 +339,7 @@
|
||||
{
|
||||
"index": 22,
|
||||
"attached_to": 15,
|
||||
"class_list": [
|
||||
"cdrom",
|
||||
"scsi",
|
||||
"block_device"
|
||||
],
|
||||
"class_list": ["cdrom", "scsi", "block_device"],
|
||||
"bus_type": {
|
||||
"hex": "0084",
|
||||
"name": "SCSI",
|
||||
@@ -422,14 +396,8 @@
|
||||
"unix_device_name2": "/dev/sg1",
|
||||
"driver": "ata_piix",
|
||||
"driver_module": "ata_piix",
|
||||
"drivers": [
|
||||
"ata_piix",
|
||||
"sr"
|
||||
],
|
||||
"driver_modules": [
|
||||
"ata_piix",
|
||||
"sr_mod"
|
||||
]
|
||||
"drivers": ["ata_piix", "sr"],
|
||||
"driver_modules": ["ata_piix", "sr_mod"]
|
||||
}
|
||||
],
|
||||
"cpu": [
|
||||
@@ -496,9 +464,7 @@
|
||||
"spectre_v2_user",
|
||||
"its"
|
||||
],
|
||||
"power_management": [
|
||||
""
|
||||
],
|
||||
"power_management": [""],
|
||||
"bogo": 4224,
|
||||
"cache": 16384,
|
||||
"page_size": 4096,
|
||||
@@ -580,9 +546,7 @@
|
||||
"spectre_v2_user",
|
||||
"its"
|
||||
],
|
||||
"power_management": [
|
||||
""
|
||||
],
|
||||
"power_management": [""],
|
||||
"bogo": 4224,
|
||||
"cache": 16384,
|
||||
"page_size": 4096,
|
||||
@@ -606,11 +570,7 @@
|
||||
{
|
||||
"index": 23,
|
||||
"attached_to": 19,
|
||||
"class_list": [
|
||||
"disk",
|
||||
"scsi",
|
||||
"block_device"
|
||||
],
|
||||
"class_list": ["disk", "scsi", "block_device"],
|
||||
"bus_type": {
|
||||
"hex": "0084",
|
||||
"name": "SCSI",
|
||||
@@ -674,24 +634,15 @@
|
||||
],
|
||||
"driver": "virtio_scsi",
|
||||
"driver_module": "virtio_scsi",
|
||||
"drivers": [
|
||||
"sd",
|
||||
"virtio_scsi"
|
||||
],
|
||||
"driver_modules": [
|
||||
"sd_mod",
|
||||
"virtio_scsi"
|
||||
]
|
||||
"drivers": ["sd", "virtio_scsi"],
|
||||
"driver_modules": ["sd_mod", "virtio_scsi"]
|
||||
}
|
||||
],
|
||||
"graphics_card": [
|
||||
{
|
||||
"index": 16,
|
||||
"attached_to": 0,
|
||||
"class_list": [
|
||||
"graphics_card",
|
||||
"pci"
|
||||
],
|
||||
"class_list": ["graphics_card", "pci"],
|
||||
"bus_type": {
|
||||
"hex": "0004",
|
||||
"name": "PCI",
|
||||
@@ -748,12 +699,8 @@
|
||||
},
|
||||
"driver": "bochs-drm",
|
||||
"driver_module": "bochs",
|
||||
"drivers": [
|
||||
"bochs-drm"
|
||||
],
|
||||
"driver_modules": [
|
||||
"bochs"
|
||||
],
|
||||
"drivers": ["bochs-drm"],
|
||||
"driver_modules": ["bochs"],
|
||||
"module_alias": "pci:v00001234d00001111sv00001AF4sd00001100bc03sc00i00"
|
||||
}
|
||||
],
|
||||
@@ -761,10 +708,7 @@
|
||||
{
|
||||
"index": 24,
|
||||
"attached_to": 7,
|
||||
"class_list": [
|
||||
"usb",
|
||||
"hub"
|
||||
],
|
||||
"class_list": ["usb", "hub"],
|
||||
"bus_type": {
|
||||
"hex": "0086",
|
||||
"name": "USB",
|
||||
@@ -837,12 +781,8 @@
|
||||
"hotplug": "usb",
|
||||
"driver": "hub",
|
||||
"driver_module": "usbcore",
|
||||
"drivers": [
|
||||
"hub"
|
||||
],
|
||||
"driver_modules": [
|
||||
"usbcore"
|
||||
],
|
||||
"drivers": ["hub"],
|
||||
"driver_modules": ["usbcore"],
|
||||
"module_alias": "usb:v1D6Bp0001d0618dc09dsc00dp00ic09isc00ip00in00"
|
||||
}
|
||||
],
|
||||
@@ -850,9 +790,7 @@
|
||||
{
|
||||
"index": 5,
|
||||
"attached_to": 0,
|
||||
"class_list": [
|
||||
"memory"
|
||||
],
|
||||
"class_list": ["memory"],
|
||||
"base_class": {
|
||||
"hex": "0101",
|
||||
"name": "Internally Used Class",
|
||||
@@ -876,9 +814,7 @@
|
||||
{
|
||||
"index": 21,
|
||||
"attached_to": 16,
|
||||
"class_list": [
|
||||
"monitor"
|
||||
],
|
||||
"class_list": ["monitor"],
|
||||
"base_class": {
|
||||
"hex": "0100",
|
||||
"name": "Monitor",
|
||||
@@ -1024,10 +960,7 @@
|
||||
{
|
||||
"index": 25,
|
||||
"attached_to": 24,
|
||||
"class_list": [
|
||||
"mouse",
|
||||
"usb"
|
||||
],
|
||||
"class_list": ["mouse", "usb"],
|
||||
"bus_type": {
|
||||
"hex": "0086",
|
||||
"name": "USB",
|
||||
@@ -1063,9 +996,7 @@
|
||||
"model": "QEMU USB Tablet",
|
||||
"sysfs_id": "/devices/pci0000:00/0000:00:01.2/usb1/1-1/1-1:1.0",
|
||||
"sysfs_bus_id": "1-1:1.0",
|
||||
"unix_device_names": [
|
||||
"/dev/input/mice"
|
||||
],
|
||||
"unix_device_names": ["/dev/input/mice"],
|
||||
"unix_device_name2": "/dev/input/mouse0",
|
||||
"resources": [
|
||||
{
|
||||
@@ -1106,18 +1037,11 @@
|
||||
"hotplug": "usb",
|
||||
"driver": "usbhid",
|
||||
"driver_module": "usbhid",
|
||||
"drivers": [
|
||||
"usbhid"
|
||||
],
|
||||
"driver_modules": [
|
||||
"usbhid"
|
||||
],
|
||||
"drivers": ["usbhid"],
|
||||
"driver_modules": ["usbhid"],
|
||||
"driver_info": {
|
||||
"type": "mouse",
|
||||
"db_entry_0": [
|
||||
"explorerps/2",
|
||||
"exps2"
|
||||
],
|
||||
"db_entry_0": ["explorerps/2", "exps2"],
|
||||
"xf86": "explorerps/2",
|
||||
"gpm": "exps2",
|
||||
"buttons": -1,
|
||||
@@ -1130,9 +1054,7 @@
|
||||
{
|
||||
"index": 18,
|
||||
"attached_to": 13,
|
||||
"class_list": [
|
||||
"network_controller"
|
||||
],
|
||||
"class_list": ["network_controller"],
|
||||
"bus_type": {
|
||||
"hex": "008f",
|
||||
"name": "Virtio",
|
||||
@@ -1157,9 +1079,7 @@
|
||||
"model": "Virtio Ethernet Card 0",
|
||||
"sysfs_id": "/devices/pci0000:00/0000:00:12.0/virtio1",
|
||||
"sysfs_bus_id": "virtio1",
|
||||
"unix_device_names": [
|
||||
"ens18"
|
||||
],
|
||||
"unix_device_names": ["ens18"],
|
||||
"resources": [
|
||||
{
|
||||
"type": "hwaddr",
|
||||
@@ -1172,12 +1092,8 @@
|
||||
],
|
||||
"driver": "virtio_net",
|
||||
"driver_module": "virtio_net",
|
||||
"drivers": [
|
||||
"virtio_net"
|
||||
],
|
||||
"driver_modules": [
|
||||
"virtio_net"
|
||||
],
|
||||
"drivers": ["virtio_net"],
|
||||
"driver_modules": ["virtio_net"],
|
||||
"module_alias": "virtio:d00000001v00001AF4"
|
||||
}
|
||||
],
|
||||
@@ -1185,9 +1101,7 @@
|
||||
{
|
||||
"index": 26,
|
||||
"attached_to": 18,
|
||||
"class_list": [
|
||||
"network_interface"
|
||||
],
|
||||
"class_list": ["network_interface"],
|
||||
"base_class": {
|
||||
"hex": "0107",
|
||||
"name": "Network Interface",
|
||||
@@ -1201,9 +1115,7 @@
|
||||
"model": "Ethernet network interface",
|
||||
"sysfs_id": "/class/net/ens18",
|
||||
"sysfs_device_link": "/devices/pci0000:00/0000:00:12.0/virtio1",
|
||||
"unix_device_names": [
|
||||
"ens18"
|
||||
],
|
||||
"unix_device_names": ["ens18"],
|
||||
"resources": [
|
||||
{
|
||||
"type": "hwaddr",
|
||||
@@ -1216,19 +1128,13 @@
|
||||
],
|
||||
"driver": "virtio_net",
|
||||
"driver_module": "virtio_net",
|
||||
"drivers": [
|
||||
"virtio_net"
|
||||
],
|
||||
"driver_modules": [
|
||||
"virtio_net"
|
||||
]
|
||||
"drivers": ["virtio_net"],
|
||||
"driver_modules": ["virtio_net"]
|
||||
},
|
||||
{
|
||||
"index": 27,
|
||||
"attached_to": 0,
|
||||
"class_list": [
|
||||
"network_interface"
|
||||
],
|
||||
"class_list": ["network_interface"],
|
||||
"base_class": {
|
||||
"hex": "0107",
|
||||
"name": "Network Interface",
|
||||
@@ -1241,19 +1147,14 @@
|
||||
},
|
||||
"model": "Loopback network interface",
|
||||
"sysfs_id": "/class/net/lo",
|
||||
"unix_device_names": [
|
||||
"lo"
|
||||
]
|
||||
"unix_device_names": ["lo"]
|
||||
}
|
||||
],
|
||||
"pci": [
|
||||
{
|
||||
"index": 13,
|
||||
"attached_to": 0,
|
||||
"class_list": [
|
||||
"pci",
|
||||
"unknown"
|
||||
],
|
||||
"class_list": ["pci", "unknown"],
|
||||
"bus_type": {
|
||||
"hex": "0004",
|
||||
"name": "PCI",
|
||||
@@ -1310,21 +1211,14 @@
|
||||
},
|
||||
"driver": "virtio-pci",
|
||||
"driver_module": "virtio_pci",
|
||||
"drivers": [
|
||||
"virtio-pci"
|
||||
],
|
||||
"driver_modules": [
|
||||
"virtio_pci"
|
||||
],
|
||||
"drivers": ["virtio-pci"],
|
||||
"driver_modules": ["virtio_pci"],
|
||||
"module_alias": "pci:v00001AF4d00001000sv00001AF4sd00000001bc02sc00i00"
|
||||
},
|
||||
{
|
||||
"index": 14,
|
||||
"attached_to": 0,
|
||||
"class_list": [
|
||||
"pci",
|
||||
"unknown"
|
||||
],
|
||||
"class_list": ["pci", "unknown"],
|
||||
"bus_type": {
|
||||
"hex": "0004",
|
||||
"name": "PCI",
|
||||
@@ -1380,12 +1274,8 @@
|
||||
},
|
||||
"driver": "virtio-pci",
|
||||
"driver_module": "virtio_pci",
|
||||
"drivers": [
|
||||
"virtio-pci"
|
||||
],
|
||||
"driver_modules": [
|
||||
"virtio_pci"
|
||||
],
|
||||
"drivers": ["virtio-pci"],
|
||||
"driver_modules": ["virtio_pci"],
|
||||
"module_alias": "pci:v00001AF4d00001002sv00001AF4sd00000005bc00scFFi00"
|
||||
}
|
||||
],
|
||||
@@ -1393,10 +1283,7 @@
|
||||
{
|
||||
"index": 6,
|
||||
"attached_to": 17,
|
||||
"class_list": [
|
||||
"storage_controller",
|
||||
"pci"
|
||||
],
|
||||
"class_list": ["storage_controller", "pci"],
|
||||
"bus_type": {
|
||||
"hex": "0004",
|
||||
"name": "PCI",
|
||||
@@ -1453,21 +1340,14 @@
|
||||
},
|
||||
"driver": "virtio-pci",
|
||||
"driver_module": "virtio_pci",
|
||||
"drivers": [
|
||||
"virtio-pci"
|
||||
],
|
||||
"driver_modules": [
|
||||
"virtio_pci"
|
||||
],
|
||||
"drivers": ["virtio-pci"],
|
||||
"driver_modules": ["virtio_pci"],
|
||||
"module_alias": "pci:v00001AF4d00001004sv00001AF4sd00000008bc01sc00i00"
|
||||
},
|
||||
{
|
||||
"index": 15,
|
||||
"attached_to": 0,
|
||||
"class_list": [
|
||||
"storage_controller",
|
||||
"pci"
|
||||
],
|
||||
"class_list": ["storage_controller", "pci"],
|
||||
"bus_type": {
|
||||
"hex": "0004",
|
||||
"name": "PCI",
|
||||
@@ -1557,12 +1437,8 @@
|
||||
},
|
||||
"driver": "ata_piix",
|
||||
"driver_module": "ata_piix",
|
||||
"drivers": [
|
||||
"ata_piix"
|
||||
],
|
||||
"driver_modules": [
|
||||
"ata_piix"
|
||||
],
|
||||
"drivers": ["ata_piix"],
|
||||
"driver_modules": ["ata_piix"],
|
||||
"module_alias": "pci:v00008086d00007010sv00001AF4sd00001100bc01sc01i80"
|
||||
}
|
||||
],
|
||||
@@ -1573,9 +1449,7 @@
|
||||
{
|
||||
"index": 19,
|
||||
"attached_to": 6,
|
||||
"class_list": [
|
||||
"unknown"
|
||||
],
|
||||
"class_list": ["unknown"],
|
||||
"base_class": {
|
||||
"hex": "0000",
|
||||
"name": "Unclassified device",
|
||||
@@ -1593,20 +1467,14 @@
|
||||
"sysfs_bus_id": "virtio2",
|
||||
"driver": "virtio_scsi",
|
||||
"driver_module": "virtio_scsi",
|
||||
"drivers": [
|
||||
"virtio_scsi"
|
||||
],
|
||||
"driver_modules": [
|
||||
"virtio_scsi"
|
||||
],
|
||||
"drivers": ["virtio_scsi"],
|
||||
"driver_modules": ["virtio_scsi"],
|
||||
"module_alias": "virtio:d00000008v00001AF4"
|
||||
},
|
||||
{
|
||||
"index": 20,
|
||||
"attached_to": 14,
|
||||
"class_list": [
|
||||
"unknown"
|
||||
],
|
||||
"class_list": ["unknown"],
|
||||
"base_class": {
|
||||
"hex": "0000",
|
||||
"name": "Unclassified device",
|
||||
@@ -1624,12 +1492,8 @@
|
||||
"sysfs_bus_id": "virtio0",
|
||||
"driver": "virtio_balloon",
|
||||
"driver_module": "virtio_balloon",
|
||||
"drivers": [
|
||||
"virtio_balloon"
|
||||
],
|
||||
"driver_modules": [
|
||||
"virtio_balloon"
|
||||
],
|
||||
"drivers": ["virtio_balloon"],
|
||||
"driver_modules": ["virtio_balloon"],
|
||||
"module_alias": "virtio:d00000005v00001AF4"
|
||||
}
|
||||
],
|
||||
@@ -1637,10 +1501,7 @@
|
||||
{
|
||||
"index": 7,
|
||||
"attached_to": 0,
|
||||
"class_list": [
|
||||
"usb_controller",
|
||||
"pci"
|
||||
],
|
||||
"class_list": ["usb_controller", "pci"],
|
||||
"bus_type": {
|
||||
"hex": "0004",
|
||||
"name": "PCI",
|
||||
@@ -1707,25 +1568,15 @@
|
||||
},
|
||||
"driver": "uhci_hcd",
|
||||
"driver_module": "uhci_hcd",
|
||||
"drivers": [
|
||||
"uhci_hcd"
|
||||
],
|
||||
"driver_modules": [
|
||||
"uhci_hcd"
|
||||
],
|
||||
"drivers": ["uhci_hcd"],
|
||||
"driver_modules": ["uhci_hcd"],
|
||||
"driver_info": {
|
||||
"type": "module",
|
||||
"db_entry_0": [
|
||||
"uhci-hcd"
|
||||
],
|
||||
"db_entry_0": ["uhci-hcd"],
|
||||
"active": true,
|
||||
"modprobe": true,
|
||||
"names": [
|
||||
"uhci-hcd"
|
||||
],
|
||||
"module_args": [
|
||||
""
|
||||
],
|
||||
"names": ["uhci-hcd"],
|
||||
"module_args": [""],
|
||||
"conf": ""
|
||||
},
|
||||
"module_alias": "pci:v00008086d00007020sv00001AF4sd00001100bc0Csc03i00"
|
||||
@@ -1838,9 +1689,7 @@
|
||||
"name": "RAM",
|
||||
"value": 7
|
||||
},
|
||||
"memory_type_details": [
|
||||
"Other"
|
||||
],
|
||||
"memory_type_details": ["Other"],
|
||||
"speed": 0
|
||||
}
|
||||
],
|
||||
|
||||
@@ -9,13 +9,6 @@ let
|
||||
in
|
||||
{
|
||||
clan.core.settings.machine.description = "VM machine that host Inventree system for Poy";
|
||||
imports = [
|
||||
inputs.self.nixosModules.inventree
|
||||
];
|
||||
|
||||
nixpkgs.overlays = [
|
||||
inputs.self.overlays.packagesOverlay
|
||||
];
|
||||
|
||||
nixpkgs.hostPlatform = {
|
||||
system = "x86_64-linux";
|
||||
@@ -82,19 +75,12 @@ in
|
||||
|
||||
services.inventree = {
|
||||
enable = true;
|
||||
hostName = "${domain}";
|
||||
config.site_url = "https://${config.services.inventree.hostName}";
|
||||
inherit domain;
|
||||
secretKeyFile = config.clan.core.vars.generators.inventree.files.secret-key.path;
|
||||
config.oidc_private_key_file = config.clan.core.vars.generators.inventree.files.oidc-key.path;
|
||||
config.adminPasswordFile = config.clan.core.vars.generators.inventree.files.admin-password.path;
|
||||
adminPasswordFile = config.clan.core.vars.generators.inventree.files.admin-password.path;
|
||||
settings.INVENTREE_SITE_URL = "https://${domain}";
|
||||
};
|
||||
|
||||
# services.nginx.virtualHosts."${domain}" = {
|
||||
# forceSSL = true;
|
||||
# sslCertificate = config.clan.core.vars.generators.nginx.files.sslCert.path;
|
||||
# sslCertificateKey = config.clan.core.vars.generators.nginx.files.sslKey.path;
|
||||
# };
|
||||
|
||||
system.stateVersion = "25.11";
|
||||
clan.core.sops.defaultGroups = [ "admins" ];
|
||||
}
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
};
|
||||
system.stateVersion = "25.11";
|
||||
clan.core.sops.defaultGroups = [ "admins" ];
|
||||
clan.core.networking.targetHost = "root@[${config.clan.core.vars.generators.zerotier.files.zerotier-ip.value}]";
|
||||
|
||||
networking.interfaces.enx00e04c106368.useDHCP = true; # recovery
|
||||
|
||||
|
||||
@@ -9,13 +9,6 @@ let
|
||||
in
|
||||
{
|
||||
clan.core.settings.machine.description = "VM machine that host Inventree system for Glom";
|
||||
imports = [
|
||||
inputs.self.nixosModules.inventree
|
||||
];
|
||||
|
||||
nixpkgs.overlays = [
|
||||
inputs.self.overlays.packagesOverlay
|
||||
];
|
||||
|
||||
nixpkgs.hostPlatform = {
|
||||
system = "x86_64-linux";
|
||||
@@ -82,19 +75,12 @@ in
|
||||
|
||||
services.inventree = {
|
||||
enable = true;
|
||||
hostName = "${domain}";
|
||||
config.site_url = "https://${config.services.inventree.hostName}";
|
||||
inherit domain;
|
||||
secretKeyFile = config.clan.core.vars.generators.inventree.files.secret-key.path;
|
||||
config.oidc_private_key_file = config.clan.core.vars.generators.inventree.files.oidc-key.path;
|
||||
config.adminPasswordFile = config.clan.core.vars.generators.inventree.files.admin-password.path;
|
||||
adminPasswordFile = config.clan.core.vars.generators.inventree.files.admin-password.path;
|
||||
settings.INVENTREE_SITE_URL = "https://${domain}";
|
||||
};
|
||||
|
||||
# services.nginx.virtualHosts."${domain}" = {
|
||||
# forceSSL = true;
|
||||
# sslCertificate = config.clan.core.vars.generators.nginx.files.sslCert.path;
|
||||
# sslCertificateKey = config.clan.core.vars.generators.nginx.files.sslKey.path;
|
||||
# };
|
||||
|
||||
system.stateVersion = "25.11";
|
||||
clan.core.sops.defaultGroups = [ "admins" ];
|
||||
}
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
clan.core.settings.machine.description = "A Hetzner VPS machine own by Alex.";
|
||||
|
||||
clan.core.sops.defaultGroups = [ "admins" ];
|
||||
clan.core.networking.targetHost = "root@[${config.clan.core.vars.generators.zerotier.files.zerotier-ip.value}]";
|
||||
|
||||
clan.core.vars.generators.acme = {
|
||||
share = true;
|
||||
|
||||
@@ -1,18 +1,7 @@
|
||||
{ config, ... }:
|
||||
{
|
||||
imports = [
|
||||
(import ../../lib/auto-accept-zerotier-members.nix {
|
||||
memberIds = [
|
||||
"dbe44c0287" # Alex-gateway
|
||||
"b0e0b84fd3" # Alex
|
||||
"2bd36db8cc" # kurogeek-thinkpad
|
||||
];
|
||||
})
|
||||
];
|
||||
|
||||
system.stateVersion = "25.11";
|
||||
clan.core.sops.defaultGroups = [ "admins" ];
|
||||
clan.core.networking.targetHost = "root@[${config.clan.core.vars.generators.zerotier.files.zerotier-ip.value}]";
|
||||
|
||||
clan.core.settings.machine.description = "Zima board computer for testing in B4L";
|
||||
}
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
{
|
||||
system.stateVersion = "25.11";
|
||||
nixpkgs.hostPlatform = {
|
||||
system = "x86_64-linux";
|
||||
};
|
||||
|
||||
clan.core.settings.name = "tangra";
|
||||
clan.core.settings.machine.description =
|
||||
"A Hetzner VPS machine own by Alex. This is a machine for poyfestival.com";
|
||||
|
||||
clan.core.sops.defaultGroups = [ "admins" ];
|
||||
|
||||
clan.core.vars.generators.acme = {
|
||||
share = true;
|
||||
files.email.secret = false;
|
||||
|
||||
prompts.email = {
|
||||
type = "line";
|
||||
description = "Email for ACME registeration";
|
||||
};
|
||||
|
||||
script = ''
|
||||
cat $prompts/email > $out/email
|
||||
'';
|
||||
};
|
||||
|
||||
users.users.nginx.extraGroups = [ "acme" ];
|
||||
|
||||
security.acme.acceptTerms = true;
|
||||
|
||||
imports = [ ];
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
{ ... }:
|
||||
let
|
||||
hashDisk = disk: "os-${builtins.substring 0 5 (builtins.hashString "sha256" disk)}";
|
||||
os = "/dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_119349241";
|
||||
in
|
||||
{
|
||||
|
||||
boot.loader = {
|
||||
systemd-boot = {
|
||||
enable = true;
|
||||
};
|
||||
efi = {
|
||||
canTouchEfiVariables = true;
|
||||
};
|
||||
};
|
||||
|
||||
boot.zfs.forceImportRoot = true;
|
||||
|
||||
disko.devices = {
|
||||
disk = {
|
||||
"os-${hashDisk os}" = {
|
||||
type = "disk";
|
||||
device = os;
|
||||
content = {
|
||||
type = "gpt";
|
||||
partitions = {
|
||||
ESP = {
|
||||
size = "1G";
|
||||
type = "EF00";
|
||||
content = {
|
||||
type = "filesystem";
|
||||
format = "vfat";
|
||||
mountpoint = "/boot";
|
||||
mountOptions = [ "nofail" ];
|
||||
};
|
||||
};
|
||||
system = {
|
||||
size = "100%";
|
||||
content = {
|
||||
type = "zfs";
|
||||
pool = "zroot";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
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";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -10,17 +10,9 @@
|
||||
|
||||
(inputs.import-tree ./services)
|
||||
|
||||
(import ../../lib/auto-accept-zerotier-members.nix {
|
||||
memberIds = [
|
||||
"dbe44c0287" # Alex-gateway
|
||||
"b0e0b84fd3" # Alex
|
||||
"2bd36db8cc" # kurogeek-thinkpad
|
||||
];
|
||||
})
|
||||
];
|
||||
|
||||
clan.core.sops.defaultGroups = [ "admins" ];
|
||||
clan.core.networking.targetHost = "root@[${config.clan.core.vars.generators.zerotier.files.zerotier-ip.value}]";
|
||||
|
||||
clan.core.settings.machine.description = "Glom NAS";
|
||||
|
||||
|
||||
@@ -173,6 +173,7 @@
|
||||
base_domain = settings.base_domain;
|
||||
override_local_dns = true;
|
||||
nameservers.global = settings.nameservers;
|
||||
magic_dns = false;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -66,8 +66,6 @@
|
||||
"AutofillAddressEnabled" = false;
|
||||
"AutofillCreditCardEnabled" = false;
|
||||
"TranslateEnabled" = false;
|
||||
"DnsOverHttpsMode" = "secure";
|
||||
"DnsOverHttpsTemplates" = "https://dns.adguard-dns.com/dns-query";
|
||||
};
|
||||
};
|
||||
|
||||
@@ -81,14 +79,32 @@
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
dictionaries =
|
||||
with pkgs;
|
||||
(hunspellWithDicts (
|
||||
with hunspellDicts;
|
||||
[
|
||||
en-us-large
|
||||
th-th
|
||||
]
|
||||
));
|
||||
in
|
||||
{
|
||||
imports = [ inputs.plasma-manager.homeModules.plasma-manager ];
|
||||
|
||||
systemd.user.sessionVariables = {
|
||||
DICPATH = "${dictionaries}/share/hunspell";
|
||||
};
|
||||
|
||||
home = {
|
||||
homeDirectory = lib.mkForce "/home/${username}";
|
||||
stateVersion = osConfig.system.stateVersion;
|
||||
|
||||
packages = with pkgs; [
|
||||
libreoffice-fresh
|
||||
libreoffice-qt6
|
||||
dictionaries
|
||||
|
||||
element-desktop
|
||||
signal-desktop
|
||||
brave
|
||||
|
||||
@@ -5,5 +5,4 @@
|
||||
|
||||
services.displayManager.sddm.enable = lib.mkForce false;
|
||||
services.displayManager.gdm.enable = true;
|
||||
services.displayManager.gdm.wayland = true;
|
||||
}
|
||||
|
||||
@@ -24,6 +24,11 @@
|
||||
description = "";
|
||||
default = "";
|
||||
};
|
||||
options.extraClientNumbers = lib.mkOption {
|
||||
type = with lib.types; listOf str;
|
||||
description = "List of client suffix number.";
|
||||
default = [ ];
|
||||
};
|
||||
};
|
||||
perInstance =
|
||||
{
|
||||
@@ -126,6 +131,22 @@
|
||||
remove_existing=yes
|
||||
'';
|
||||
|
||||
genLocalSIPEndpointV6 =
|
||||
{ localNumber }:
|
||||
''
|
||||
[${localNumber}](internal_endpoint)
|
||||
transport=transport-udp6
|
||||
aors=${localNumber}
|
||||
auth=${localNumber}
|
||||
|
||||
[${localNumber}](userpass_auth)
|
||||
username=${localNumber}
|
||||
password=${localNumber}
|
||||
|
||||
[${localNumber}](dynamiic_aor)
|
||||
max_contacts=1
|
||||
'';
|
||||
|
||||
genLocalExtenConf =
|
||||
{ localNumber }:
|
||||
''
|
||||
@@ -356,6 +377,9 @@
|
||||
+ (genLocalExtenConf {
|
||||
localNumber = config.clan.core.vars.generators.phonebox.files.ata-local-number.value;
|
||||
})
|
||||
+ lib.concatStringsSep "\n" (
|
||||
builtins.map (number: genLocalExtenConf { localNumber = number; }) settings.extraClientNumbers
|
||||
)
|
||||
+ serverConf;
|
||||
|
||||
"rtp.conf" = ''
|
||||
@@ -387,6 +411,7 @@
|
||||
|
||||
[base_endpoint](!)
|
||||
type=endpoint
|
||||
transport=transport-udp
|
||||
disallow=all
|
||||
allow=ulaw,alaw,g722,gsm
|
||||
direct_media=no
|
||||
@@ -409,6 +434,9 @@
|
||||
+ (genLocalSIPEndpoint {
|
||||
localNumber = config.clan.core.vars.generators.phonebox.files.ata-local-number.value;
|
||||
})
|
||||
+ lib.concatStringsSep "\n" (
|
||||
builtins.map (number: genLocalSIPEndpointV6 { localNumber = number; }) settings.extraClientNumbers
|
||||
)
|
||||
+ serverConf;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -0,0 +1,168 @@
|
||||
{ ... }:
|
||||
{
|
||||
_class = "clan.service";
|
||||
manifest.name = "wordpress";
|
||||
manifest.description = "wordpress with multi-tenant support and state of plugins and themes are allowed";
|
||||
manifest.readme = "wordpress with multi-tenant support and state of plugins and themes are allowed";
|
||||
manifest.categories = [ "System" ];
|
||||
|
||||
roles.server = {
|
||||
description = "A default server role";
|
||||
interface =
|
||||
{ lib, ... }:
|
||||
{
|
||||
options = {
|
||||
tenants = lib.mkOption {
|
||||
type = with lib.types; listOf str;
|
||||
default = [ "localhost" ];
|
||||
description = "List of tenants website to host on the instance";
|
||||
example = [ "example.com" ];
|
||||
};
|
||||
phpfpmOptions = lib.mkOption {
|
||||
type = with lib.types; lines;
|
||||
default = "";
|
||||
description = "options appended to the PHP configuration file";
|
||||
};
|
||||
wpExtraConfig = lib.mkOption {
|
||||
type = with lib.types; lines;
|
||||
default = "";
|
||||
description = "Any additional text to be appended to the wp-config.php";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
perInstance =
|
||||
{ settings, ... }:
|
||||
{
|
||||
nixosModule =
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
user = "wordpress";
|
||||
|
||||
mkSafeDBName = domain: "wp_${builtins.replaceStrings [ "." ] [ "_" ] domain}";
|
||||
|
||||
mkWordpressSite = domain: {
|
||||
database = {
|
||||
name = mkSafeDBName domain;
|
||||
user = user;
|
||||
};
|
||||
package = wp-pkg domain;
|
||||
extraConfig = ''
|
||||
define('FS_METHOD', 'direct');
|
||||
''
|
||||
+ settings.wpExtraConfig;
|
||||
themes = { };
|
||||
};
|
||||
|
||||
stateDir = hostName: "/var/lib/wordpress/${hostName}";
|
||||
|
||||
wp-pkg =
|
||||
hostName:
|
||||
let
|
||||
upStreamSrc = pkgs.wordpress;
|
||||
in
|
||||
pkgs.stdenv.mkDerivation {
|
||||
pname = "wordpress-custom";
|
||||
version = upStreamSrc.version;
|
||||
src = upStreamSrc;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
cp -r * $out/
|
||||
|
||||
rm -rf $out/share/wordpress/wp-content/plugins
|
||||
rm -rf $out/share/wordpress/wp-content/themes
|
||||
|
||||
# symlink uploads directory
|
||||
ln -s "${stateDir hostName}"/wp-content/themes $out/share/wordpress/wp-content/themes
|
||||
ln -s "${stateDir hostName}"/wp-content/plugins $out/share/wordpress/wp-content/plugins
|
||||
ln -s "${stateDir hostName}"/wp-content/upgrade $out/share/wordpress/wp-content/upgrade
|
||||
|
||||
'';
|
||||
};
|
||||
webserver = config.services.${config.services.wordpress.webserver};
|
||||
in
|
||||
{
|
||||
services.wordpress.webserver = "nginx";
|
||||
|
||||
services.wordpress.sites = builtins.listToAttrs (
|
||||
map (tenant: {
|
||||
name = tenant;
|
||||
value = mkWordpressSite tenant;
|
||||
|
||||
}) settings.tenants
|
||||
);
|
||||
|
||||
systemd.tmpfiles.rules = lib.flatten (
|
||||
map (tenant: [
|
||||
"d '${stateDir tenant}/wp-content' 0750 ${user} ${webserver.group} - -"
|
||||
"d '${stateDir tenant}/wp-content/themes' 0750 ${user} ${webserver.group} - -"
|
||||
"Z '${stateDir tenant}/wp-content/themes' 0750 ${user} ${webserver.group} - -"
|
||||
"d '${stateDir tenant}/wp-content/plugins' 0750 ${user} ${webserver.group} - -"
|
||||
"Z '${stateDir tenant}/wp-content/plugins' 0750 ${user} ${webserver.group} - -"
|
||||
"d '${stateDir tenant}/wp-content/upgrade' 0750 ${user} ${webserver.group} - -"
|
||||
"Z '${stateDir tenant}/wp-content/upgrade' 0750 ${user} ${webserver.group} - -"
|
||||
]) settings.tenants
|
||||
);
|
||||
|
||||
networking.firewall.allowedTCPPorts = [
|
||||
80
|
||||
443
|
||||
];
|
||||
|
||||
services.phpfpm.pools = builtins.listToAttrs (
|
||||
map (
|
||||
tenant: lib.nameValuePair "wordpress-${tenant}" { phpOptions = settings.phpfpmOptions; }
|
||||
) settings.tenants
|
||||
);
|
||||
|
||||
security.acme.acceptTerms = true;
|
||||
|
||||
users.users.nginx.extraGroups = [ "acme" ];
|
||||
|
||||
security.acme.certs = lib.listToAttrs (
|
||||
map (
|
||||
tenant:
|
||||
(lib.nameValuePair tenant {
|
||||
email = config.clan.core.vars.generators.acme.files.email.value;
|
||||
webroot = "/var/lib/acme/acme-challenge/${tenant}";
|
||||
})
|
||||
) settings.tenants
|
||||
);
|
||||
|
||||
services.nginx.clientMaxBodySize = "128m";
|
||||
|
||||
services.nginx.virtualHosts = lib.listToAttrs (
|
||||
map (
|
||||
tenant:
|
||||
(lib.nameValuePair tenant {
|
||||
forceSSL = true;
|
||||
useACMEHost = tenant;
|
||||
acmeRoot = config.security.acme.certs.${tenant}.webroot;
|
||||
})
|
||||
) settings.tenants
|
||||
);
|
||||
|
||||
clan.core.vars.generators.acme = {
|
||||
share = true;
|
||||
files.email.secret = false;
|
||||
|
||||
prompts.email = {
|
||||
type = "line";
|
||||
description = "Email for ACME registeration";
|
||||
};
|
||||
|
||||
script = ''
|
||||
cat $prompts/email > $out/email
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{ self, inputs, ... }:
|
||||
let
|
||||
module = ./default.nix;
|
||||
in
|
||||
{
|
||||
clan.modules = {
|
||||
wordpress = module;
|
||||
};
|
||||
perSystem =
|
||||
{ ... }:
|
||||
{
|
||||
clan.nixosTests.service-wordpress = {
|
||||
imports = [ ./tests/vm/default.nix ];
|
||||
_module.args = { inherit self inputs; };
|
||||
|
||||
clan.modules."@clan/wordpress" = module;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
{
|
||||
self,
|
||||
config,
|
||||
lib,
|
||||
hostPkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
name = "service-wordpress";
|
||||
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 = {
|
||||
test.useContainers = false;
|
||||
directory = ./.;
|
||||
inventory = {
|
||||
machines.server = { };
|
||||
|
||||
instances = {
|
||||
wordpress-test = {
|
||||
module.name = "@clan/wordpress";
|
||||
module.input = "self";
|
||||
roles.server.machines."server".settings = {
|
||||
tenants = [
|
||||
"localhost"
|
||||
"site2.localhost"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
nodes = {
|
||||
server = { };
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
start_all()
|
||||
|
||||
server.wait_for_unit("phpfpm-wordpress-localhost.service")
|
||||
server.wait_for_unit("phpfpm-wordpress-site2.localhost.service")
|
||||
|
||||
server.succeed("systemctl status phpfpm-wordpress-localhost.service")
|
||||
server.succeed("systemctl status phpfpm-wordpress-site2.localhost.service")
|
||||
server.wait_for_open_port(80)
|
||||
server.succeed("curl -H \"Host: localhost\" http://127.0.0.1:80 ")
|
||||
server.succeed("curl -H \"Host: site2.localhost\" http://127.0.0.1:80 ")
|
||||
'';
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"publickey": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
|
||||
"type": "age"
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
26.11
|
||||
@@ -0,0 +1 @@
|
||||
fake_line_value
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
flake.nixosModules = {
|
||||
inventree = import ../nixos/inventree;
|
||||
};
|
||||
}
|
||||
@@ -1,334 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (lib)
|
||||
mkEnableOption
|
||||
mkOption
|
||||
types
|
||||
mkIf
|
||||
;
|
||||
|
||||
configFormat = pkgs.formats.json { };
|
||||
cfg = config.services.inventree;
|
||||
pkg = cfg.package;
|
||||
configFile = "${cfg.dataDir}/config.json";
|
||||
|
||||
env = {
|
||||
INVENTREE_CONFIG_FILE = configFile;
|
||||
INVENTREE_SECRET_KEY_FILE = cfg.secretKeyFile;
|
||||
INVENTREE_AUTO_UPDATE = "1";
|
||||
INVENTREE_PLUGINS_ENABLED = "1";
|
||||
INVENTREE_PLUGIN_NOINSTALL = "0";
|
||||
INVENTREE_STATIC_ROOT = cfg.config.static_root;
|
||||
INVENTREE_MEDIA_ROOT = cfg.config.media_root;
|
||||
INVENTREE_BACKUP_DIR = cfg.config.backup_dir;
|
||||
INVENTREE_OIDC_PRIVATE_KEY_FILE = cfg.config.oidc_private_key_file;
|
||||
INVENTREE_DB_ENGINE = cfg.config.database.ENGINE;
|
||||
INVENTREE_DB_NAME = cfg.config.database.NAME;
|
||||
INVENTREE_DB_HOST = cfg.config.database.HOST;
|
||||
INVENTREE_DB_USER = "inventree";
|
||||
INVENTREE_ADMIN_USER = cfg.config.adminUser;
|
||||
INVENTREE_ADMIN_PASSWORD_FILE = cfg.config.adminPasswordFile;
|
||||
INVENTREE_USE_X_FORWARDED_HOST = "1";
|
||||
INVENTREE_CORS_ORIGIN_ALLOW_ALL = "1";
|
||||
INVENTREE_FRONTEND_SETTINGS = ''{"mobile_mode":"allow-always"}'';
|
||||
|
||||
INVENTREE_SITE_URL = cfg.config.site_url;
|
||||
|
||||
PYTHONPATH = pkg.pythonPath;
|
||||
};
|
||||
|
||||
inventree-invoke = pkgs.writeShellApplication {
|
||||
name = "inventree-invoke";
|
||||
text = ''
|
||||
export INVENTREE_CONFIG_FILE=${configFile}
|
||||
export INVENTREE_SECRET_KEY_FILE=${cfg.secretKeyFile}
|
||||
export PYTHONPATH=${pkg.pythonPath}
|
||||
|
||||
exec -a "$0" ${pkgs.python3Packages.invoke}/bin/invoke -r ${cfg.package}/opt/inventree "$@"
|
||||
'';
|
||||
};
|
||||
in
|
||||
{
|
||||
options.services.inventree = {
|
||||
enable = mkEnableOption "InvenTree parts manager";
|
||||
|
||||
package = lib.mkOption {
|
||||
type = types.package;
|
||||
default = pkgs.inventree;
|
||||
description = ''
|
||||
InvenTree package to use
|
||||
'';
|
||||
};
|
||||
|
||||
hostName = mkOption {
|
||||
type = types.str;
|
||||
description = "FQDN for the InvenTree instance.";
|
||||
};
|
||||
|
||||
dataDir = mkOption {
|
||||
type = types.path;
|
||||
default = "/var/lib/inventree";
|
||||
example = "/var/lib/inventree";
|
||||
description = ''
|
||||
The default path for all inventree data.
|
||||
'';
|
||||
};
|
||||
|
||||
secretKeyFile = mkOption {
|
||||
type = types.path;
|
||||
default = "${cfg.dataDir}/secret_key.txt";
|
||||
description = ''
|
||||
Path to a file containing the secret key
|
||||
'';
|
||||
};
|
||||
|
||||
config = mkOption {
|
||||
type = types.submodule ({
|
||||
freeformType = configFormat.type;
|
||||
options = {
|
||||
adminUser = mkOption {
|
||||
type = types.str;
|
||||
default = "admin";
|
||||
};
|
||||
adminPasswordFile = mkOption {
|
||||
type = types.path;
|
||||
description = "Path to password file for user `admin`";
|
||||
};
|
||||
site_url = mkOption {
|
||||
type = types.str;
|
||||
default = "https://${cfg.hostName}";
|
||||
};
|
||||
static_root = mkOption {
|
||||
type = types.path;
|
||||
default = "${cfg.dataDir}/static";
|
||||
description = ''
|
||||
Static file storage
|
||||
'';
|
||||
};
|
||||
media_root = mkOption {
|
||||
type = types.path;
|
||||
default = "${cfg.dataDir}/media_root";
|
||||
description = "Media root directory";
|
||||
};
|
||||
backup_dir = mkOption {
|
||||
type = types.path;
|
||||
default = "${cfg.dataDir}/backups";
|
||||
description = "Backup directory";
|
||||
};
|
||||
oidc_private_key_file = mkOption {
|
||||
type = types.path;
|
||||
default = "${cfg.dataDir}/oidc.key";
|
||||
};
|
||||
};
|
||||
});
|
||||
default = { };
|
||||
description = ''
|
||||
Config options, see https://docs.inventree.org/en/stable/start/config/
|
||||
for details
|
||||
'';
|
||||
};
|
||||
|
||||
serverStartTimeout = mkOption {
|
||||
type = types.str;
|
||||
default = "10min";
|
||||
description = ''
|
||||
TimeoutStartSec for the server systemd service.
|
||||
See https://www.freedesktop.org/software/systemd/man/latest/systemd.service.html#TimeoutStartSec=
|
||||
for more details
|
||||
'';
|
||||
};
|
||||
|
||||
serverStopTimeout = mkOption {
|
||||
type = types.str;
|
||||
default = "5min";
|
||||
description = ''
|
||||
TimeoutStopSec for the server systemd service.
|
||||
See https://www.freedesktop.org/software/systemd/man/latest/systemd.service.html#TimeoutStopSec=
|
||||
for more details
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
environment.systemPackages = [ inventree-invoke ];
|
||||
|
||||
systemd.tmpfiles.rules = (
|
||||
map (dir: "d ${dir} 0755 inventree inventree") [
|
||||
"${cfg.dataDir}"
|
||||
"${cfg.dataDir}/static"
|
||||
"${cfg.dataDir}/media_root"
|
||||
"${cfg.dataDir}/backups"
|
||||
]
|
||||
);
|
||||
|
||||
services.inventree.config = {
|
||||
plugins_enabled = false;
|
||||
plugin_file = "${cfg.dataDir}/plugins.txt";
|
||||
plugin_dir = "${cfg.dataDir}/plugins";
|
||||
database = {
|
||||
ENGINE = "postgresql";
|
||||
NAME = "inventree";
|
||||
HOST = "/run/postgresql";
|
||||
};
|
||||
};
|
||||
|
||||
services.postgresql = {
|
||||
enable = true;
|
||||
ensureDatabases = [ "inventree" ];
|
||||
ensureUsers = [
|
||||
{
|
||||
name = "inventree";
|
||||
ensureDBOwnership = true;
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
users.users.inventree = {
|
||||
group = "inventree";
|
||||
isSystemUser = true;
|
||||
description = "InvenTree daemon user";
|
||||
};
|
||||
|
||||
users.groups.inventree = { };
|
||||
|
||||
services.nginx.enable = true;
|
||||
|
||||
services.nginx.virtualHosts.${cfg.hostName} = {
|
||||
locations =
|
||||
let
|
||||
unixPath = config.systemd.sockets.inventree-gunicorn.socketConfig.ListenStream;
|
||||
in
|
||||
{
|
||||
"/" = {
|
||||
extraConfig = ''
|
||||
client_max_body_size 100M;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
'';
|
||||
proxyPass = "http://unix:${unixPath}";
|
||||
};
|
||||
"/static/" = {
|
||||
alias = "${cfg.config.static_root}/";
|
||||
extraConfig = ''
|
||||
expires 30d;
|
||||
'';
|
||||
};
|
||||
"/media/" = {
|
||||
alias = "${cfg.config.media_root}/";
|
||||
extraConfig = ''
|
||||
auth_request /auth;
|
||||
'';
|
||||
};
|
||||
"/auth" = {
|
||||
extraConfig = ''
|
||||
internal;
|
||||
'';
|
||||
proxyPass = "http://unix:${unixPath}:/auth/";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
systemd.targets.inventree = {
|
||||
description = "Target for all InvenTree services";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
after = [ "network-online.target" ];
|
||||
};
|
||||
|
||||
systemd.services.inventree-config = {
|
||||
description = "Inventree config generation";
|
||||
wantedBy = [ "inventree.target" ];
|
||||
partOf = [ "inventree.target" ];
|
||||
before = [
|
||||
"inventree-static.service"
|
||||
"inventree-gunicorn.service"
|
||||
"inventree-qcluster.service"
|
||||
];
|
||||
serviceConfig = {
|
||||
# User = "root";
|
||||
# Group = "root";
|
||||
User = "inventree";
|
||||
Group = "inventree";
|
||||
Type = "oneshot";
|
||||
RemainAfterExit = true;
|
||||
PrivateTmp = true;
|
||||
};
|
||||
environment = env;
|
||||
script = ''
|
||||
set -euo pipefail
|
||||
|
||||
umask u=rwx,g=,o=
|
||||
|
||||
# chown inventree:inventree ${configFile}
|
||||
|
||||
${pkg}/opt/inventree/src/backend/InvenTree/manage.py migrate
|
||||
'';
|
||||
};
|
||||
|
||||
systemd.services.inventree-static = {
|
||||
description = "InvenTree static migration";
|
||||
wantedBy = [ "inventree.target" ];
|
||||
partOf = [ "inventree.target" ];
|
||||
before = [ "inventree-gunicorn.service" ];
|
||||
environment = env;
|
||||
serviceConfig = {
|
||||
User = "inventree";
|
||||
Group = "inventree";
|
||||
StateDirectory = "inventree";
|
||||
#RuntimeDirectory = "inventree";
|
||||
PrivateTmp = true;
|
||||
ExecStart = ''
|
||||
${pkg}/opt/inventree/src/backend/InvenTree/manage.py collectstatic --no-input
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services.inventree-gunicorn = {
|
||||
description = "InvenTree Gunicorn server";
|
||||
requiredBy = [ "inventree.target" ];
|
||||
partOf = [ "inventree.target" ];
|
||||
#wantedBy = [ "inventree.target" ];
|
||||
environment = env;
|
||||
serviceConfig = {
|
||||
User = "inventree";
|
||||
Group = "inventree";
|
||||
StateDirectory = "inventree";
|
||||
#RuntimeDirectory = "inventree";
|
||||
PrivateTmp = true;
|
||||
ExecStart = ''
|
||||
${pkg.gunicorn}/bin/gunicorn InvenTree.wsgi \
|
||||
--pythonpath ${pkg}/opt/inventree/src/backend/InvenTree
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
systemd.sockets.inventree-gunicorn = {
|
||||
wantedBy = [ "sockets.target" ];
|
||||
partOf = [ "inventree.target" ];
|
||||
socketConfig.ListenStream = "/run/inventree/gunicorn.socket";
|
||||
};
|
||||
|
||||
systemd.services.inventree-qcluster = {
|
||||
description = "InvenTree qcluster server";
|
||||
requiredBy = [ "inventree.target" ];
|
||||
wantedBy = [ "inventree.target" ];
|
||||
partOf = [ "inventree.target" ];
|
||||
environment = env;
|
||||
serviceConfig = {
|
||||
User = "inventree";
|
||||
Group = "inventree";
|
||||
StateDirectory = "inventree";
|
||||
#RuntimeDirectory = "inventree";
|
||||
PrivateTmp = true;
|
||||
ExecStart = ''
|
||||
${pkg}/opt/inventree/src/backend/InvenTree/manage.py qcluster
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -173,10 +173,10 @@ in
|
||||
serviceConfig = {
|
||||
User = cfg.user;
|
||||
WorkingDirectory = "${file-uploader}";
|
||||
ExecStart = "${lib.getExe pkgs.nodejs_20} ${file-uploader}/src/be/index.js";
|
||||
ExecStart = "${lib.getExe pkgs.nodejs} ${file-uploader}/src/be/index.js";
|
||||
Restart = "on-failure";
|
||||
};
|
||||
path = [ pkgs.nodejs_20 ];
|
||||
path = [ pkgs.nodejs ];
|
||||
};
|
||||
|
||||
environment.systemPackages = [
|
||||
|
||||
@@ -17,7 +17,7 @@ buildNpmPackage {
|
||||
version = "1.0.0";
|
||||
|
||||
nativeBuildInputs = with pkgs; [
|
||||
nodejs_20
|
||||
nodejs
|
||||
breakpointHook
|
||||
];
|
||||
|
||||
|
||||
@@ -1,161 +0,0 @@
|
||||
{
|
||||
stdenvNoCC,
|
||||
python3,
|
||||
fetchFromGitHub,
|
||||
fetchYarnDeps,
|
||||
yarnConfigHook,
|
||||
nodejs,
|
||||
}:
|
||||
let
|
||||
version = "1.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "inventree";
|
||||
repo = "InvenTree";
|
||||
tag = "${version}";
|
||||
hash = "sha256-GAATo5zkkNCes9fCQsYUsZ9auhgYEUnevN4obWj3ZRA=";
|
||||
};
|
||||
|
||||
frontend = stdenvNoCC.mkDerivation {
|
||||
name = "inventree-frontend";
|
||||
inherit version src;
|
||||
|
||||
yarnOfflineCache = fetchYarnDeps {
|
||||
yarnLock = "${src}/src/frontend/yarn.lock";
|
||||
hash = "sha256-Ijbkx+INZgsvMhkzo8h/FUY75W3UHnKAdUjQRD8kJZw=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
yarnConfigHook
|
||||
nodejs
|
||||
];
|
||||
|
||||
patchPhase = ''
|
||||
runHook prePatch
|
||||
cd src/frontend
|
||||
runHook postPatch
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
echo "Running lingui"
|
||||
./node_modules/.bin/lingui compile --typescript
|
||||
echo building lib
|
||||
./node_modules/.bin/tsc --p ./tsconfig.lib.json
|
||||
./node_modules/.bin/vite --config vite.lib.config.ts build
|
||||
echo "Running tsc"
|
||||
./node_modules/.bin/tsc
|
||||
echo "Running vite"
|
||||
./node_modules/.bin/vite build --emptyOutDir --outDir $out
|
||||
'';
|
||||
};
|
||||
|
||||
in
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "InvenTree";
|
||||
inherit version src;
|
||||
|
||||
format = "other";
|
||||
|
||||
dependencies =
|
||||
with python3.pkgs;
|
||||
[
|
||||
coreapi
|
||||
cryptography
|
||||
distutils
|
||||
dj-rest-auth
|
||||
django
|
||||
django-allauth
|
||||
django-allauth.optional-dependencies.openid
|
||||
django-allauth.optional-dependencies.mfa
|
||||
django-allauth.optional-dependencies.socialaccount
|
||||
django-cleanup
|
||||
django-cors-headers
|
||||
django-dbbackup
|
||||
django-error-report-2
|
||||
django-filter
|
||||
django-flags
|
||||
django-formtools
|
||||
django-ical
|
||||
django-js-asset
|
||||
django-maintenance-mode
|
||||
django-markdownify
|
||||
django-money
|
||||
django-mptt
|
||||
django-mailbox
|
||||
django-anymail
|
||||
django-redis
|
||||
django-oauth-toolkit
|
||||
django-otp
|
||||
django-q-sentry
|
||||
django-q2
|
||||
django-redis
|
||||
django-sesame
|
||||
django-sql-utils
|
||||
django-structlog
|
||||
django-stdimage
|
||||
django-taggit
|
||||
django-user-sessions
|
||||
django-weasyprint
|
||||
djangorestframework
|
||||
djangorestframework-simplejwt
|
||||
djangorestframework-simplejwt.optional-dependencies.crypto
|
||||
django-xforwardedfor-middleware
|
||||
django-storages
|
||||
drf-spectacular
|
||||
dulwich
|
||||
feedparser
|
||||
gunicorn
|
||||
pdf2image
|
||||
pillow
|
||||
pint
|
||||
pip-licenses
|
||||
pypdf
|
||||
python-barcode
|
||||
python-barcode.optional-dependencies.images
|
||||
python-dotenv
|
||||
pyyaml
|
||||
qrcode
|
||||
qrcode.optional-dependencies.pil
|
||||
rapidfuzz
|
||||
sentry-sdk
|
||||
tablib
|
||||
tablib.optional-dependencies.xls
|
||||
tablib.optional-dependencies.xlsx
|
||||
tablib.optional-dependencies.yaml
|
||||
weasyprint
|
||||
whitenoise
|
||||
|
||||
psycopg2
|
||||
fido2
|
||||
|
||||
opentelemetry-api
|
||||
opentelemetry-sdk
|
||||
opentelemetry-exporter-otlp
|
||||
opentelemetry-instrumentation-django
|
||||
opentelemetry-instrumentation-requests
|
||||
opentelemetry-instrumentation-redis
|
||||
opentelemetry-instrumentation-sqlite3
|
||||
opentelemetry-instrumentation-system-metrics
|
||||
opentelemetry-instrumentation-wsgi
|
||||
]
|
||||
++ django-anymail.optional-dependencies.amazon-ses;
|
||||
|
||||
installPhase = ''
|
||||
substituteInPlace src/backend/InvenTree/InvenTree/settings.py --replace-fail "django_slowtests.testrunner.DiscoverSlowestTestsRunner" "django.test.runner.DiscoverRunner"
|
||||
|
||||
mkdir -p $out/opt/inventree
|
||||
cp -r . $out/opt/inventree
|
||||
|
||||
echo "Installing frontend"
|
||||
|
||||
mkdir -p $out/opt/inventree/src/backend/InvenTree/web/static/web
|
||||
cp -r ${frontend}/* $out/opt/inventree/src/backend/InvenTree/web/static/web/
|
||||
cp -r ${frontend}/.* $out/opt/inventree/src/backend/InvenTree/web/static/web/
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
pythonPath = python3.pkgs.makePythonPath dependencies;
|
||||
gunicorn = python3.pkgs.gunicorn;
|
||||
inherit frontend;
|
||||
};
|
||||
}
|
||||
@@ -2,28 +2,4 @@ final: prev: {
|
||||
think-gtcm = final.callPackage ./think-gtcm.nix { };
|
||||
think-backend-gtcm = final.callPackage ./think-backend-gtcm.nix { php = final.php83; };
|
||||
gtcm-file-uploader = final.callPackage ./gtcm-file-uploader.nix { };
|
||||
|
||||
pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [
|
||||
(py-final: py-prev: {
|
||||
django-dbbackup = py-final.callPackage ./python/django-dbbackup { };
|
||||
django-error-report-2 = py-final.callPackage ./python/django-error-report-2 { };
|
||||
django-flags = py-final.callPackage ./python/django-flags { };
|
||||
django-ical = py-final.callPackage ./python/django-ical { };
|
||||
django-markdownify = py-final.callPackage ./python/django-markdownify { };
|
||||
django-money = py-final.callPackage ./python/django-money { };
|
||||
django-q-sentry = py-final.callPackage ./python/django-q-sentry { };
|
||||
django-recurrence = py-final.callPackage ./python/django-recurrence { };
|
||||
django-slowtests = py-final.callPackage ./python/django-slowtests { };
|
||||
django-structlog = py-final.callPackage ./python/django-structlog { };
|
||||
django-stdimage = py-final.callPackage ./python/django-stdimage { };
|
||||
django-user-sessions = py-final.callPackage ./python/django-user-sessions { };
|
||||
django-weasyprint = py-final.callPackage ./python/django-weasyprint { };
|
||||
django-xforwardedfor-middleware = py-final.callPackage ./python/django-xforwardedfor-middleware { };
|
||||
pip-licenses = py-final.callPackage ./python/pip-licenses { };
|
||||
py-moneyed = py-final.callPackage ./python/py-moneyed { };
|
||||
pytest-pycodestyle = py-final.callPackage ./python/pytest-codestyle { };
|
||||
sentry-sdk = py-final.callPackage ./python/sentry-sdk { };
|
||||
})
|
||||
];
|
||||
inventree = final.callPackage ./inventree { python3 = final.python312; };
|
||||
}
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
wheel,
|
||||
django,
|
||||
pytz,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "django-dbbackup";
|
||||
version = "4.2.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jazzband";
|
||||
repo = "django-dbbackup";
|
||||
rev = version;
|
||||
hash = "sha256-GD+f9mbImGPQ6MOUK3ftHqiGv7TT39jNQsFvd0dnnWU=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
setuptools
|
||||
wheel
|
||||
];
|
||||
|
||||
dependencies = [
|
||||
django
|
||||
pytz
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "dbbackup" ];
|
||||
|
||||
meta = {
|
||||
description = "Management commands to help backup and restore your project database and media files";
|
||||
homepage = "https://github.com/jazzband/django-dbbackup";
|
||||
license = lib.licenses.bsd3;
|
||||
maintainers = with lib.maintainers; [ ];
|
||||
mainProgram = "django-dbbackup";
|
||||
};
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
wheel,
|
||||
django,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "django-error-report-2";
|
||||
version = "0.4.2";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "matmair";
|
||||
repo = "django-error-report-2";
|
||||
rev = version;
|
||||
hash = "sha256-ZCaslqgruJxM8345/jSlZGruM+27H9hvwL0wtPkUzc0=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
setuptools
|
||||
wheel
|
||||
];
|
||||
|
||||
dependencies = [ django ];
|
||||
|
||||
pythonImportsCheck = [ "error_report" ];
|
||||
|
||||
meta = {
|
||||
description = "Log/View Django server errors";
|
||||
homepage = "https://github.com/matmair/django-error-report-2";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ ];
|
||||
};
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
wheel,
|
||||
django,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "django-flags";
|
||||
version = "5.0.13";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cfpb";
|
||||
repo = "django-flags";
|
||||
rev = version;
|
||||
hash = "sha256-WPMfFYoP6WaVzZmVtqAz4LlY761aCRyPhd5npc8bOOI=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
setuptools
|
||||
wheel
|
||||
];
|
||||
|
||||
dependencies = [ django ];
|
||||
|
||||
pythonImportsCheck = [ "flags" ];
|
||||
|
||||
meta = {
|
||||
description = "Feature flags for Django projects";
|
||||
homepage = "https://github.com/cfpb/django-flags";
|
||||
license = lib.licenses.cc0;
|
||||
maintainers = with lib.maintainers; [ ];
|
||||
};
|
||||
}
|
||||
@@ -1,46 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
setuptools-scm,
|
||||
wheel,
|
||||
django,
|
||||
django-recurrence,
|
||||
icalendar,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "django-ical";
|
||||
version = "1.9.2";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jazzband";
|
||||
repo = "django-ical";
|
||||
rev = version;
|
||||
hash = "sha256-DUe0loayGcUS7MTyLn+g0KBxbIY7VsaoQNHGSMbMI3U=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
setuptools
|
||||
setuptools-scm
|
||||
wheel
|
||||
];
|
||||
|
||||
dependencies = [
|
||||
django
|
||||
django-recurrence
|
||||
icalendar
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "django_ical" ];
|
||||
|
||||
meta = {
|
||||
description = "ICal feeds for Django based on Django's syndication feed framework";
|
||||
homepage = "https://github.com/jazzband/django-ical";
|
||||
changelog = "https://github.com/jazzband/django-ical/blob/${src.rev}/CHANGES.rst";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ ];
|
||||
};
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
bleach,
|
||||
django,
|
||||
markdown,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "django-markdownify";
|
||||
version = "0.9.5";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "erwinmatijsen";
|
||||
repo = "django-markdownify";
|
||||
rev = version;
|
||||
hash = "sha256-KYU8p8NRD4EIS/KhOk9nvmXCf0RWEc+IFZ57YtsDSWE=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [
|
||||
bleach
|
||||
django
|
||||
markdown
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "markdownify" ];
|
||||
|
||||
meta = {
|
||||
description = "Markdown template filter for Django";
|
||||
homepage = "https://github.com/erwinmatijsen/django-markdownify";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ ];
|
||||
};
|
||||
}
|
||||
@@ -1,41 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
wheel,
|
||||
django,
|
||||
py-moneyed,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "django-money";
|
||||
version = "3.2";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "django-money";
|
||||
repo = "django-money";
|
||||
rev = version;
|
||||
hash = "sha256-eL26NsreUqtMJ26TmvmB53EJI4Sjs7qjFDnnt4N0vdI=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
setuptools
|
||||
wheel
|
||||
];
|
||||
|
||||
dependencies = [
|
||||
django
|
||||
py-moneyed
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "djmoney" ];
|
||||
|
||||
meta = {
|
||||
description = "Money fields for Django forms and models";
|
||||
homepage = "https://github.com/django-money/django-money";
|
||||
license = lib.licenses.bsd3;
|
||||
maintainers = with lib.maintainers; [ ];
|
||||
};
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
poetry-core,
|
||||
setuptools,
|
||||
sentry-sdk,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "django-q-sentry";
|
||||
version = "0.1.6";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "danielwelch";
|
||||
repo = "django-q-sentry";
|
||||
rev = "d3a43a90c82734244d5ebf3295652223053f1354";
|
||||
hash = "sha256-3C7A+X18c7p19HWD/uPRtAMf29VjmrfXXh2z5PPOREY=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
poetry-core
|
||||
setuptools
|
||||
];
|
||||
|
||||
dependencies = [ sentry-sdk ];
|
||||
|
||||
pythonImportsCheck = [ "django_q_sentry" ];
|
||||
|
||||
meta = {
|
||||
description = "Bringing Sentry error tracking to Django Q";
|
||||
homepage = "https://github.com/danielwelch/django-q-sentry";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ ];
|
||||
};
|
||||
}
|
||||
@@ -1,56 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
pdm-backend,
|
||||
django,
|
||||
flake8,
|
||||
pytest,
|
||||
pytest-cov,
|
||||
pytest-django,
|
||||
pytest-sugar,
|
||||
python-dateutil,
|
||||
sphinx,
|
||||
sphinx-rtd-theme,
|
||||
tox,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "django-recurrence";
|
||||
version = "1.12.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jazzband";
|
||||
repo = "django-recurrence";
|
||||
rev = version;
|
||||
hash = "sha256-Q33zyMa1wI13RNLxynGAJHlagahpnFHCmZbHp0aPC/w=";
|
||||
};
|
||||
|
||||
build-system = [ pdm-backend ];
|
||||
|
||||
dependencies = [
|
||||
django
|
||||
flake8
|
||||
pytest
|
||||
pytest-cov
|
||||
pytest-django
|
||||
pytest-sugar
|
||||
python-dateutil
|
||||
sphinx
|
||||
sphinx-rtd-theme
|
||||
tox
|
||||
];
|
||||
|
||||
pythonRelaxDeps = true;
|
||||
|
||||
pythonImportsCheck = [ "recurrence" ];
|
||||
|
||||
meta = {
|
||||
description = "Utility for working with recurring dates in Django";
|
||||
homepage = "https://github.com/django-recurrence/django-recurrence";
|
||||
changelog = "https://github.com/django-recurrence/django-recurrence/blob/${src.rev}/CHANGES.rst";
|
||||
license = lib.licenses.bsd3;
|
||||
maintainers = with lib.maintainers; [ ];
|
||||
};
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
wheel,
|
||||
django,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "django-slowtests";
|
||||
version = "1.1.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "realpython";
|
||||
repo = "django-slow-tests";
|
||||
rev = version;
|
||||
hash = "sha256-gW9AZiMpXJp1m2X1cbm6GdZ9cH+TFqjNLQJFmsvGjB0=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
setuptools
|
||||
wheel
|
||||
];
|
||||
|
||||
dependencies = [ django ];
|
||||
|
||||
pythonImportsCheck = [ "django_slowtests" ];
|
||||
|
||||
meta = {
|
||||
description = "Locate your slowest tests";
|
||||
homepage = "https://github.com/realpython/django-slow-tests";
|
||||
changelog = "https://github.com/realpython/django-slow-tests/blob/${src.rev}/CHANGELOG.rst";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ ];
|
||||
};
|
||||
}
|
||||
@@ -1,51 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
setuptools-scm,
|
||||
wheel,
|
||||
django,
|
||||
pillow,
|
||||
gettext,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "django-stdimage";
|
||||
version = "6.0.2";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "codingjoe";
|
||||
repo = "django-stdimage";
|
||||
rev = version;
|
||||
hash = "sha256-uwVU3Huc5fitAweShJjcMW//GBeIpJcxqKKLGo/EdIs=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
setuptools
|
||||
setuptools-scm
|
||||
wheel
|
||||
];
|
||||
|
||||
dependencies = [
|
||||
django
|
||||
pillow
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ gettext ];
|
||||
|
||||
preBuild = ''
|
||||
echo "bla bla"
|
||||
echo $PATH
|
||||
'';
|
||||
|
||||
pythonImportsCheck = [ "stdimage" ];
|
||||
|
||||
meta = {
|
||||
description = "";
|
||||
homepage = "https://github.com/codingjoe/django-stdimage";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ ];
|
||||
};
|
||||
}
|
||||
@@ -1,48 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
asgiref,
|
||||
django,
|
||||
django-ipware,
|
||||
structlog,
|
||||
celery,
|
||||
django-extensions,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "django-structlog";
|
||||
version = "9.1.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jrobichaud";
|
||||
repo = "django-structlog";
|
||||
rev = version;
|
||||
hash = "sha256-SEigOdlXZtfLAgRgGkv/eDNDAiiHd7YthRJ/H6e1v5U=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [
|
||||
asgiref
|
||||
django
|
||||
django-ipware
|
||||
structlog
|
||||
];
|
||||
|
||||
optional-dependencies = {
|
||||
celery = [ celery ];
|
||||
commands = [ django-extensions ];
|
||||
};
|
||||
|
||||
pythonImportsCheck = [ "django_structlog" ];
|
||||
|
||||
meta = {
|
||||
description = "";
|
||||
homepage = "https://github.com/jrobichaud/django-structlog";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ ];
|
||||
};
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
setuptools-scm,
|
||||
wheel,
|
||||
django,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "django-user-sessions";
|
||||
version = "2.0.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jazzband";
|
||||
repo = "django-user-sessions";
|
||||
rev = version;
|
||||
hash = "sha256-Wexy6G2pZ8LTnqtJkBZIePV7qhQW8gu/mKiQfZtgf/o=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
setuptools
|
||||
setuptools-scm
|
||||
wheel
|
||||
];
|
||||
|
||||
dependencies = [ django ];
|
||||
|
||||
pythonImportsCheck = [ "user_sessions" ];
|
||||
|
||||
meta = {
|
||||
description = "Extend Django sessions with a foreign key back to the user, allowing enumerating all user's sessions";
|
||||
homepage = "http://github.com/jazzband/django-user-sessions";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ ];
|
||||
};
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
django,
|
||||
weasyprint,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "django-weasyprint";
|
||||
version = "2.4.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "fdemmer";
|
||||
repo = "django-weasyprint";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-eSh1p+5MyYb6GIEgSdlFxPzVCenlkwSCTkTzgKjezIg=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [
|
||||
django
|
||||
weasyprint
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "django_weasyprint" ];
|
||||
|
||||
meta = {
|
||||
description = "A Django class-based view generating PDF resposes using WeasyPrint";
|
||||
homepage = "https://github.com/fdemmer/django-weasyprint";
|
||||
changelog = "https://github.com/fdemmer/django-weasyprint/blob/${src.rev}/CHANGELOG.md";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ ];
|
||||
};
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
wheel,
|
||||
django,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "django-xforwardedfor-middleware";
|
||||
version = "2.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "allo-";
|
||||
repo = "django-xforwardedfor-middleware";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-dDXSb17kXOSeIgY6wid1QFHhUjrapasWgCEb/El51eA=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
setuptools
|
||||
wheel
|
||||
];
|
||||
|
||||
dependencies = [ django ];
|
||||
|
||||
pythonImportsCheck = [ "x_forwarded_for" ];
|
||||
|
||||
meta = {
|
||||
description = "Use the X-Forwarded-For header to get the real ip of a request";
|
||||
homepage = "https://github.com/allo-/django-xforwardedfor-middleware";
|
||||
license = lib.licenses.publicDomain;
|
||||
maintainers = with lib.maintainers; [ ];
|
||||
};
|
||||
}
|
||||
@@ -1,74 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
setuptools-scm,
|
||||
wheel,
|
||||
prettytable,
|
||||
tomli,
|
||||
autopep8,
|
||||
black,
|
||||
docutils,
|
||||
isort,
|
||||
mypy,
|
||||
pip-tools,
|
||||
pypandoc,
|
||||
pytest-cov,
|
||||
pytest-pycodestyle,
|
||||
pytestrunner,
|
||||
tomli-w,
|
||||
twine,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pip-licenses";
|
||||
version = "5.0.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "raimon49";
|
||||
repo = "pip-licenses";
|
||||
rev = "v-${version}";
|
||||
hash = "sha256-6xw6BCuXSzNcwkpHaEFC5UPpubPUwhx/pg6vZq2er7A=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
setuptools
|
||||
setuptools-scm
|
||||
wheel
|
||||
];
|
||||
|
||||
dependencies = [
|
||||
prettytable
|
||||
tomli
|
||||
];
|
||||
|
||||
optional-dependencies = {
|
||||
dev = [
|
||||
autopep8
|
||||
black
|
||||
docutils
|
||||
isort
|
||||
mypy
|
||||
pip-tools
|
||||
pypandoc
|
||||
pytest-cov
|
||||
pytest-pycodestyle
|
||||
pytestrunner
|
||||
tomli-w
|
||||
twine
|
||||
wheel
|
||||
];
|
||||
};
|
||||
|
||||
pythonImportsCheck = [ "piplicenses" ];
|
||||
|
||||
meta = {
|
||||
description = "Dump the license list of packages installed with pip";
|
||||
homepage = "https://github.com/raimon49/pip-licenses";
|
||||
changelog = "https://github.com/raimon49/pip-licenses/blob/${src.rev}/CHANGELOG.md";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ ];
|
||||
};
|
||||
}
|
||||
@@ -1,42 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
wheel,
|
||||
babel,
|
||||
typing-extensions,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "py-moneyed";
|
||||
version = "3.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "py-moneyed";
|
||||
repo = "py-moneyed";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-k0ZbLwog6TYxKDLZV7eH1Br8buMPfpOkgp+pMN/qdB8=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
setuptools
|
||||
wheel
|
||||
];
|
||||
|
||||
dependencies = [
|
||||
babel
|
||||
typing-extensions
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "moneyed" ];
|
||||
|
||||
meta = {
|
||||
description = "Provides Currency and Money classes for use in your Python code";
|
||||
homepage = "http://github.com/py-moneyed/py-moneyed";
|
||||
changelog = "https://github.com/py-moneyed/py-moneyed/blob/${src.rev}/CHANGES.rst";
|
||||
license = lib.licenses.bsd3;
|
||||
maintainers = with lib.maintainers; [ ];
|
||||
};
|
||||
}
|
||||
@@ -1,43 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
wheel,
|
||||
certifi,
|
||||
urllib3,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "sentry-sdk";
|
||||
version = "2.26.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "getsentry";
|
||||
repo = "sentry-python";
|
||||
rev = version;
|
||||
hash = "sha256-Wl8yq2X9GuPcqaS93hkKXs2cDzz282Xceaai4NjbVZY=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
build-system = [
|
||||
setuptools
|
||||
wheel
|
||||
];
|
||||
|
||||
dependencies = [
|
||||
certifi
|
||||
urllib3
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "sentry_sdk" ];
|
||||
|
||||
meta = {
|
||||
description = "The official Python SDK for Sentry.io";
|
||||
homepage = "https://github.com/getsentry/sentry-python";
|
||||
changelog = "https://github.com/getsentry/sentry-python/blob/${src.rev}/CHANGELOG.md";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ ];
|
||||
};
|
||||
}
|
||||
Executable
+6
@@ -0,0 +1,6 @@
|
||||
[
|
||||
{
|
||||
"publickey": "age14pdszyzzu9lwzhxs7xz7k94knvgensay9qr4p6j9z8qnqnvqup8qpvk6ra",
|
||||
"type": "age"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1 @@
|
||||
../../../groups/admins
|
||||
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"data": "ENC[AES256_GCM,data:H6zKr5xrPfHM7L1PAA3yHY2T9K6/IPfPshUncIldSW/9mMFMbLz0d4E+hp5IZCm50fLl5PHFOjIK5h390knrH3fz0zzmCgE3kn4=,iv:5XiZsewvqB8Z5v+0IDrdHl2YjrpwX9BVOg63U5ME6Zc=,tag:L1S/TgS3Rq8Pp5EC1VITgQ==,type:str]",
|
||||
"sops": {
|
||||
"age": [
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYZ1NobkZOY3V3bm5JNHdx\nZjhTbXkzVXNvUkE4UnNJRjFhc1dGc1loMndJCnBkWkZxM0Y2TDZORFVxek8zZWdG\nQ1h3Qy9pZmpWSzdmcE5RZlRaY3hBNWcKLS0tIG0wK01ya2pnT0NrMWdTRnp2WTI4\neFA3Ujk3N3VaNVpOQzNiSDVpNThGdWMKii698kqkazUHyoFmRogEAOuTwcjeQS/c\nhU2Hm4AAzb41G6KqH2LKxDhF3j4TZaKennSkC2bH5ruTbMHxNup7CQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age134vt63pjqpd0m7702fyn8vhdlzyj2deqc2q78sp9uw9052kxsgwq6d25ez"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA5R1lURmRWOTVyTU00SktX\nb1RaYWtpZHRleDdObC90VWhMemp0MDBBRmtVCi9iQ0dpaGFPQm9sUURwS2JGL1gr\nYmEzdHp4S0VNaHpVMFBwUmxweGE4RGsKLS0tIHFhUDh5QjFaVktzRloxMkhQVmk4\nbXNTczhoVmpZY28rRjZqbXBOYjNXcDgKGxmMonIfC9kgzIrkL3SQkiAPSPloZIDM\nT1+f4ydepFm0hPYn+/Bv/tdKkgpErRIT5xU+EE/Rt2WrxiyJzRSZyQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age17d4qt0n9edq57tgcqyk8eu5mrendl59yt6z2y3a4vkq7el8krqtq6lq28g"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIEZZa044T252\nUXdGMVhTRzBxVGd1U1c4WktXeDRwQnRaNndOWUZKNUJ6eXcgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpTMlZOeklYYUxVNERvQktxM29DMkVE\nd3NIRUpDcUpicVhnVEtKaXM1RU1nCi0tLSBFelMyYTVxaU40K0FKMXUzbGdvWUxH\nMUFyQkxNT0N5RE0zdHRxR2RkanZvCvyZswq45eIaE2IKLtx1Z2ayjAKthvmc9uQ/\nO5lIEaC44kgxrLXPJqk93fY2q1d0FaJMdBPRmQ5n5Y+T6yaqF0Y=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpf43tgcfjm048lsqskvq34w2t4uvrm5qy6m2eg6zjj82ctca8wctgpczxvj0q4y6337uhvsxdh5j86k9h9ymautpvv2759ucwnef75ez7pa7fpkddklp40mxk2tedsp74359g0kefn5rsq0x0yss6cu4yd0h06up0rp08t6yc4l0hfa9y8jn5fkx6nk0hjhz06ykwv0fyxe7z42q683jy0"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGVKUWM4dXY2\nNW5QK1VmN1I2dDhINnNDUXpMUmFsbDZXazlyZEI4WC9JVHMgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpwSTN4TEdXQzJ6Q3pQLzA0VFV3YThy\nc0xQM2FKT2RkckNqRXFNRzZVU29rCi0tLSBOUEhTTWpmcy9TelE0YWZuM2RGdER1\nRi9EQXkrd2krUGNyc3drNXJsSnE4Cmyrlx1n0/TGV3ebUYYe/7zB0tpmAGyaTLER\nUshbqgbybtLAfiEyq9ZAolHhVmkQ1GCJbOaIzZUneOi5NYem1+k=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqprw0vfpc8wzsu78quc777kmee54ln6nnsjrnrhl7nr33eh4kvkksqp05qqxj4kgfzrmrugrsvg7skx6ghh3q9xc0x0agthtkvy25d9eq7eklta5wf7s30hexkuyl5546rdz9ffa5tawlp5yweqkgccntw0ny540n2am3cqw3luhxkfmrp63kwr6mwplhr9u26wll48x0n3k5f60c7hg9a3"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIHNJSVlBQXAw\nQWdDUVRuNUdhdkxORXFGc050Y3pKVWRuTlVTbURROS9wMTggQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpWNGllcTZtdmVoY2lTSHhOMkNtam9w\nb2dmOWlGdWsvcWZXN2pRMUJEcGZvCi0tLSBPTFA3OVdPK2hLd0pIZVJkbW50WkIw\nSmtPZXFkcTNoazVnTXYrR0NxVnA0Cu++kUfu1nrTWaa+p4KaRUpVa16L9xXkubQS\ntiRwmxYBhXgZn+jLPvDWqkBwNbbezD8QoY5bJsOaCoFvPoAB3sI=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpyewum3q8dfcumfgec8nn958aec9f4q9aqy0k06kw5kq27d6fdqdgp0p7y4ru3n5xk90u747xevxa2af3v37e85j9g3axrmw5hdwdfh0wz22hut5vrafxsx26a7vh8fjwkymz3ramfgvvu4detztu075kmpr8l9ydqda0rnjwatdwmfgswg849p37astvld98s3nleeq575azlwc2hhpuh"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0Ry9uaE04UzNLc2Mxbmgy\nRDFNNEtnTVh3U2xoZ08wVmxPSUV1cXpSTERZCjlEL1R0UWUyd0FiN1FtbnRuYnpV\nUUVoT0JzUDUwTzNvWVNic0hvaTFCZzQKLS0tIDF2UVp5WTJFRUxZN1B5SU5Uc3h6\neTBiMFo4ZnBSMFJBSHE4ejMwMFp5SzQKzaGWhdQJ70djvkOv0CMCyzBpWtgoyNog\nfXlSb1nEnx0S4n7BbQeUMcbNZR0Gz8BzfovJIokGeN2VI/CNc9NijA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1hlzrpqqgndcthq5m5yj9egfgyet2fzrxwa6ynjzwx2r22uy6m3hqr3rd06"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA5UGJSY0VEa01BVitIeTdu\ndGFXajF4WU5GUTFTT0hrL1B5RWtSTG9JSXp3Ck5SMFZFUDV1ZXNhNGRIenNFQU9N\ndlR1OVMyNnA0eC9RaVN5K0hGdVRXbjgKLS0tIDBsdFpnZGF2cWN3MEptN0M1TWhS\nUFdDbHVEWDhzYmUwRlRYWVMza0kreWMKpwl8k1XM+6czx+zWG5A2dTy6BIb6AxTw\nr04mzDlMG4M8KZAQ9n/ZhVJgAEIdyMckahQThpLDKPTY2PJvJF5/FQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1sg0rvgyetdcqw7j2x983fh69kdkvqsngpe5x36e5920qa7fze3cqhj4wgx"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBMZnQ0NjRQUExUVmpUekl3\nMk9HS2VDOU5FS0drZGZocTZNc3VRZmpEMnlJCmJ4S1cvY3RoRHErcUpxYUdaZmJn\nYlAwQ3c4VGV0MGkxT2NVMjJ2eUNEYncKLS0tIDNTVDRNN0NZaWJiMDk2WTR2aWov\nSzRsQm9wcWx3R2ZmZnZ4bnlmNmhtR0EK7KHcKUBvAEFB/65Pv/55POguBOOMw+t+\nFwlvTxPo5Ec94XAc/lqvOz/RfYF73Os4qiGzkZ8WXft7FHl9kkqfBg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1swlyyk2rzvevqawyeekv75nx2dz34zpe3xqhkqme26gcgeavy4dqrfpcd8"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIOFpnZWltdWIrRU1LblNt\nQ21xRE92a1FXQThkVkI4bk9WWFB6dzhkeFJVCnVjK2cxdUlyS2xYTTFKVm5mc3Fv\ndHVHQXBVRzJqQTBDMUxTVFkvczNnMlUKLS0tIEU1ZlFvcmFtdDJKcDJHYnRiMnZv\naHlCOEJKNmh3bHFhcHFMM2lhRC9GcDgK1vvGk+P2/DriuNi9pdwgsr99GAvZdPAp\nDWBG6cH9pSbLGu2+rsrOGPdQ+kgp7pz/XNEDFMMzL3Nh5LNk6+r3uQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1vphy2sr6uw4ptsua3gh9khrm2cqyt65t46tusmt44z98qa7q6ymq6prrdl"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2026-05-28T06:47:03Z",
|
||||
"mac": "ENC[AES256_GCM,data:XZLMRmecN1YpFNph8UgUzztJaKN71udV8bBsiTc+eyRD0BOdFBbCQ13sVf7YzGXthlyTG6jWSJRRWSQ0G+0B88GGIMzGDnxXafbQdd0swF6Ff41KftKvKtxAsUg3nMErUo+oQ7JM4RzOFsowi5qmdM/ANZokCc6c4xzVR6DZTAo=,iv:gwuk9sbxuWdKUyRE/rUcQ1WnoqKFfZFvCDwxxPQpQL8=,tag:Qqcmc354g7DuU4q0SSEiFw==,type:str]",
|
||||
"version": "3.13.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
../../../users/kurogeek
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../../sops/machines/alasia
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../../sops/machines/bosona
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../../sops/machines/canopus
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../../sops/machines/deneb
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../../sops/machines/neptune
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../../sops/groups/admins
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../../sops/machines/petra
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../../sops/users/kurogeek
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../../sops/groups/admins
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../../sops/machines/ramus
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../../sops/users/kurogeek
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../../sops/groups/admins
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../../sops/machines/rana
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../../sops/users/kurogeek
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../../sops/groups/admins
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../../sops/machines/rigel
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../../sops/users/kurogeek
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../../sops/groups/admins
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../../sops/machines/sirius
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../../sops/users/kurogeek
|
||||
@@ -0,0 +1 @@
|
||||
9c6a25028e3d8c9821d2af3ee592080d0fa152d38346930c1f04951787d2e734
|
||||
@@ -0,0 +1 @@
|
||||
ssh-ed25519-cert-v01@openssh.com AAAAIHNzaC1lZDI1NTE5LWNlcnQtdjAxQG9wZW5zc2guY29tAAAAIDKzbKyaQywfgti9trDJGnnCptpuA8ayfxZHE6ST3TMjAAAAIDxgNyEJ7VktnhHLiISIeJn5j0mTzgRrKK+aZJBIImxHAAAAAAAAAAAAAAACAAAABnRhbmdyYQAAAA8AAAALdGFuZ3JhLmNsYW4AAAAAAAAAAP//////////AAAAAAAAAAAAAAAAAAAAMwAAAAtzc2gtZWQyNTUxOQAAACCH0ihJXtD/Ff8S+ANZV8eZbgwjI6/H3sfP3NZdzzJ6sAAAAFMAAAALc3NoLWVkMjU1MTkAAABA1LI0WlRoj0pARALAKV5sfOdqZ0BPcbQ/DOdvAKMtHr+s4j1AZRHVB/kh7SrZFoXf1UBechTbVTVcXF5IZjUPDQ== /tmp/vars-i3mdwzkm/in/openssh/ssh.id_ed25519.pub
|
||||
@@ -0,0 +1 @@
|
||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDxgNyEJ7VktnhHLiISIeJn5j0mTzgRrKK+aZJBIImxH
|
||||
@@ -0,0 +1 @@
|
||||
../../../../../../sops/machines/tangra
|
||||
@@ -0,0 +1,50 @@
|
||||
{
|
||||
"data": "ENC[AES256_GCM,data:QsgMWhakW0PZ5M4cunh67s2IFwLx59uHjg+en9n7/Bc2p52MHou0PVWE05YRQF3/v+rc0a+LjJk08rFcwpA+bhYQCQkZpCBVhetX+LA4aPnzyEMU6k17PZrmi1UkZw3oEWASY227SFAT45xL8Z9zBjfhv8vOuj5MdLnvTvuzBUWiEhbaQmY9WonzyA36OXaQC+biO56kKFqf/lQ6w0w8sUJ62Ha3bGzMUKv29SzMkqoEsaCCWfZDkcvON/ThOYPkPBU5163gI5ahHIN7yNU/8SNk4hCjHicXzlxqGDC/WuzqtQNjPNTt+9LKlfJDxE2b9771wBoXvxXrSI9O0qt7cM/iIiLonRLLbnrO/U1kWtxoZ1CMygra8xP+pJ//ANBY2mgcznWumG8bQJ9J6pV2BP7nbUTnn8oVUKIfFDuAU9hDXEdcSIadd1BjvrOa8/x2uz1ehPHuUMVEM7yzTQERPsI2J1NbKE9TouVysliIoWlY9PLMuWalqxxMr8mfeVx1Xpzd,iv:dqNnlFMFifsh0xKco9lCpmHffCpIbrfckbn8WJJ81IQ=,tag:CbJjJO8R4El2NUdT/469YA==,type:str]",
|
||||
"sops": {
|
||||
"age": [
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAvTnVlbGk4b2NlSy9YYlR3\nNjlMWkYyQlhLbTJESVh2cWlsdjBPcnBkUWtvCkpwTndxLzBZd1g0alFvUVRuaVFy\ncXdZNXprNEJwNEZRdkNuOGFpU1dwb00KLS0tIHM5TFhEZ1UwdFpqdlRpdVRMYk15\nYW9mZXRZeTlGaUZCZzZ6ZmdxU1JqRkUKW0m5oHWIZ21LyQyr6PF/JpOydyFZNnHd\ns1D+DDDx53RZT6h2/ySqj3v2OT6OqppGcmnu1k/g6JsIFlcMhOnvaQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age134vt63pjqpd0m7702fyn8vhdlzyj2deqc2q78sp9uw9052kxsgwq6d25ez"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBlNTRDUXNKaTNFVlZnZGxO\nU1gvNUxDZFlVVk5Yc3hYcVNVSERTNTBVR1VFCit5bTdQT1UvWjYvYUsyelgraGJq\nRDJZNnRkdDBDVkZrTlR0dnJQSk5EMUEKLS0tIDF1Vk93bG9zMG16MjdabUdsQjc1\nY1FQOWZCMjV6cUVZamcrYXpMYUFqTlkKYuXBX+l0Mi5zx+zbRxeX7ekTSs3q+jAU\nvLB+bDDVEre9iA3Xc6gE0XuoMfDA4cFBtk01AAYo9mw4pZ8OPIHDMg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age14pdszyzzu9lwzhxs7xz7k94knvgensay9qr4p6j9z8qnqnvqup8qpvk6ra"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAzWWtBWWlZU2FnRzMvcjFv\nWVAza21XbjFWN0J5dDMwYWxrb0xKc05zNGtFClBYWHVMWG05ZTlOK0d5ZUVEVnNk\nc2dnazBxc0tqSVAyMmpZT3JPZkVCcTQKLS0tIHZPMTRTRXNxOUNWcjhtL0NTdTlW\naS91SVgwbzdXLzAzcUN0b3VmS2luV3cKr8fbwJRXSozjMWS5KEzjw0vH8S8l4MGV\nqFW4To6t331AeMzSWaRAyeRC7Gn+iOBMRghQWG3w+mP++AU4U9fo/w==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age17d4qt0n9edq57tgcqyk8eu5mrendl59yt6z2y3a4vkq7el8krqtq6lq28g"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIHpPM2ZNL2g4\ndlJsaDNPTWJhM0xrbERPZ0R0YW40ZEpCR3FVTGNCaGhzeFUgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpQTTN1NHhKM1g3cU5XSFNDS0tQV1o1\nUWZiTjh5VWRtNkVablE4TjhGc0E0Ci0tLSBuaU93Y0lSdC9NTFI5M0lyL2JhK04w\ncWpGZFpleDVJQVJvd1VGZEFwZUtJCtDcGwUA2xhFfp07r1QM6i+ZU5teTjdNxEMD\n0ToleHNTn/6wUBirwGMz9BCt0MF0q8nSZ8Qz1ey9dbRlSsWCi3s=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpf43tgcfjm048lsqskvq34w2t4uvrm5qy6m2eg6zjj82ctca8wctgpczxvj0q4y6337uhvsxdh5j86k9h9ymautpvv2759ucwnef75ez7pa7fpkddklp40mxk2tedsp74359g0kefn5rsq0x0yss6cu4yd0h06up0rp08t6yc4l0hfa9y8jn5fkx6nk0hjhz06ykwv0fyxe7z42q683jy0"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIDF1eFNwcmkx\neTdReFJrNXpmQnNlei9QTHVKSVpxNTVweHkrZ3BMVDNjeFEgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwplS2dIL3ZJYzlqdHdVS2VTb0VZMURw\nVlg5REtDVzFRNGpYM0xveVlnSDlBCi0tLSBrWkJDc0pZSldUNWNvMklGa0NXL3BW\nMTZSYm5CYUtja2g5VVlaNmVVZElZCvvIpW9QSWKo6GysXf9OjwjBsrkDmYahHYvx\nn6DXSzc69rNKk5Yjw5uitwPDaUJf8B5Nsp1A5+pCgPgM9/B0zbY=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqprw0vfpc8wzsu78quc777kmee54ln6nnsjrnrhl7nr33eh4kvkksqp05qqxj4kgfzrmrugrsvg7skx6ghh3q9xc0x0agthtkvy25d9eq7eklta5wf7s30hexkuyl5546rdz9ffa5tawlp5yweqkgccntw0ny540n2am3cqw3luhxkfmrp63kwr6mwplhr9u26wll48x0n3k5f60c7hg9a3"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGFIOVd4aHNU\nSEgybEtCUUxiRFJRdEpIVExWV01RdUpJR0l5V1dwdXlXbXMgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpYbkxDV1dwRVorNTF1TUNiUk1VdmRU\nYmp3YjZxSU4xOEMvWGFvMWplRDhJCi0tLSBURlhneWptcjJtRDJBTGxvRDJabDdU\nZWpvNURqSFJDWmtOdjBaSzU3dG9BCvjk+IW/vCFAHzLNji7WQd0B+ZslaE9I6SC2\nmNPywn4YAvhdm5x2LNibxVz7CkLvAAifZMEHa0E01m9NtJEqlUw=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpyewum3q8dfcumfgec8nn958aec9f4q9aqy0k06kw5kq27d6fdqdgp0p7y4ru3n5xk90u747xevxa2af3v37e85j9g3axrmw5hdwdfh0wz22hut5vrafxsx26a7vh8fjwkymz3ramfgvvu4detztu075kmpr8l9ydqda0rnjwatdwmfgswg849p37astvld98s3nleeq575azlwc2hhpuh"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB1S0x1anNITUhFTEczVHFu\ncVJPYldadk1rekQ0aTVCeHp1NXFvcjYzQjJvCk9rYm5HTXBiZmx5ZVA2TlRvZSs2\naE1VVW1xczFmeUFWSE53blpnanRsSE0KLS0tIHE4dm5tc1NuZ3R0bGlTcE9YRXpv\nS2FZbEhBQXphVE5OcThwbU5aNHpCdXcK9auwFg7oE0lI9dIjKD96ezencWIW7CkL\nR1NBZyS5Z+nKOqI93R927OzrVExlZ6BeEPFSuyS9zZDTpbI5eKA06g==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1hlzrpqqgndcthq5m5yj9egfgyet2fzrxwa6ynjzwx2r22uy6m3hqr3rd06"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTY3E3dG5EZkcyd1RsSHlo\nTFN0cFRZVzc0cWpWaDRNUEhGakk4VmNreXpvCjVJS2NHTEhDdWJvZFpyYnpHbUpk\nQ1dtVXowS1lWd1NNT1p5K01PNjNLRlkKLS0tIGlBaEgwUGtsUkpQUHNuN0UwOGNI\nSlQrakx4R1AxSHZHclE4R2t5cU9MRmcK7OeoOokvNY/OyoUBBOHocXy33sO8tKVH\nZqE6DSRs091kwFRJcQoxsgLlbpbYS1LHczRzX0vfaizRv4zvogwGdQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1sg0rvgyetdcqw7j2x983fh69kdkvqsngpe5x36e5920qa7fze3cqhj4wgx"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArRFAxSnAxYmR1NzJJd0tr\nd3dzeUxzcmdJejVoWkV1TjZDNG9CdG8wT1JVCjBySXdTZXlDUUFNWDZ2ZVVJb0Qx\nMGt6WWYxT0ZHK2NIdHFJY3RvcVcrMEUKLS0tIGY1VEFoZmNLaWEyRTdqRnJGc2Ev\nMmw4T00rbjhhcFovRmJDcThJZzl2Vk0KomKf7Hq9B3sq5nzoibvTidtwc/6qU2SN\noBhAiF9TbxxEbRLso+uEJ1/bsp/13Fy0HldEh62TDFHswmfFGN1enA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1swlyyk2rzvevqawyeekv75nx2dz34zpe3xqhkqme26gcgeavy4dqrfpcd8"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBuVEgwbjhLTTBBQ1BVZ1Nu\nQllOQlNWSkw3ODRpVkNyNjgvRHE2Qndwd0NNClFVYzZvV0lmY1JLWUVDbjFmc0NX\nalVlYzRuVjJDWWY5Vyt3MWJJV1ovUmsKLS0tIHdqSmJ5TlU5cXh4K1Z1WFJ2dzZo\naytGWk03eW5Id2FIdURDVHhWb1ZUMEkK02R5NqH5xkGIOOyGdWlZ+WRpwZ1SxP+p\nm3ypMvwlOGcOSGbOT8fj9zBxfyT822XQCvzF3YQbm9ltIQ7PmTwFvQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1vphy2sr6uw4ptsua3gh9khrm2cqyt65t46tusmt44z98qa7q6ymq6prrdl"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2026-05-28T06:47:29Z",
|
||||
"mac": "ENC[AES256_GCM,data:LtKHC6vVaMWai/dpRlxUuoI28oNI3GRjr/h8d7sJeKpdcdSIRlJKKfXnd1i68UKoaVCGDv8K62AYPcLzrLj7/rTCzeVrX2dIWFmvIbR4YZ0P3B60jWq1wZEEuPSIOdFAMvSREZlyS+gl/exUxIcp/8HI92SIiYxretEx09IvvJo=,iv:R9ffCrYbKUnnUhDEWI6oOMDnXPhd9Z4jaBkEMyYBYos=,tag:dWPUENimEZcNUbyXczfsUw==,type:str]",
|
||||
"version": "3.13.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
25.11
|
||||
@@ -0,0 +1 @@
|
||||
../../../../../../sops/machines/tangra
|
||||
@@ -0,0 +1,50 @@
|
||||
{
|
||||
"data": "ENC[AES256_GCM,data:v06nkR14kS3WGpYdRFv6wp87L45Joz89qlEXnLNIEmXpcKLvy3WUTIozOgWfbhvqxoXMDoElWBxQtKWaXZDk,iv:R6t8lOKLrgQ6UQNTK6JP42pCgLzxpDF2JbEa49EJdzo=,tag:Q39yTcYHDuQNrwBf69chWw==,type:str]",
|
||||
"sops": {
|
||||
"age": [
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBjcUtSOGNyY3hTeWFMUHVq\nMzd6NXlORTJZRFQzUFl2M04rMW9jOU9NbWpZCm1hTkZKNTNOTzV4MnNUUVhxTlIw\nSjE3WUFxdU4xdGNKYmNQVmVmTE9ZN0kKLS0tIHp2ZXNWUjNSWU9OZkVOVTZ3aDly\naWlkUktjbGkzdkE0QmlhMjdTZEVyMFUKtY6+D1e7hPWOx4OkRf08xpkOyiznKW+T\naFtkfybCPKEPvKfKaP+9Y6C5WLUDmIntSrkp0IQ34qOiAl3aT5YsAg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age134vt63pjqpd0m7702fyn8vhdlzyj2deqc2q78sp9uw9052kxsgwq6d25ez"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSQ21sa09RaGNhVjRWeHdk\nc3JGWTZZUXNNRG9FOVljL0pqakswZmk2ZHhnCnFCcG1iMWhWSW45Wm1WcjRHMFZt\nRDdydkROQVg5c0VvbTVtUG1rcXZ1TTgKLS0tIDVTalpXTnpYazU5QWpGVVhTMXZm\nb0hFWlpXdGdKUjBMWHZUbFFvWkVQS1UKdcNRWbAdiAZuola8vw5Rn0UMqxocUTt0\n3BHKxwixo+lXbgYTd8SsvHISg8z/eI8PRtqbPQ2yQJTDMRETYqmm7A==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age14pdszyzzu9lwzhxs7xz7k94knvgensay9qr4p6j9z8qnqnvqup8qpvk6ra"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzRFRGdlpZM01yb1l2V2RM\nNjNIUGZra0pDd2FlQUZQTkw3dFR4YTBleFRzCkcvNW5yNlQ1Uy9qd3dMQkVmRVBv\nV3RiMjNTYVJPNXpqclRTUHd4OXVUdVUKLS0tIEo2MWtMT2NVdU15L0FEcHBYeEgy\nS3dGY0k0WEtyR3NEQ0djUWpodDIvZ0kKQlY6Xw0R9eur9Eh/GWbtq/Rc7BrHewZc\npRWpCfm8pwmfqzuoQi2QeZ5/lbdXTzfotKaFR9auqQE3uHXloH69TA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age17d4qt0n9edq57tgcqyk8eu5mrendl59yt6z2y3a4vkq7el8krqtq6lq28g"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGFFYXJkNmdl\neWxxNzBpVDFKRDhDY3g2c2ZEVkQxaVVTREJXK08wRHdjQ3MgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpwb3NWakFtdk5YdXZ3UytqZ1lqL013\nS1VldmRwZjdiK1RRQnhpSDJpbTdJCi0tLSBNNC94L21KK21BM0h4UGZZVVpvVG5v\ncUQ5K09ZVDdpUU9nbzRHWm1USXJjCs5r6rLD5Epn75DTkf5xQQL+QmtPA6wj889I\noCSbYhvQWQS2urycve7JppTjtakbUIi5f5YKxFLgO/ZS8RB2+hY=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpf43tgcfjm048lsqskvq34w2t4uvrm5qy6m2eg6zjj82ctca8wctgpczxvj0q4y6337uhvsxdh5j86k9h9ymautpvv2759ucwnef75ez7pa7fpkddklp40mxk2tedsp74359g0kefn5rsq0x0yss6cu4yd0h06up0rp08t6yc4l0hfa9y8jn5fkx6nk0hjhz06ykwv0fyxe7z42q683jy0"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGlLT095S3Jv\ndW8zMlNuSUcrblJiRTNFQ216dFRlb3p5WjJ6L2gzZExleUkgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpGT0tYaE5LdVQwSDFWVjBKb0xEeDl3\nRmpiYk92K1NrWXRUQ0JJMEJPOWowCi0tLSBLU0dRaFFEMTNHZ2ovS1JYNGo2Rnh6\nSTFGWHBSSW5FS3hQeldqOUVLVTg4CjJLxwNxKu+5lXqtGnx4Kmgt2o9lzhHQm4nI\nhUmjcaSiqgMe3hWlPXn+Z1JYG5KDTU2X6EWjchQpwXTfgLxbdv8=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqprw0vfpc8wzsu78quc777kmee54ln6nnsjrnrhl7nr33eh4kvkksqp05qqxj4kgfzrmrugrsvg7skx6ghh3q9xc0x0agthtkvy25d9eq7eklta5wf7s30hexkuyl5546rdz9ffa5tawlp5yweqkgccntw0ny540n2am3cqw3luhxkfmrp63kwr6mwplhr9u26wll48x0n3k5f60c7hg9a3"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGJzOXdLcmJD\nV2NPcEI4K0tqdGdVK2Nsam05Ym11U2lLR2ZWUjRROEtReXcgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpPWmprcmhxaEtSSXZYMUowaWNLZW5H\nRzZxVEVYckI5bml0ZTdJd05CTkJVCi0tLSBTZWZ5eTMvOG03N2FlTGhueHdLaUhN\nZlJ5YTBXcFdtUzlGL0x5M2dKclJBCk2ZU5AZgge0+BVZrs3XvCpd0xk9GIKWPb/w\n8YvSnSJPOyG1BtGOtaAkDWlbXiGDtZavEhU4pbVpuZWwRsSLrCU=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpyewum3q8dfcumfgec8nn958aec9f4q9aqy0k06kw5kq27d6fdqdgp0p7y4ru3n5xk90u747xevxa2af3v37e85j9g3axrmw5hdwdfh0wz22hut5vrafxsx26a7vh8fjwkymz3ramfgvvu4detztu075kmpr8l9ydqda0rnjwatdwmfgswg849p37astvld98s3nleeq575azlwc2hhpuh"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBqMFl6OHJzQkFDSHZ2Sm8v\nQ1ZpZGYvaisvSW9VT2EwSjg3ZjcwVXNwVGhFCi94V2diaUFGQVdYNEhPQnVQbGxH\nUkxDMUpxZWVTMFhsZ1Q1OFNQMGdiNUkKLS0tIDFiZGFvVXdhYmRaZWhrc3ltcUo5\nNzIvMWNKNEh6d1VYZmhxVWZEQ0k5OUUKpEsjH/05xgVb0mdutZaP/SulQwVwijcg\n+gnq3jtbrOODuH3xxE8D+4Hm/z/nqcp6xVe3L6siM4d7s8VpQVQNMA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1hlzrpqqgndcthq5m5yj9egfgyet2fzrxwa6ynjzwx2r22uy6m3hqr3rd06"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBScnptUEdTYXFxZ0Q2RVIr\nK2RqczJhQ1dWeS94eDVqS2oxR2xMdi9yVEhNCmlhZjJqVldObXUxV1p1c3lEZ2p5\nUE83c2NYbGFqTElZeGFrazRqeEFuUXcKLS0tIFd3NGlxc2RlUE8xTHJVQ1lrL0tG\nT2lvOXFERk5RV3pDWldzMk5xRVBhV0UKSgyzl9Hbx5xB585amSEIPzdIk1LfuuaJ\n69MoRhIDyyfLYOH9kSE6aMNK5Wkn239alg0zadYZ5zQYaN0Fm+8XHA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1sg0rvgyetdcqw7j2x983fh69kdkvqsngpe5x36e5920qa7fze3cqhj4wgx"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWS0d6aUdsWFBuTjZjckVT\nbVl4NFVyUVJlRUpoUlc3R0s2WWxTbnRmcGk4CkpPRmZJMjVUWmFOZlZqT2lOb1Rz\nQmFFcVBWS0xFVVhUa0U3YlpoQVFuWDgKLS0tIEJHemtHQVpLN1p4a0dhbVV3dW5U\nWnJvOWdENGpmZ0czaWQrNjlHdUFvWEEKfnSrNdVYe7Nk/UlN+Nmex6O7vdnqJmAT\n2Eo+FhdY/05KDX/11tQ9zAQzQ6BV0tDhSlHuVscwdckHL3M+GzJmZA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1swlyyk2rzvevqawyeekv75nx2dz34zpe3xqhkqme26gcgeavy4dqrfpcd8"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBHMVR2eEtQc0E4VkIwU0w1\nSi9rRWlQZGlrWHB0RE1yZVl3VHNTWFBMRjFJCm1xZVVXT0NXTVVRMjR6SFErQ3p6\nTTdnSHBJOTJIUnhUUXgxdkNTaEtQdFUKLS0tIFpDL0F3RzVDK3R0OEMyeURsdjdH\nY1MzUWhFMGFYNzZGQzhqd3FqaUs1RFUK0owLyd/jrv7psucWxe9MGmRRYem4Riv6\n1ftk6csTVVYQgCX4B2SfbCLJixasfUlgzUZqu25VHt+Vfm18RWUpRg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1vphy2sr6uw4ptsua3gh9khrm2cqyt65t46tusmt44z98qa7q6ymq6prrdl"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2026-05-28T06:48:21Z",
|
||||
"mac": "ENC[AES256_GCM,data:qBk3SIlzGHPCcun/KaOjiCRpavFKqB4XhI4Gc6TCwzqMwiy0sWcAKpuEjwTror/YllaHqGN026ij2wVizHU/PDg5cVndGnb0hpM3S3sWWEUj+XlU1tERYb6UDmv9Sakslgx2X7N3rhAOCOTi/iKGuVh90hQs9MWcqydbmkTXA6Y=,iv:asyG+qy4DoY1gYVZEVasiUllcqGa+ysqeR1e3Zs7Huk=,tag:iPXSSejGvYp9U64Hig+dyg==,type:str]",
|
||||
"version": "3.13.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
../../../../../../sops/machines/tangra
|
||||
@@ -0,0 +1,50 @@
|
||||
{
|
||||
"data": "ENC[AES256_GCM,data:A+dBBwMAROEfzmGVwbUVOSYrSkl9pwPAeJVNsawVV1nZFqSd7T2NLzJJ0c0ciUXYUy732QcRmPchkTWRpQcR/iddSr9R/kVjU2dP1dulK47afKJEU2eTiJTK1Y8ySzqO,iv:Q/1tx4r5WqS6L9L8YQUSOWhaHRvQ34Z98TuVpmPCnyU=,tag:GNhVRRtjFEAy0Pi8pZ3sCQ==,type:str]",
|
||||
"sops": {
|
||||
"age": [
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvMEN4a3NzTzFKUGU3MUNj\nNUI3VXdhMkFOdFI2YVowRkxPNjVackZsNXhNCklvSWpvMnp1aFF0bFl1ck9xUmJJ\nV1dQREpZYndpS0RTU3Bvb1hWcE1HSTQKLS0tIHlVTXFUaVJydUhvRTFCNTZyUzRv\nSWtVNG5Eb0w0RzBHbkFJay9tT0lXd0EKgsTL+vY0HkX2gUJ/0R/kFD603TC8M9Pc\nrPbaxnCkIpTpOl7ywtjolEkpfQDJxYkATJ4e6RMN2NMjfrI0Xmmz6g==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age134vt63pjqpd0m7702fyn8vhdlzyj2deqc2q78sp9uw9052kxsgwq6d25ez"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGVkFIblY5WnlPVzZCUC9m\nUFN1U0l1V3lkU2lPTERaa0Q0c3Q4ems3WGhvCmdXdkw1SFE2RFlMbGxlYUNnanI3\nZEJEbVB4NHpDWkNSNjl0dktmbWhKQmMKLS0tIGtSbktRaFd5Qmk3U1cxK09meitr\nRXQ5UnBKRWF4VHkyTUJTRitnOEozVEkKv9xKHG7YEyuf36qWFpWhhA0adQ3QgHxQ\n72d99rTZ/0Qop9FaOrGM89Y36N7zw79/ySgNf6/cMhjAArV52FkUUg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age14pdszyzzu9lwzhxs7xz7k94knvgensay9qr4p6j9z8qnqnvqup8qpvk6ra"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5UCtBaU55N3ZITmpDTXFN\nQVlVazFqd1MxaEk0aHovTUd2dUlKbnFtTHpZCmNUSWRMWW1aTFNtRTFzZHkwQk1M\nb3BRaU5IM2tjSjFCS1k2UkVDU1NkNkEKLS0tIDQ2SXJPTVgvakFUZ1lHakxBdGZK\nMU5FZGRPalNydFRwYjkyaVBocmhraG8KZnKhu5X1As9MZ//2QhAKlVX4f/PDh9CL\nivPzW4CnDfs3uEu9kIrbqq/7ena5FpTDjUYHE7H98l3guFOLq/sN8w==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age17d4qt0n9edq57tgcqyk8eu5mrendl59yt6z2y3a4vkq7el8krqtq6lq28g"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGxoNkxXUnha\na2R4NHJRMXloaHVueUZKdmxSSk5uZkdnQ2RZT3Yxczk0MnMgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQovcDFFOHloOTJ6ZnZ0SHdZV0lhc096\nVk9aK3hDZ2dFQThwUmV5cFdFeU5zCi0tLSA3M1RDaUJxV1NySDRybnoxbFFXYTdL\nSnp4eHl5ZllDcVNVU0IrR1BxM3hjCqR/TAxDmtDSxUkLK9PLlbK7lTRb8IRYa4Bh\nN0jQh1aPNQyotnQAAPNWjCZhmgD/81M+W8JGKdCL5Yq4kZt8X1M=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpf43tgcfjm048lsqskvq34w2t4uvrm5qy6m2eg6zjj82ctca8wctgpczxvj0q4y6337uhvsxdh5j86k9h9ymautpvv2759ucwnef75ez7pa7fpkddklp40mxk2tedsp74359g0kefn5rsq0x0yss6cu4yd0h06up0rp08t6yc4l0hfa9y8jn5fkx6nk0hjhz06ykwv0fyxe7z42q683jy0"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJICtvOGozZDdN\nVXZReWc2SWx2THFQSzdjVkNkamQrLzR0VG9Yc1ljMkFFWGMgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpvK2orYUFsWkwwemNGbExsWXJ6R2F1\nMFZoeHN0V0VsRlpXbUhzaG9mek93Ci0tLSB1ZFVScEw4eVJyMDZyZlczMzhYQUNP\ndG82YzlIcG5icjBxZmlNMkpuV25ZCuN81aglkKC7XKWv8ANluC5mUDYDcgTUyA3+\nM6vs3wkamhP23CsHIrkz4pS957w9pu4Hod8PI6z8veIjDID7oM0=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqprw0vfpc8wzsu78quc777kmee54ln6nnsjrnrhl7nr33eh4kvkksqp05qqxj4kgfzrmrugrsvg7skx6ghh3q9xc0x0agthtkvy25d9eq7eklta5wf7s30hexkuyl5546rdz9ffa5tawlp5yweqkgccntw0ny540n2am3cqw3luhxkfmrp63kwr6mwplhr9u26wll48x0n3k5f60c7hg9a3"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIHRaejJtTHVV\ndnFxVlpqSS9TQjBMNGJtYzNMODhWUnViY000WDA4ZS95RU0gQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpWK2hQMFVlZDNOU0hrQ1lWYlZxbzJR\ncXZPUXFSdnNFajBoYWZ3VTRxajRZCi0tLSBac0J1NDJXM1JmUjV6aU5GaVFRUFg5\nRVBHOXp1Q240R05KVldtS1dVQ3pFCqau0DUskZ4HsNwrPDWSICFYG9DHo/EoRlF7\noabk71D+LjDWTT+KrdUJlMI/oV2kU5lMqhkph0+SIRuOUKi9N2k=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpyewum3q8dfcumfgec8nn958aec9f4q9aqy0k06kw5kq27d6fdqdgp0p7y4ru3n5xk90u747xevxa2af3v37e85j9g3axrmw5hdwdfh0wz22hut5vrafxsx26a7vh8fjwkymz3ramfgvvu4detztu075kmpr8l9ydqda0rnjwatdwmfgswg849p37astvld98s3nleeq575azlwc2hhpuh"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArNjNNaS9wb2pmaTJzYmFT\nTVp0MWFCbkNKZE1acXgyTStDNmFBUzV2OEZJCjNLa0lkV2htbk9vN1dBT1d5MFRM\nK2wvWHMwamhlOGRqVEdVdXFLaW9hMUkKLS0tIDlLMWFVSGRzWGRZSzE1ekFGZHB4\nVm5GbGNuemlMUnJNVXJ4emlZU285aEkKbwiYvTcF3MdVAiJrecTDtBmWYj4ScOde\nkRuQv+VtZix5UtSlwmpzDXkrJiwbFQXRZ54400hui+Sj3LQBQ+EUPA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1hlzrpqqgndcthq5m5yj9egfgyet2fzrxwa6ynjzwx2r22uy6m3hqr3rd06"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5VnlONkdHU0tGOEJ5aFJN\nd09PQzBjTFN5dnlqZERObjc3TWtxYVp2U2dNCmVYL1NBcVB6b29sczl5dXdFbWNE\nNEI2czVydlAranRVUEN2dTNPQlZodGcKLS0tIDBCamwveEExbnB6Q2hEUXJFMmRr\nWWNaWWpVc2ljQWcvdHIvQ2VuRjd1R2MKPMxx/Pximxq+iQIkDW5Kkm0255SrLstR\n9R7ovhfGwx0jkfFMKu1YqMtB/98fdmkSxb5m/VISUzyVJDQiWjjx0w==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1sg0rvgyetdcqw7j2x983fh69kdkvqsngpe5x36e5920qa7fze3cqhj4wgx"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4T1NjSUczd1QrWVV4OXMr\ncnY1UDA1ZERhYlRUNksxTTJ4UDJEcEdkMkgwClpBS2ZqdFQxTUErN1g5eFB1Ujdn\nVjJod1hhYnJSc3pZdEZwZFNidGlzak0KLS0tIGVubkIrRTZZeVNLTkpyZzRyOTJl\nTXFNNmFqZWR6V285ZHo1SHh1bW1ueGMKK330yns3p6vzgzHY8QCWXbyqXY2BNkm7\ndKXp0jzIEwgIpi3in4HyWxp1j8g2+2XFHihgWMBkdpN2uokSJqZ/PA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1swlyyk2rzvevqawyeekv75nx2dz34zpe3xqhkqme26gcgeavy4dqrfpcd8"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCcUMySU5IWGFXV0Q1aUlX\nT1JpRzlpZGNMMEc5ek1CNlpySHdvcmlJT0I4CmkwNEdqMXhla2h0MzRzV3lSTllw\nUXhvem5aampFdXlMem9yVDFMRUZIcVUKLS0tIElHWjJRWVBWNGJITHpGc3htZW9U\nazJMT1VFd3lnOFFtc2pvTHdDZzdPYkUKNmGgOeXmyP2X67bDSB7K/LZvT1AHSqFP\nBoHkJ7nkDEEkOnCsDvvnz3gDSBIINU5vRbXkjtPHw3BCQerw89qHLA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1vphy2sr6uw4ptsua3gh9khrm2cqyt65t46tusmt44z98qa7q6ymq6prrdl"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2026-05-28T06:48:47Z",
|
||||
"mac": "ENC[AES256_GCM,data:28M1rriTkoEJ5Nr0yDin1J0a72buDnIoU9f2zmuU0+taoQMoUA1WjUkz6pmduulY8TmcVPhHnD3qSXz08IdGw5B2XAeFR9t+sXPUtBe8iZ/rEsdZCJrltrQXDZh61GHx3SFfefEy4vU9WYHzYWUsy+UVQVt7FiOaMsatlGaYYoI=,iv:2ivX5X8fAFZwpEQh4vPmPDwBLF2E1y5kpNmMgxXxyAU=,tag:5StypSl4rWkaKIYqQbl2+Q==,type:str]",
|
||||
"version": "3.13.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
../../../../../../sops/machines/tangra
|
||||
@@ -0,0 +1,50 @@
|
||||
{
|
||||
"data": "ENC[AES256_GCM,data:nsSfqXtTk3NmRskWJZxAEnMzO+14VQXlXoOA1mumO8P+9laZYOmxt9C2LQ52iKjBb1TopnzSAyIsX9FTsJcRYRWbOiM4MdjJLDOcU4cV6IwpcFsOT2iuvLbzQJX16S4oYnpSyqPvmpQs7g==,iv:x3tgDY0EG0WDPS+odMPw2xneuBDmMbZ/IyoPA+TpI6g=,tag:3oR9Fvz/EO0rKiWyX9xpAQ==,type:str]",
|
||||
"sops": {
|
||||
"age": [
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPNWN0KytueVROWURsdHY0\nbXJlckNMaE0ydU40RENvZEljckZXTlh0NG0wCjB1Zll3NWQwc2ltTUFjb1VQcTZU\nUnF3V1hLV0hJYXdyTmw1Y1lxc1QyMUkKLS0tIDh4Mk9ZVWdENUNoNWlSY0RSTGUr\nbmNCYlVBRVFyUUhaanNqaHE5aW5HSXMKzRJiBGLlOkGXzvPBLDNKVTZy79w8DRhT\n7Le0wLBG76ynF0PEtLc5Q2uHQRqbupBl/MhOI2jWLYzdzj3SOhvDbg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age134vt63pjqpd0m7702fyn8vhdlzyj2deqc2q78sp9uw9052kxsgwq6d25ez"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAzOFVjTFY5T0EwNkRZc1My\nRytBdWsyRFBzTkREVGdpcEpMaHVCRS9zSEdzCnBtNHc1S2VlNW9SL3NlaWgrcVRl\nOXZOTzRLMUtaNmk3bGRBZkNpTEFIeEkKLS0tIGlZc2FmWEY2dVdBOWFaQXlxTkZD\namdHMnZETm9ZTVVMb01UYUEweXNoQ2sKcTdpB1O1x/ohG148wZcOmydBr079U1dC\nM/YhsrJQql6QT0f5yVCZhHzApBOqk1Qfp2EmFidLvnBK8NmpUtObgA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age14pdszyzzu9lwzhxs7xz7k94knvgensay9qr4p6j9z8qnqnvqup8qpvk6ra"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAyUzIrTWRqejNvMkY0UDNG\nY1Jqb1ZEdTloVTZPNWI2cUhoQWZwV3NKU3lvCjFCV0xKYTJHdTVRblhJZlA1Vlhh\nR3p2YjJGaXdqQWZpMVpyaFlXQTNYeTgKLS0tIHdzdkVLVExCYTZIaVRQQ3IwOEVa\nRkdXNmc3ai80c2tuZVdPWG9WWk1EOUUKhcizilNi8u8xx3GIaSgEgWxaacJ0rKdb\nTjMSgcXPVZJ7af9EmAT5sT0hLX/zt5iy303E3YyZX9AY/vu9NUTepg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age17d4qt0n9edq57tgcqyk8eu5mrendl59yt6z2y3a4vkq7el8krqtq6lq28g"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIEc1K3RIdU5G\nZmpQRHFwMjljckJKV05QMk5PNHdWQkJXV3pZSktiNVhseEEgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQp3K0Z3d3hsUUE3ZVBWekpJeWYxVVN5\nQkVTQmwxb1QrZ1J1QVRyell1MTRBCi0tLSBxK2NKaWphY0Q5Ri9HbWdqTDlmZk5v\nZllhUjZ5Y0YxWVliMmJJWkkzOEhjCs+XewV/G3Lo/qlNhC6JLIlOmAZTDLl2/Q/3\ng83ay/ZEmRwi1EgojwojQHQI1362+jzZYqMEEpbVkD6lSf8XXw0=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpf43tgcfjm048lsqskvq34w2t4uvrm5qy6m2eg6zjj82ctca8wctgpczxvj0q4y6337uhvsxdh5j86k9h9ymautpvv2759ucwnef75ez7pa7fpkddklp40mxk2tedsp74359g0kefn5rsq0x0yss6cu4yd0h06up0rp08t6yc4l0hfa9y8jn5fkx6nk0hjhz06ykwv0fyxe7z42q683jy0"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIEZVbEUva1dU\naHV5RC9ZeGY5VnBlTlZ3WitpWTIyRXFMTHI2SENYK21BUWsgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpEbzI4QytNR1RWOHBQVU16OE1Bb1V4\nYkJITy90MVpTS0JCOEkyWVM1TW5rCi0tLSBneG5DRTAyOTlXQURhMkFDT2I4Ulho\nS1RDTDFkck9vN09WZzBRM2g4YzJjCpbqCtvJPKkmReDrB8NeiS0qoZbJVmuRC+tl\njlrYfnvE8bjYIyZB+84ikCmXPXk0cfTSli0PBXRyBkeSBegZI5s=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqprw0vfpc8wzsu78quc777kmee54ln6nnsjrnrhl7nr33eh4kvkksqp05qqxj4kgfzrmrugrsvg7skx6ghh3q9xc0x0agthtkvy25d9eq7eklta5wf7s30hexkuyl5546rdz9ffa5tawlp5yweqkgccntw0ny540n2am3cqw3luhxkfmrp63kwr6mwplhr9u26wll48x0n3k5f60c7hg9a3"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIFE0NjhURnVs\naHRJL1JiM25nSjRnU2dLajBwSjlPeHJOazZkNlhjV2NLbm8gQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpWeDBhbWtxU2V2OVByMjdWdTJRQzFZ\nei95QzFZYTEzc0I0U0dudng5R280Ci0tLSB4cGlISUxOTzJjaElSOXR5QnEzcWlJ\nYnYzMnZiSEJZR3JqbTF3YkNOT3p3CqmGwcATjOOoMyE3s1g27Fo4jAw5Ifw4xuba\nrNl2Z1NvtkbDHyAGIMauS0t1YfyeDzK38EdCZms73uHp0Di1r8M=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpyewum3q8dfcumfgec8nn958aec9f4q9aqy0k06kw5kq27d6fdqdgp0p7y4ru3n5xk90u747xevxa2af3v37e85j9g3axrmw5hdwdfh0wz22hut5vrafxsx26a7vh8fjwkymz3ramfgvvu4detztu075kmpr8l9ydqda0rnjwatdwmfgswg849p37astvld98s3nleeq575azlwc2hhpuh"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBOd3NzZ3IwaWtXK2JHTlRE\nN0ZiUjlMNjhNNFhJVXhWNElsRWRiRHVtdlYwCjBQVlJGY09PQlVvV0hJdTdsZVlI\nQTY0SGFLaFY0c0RUVWFRQmNaZkJFTHMKLS0tIEFheTkrOFhyZUdsUDQxZEZUTHAv\nS0dnNURybG5CdFpOanNPTklReEw5OEEKr6eIvraUWpagaKREA93P0YC64MTiPUn6\nSFh/lbwE1KZMX2KWpbR1eVr+8O+IYBMCrXHJa/NtIF6ePQSKXyjzhg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1hlzrpqqgndcthq5m5yj9egfgyet2fzrxwa6ynjzwx2r22uy6m3hqr3rd06"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhTTNxeGFwQXRBQzBJOFdQ\nYmdIREZ6cktvY2h4SWdld0g3ZEpFdGljOENFClUxSG1IOHAwZ1ErOG5hMjN1RDUy\nK2RaUXptcXNBVDFmYzAvL1pHcVhWd2sKLS0tIHVOT0I2SFdzbTBIRkpSaUN1emVH\nMldtT3d5c2xuZU1rNElCRFlZSmFGdTAKWdAaGYhIKi5F5KAbsNjs3TpiEXQ+pHz3\njhUM6lyGQR6A8ePzetMJyTEof4rQOrlVFOIhimVWkuAIwKX0ZdTd1w==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1sg0rvgyetdcqw7j2x983fh69kdkvqsngpe5x36e5920qa7fze3cqhj4wgx"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBjeXhibUUxdTdncUxJbkV2\naHJzYjhlWnVPNndkVDJHcEQxSEdBRlgwem1JCmp1cEs3L2ZBVkRGeW1aOUtUQ21C\ndkRBUC9lcHZCZFA4NXBqTVFrMk44RGcKLS0tIHduOEFRcFNFMjVCMGZnbnFsVXor\nMXZLWitNcVgrY00wTjJqZnZYeFgxSHMKNc26OJfM51SU0RDc8hGWrTj9XYJJ0YTC\nrvV4hG/N4kOBwTn+S3iGWSFFWqzsWmdmZxuxoPesTQk2/999Xb727g==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1swlyyk2rzvevqawyeekv75nx2dz34zpe3xqhkqme26gcgeavy4dqrfpcd8"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAvUWRadmovcFhyandsOWd1\ncDJURjhobEZPVG5qZW82NER1UEM0QU4zRnlnCng5cFROeVVrM2FSa2pncXV2TXJs\nUGVKTFFaM3FrRjZRVzlORERtN1N1ajgKLS0tIEdWeDdxcEIwalhGSE9JL0dxUUZn\naGNRcXdVV0t1eDRJaVV2V1V1Z012c2cKpae9HN6bqQ2/fM/ynEEDbEoTzjh3iHAK\nV/RT3S0HsWlVzq88PkQOIFYCdBL2t3Ogy8V5DXvOsrGi5Qg0BzrALg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1vphy2sr6uw4ptsua3gh9khrm2cqyt65t46tusmt44z98qa7q6ymq6prrdl"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2026-05-28T06:49:50Z",
|
||||
"mac": "ENC[AES256_GCM,data:SqSXpsnXcgFlQBgM9Xp27XDL+Tqg9kaWXTfR3xZeoHXeduIpFUF5wZ03nZcmai8Eiuq39Ij2ssECdAY3uqPrYsgOmVm3mSjuvIxP8GZKiFuHk2qA3nMiQx8nL8wNRO1M+VeAo5P0+xzpk6LYGGMvd4i03HQK5kZQNNM3l9JLCl8=,iv:Ak//hMN+4D9e4olwHyMYP33WkkBJyCs0Lu1s3EiccjE=,tag:G13WznJPLJ2NQsw5USTacg==,type:str]",
|
||||
"version": "3.13.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"data": "ENC[AES256_GCM,data:vjISynXRyWPJgyPEXY4OPqhfQ0kzQDRjKK2DpaqWe3pz,iv:nl3bMcjP5M+HTgR/IuUsX5YzJqgmBNfygm5JRM8ZFa4=,tag:K8cM5fFmDfVIHGyMFf/fqA==,type:str]",
|
||||
"sops": {
|
||||
"age": [
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBQQkRuSjIveS9Rdkcvd0hr\nWVNheVVycVBwUTl3NDlEQ245RzBNQjh2SzE0CnFMR2VmQ3VZMDlHVVg1QVI0WHNu\nbFFBZXRsRDI1U1kwV0V2alVCU1czODgKLS0tIG0zdGs2bGVoNGZIQnRXUFRkOTkz\nRXRQdm5mOVYzb3IveTBjZmZOQmFZZEEKfs1vIgW7qqomOVoiP1NL3/eiNRas1+4I\ngrp7xFo0aPISBPq3gJTgaZ3rNw6eiNnsHXalYvNtetiQ1/1dbBxE5g==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age134vt63pjqpd0m7702fyn8vhdlzyj2deqc2q78sp9uw9052kxsgwq6d25ez"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBoRHorRXdrdmR1R25vN01T\nVVA0a2JxNzJVNDFvTkk0MnFGMkJ4K2JkQkFRCm9oNmdrdlI0ek9xZm5WOWUrbTMr\nQWsramhEdHppMjFWQTlpZ05pT3BqaUkKLS0tIGg0cnVBYXJFcU0xVTlNL051ZE43\nNENUanlaNGJ2NVVxNmFXZUgwZ1dTc2sKZ5kV056b7XvZRjv/FjxV+fecaPfvDK6E\nbHQ7YGEdTiJODZo/ugK42NnqbQbmSFuUj2IEYzLfNDV3pEdJkM+FXA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age17d4qt0n9edq57tgcqyk8eu5mrendl59yt6z2y3a4vkq7el8krqtq6lq28g"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGpFS0JvTVQ5\nT2U1OXRhY3lXOHJPcjRRODZIK24zRzIzV0NVRk5qUlAwVjggQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQozdzJIOW5ld3YySW00cUtLUTdKbnFG\nNGtoS0FrWXA0cU5peTFtMUJBL0lZCi0tLSBBaWQzZEt0QnJYV0RncUJkYkRROUIy\nZzZOY0c2bXdrbTAyY2VuTkJLVjNjCgqfVeKbVOYwjphcFzmbDiD2+sVGbZkaX6kj\nh0gl4Qe44+VnaPqaQvmdt6yHZrIt2rdcf3jRP5UjZ9MhwlL9In4=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpf43tgcfjm048lsqskvq34w2t4uvrm5qy6m2eg6zjj82ctca8wctgpczxvj0q4y6337uhvsxdh5j86k9h9ymautpvv2759ucwnef75ez7pa7fpkddklp40mxk2tedsp74359g0kefn5rsq0x0yss6cu4yd0h06up0rp08t6yc4l0hfa9y8jn5fkx6nk0hjhz06ykwv0fyxe7z42q683jy0"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIEJZdGpUaWhW\nV3RVT0V0WFdZR1VSWjF5Z2JlWncwdnVEbUlkRC9JdnNJWFkgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpROFBSdnJDQ3pTYk9sei82OXZGYnBK\nZnhTTVEvOXBVVWMyWUIyNHgyNHBRCi0tLSBWS2owY1ZYblBUdWl1Y1EvT3NGUE9h\nOXllSVFocEliemZkZk8xZEd6YzZ3Cjy6nkJ6Lq5o1SuTW0YK9cA7o0018YmXsQG5\ndrwXwlhVYsGDkrnwMw33QVTYmSuOA1e6R0ex3au5uxuOOdV6yMY=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqprw0vfpc8wzsu78quc777kmee54ln6nnsjrnrhl7nr33eh4kvkksqp05qqxj4kgfzrmrugrsvg7skx6ghh3q9xc0x0agthtkvy25d9eq7eklta5wf7s30hexkuyl5546rdz9ffa5tawlp5yweqkgccntw0ny540n2am3cqw3luhxkfmrp63kwr6mwplhr9u26wll48x0n3k5f60c7hg9a3"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIEpQUExZY2d4\nQzBVUjY4WnRwUzlnUThNeXdPOXZ5SHA3NnAzcENjUityeG8gQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpNMC8zR2lOb2pCRUNEdDgxZHNVT0I3\nNlhjM3VjemJPb29YbEVwaVRlaDBjCi0tLSBLSVpTc2owRWZHSm5Wb21OL1FONXB2\nRWRYRXpvTDFxT21HQmdJR3p2dldjCuuO3on83Q+lrMLfVlE6W6YFqaunXSKUed/f\nWLIPDyVwj0SfB4h3IT0R209VEMvCepXtVB0LgfIokLYRrT11TCw=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpyewum3q8dfcumfgec8nn958aec9f4q9aqy0k06kw5kq27d6fdqdgp0p7y4ru3n5xk90u747xevxa2af3v37e85j9g3axrmw5hdwdfh0wz22hut5vrafxsx26a7vh8fjwkymz3ramfgvvu4detztu075kmpr8l9ydqda0rnjwatdwmfgswg849p37astvld98s3nleeq575azlwc2hhpuh"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAvYTNzekttVzRnZ3ZkQk8v\nOE9nWSs0aUVRTVIxMGdyeTVRQVVsOHM2TDJrCnBMUFNJcUQ4NEpiclZyeG5NdEg1\nT0VKaE5OL0ZYSnh6ODIrdjZ1L3Q1VmcKLS0tIEV5RHJweWRWNyttL1Z1N1ZDaWdR\nWkxwRFNaQjA1ZEd5WURER1V4NmlFSGcKUd8DcgCAjQK9I1N/pH5/RK0Kx9bUnR/d\nEXv601uTUy0mI8qzXHeqbEtUDWs/cExbx274GUaOl3mahkdAAhkuLQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1hlzrpqqgndcthq5m5yj9egfgyet2fzrxwa6ynjzwx2r22uy6m3hqr3rd06"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGYXFyQ1pRVVlQL2EwVGJ5\nSDVEQmVFWlZmNmtweitEUU1YSTF1U2luTDBVCkd0V1FpUFNtanlKL05DSGZnV1lT\nMzRuWHQ5c0ZEN0JzOGt3NmxBZUFzQjAKLS0tIHFVcG5xSDBremNCUmwrUThMYXhC\nZ2dWZzM3QmRMWXFDS3JLK1hBbk9ob3cKcLFJjngMm1rX3A6h+/auBukR+8wH3AVo\ncP9I059t0VPIUzaazrWdJIx8GbSEsz4PaDtQMKw6FsXAB3rOe1kbNA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1sg0rvgyetdcqw7j2x983fh69kdkvqsngpe5x36e5920qa7fze3cqhj4wgx"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhS1ZCZC9Udk84emI5TnBj\nSktWTFlrVUVOc1ZPakRrWUEzL241eXdIUUFNCmcwZ1V4SDRsV0p4NnFvNGtuNUx1\nMHp3bWE4NFU3VGdsUWo5V3J3V1N1UlEKLS0tIE5leTRhc2lva2RVeGQ5SDY3TW1h\nMC9RQlNvcnJITmNTY2cvSVFuNGU0MmcKLSyC+WfvIE23B7N8HV5iU3ZQbMyOao9N\nD7AZWHhd+3puFaCJWGhhuD+qEky1a+J2JpwmrBb60OYmBoWcfh51nw==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1swlyyk2rzvevqawyeekv75nx2dz34zpe3xqhkqme26gcgeavy4dqrfpcd8"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5TEE0QTRLVVNkNXQwejRu\nTFFvai9UbXpramhLVElleU10YUdNWnZ6dEc0CkxvdG5GOXNvSHZ0OUhNbUJPbVFt\nNDZweTlYemFHV1Z3YjFDSGpEeWo1NncKLS0tIDlpcldGbGozcUZsRmVsTjZ6ZUd5\nclZwZVBNM2p4TTRBMWJ1dTlKNzRzUU0KM8CvwdMeIQJlnBueMd8kQhZLIu6n5ldC\nwiYQJQW6LsqMyv0pMmy63GzikwHFllS9NTL0CFMX9Imm2s9N28j38g==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1vphy2sr6uw4ptsua3gh9khrm2cqyt65t46tusmt44z98qa7q6ymq6prrdl"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2026-05-28T06:49:25Z",
|
||||
"mac": "ENC[AES256_GCM,data:bNy+d6VtwoR4PDKTvi4sTqQzDv5K6bluimckc5xYZagdLBgSCJ0Slm2I1W3w5v2A/KnQUyysypjGO2yfIfU/IFd46kXWplwRHqqQiXrhd9bp8jPDvpmx7j+iA4Is3ros0+I+iuh4PijL/POlpcpT2xDo77xjSznUktZ1HU6jWi8=,iv:TuoYc1HFtmjwSIUXrWV32VEFHpPBOs9WtcogCPJ1/Bc=,tag:u/oQkT+AzX5r2OyYJpWquA==,type:str]",
|
||||
"version": "3.13.0"
|
||||
}
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../../sops/groups/admins
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../../sops/machines/vega
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../../sops/users/kurogeek
|
||||
@@ -0,0 +1 @@
|
||||
../../../../../sops/groups/admins
|
||||
@@ -0,0 +1 @@
|
||||
../../../../../sops/machines/alasia
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user