mirror of
https://github.com/gensokyo-zone/infrastructure.git
synced 2026-02-09 04:19:19 -08:00
feat(sakuya): klipper and motion
This commit is contained in:
parent
7e7d6b01f7
commit
a02778b413
10 changed files with 214 additions and 127 deletions
|
|
@ -1,53 +1,105 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
|
gensokyo-zone,
|
||||||
lib,
|
lib,
|
||||||
access,
|
access,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
|
inherit (gensokyo-zone.lib) mapDefaults;
|
||||||
inherit (lib.modules) mkIf mkDefault;
|
inherit (lib.modules) mkIf mkDefault;
|
||||||
inherit (lib.attrsets) mapAttrs;
|
inherit (lib.attrsets) mapAttrs mergeAttrsList;
|
||||||
inherit (config.services) nginx;
|
inherit (config.services) nginx;
|
||||||
system = access.systemForServiceId "kitchen";
|
system = access.systemForServiceId "kitchen";
|
||||||
inherit (system.exports.services) motion;
|
inherit (system.exports.services) motion;
|
||||||
|
upstreamNameKitchen = "kitchencam'access";
|
||||||
|
upstreamNamePrinter = "printercam'access";
|
||||||
in {
|
in {
|
||||||
config.services.nginx = {
|
config.services.nginx = {
|
||||||
|
upstreams' = {
|
||||||
|
${upstreamNameKitchen}.servers.service = {
|
||||||
|
accessService = {
|
||||||
|
name = "motion";
|
||||||
|
id = "kitchen";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"${upstreamNameKitchen}'stream".servers.service = {
|
||||||
|
accessService = {
|
||||||
|
inherit (nginx.upstreams'.${upstreamNameKitchen}.servers.service.accessService) name id;
|
||||||
|
port = "stream";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
${upstreamNamePrinter}.servers.service = {
|
||||||
|
accessService = {
|
||||||
|
name = "motion";
|
||||||
|
id = "printercam";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"${upstreamNamePrinter}'stream".servers.service = {
|
||||||
|
accessService = {
|
||||||
|
inherit (nginx.upstreams'.${upstreamNamePrinter}.servers.service.accessService) name id;
|
||||||
|
port = "stream";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
virtualHosts = let
|
virtualHosts = let
|
||||||
# TODO: use upstreams for this!
|
printerCams = [ 2 ];
|
||||||
url = access.proxyUrlFor {
|
kitchenCams = [ 1 3 ];
|
||||||
inherit system;
|
mkSubFilter = port: path: ''
|
||||||
service = motion;
|
sub_filter '${port.protocol}://$host:${toString port.port}/' '${path}';
|
||||||
};
|
|
||||||
streamUrl = access.proxyUrlFor {
|
|
||||||
inherit system;
|
|
||||||
service = motion;
|
|
||||||
portName = "stream";
|
|
||||||
};
|
|
||||||
mkSubFilter = port: ''
|
|
||||||
sub_filter '${port.protocol}://$host:${toString port.port}/' '/';
|
|
||||||
'';
|
'';
|
||||||
extraConfig = ''
|
streamConfig = ''
|
||||||
proxy_redirect off;
|
proxy_redirect off;
|
||||||
proxy_buffering off;
|
proxy_buffering off;
|
||||||
set $args "";
|
set $args "";
|
||||||
'';
|
'';
|
||||||
locations = {
|
# TODO: accept-encoding to nothing so the response isn't compressed?
|
||||||
"/" = {
|
subFilterConfig = path: ''
|
||||||
proxyPass = mkDefault url;
|
sub_filter_once off;
|
||||||
extraConfig = ''
|
${mkSubFilter motion.ports.stream "/"}
|
||||||
sub_filter_once off;
|
${mkSubFilter motion.ports.default path}
|
||||||
${mkSubFilter motion.ports.stream}
|
'';
|
||||||
${mkSubFilter motion.ports.default}
|
mkStreamLocation = upstreamName: cam: {
|
||||||
'';
|
"~ ^/${toString cam}/(stream|motion|substream|current|source|status\\.json)$" = {
|
||||||
};
|
proxy = {
|
||||||
"~ ^/[0-9]+/(stream|motion|substream|current|source|status\\.json)$" = {
|
enable = true;
|
||||||
proxyPass = mkDefault streamUrl;
|
upstream = mkDefault "${upstreamName}'stream";
|
||||||
inherit extraConfig;
|
path = "";
|
||||||
};
|
};
|
||||||
"~ ^/(stream|motion|substream|current|source|cameras\\.json|status\\.json)$" = {
|
extraConfig = streamConfig;
|
||||||
proxyPass = mkDefault streamUrl;
|
|
||||||
inherit extraConfig;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
streamLocations =
|
||||||
|
map (mkStreamLocation upstreamNamePrinter) printerCams
|
||||||
|
++ map (mkStreamLocation upstreamNameKitchen) kitchenCams;
|
||||||
|
locations = {
|
||||||
|
"/" = {
|
||||||
|
return = "302 /kitchen/";
|
||||||
|
};
|
||||||
|
"/kitchen" = {
|
||||||
|
proxy = {
|
||||||
|
enable = true;
|
||||||
|
upstream = mkDefault upstreamNameKitchen;
|
||||||
|
path = "/";
|
||||||
|
};
|
||||||
|
extraConfig = subFilterConfig "/kitchen/";
|
||||||
|
};
|
||||||
|
"/printer" = {
|
||||||
|
proxy = {
|
||||||
|
enable = true;
|
||||||
|
upstream = mkDefault upstreamNamePrinter;
|
||||||
|
path = "/";
|
||||||
|
};
|
||||||
|
extraConfig = subFilterConfig "/printer/";
|
||||||
|
};
|
||||||
|
"~ ^/(stream|motion|substream|current|source|cameras\\.json|status\\.json)$" = {
|
||||||
|
proxy = {
|
||||||
|
enable = true;
|
||||||
|
upstream = mkDefault "${upstreamNameKitchen}'stream";
|
||||||
|
path = "";
|
||||||
|
};
|
||||||
|
extraConfig = streamConfig;
|
||||||
|
};
|
||||||
|
} // mergeAttrsList streamLocations;
|
||||||
listen' = {
|
listen' = {
|
||||||
http = {};
|
http = {};
|
||||||
https.ssl = true;
|
https.ssl = true;
|
||||||
|
|
@ -70,7 +122,9 @@ in {
|
||||||
locations = mapAttrs (name: location:
|
locations = mapAttrs (name: location:
|
||||||
location
|
location
|
||||||
// {
|
// {
|
||||||
proxyPass = mkDefault nginx.virtualHosts.kitchencam.locations.${name}.proxyPass;
|
${if location ? proxy then "proxy" else null} = location.proxy // (mapDefaults {
|
||||||
|
inherit (nginx.virtualHosts.kitchencam.locations.${name}.proxy) upstream path;
|
||||||
|
});
|
||||||
})
|
})
|
||||||
locations;
|
locations;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (lib.modules) mkIf mkMerge mkAfter mkDefault;
|
inherit (lib.modules) mkIf mkMerge mkDefault;
|
||||||
name.shortServer = mkDefault "print";
|
name.shortServer = mkDefault "print";
|
||||||
upstreamName = "moonraker'access";
|
upstreamName = "moonraker'access";
|
||||||
upstreamNameMotion = "moonraker'motion";
|
upstreamNameMotion = "moonraker'motion";
|
||||||
|
|
@ -30,6 +30,7 @@ in {
|
||||||
servers.service = {
|
servers.service = {
|
||||||
accessService = {
|
accessService = {
|
||||||
name = "motion";
|
name = "motion";
|
||||||
|
id = "printercam";
|
||||||
port = "stream";
|
port = "stream";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
@ -52,6 +53,9 @@ in {
|
||||||
headers.set.Cache-Control = "no-store, no-cache, must-revalidate";
|
headers.set.Cache-Control = "no-store, no-cache, must-revalidate";
|
||||||
};
|
};
|
||||||
"/webcam" = {
|
"/webcam" = {
|
||||||
|
return = "302 /webcam/stream";
|
||||||
|
};
|
||||||
|
"/webcam/stream" = {
|
||||||
proxy = {
|
proxy = {
|
||||||
enable = true;
|
enable = true;
|
||||||
upstream = upstreamNameMotion;
|
upstream = upstreamNameMotion;
|
||||||
|
|
@ -62,6 +66,17 @@ in {
|
||||||
set $args "";
|
set $args "";
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
"/webcam/current" = {
|
||||||
|
proxy = {
|
||||||
|
enable = true;
|
||||||
|
upstream = upstreamNameMotion;
|
||||||
|
path = "/2/current";
|
||||||
|
};
|
||||||
|
extraConfig = ''
|
||||||
|
proxy_buffering off;
|
||||||
|
set $args "";
|
||||||
|
'';
|
||||||
|
};
|
||||||
"/websocket" = {
|
"/websocket" = {
|
||||||
proxy = {
|
proxy = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
@ -88,6 +103,7 @@ in {
|
||||||
{
|
{
|
||||||
"/index.html".vouch.requireAuth = true;
|
"/index.html".vouch.requireAuth = true;
|
||||||
"/webcam".vouch.requireAuth = true;
|
"/webcam".vouch.requireAuth = true;
|
||||||
|
"/webcam/current".vouch.requireAuth = true;
|
||||||
"/websocket".vouch.requireAuth = true;
|
"/websocket".vouch.requireAuth = true;
|
||||||
"@moonraker".vouch.requireAuth = true;
|
"@moonraker".vouch.requireAuth = true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,10 +16,13 @@ in {
|
||||||
fluidd = {
|
fluidd = {
|
||||||
enable = mkDefault true;
|
enable = mkDefault true;
|
||||||
hostName = mkDefault "print.local.${domain}"; # TODO: serverName?
|
hostName = mkDefault "print.local.${domain}"; # TODO: serverName?
|
||||||
nginx.locations."/webcam".proxyPass = let
|
nginx.locations = let
|
||||||
inherit (config.services.motion.cameras) printercam;
|
inherit (config.services.motion.cameras) printercam;
|
||||||
inherit (printercam.settings) camera_id;
|
inherit (printercam.settings) camera_id;
|
||||||
in "https://kitchen.local.${domain}/${toString camera_id}/stream";
|
in {
|
||||||
|
"/webcam".proxyPass = "https://kitchen.local.${domain}/${toString camera_id}/stream";
|
||||||
|
"/webcam/current".proxyPass = "https://kitchen.local.${domain}/${toString camera_id}/current";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
nginx = mkIf cfg.enable {
|
nginx = mkIf cfg.enable {
|
||||||
proxied.enable = true;
|
proxied.enable = true;
|
||||||
|
|
@ -62,6 +65,9 @@ in {
|
||||||
"/webcam" = {
|
"/webcam" = {
|
||||||
inherit (virtualHost.locations."/webcam") proxyPass;
|
inherit (virtualHost.locations."/webcam") proxyPass;
|
||||||
};
|
};
|
||||||
|
"/webcam/current" = {
|
||||||
|
inherit (virtualHost.locations."/webcam/current") proxyPass;
|
||||||
|
};
|
||||||
"~ ^/(printer|api|access|machine|server)/" = {
|
"~ ^/(printer|api|access|machine|server)/" = {
|
||||||
proxy = {
|
proxy = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (lib.modules) mkIf mkAfter mkDefault;
|
inherit (lib.modules) mkIf mkDefault;
|
||||||
inherit (config.services) octoprint;
|
inherit (config.services) octoprint;
|
||||||
cfg = config.services.klipper;
|
cfg = config.services.klipper;
|
||||||
in {
|
in {
|
||||||
|
|
|
||||||
|
|
@ -26,20 +26,20 @@ in {
|
||||||
port = 7125; # it's the default but i'm specifying it anyway
|
port = 7125; # it's the default but i'm specifying it anyway
|
||||||
settings = {
|
settings = {
|
||||||
"include secrets.conf" = {};
|
"include secrets.conf" = {};
|
||||||
octoprint_compat = {};
|
octoprint_compat = {
|
||||||
|
stream_url = "/webcam/stream";
|
||||||
|
webcam_enabled = true;
|
||||||
|
};
|
||||||
history = {};
|
history = {};
|
||||||
"webcam printer" = let
|
"webcam printer" = {
|
||||||
inherit (config.services.motion.cameras) printercam;
|
|
||||||
inherit (printercam.settings) camera_id;
|
|
||||||
in {
|
|
||||||
location = "printer";
|
location = "printer";
|
||||||
enabled = true;
|
enabled = true;
|
||||||
service = "mjpegstreamer";
|
service = "mjpegstreamer";
|
||||||
icon = "mdiPrinter3d";
|
icon = "mdiPrinter3d";
|
||||||
target_fps = 5;
|
target_fps = 5;
|
||||||
target_fps_idle = 1;
|
target_fps_idle = 1;
|
||||||
stream_url = "https://kitchen.local.${domain}/${toString camera_id}/stream";
|
stream_url = "/webcam/stream";
|
||||||
snapshot_url = "https://kitchen.local.${domain}/${toString camera_id}/current";
|
snapshot_url = "/webcam/current";
|
||||||
aspect_ratio = "16:9";
|
aspect_ratio = "16:9";
|
||||||
};
|
};
|
||||||
authorization = {
|
authorization = {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
moonraker_cfg: ENC[AES256_GCM,data:OKdXSHhblGboCSvnZVIe+hQ1gU8uTFgZenaAPtCNDeazWSTHCw5j41XbzoK1Ck5Bt4WQkp8dW/A3VVlKVRVkMq1S1Einl7lUcgDBMLetcUrLO23CSaqEdvwJWHDKiU9y1JkzpKpu1RD0kNKl3ksoHULpxJpS36V0hxL61TJkDgBw+Z11fIsy6ZS3FmKosaRBZj9UIjrVeGqtUB4/WTol2uaghDC6efiHoByXkN5IN47I18G0R07apZ8YHMt5kQJH4X3QjzI2qPkzslp7yDziwcV+5gsLUDelKJXZ8aNHiofleORWdNb+iwUEQLOf93g+gLHUFzoOpnFkSOscH/DLJ6913YCrU8FdJ4hGPmGupwrLpaAdQL347QUFYlmVUELK/ucIiP0h2v5MX5qR3zBbv+mWb8bkmaYZ+pF97vEDzT3MPFABUvj0zaiiV86CG0wuXxkcLSOwKq2J3oSjCfZmTFc803xn92ioNr+hzdMZcRVttx70Z+I1otrF+awnxnFYOOHS3ax5WKWrGj+CZ2ZYzWYk4VmIb1vgFk85WOv3zVSbpBnEQPyYn4ELBglmfaIYfbBO4guCO4dKiXVeI6Czi+yMe5+eKmdaKWDEHHyHksFYgYktEkzkrN6VZFOTOuEVLtsZIUCzSBS56hnGDQCwsgeUhtQbcrTFM49Y73/qA6yfWCouIlTJHYu6eON+aspV6ztDkWnk6JOj1n6SExzGNSQSX5JhLUiVCTJme8tXF1v5KQRX94Q66MJOrnO8VCU9s6BSMuu88qax6n2hhnsASeKXrp5j/fnEtCb3xlEj2oIOkNfssTz3l7TwOmevX+f9e6410+9r2UfnMdUKXP7VnwXEyiRowbI0Wq/kzZyzaDnVSXs+zBET17VVn6lnS4IoTsN/S6nJ9QCicJ1umLnHId2I/gTMVX+wyU1pItFDFFn4fuRd3vQKWruRe2QHJJyw9lJoF2Th9dq0oQ96cGYh+bb09UsT/feZ1f9rywhJ+KO1F0+SMQCLsWc8zAA1sIWyRiXKtUUkXtKgJz9XZGtZNReafZPtIm9EEGftUyYlHzKaWmpSlSEoKhp/1wFfnlvYGh3fpdQV2s+aH3q26RqZX4EPVdlA2Rb3xNXPRCW0Hc1EG4cdQT5rVLLtVvsXN4N5WH1+yy6uiv3DYZAKrRmFh1bIGnrFeRDcXRrD7KctsPV/6ZrKzvVHhLorQZaSjdTY94PfqKiMWxiKg6EStC/vzE9RtHh3GVNW2w+azZQ7NR0waMbKzJe/OSfSsu/Yey8N6wETgRTT5oA2FfVZlGzlzdbDjDapy4KqdJ3Z5ELSfmMUktV26GLUI9IfGq4PWcexkOJSQjsxZQoMmeCe8QuU27FQdBJmW0XVqfhvj9mA0C/3d0PX7d0xzYIkFpTuxhNlylEAOmUmw7vsW6KouzIHpFMEs+0gyTlaE9wQB62q6od1+bUUoFG6tu87yHa6Q0cIabf0BkZytAm8YB7Eyzv7hpS4K979POw14yz+LN5rIIR2aKZo3j61Oh4EKP+5JlJ1juO8R7nDPzTjQkAVoGJSHwWC3OvKy7b0wGOcXaPdX4taQwzkX7XNGvFj54O5KmM9ShlSBqDhca+IL2cMJut+FuTMjf7kJ/73f1D9ugAk1Mh4IIXseZ7e0x7vcDo0nDoOpNJ4h2QWN0I9aGKq46sro0O8XBczZ506jn7yL336w2xSFWSIQekuZG/sH5EljG+1zbi1NvC6IS6H0TmHcqCEA+wUAGqj4mSxIZ1joLtXdxBseCSQCx0FPEoGlwTinoD1w3b6WxGB9T2Y7fITB3f1OHlx5soDJQlL91yAyX9T5R+cLaskcRBp/VBYpzQgbAyp4M2O3fdpDat2lfNlE5z9iwloEd4BxfJb+KsGjAJbJeUJ,iv:r6j8IySDVYNOLvDWADBvRBjCghq91LSRjxJ+Edndxtg=,tag:chAvm1Nm6Ez8AjGnIJk0TQ==,type:str]
|
moonraker_cfg: ENC[AES256_GCM,data:zwVo+2ksp5JL2vcThWKYTdKZgYCezpme2WOFNc36Z8ElPt4WKSftoUKKfZU3chpWq96kVMH8XRIUwmDRoVXH9Cf/GQBTiYsoGiHWjf2Zo9eWvzkJWa4c/C7kkrZgNOfqSShy/tMzrOSfvg0l6+4Ubb0nYhxUfj/RVgCKVXo327d/exW25SqOCV7LtjEfFlt32siEzzAKBTyzDW00yPV0BIAtixjWSC4RZZioCCglRgUDrhITLn71L0wHipKR6ljgQBUW3jkN0IsgFPb6vgS4JJudZMEcK0rdmZNQZTL7jil+KZIcskrlx2p1sUdG/bV2cqfigtIt0fqFQ+YqMALo0Vfe6x0KsDiBXzs9Cww1F6/30DPhP+xANwNJCos6vVIyiCP5yRGm+n3DBAF2DVLS1D/iQGTMy5z4SctD6QEXjUwGJCP0n5C9ExdArr+cVk/7X2oZbZcWYCnBaIc72R1cVfsLi5mMNbGzqEFpZjFeZuBLJow6NgVxk4TvqsAJKtf/Oo+STKbK3mKwvkzkgP3UGDdwQoGLTVZwVrJFxETH/5D/9L/ZnzzfLFCmaTctgyH+Hj2whphjtIy89dNRJ1ORZunY+6xCcKtCmLVjdFHPNlhioisQ0xBNNKKJFdogrRZNWUFgfx8jO1NwbWOJJCCT5Y+125pvad1TE92rtfdvNQ0XgGz8kU6tZpxwq3YKNAFESI0upaBgOxALFW2xNQG/6HVHTMsvHiqu+oTkxwj/6wO2XgnET2UHBV77t8a4INOCnbsNtDDCGNGTQYbuCu5ZGs7a2ekE4CO6g+328VKZGFQC44dY6wMNy9TcsSP9rFFR59Sa5hORVlg3jKfkUzg+zpI9TwoOg8sRK8AxIVIsiMPgeQA5RV6r9FYzJ4CDC+nN2aKtvS7H07sNMK/ekytUzWW7RXGIZCi+hEGJ1p/IbMzigaaDOiKZr9ChnihnX+OLRJmr0uTcAuGxn+UqorBn+Qv6tM9MrEOxO/IlOwmVHeoC00smLNfOzdqqoepEBSWoR8y0Rf1Jv/hIldFbLNARrCnfA+b3GYddLnACZrdMvTlqE5sUn8OuFEMaXz4AbtGCfguJ7bLeK/4oVpYrAPJkJ0ShzcS3YQeWOXjD0iwqOFnl8fY9U2zrrbAvtz5PSjE7k9idVdGE4pFWLyigfqTS1fIvNn7HGTs345NpXOSmoB9y0QrwC6hA8IbOqxlxTsgg4IFTZkeqI5j6vCvt0605+oL2R5/ZC1uG5/rtqF0WZW51w+rOmm+8qDjt0zXJ4Bx7s//mJt5oCUlYL/pDH3zlMJ8041/1tqN4jXejOVztf2sKjOUnCDQmYQ/9pYIwKouWH/xZTwW3ClSb0b91iXUiLzoCJX1MKNRTsIfFYG69s5vVm/p8wf8Fimo0deXmxvw9wJBm6pNWTzn2qlXLHo0cVEvKJJZG/T02oC/nigSvFIbEW4ddS8PPzD0afFaw7pGTz18m9edGLWAxMD+PKTjKZfZpq3HAgaoppYxh6r0iZDVaf2WAutz82oqwEwQBgXqCcgAtMN5Pa68ZZeamdWbek1yUSdogtGJRhH1C6FUkbyIkT9frEMoNG1dFhkI0G2Ws7sQcOcqLPPHROFUNQ61Ya5mfBrJ5pUC+M7f/ZfRV1qTMeC0taAxJEfhWlwJyGRe3PjZa5fRU+vPpW7o04dMQBK4DuZ5+1k/y2Bf7y3lPcwD4hLIDr/Oae5tUF5syCL6WqZmMfZWs0akEJuB/ZBIw8BndOGao3ACAg7znADRSRgYwdOlALVEZ8r/g4/r2bwH/dANDkPIBF57rHk+GcUIWQNWZde34YqCy8YT/RqCKWPHc3dcSevS+hXJvEc67EJNAWHm0M2hdWGXBIi7+iTNelQCoj9uVugwlTul/TcgN69eOkEYiNjStFbM5+YaNhejT,iv:YmgBMDOaTO3ijx/MI4RnMWrnj1tFsH3UwOKdK+f2u1w=,tag:wpwBKw9QywpmenO7n/aU3A==,type:str]
|
||||||
sops:
|
sops:
|
||||||
shamir_threshold: 1
|
shamir_threshold: 1
|
||||||
kms: []
|
kms: []
|
||||||
|
|
@ -9,129 +9,138 @@ sops:
|
||||||
- recipient: age12ze362pu5mza6ef9akrptr7hfe4auaqul4rkta7kyy2tnrstqensgmujeq
|
- recipient: age12ze362pu5mza6ef9akrptr7hfe4auaqul4rkta7kyy2tnrstqensgmujeq
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAzUVZXTC9rYk5ZbmRGQm8v
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBjbGNzUjVwVTRMM0FDMS9Z
|
||||||
R0tWd1JXZ0c0TG5vWEp3S2Fwbkt2cEp3aHlZCkdDZlZvZ3g4TkNDVmVBYjVRWkZV
|
OVpxNnhNdWRPWlVmeHdLdS9WV1NhQ3dZd1QwCklhWDFqQmFOVk4vbnFBc0FmaTlz
|
||||||
c1Q5VHlxazR0cG9BbWNoMHFJVy93QkUKLS0tIHRnSGxTeDBBZ1JvT1hNVWFOdnlN
|
MzdVOUE1cVpsQThhOWt2Ym1PMUJMNkEKLS0tIE11SzQrdTIraGM4KzVaQXBlVTFt
|
||||||
K1diaEV1clQyaWRJT2lRVjRRMDVWSjQKGd2zknPyvuuzTfXQkIYLYHIXswzGW71f
|
SURWMGdiYUxUbzE3K2ZpdGREY1o4Y28KGZhlU8MX3dnUz8rIqptiIvkffMhNSPd7
|
||||||
MKsiwqm3WtvVtoxRt90XMBGN0R4MyvduI97MO2MughkFelrd4PfnKA==
|
ezB9sFgg0qhzSwMHdD0yUyK3VGxOewUsNd9lurBfCtoS45VYstZyiw==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age176uyyyk7veqnzmm8xzwfhf0u23m6hm02cldlfkldunqe6std0gcq6lg057
|
- recipient: age176uyyyk7veqnzmm8xzwfhf0u23m6hm02cldlfkldunqe6std0gcq6lg057
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArS1dzaVdYYTdEY1VkQjg0
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBLNEdoblEwMjNkYUREeWNw
|
||||||
eVRxMVFQeXRwM0FlVFlZalozaU5laWMxc1NnCnMwN1NaamdUNTZoYXNFbTFiSXlG
|
cWR4cm1WM1p0Z2FXUVVrZFRXODBNeFJaaWg4CmNHRXFuOW5Ya2tna1pWR2RDdndr
|
||||||
Qm9FY1IzbUFTcFF4RlNZMUlNWXl0L2MKLS0tIFB0d2NHUVl3d0pJT3VXZW1pdWMw
|
VFlCbDEvTkxUdG9KOUl6QTZOUWxtdFUKLS0tIG9nU1F2WXBKeisrMm9RY1JxSGtF
|
||||||
NWFGMGdNSEpxTG5GbUl0bUtnUHFuNG8KRD0ZiUyFyk3ZBVrD28wNBSW/ew6HzV8N
|
UEZVbXZVRGk3Y2VRY3JJZ2N3a3VPcUUKbbZ8/MbITP2G9vjGYUr5HLITkU5KmSH4
|
||||||
I5SS+lLZYX0tzrtb/zfa5LfHB0k2OG+s0eOGwecaT5IqZ8+jWnijYA==
|
8nidFf/YepiVRMGe0+SEAMtSus8MBjk22+Gv7Yajh85uXpFp6vFwIg==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age15hmlkd9p5rladsjzpmvrh6u34xvggu9mzdsdxdj3ms43tltxeuhq4g7g9k
|
- recipient: age15hmlkd9p5rladsjzpmvrh6u34xvggu9mzdsdxdj3ms43tltxeuhq4g7g9k
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFS1hzVXdOWC96Zlg3N1hK
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBRSTcyUDNzZWFOU1JpTkNS
|
||||||
UnZLNG1WZk5NMU9ZaytKRCt1WXUvTFgxMGpnCmVQMW5BaXFHa3BnWjliUHh2TTFz
|
NXdKSWl4QlE0MWNXdFR6c2pOM0lwZmtKaFc4CjV5Q3ZPZytwcU52NmlIWE9LbEhW
|
||||||
RjBhREFGY1g2TzRuK2QrWlRUTjRMdFEKLS0tIGNiS285MG5XTFBVWU5CMUcyekNs
|
YUI5MVN0OGgxZ3VHbjNTWVF1RWdGV2MKLS0tIFdRNndWcDVKb3ZPSDFGV2paTlpL
|
||||||
S2Jka3Evd0JCNkVkSXBWZVMwRllQZXcKnVhtEVxTbNb04lYhRWODYUVkaxObl5br
|
aDhlYlA5N09qK1h5RDZqWGFodTBORHMKxhmh2JovuFD8HrNtt1Lv5A4vmHgOmL3O
|
||||||
FMzoYLDv6MKPlSRhVyerIzrKypHcUrONO8ARR0Nyv+mc9zTLGX4sMA==
|
cDgHNyuHEEv4lQwvCt8LBLtgrv5X+TpiOqJAsjy+c91xuuY3S4M8YQ==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age10t6kc5069cyky929vvxk8aznqyxpkx3k5h5rmlyz83xtjmr22ahqe8mzes
|
- recipient: age10t6kc5069cyky929vvxk8aznqyxpkx3k5h5rmlyz83xtjmr22ahqe8mzes
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKUjNaVTRsVFlwckM3Z0tN
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvaTZ1Vng1M3RmbHQybEJt
|
||||||
aVJoNHR4VzgzQ1QvOFZ1WUkvUjJqSGRoV0ZVCjhZeTYwQm0xTUNGTHlUdUk5dkpU
|
U3p1Unpab1R4MENRS2VuNUloRWMxS0dDTW44CjhncjdVbnlxZ2krOUxpMHMvVmNC
|
||||||
RTlCTDhkRnZGR3MzUmtRMXlyMU1Wc3cKLS0tIGVPZXdhQ2NOcmthdXMydVZwNnJh
|
ZzR4K0hMVUJuNnlZMDAzYnIzSzZpTWMKLS0tIEMybFpyQTZ0U3NCN3JyNlJ3citp
|
||||||
alZZSFFUVWp5RUxiRG53VFJaSXR2Q2MK+IjO2ZfS1kzYtQrahbIVzlxFafGHo4eG
|
KzZ4aUFWWS8wdmMxYllFeTJ2OHRkS2cKJMQQbu8J5yon7kQZ6vN2WR62t9zTtcFy
|
||||||
cPknhegc6Ui/VrGjLrNfMpx5SiRAPWSEIRDO8OMt/YGZMTZu7Petng==
|
ZkBjX11DjEcBqP9So54S8nvB850UBdj00fn9YH1YpZzViX4kB5rx8A==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age1a2quf2ekkj94ygu7wgvhrvh44fwn32c0l2cwvgvjh23wst90s54szdsvgr
|
- recipient: age1a2quf2ekkj94ygu7wgvhrvh44fwn32c0l2cwvgvjh23wst90s54szdsvgr
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPT1FsMnI5c3ZSdGwwZlNP
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVVEFrdmhmSUErWXpiYzdO
|
||||||
Ym5vZG5NdFZoVjBTeXlDWGI3WUd0UTFLSG5nCkEwanJQQXhGTyt5aVIySDZJQjVI
|
MkY0ajNjRGdKemZYd2FKK3VoYTROTWovakJjCmpJWVQ3RU1HWG83RjVjSVpiQUFY
|
||||||
Qy9YckM2OEJjbGlGbWJXbjBJWkxHbUEKLS0tIE5hMndHZnlTVkFDYXhuOVY2SXJ0
|
RHhWM2FuMmRWQkQvUWJNa09uaWJzSHcKLS0tIFBsdG9PWXhna0E5YUJGU1VqWGdq
|
||||||
Y2J5S3ByZ2xMTEhxYXZZazFUanhlcFEKggpyYid+PZCimZBsbdejF9HKQ5CvM1yq
|
em4ya09yc21rMERnVFdVQlhGa3B5M2MKI6Ie3H1P9XlLhiVQs+UGthW04mD+nvaN
|
||||||
Gi7ovZc83pfT1m2+4MaKhM6dAyrAUaqBqABHfIvQ4D4trOep/KENFQ==
|
ZBLAW6HB/xTtUbriFgASVVO4EDkPy8b2z/0ZAg5ho1JpBGvpvlHNqA==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age16klpkaut5759dut8mdm3jn0rnp8w6kxyvs9n6ntqrdsayjtd7upqlvw489
|
- recipient: age16klpkaut5759dut8mdm3jn0rnp8w6kxyvs9n6ntqrdsayjtd7upqlvw489
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5ZWhPbER0cEl0YmNXUEov
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSByWU1sZDNubGdjY1JDejRO
|
||||||
aWFOZ0tod1RDaUN0L3g3WTJzNk5LU2NUbEZjCkZCbmNOcXRGaXJ0aEJyMkp2aUxn
|
azhyYXBheFJTbHZXUTlLK1hwc09ZZ2d6VGt3CmFLamlFWDJYSk9SSEhmOTY5bnQ1
|
||||||
aWpFZU83VGNONytvUWpWRUhyMDhxcTgKLS0tIDhORGIwWnpxWlphV1VkejQyQ053
|
K2s4Vm5ETVlLWFFBUEMxVGs1RUk5Z00KLS0tIFREZ05KS0ZaUklmbEpRaWR2N24x
|
||||||
cHlldVlGM3I4MDhuU1hkdGVrTEJtL2MKQgkA+luYybh/cJP5gE0aOzkTTKgZ9tsQ
|
RXA4NUNpNHM5bVhqbVcxMkZsQzNJcjQK4zq96qHkIHf33fq0q2QMwoYfUdZHogc1
|
||||||
ZEjlfLfi3BItgrxebm3WU1fPnKcJYnKs02JhYTnAOIUzrhQOy4N39Q==
|
lztXIDDO8G0Uxz5Dku+Am/Zz99rubpI6FthHZUMF4eyZbpwg2wWkIQ==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age1xg6zm9t25wjakljm54m38pjdr9q53jysdcl82r5xwkrn0cgyuvvsuh63eh
|
- recipient: age1xg6zm9t25wjakljm54m38pjdr9q53jysdcl82r5xwkrn0cgyuvvsuh63eh
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxek04RzliTXRwMHg5WjQ3
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBrTmtQSHlRWng4dTFwakJY
|
||||||
TDJMYzN4VEpNNXFhZndQQmliMXBHYjkwRURJCnVZbWMzSkRhc2JmaEg0ZEptL3M5
|
N0lSZStTRVZyRTNKT2VteFluSE9tYitsS0VNCldUM0xqellKM09yZWVsaTAyeVdY
|
||||||
ZnBkS3hmQzAxd25kNHFZbmpmd0FSclUKLS0tIHJYQUJ0Ull4NzhkUGI3aWRZKzB1
|
KzAyZmhqenBCVUcrTnNIaE0yMFJlQUUKLS0tIENuRFNyMkIzV3NMV3BJTXlEaW1U
|
||||||
VlViSEJWelRyWFgwVFJBYWtGL0JsWGcK3EIGtfCsARPXXcI27pnkWJXKXkFOprNX
|
bFQxbGZMdGZ2dHZzdTNHK0R0NEJDNWMKPAUEo43kE8RG+XZWoqMmmGjQgq0gSUc7
|
||||||
2OkDwh4cCxMRN4H5wnTb2tMgBVyFTQqp/mZtNAcnGLDFMbtlks342g==
|
eVdNwiI7Ep04pBv//MriQHvwv1nrPNwZdgZ56c6uRHYpePKd8ULEMA==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age1ktmx2szedfnpe5xumnzs8vkk0ffqgga6ved3drtksg9pye6ndsnsnqq488
|
- recipient: age1ktmx2szedfnpe5xumnzs8vkk0ffqgga6ved3drtksg9pye6ndsnsnqq488
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwT0MrV0lBVVpyMHZ4QnpZ
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBST2x0UHN1dEczL29veUNr
|
||||||
bmtjblE3b0RoNFJoMHd4UXhGV3FKbTk0UEE0CmxEYWlmWTBLemlVY2NFalJhbTV5
|
ek12cEx2WlIvbFl3Qk4xNktzbU45aHpWY1RrCkNZOHFKQkZiNUs4ZnlPUnppVmtU
|
||||||
aXl2NTNUQ2syK0xxUVpuQnRGZFJIN0EKLS0tIGlibUlqVEQvU2lONzh1YUN4a0dM
|
M3E2UmM0bGY4bExtMUpsOHFLekh3encKLS0tIEcvZTlQZDBQK0hvQjFvL3VxRlh6
|
||||||
UUJPTkwrbFNBRlZYUG5ld1Z2RkJJTlUKNUjZ8WFdSP+b+WXkhro9UU2dKWs+PLk2
|
U0gyMnk3UmdWNWtRYXNBNzF2SDhSUFUKAWkmd5gv81oacLNgyGh7KElTwxSZU6He
|
||||||
2yV5LWu4MRAo/d1xTiGOnhu9DRWWRgnUWbkjU48kKKho80KijOkGuw==
|
XRyg0ep2QnCv0vQz99cArcPYPUNf+SQ08AvU2P2L4BgUfWH4MDajag==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age1fjcafp0j45sz03zq5srnxyq2mujndmn25vceg3wj2cgzymqm73ssmhdgku
|
- recipient: age1fjcafp0j45sz03zq5srnxyq2mujndmn25vceg3wj2cgzymqm73ssmhdgku
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIdVBNK3hIbU8vbTlCOVBp
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGRWJjM1AraGoxSmk3U3h4
|
||||||
U0dxSnp3Tjhmek8xL0hFREdVMThacVR4NGxFCmJ0bm9xNjdBaExNNGRTWTFmVzM5
|
Y2JkczAyQjJGdmpsQlZPVkdUejNFMFR1ZkRrCmFqSFl2K3RYYVVNUm9wdjZlVXpx
|
||||||
Nk45SjB1NnRQMmwycXN3S29PVThSYk0KLS0tIExuRFFSVFRXUmNNbXJZTmd1UzJn
|
a0JwY2N2VG0zc0ZyckNucG5TUlk4VzQKLS0tIHc4cWRKRjIxSldVRjB2K1VxWXBF
|
||||||
Z0VmM0Z1a1FSa3dua3VNQjBYUjJtbFkKy/vlhW2Znr9Ot42O4+K17/rOLMBSW8BP
|
V2I2VUgvUVY1TUFIT2VOVWtHMmZEUWcKe4KH8lgrCR0mQoFYEJ5OzoOaRWwjn48P
|
||||||
Q+5Ghy82bLOq5Ue+BRzFE7ScKx3WPf7xb4RPm55d+p+YtNawjI9V6A==
|
JSSItlFUKirK1eHGohM1NAoKw5yqZSdRd1aGnBzMfpD9xWcWPTqQ3Q==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
- recipient: age1ehdj6hghtr8sf5s5c03rru4y3a02nwrt694e36tjnd6g7eq4l43qfradn6
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5czNDREZXUmJSN3lGam1Y
|
||||||
|
SnZVMk1FcnNobTE3SVBYc0k4OTNSK1B6L0ZzCms2NGl3SUtRTGJ0RjIwbzF3UDJv
|
||||||
|
OW1FUDA3NHo0TjE4NW5qQWFDZGlFdjgKLS0tIHNDNUtuZlBUbXVPenIrNkJkbTRF
|
||||||
|
cjE0NVJObmx0ekYrS2o0amVNSkpEZDgKkg+5bC7dK4kzrUVPq/c7O6dSmnObI+Sf
|
||||||
|
KOIQPdnUrCuEbnwZCfcFOfdKwtvJBeCTVTD2iqGb8uowVTPP8zZ9GQ==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age1tkkau8vk5h9dh3kemash4eghn7lk84j0hhpmvvf7j6phgcsm9vmsphv0py
|
- recipient: age1tkkau8vk5h9dh3kemash4eghn7lk84j0hhpmvvf7j6phgcsm9vmsphv0py
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVUzZaU0dTYWI4K3N1dkZL
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFQURRYVRjVTF5WGtTcUN1
|
||||||
MVNlZ2l4RC9iVmxJVGIrMEZqaHd5ckVkTW5jClYrZTVNRlhJY3RlZEJkeWFiMlI0
|
c2d0RTFKcjNCMnUwbEJyczd5V0hJZm1HMm5FCkRQN2NaQU1KeU1wY3BmMzBrMzUw
|
||||||
Q0p1aUZ3b21BTlFxeW5FbzB5VFpDRTQKLS0tIDlYbk40cSs3ajNwTmo4NWFMU0RJ
|
c29aS0FmNVc0MCtWc3BCc1BkdzhuK1UKLS0tIEExclI1aGhwMkNXaVIyd3hESmFi
|
||||||
SWN5cmorVHJQZDNHR0JKOVF1L2VORW8KUhNWa5qw58J4L/KCOwyRfpWnGvXr/hAX
|
MEFQZjlHVUswNS8vYklZVVBYTk4zQkEKJ1SnPv8Gg+ZX2ql9U6ScqQSq5IeQleM1
|
||||||
t0iznS4MTEB7pmzK/At6xMZsviRQHI8F9qX2tI2IyPB9OX0c4NGJnw==
|
wZZp+dHrAFR32eKdqvZJUtQoAGSJTG+J7YZpNeM51umnRXFQnVdpWg==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
lastmodified: "2024-08-09T00:17:14Z"
|
lastmodified: "2024-09-07T20:15:53Z"
|
||||||
mac: ENC[AES256_GCM,data:OtmPXZ0eSRId6oSEJ3UedRUJe8eLyC3q2dfl7MVumOuzq0zn4c2JqrbDibUCtdo/WOpZ0YUlkVx3rbrrJP0Jr+YCpfNN9kWnPbPoxYD9thAFHnbg8t1E5ytNhn6gqxXNksDU80hvldU1hcj0em7DXrPg4zOHbuEOF7Efb/xn5dU=,iv:astzy2U77KwlU7Y5HF1NH5kIgOVZiNfTVC9MHVaOWKQ=,tag:fHgvwo79shfeqAftILNgfA==,type:str]
|
mac: ENC[AES256_GCM,data:LCuL2yrqeO+SIG8YxAouSH8iGAEO4HDtOBjeUsgqF6vkU7rYlrhjP8c9zmyrHgwkdoWE54oGTzr0GZD94wdHLdjr8fKITOxYjnql3Nx4MB7qNOcHzJx0IVXm2Io8lgP0qrJvd3SMk7Jskjl+NeDCBK3WE/nO5cf96xIw5219R18=,iv:aNin/EgT/X+4cfGlQWEeu4yIc0NXXJK0pDmc1tZa07E=,tag:BHhRPO7NKtA3mW/fIHlGVw==,type:str]
|
||||||
pgp:
|
pgp:
|
||||||
- created_at: "2024-09-02T04:45:38Z"
|
- created_at: "2024-09-07T20:53:05Z"
|
||||||
enc: |-
|
enc: |-
|
||||||
-----BEGIN PGP MESSAGE-----
|
-----BEGIN PGP MESSAGE-----
|
||||||
|
|
||||||
hQIMA82M54yws73UAQ/9E5a5u+mLqz/UoYg7hbQLkZQpB/Qr+VJG/kMvoGeuHJcF
|
hQIMA82M54yws73UAQ/7BTY6UWQ8eTe4ThkDGksU/Hg4hNxFnb1ccJs7q51c+PjR
|
||||||
0J4iS3AXQDT6vEeXkVTF2nje7fRA6g57/3zhI0nOAblKN9PLMdRrTgiUPeTjw/SK
|
vUKggEP0OnnCg4PfC3O7UF+r8FAHx9WDVaZHePTa53niFPo9lVyNR34WtSgGspZp
|
||||||
j7O6FDTJjF8WuGoXD5emQHyghsNTPalOUeoxv8Aw2nCUunt8z2cXYtoZX01L4J26
|
R71NRUSuJIsqRmbxIANt8Gxaq7aUK0pW+r4D4bSulCKOClj1c+s+PjZkBOXD2YHK
|
||||||
4LE+r4MSwmWbXGY9BcUlX0Vge+ERhOCpHlyMpA6b5/WBllr6y0f48hR8rwoAAQRA
|
5HAv0tMO/gvqkZYDjK++YTYyijj5aGUWHlzKy/pZ7CbOde/qnXQQsf3ndB221DSx
|
||||||
u++ypg0xD8dhgiWh9Ey+cu5tcBYtn/vUDd5jSSZnl30iqnMULMlqWnBn7AfcnwF4
|
GZKO5/UBPIbFb30+GeSpAJ4vCs/Lul21uVrtJoP8Oc63XyTUearmG93Xe9vTxwPI
|
||||||
LwDKP/3E6+NkLHzs6Asl+aVHy11NNeTQ6QhmbqIfhw/17ogKGcFjll9zDeslzUi0
|
85xJ+2Fzaq4Z0fhW3QB4YMdJ7VoTzROCTPg07WivyUbYlSvB93nay1lHlMwnZ+aj
|
||||||
IzV5JE1ClMuneI97Ihz8t4UH7vtuq2EEymDWgpsK3pnItqYUVwEqRqlE8xbw/ZHD
|
tT+F7LcWCfBfUU0qV9JMjaSHmg/OyVmENFXCgnLDDyKr0daWF0P2YxYKWAII+mCL
|
||||||
LLlv1yU9dVD057Ue+4lJSmJU0vGnykOVuKEptWlsI32GD86w/aripW1sMhPurIml
|
26D7eBrJXvg5PkI1dkaPg71ek7tRQbx+lJIRkuQxS3/zHOhnvjEIvtjJtWZp+See
|
||||||
/5YiOzDQR6K9VvvtNnFuu+KwLFjagHuO2msgyLZprEEr9BBvZnJGVRYmoWdRNRwt
|
hrVcfDXsf/+ojO5HmD0pjtihGdxTmTX2p83exwBCe+V6lp/JNFUQII9eVy5XTGvP
|
||||||
WdKw4F4TWpcxcPcI1Q/go27gJsSKK+bwsz11LEYPTBd8JCUf4Ls0roqoo5yRJZcW
|
Y9d3J6kD+J1u978w2TL9kVQgjxKDzhJAfpLuVot83vhkrt5RWX8CiDqysjWK02hI
|
||||||
3TmFNU7ca5zHlGXpvyG68DUZhSf1a0m823FaSl/Quqnr13SgvoV0gQJ0Ow+QCPrS
|
hFLe43BjH08K7ErtuGMogMcRl4WRoR3/wqJ/ykVVZpEWyCUZzEAFEy2OK2ciWwjS
|
||||||
XgFliP3nlV+FANVVfeZZoL9YXMFVxnZgci2Rg6xtkbd0AFBqjuuEgufSCYLQdx4i
|
XgHSp8tXBOuzA5k+Ebmpl2oJnIzvYLAFab+yoMKo+iActYtxWOD5m4fQ3Z56qIeY
|
||||||
cdJXJzEqgDGjrsnkSqCzcfVPaU2SQvmdvhnfL8zgG8M7lYASOERpD48Q51vUWu4=
|
Xyqgnd8rfVjNTAeaK1guhOB9LfWKpAJKVLrvvaELxdkMtaiosPACLwYp+cgnt20=
|
||||||
=DTsn
|
=DiuG
|
||||||
-----END PGP MESSAGE-----
|
-----END PGP MESSAGE-----
|
||||||
fp: CD8CE78CB0B3BDD4
|
fp: CD8CE78CB0B3BDD4
|
||||||
- created_at: "2024-09-02T04:45:38Z"
|
- created_at: "2024-09-07T20:53:05Z"
|
||||||
enc: |-
|
enc: |-
|
||||||
-----BEGIN PGP MESSAGE-----
|
-----BEGIN PGP MESSAGE-----
|
||||||
|
|
||||||
hQEMA2W9MER3HLb7AQgAnFvG/F/G2RPwrZE1QRGs30Hs0FyfgqvmPILziLFZdveG
|
hQEMA2W9MER3HLb7AQf8CoAmcWtfAjiDG8aIeWq+rT3qcfWfDkzPF/0p/yrLTL6T
|
||||||
unCz//6qxMgPoMSrrBRLTcSGVjqgBAcSJ2tU78Xe2jUnOArfxY/a19BDzBttJBy0
|
w07hk8gRKOjgN6IDPlIuuzWTSkXjsPKHkSQLgSlIUA5pc29O23gPAkHtYz5fYWKo
|
||||||
RARCAfjOkYfMVkFhT5jsd36i9dFG5EQWRXkPkjo9pOK36BvE6J25Z3o0X+3TNHXp
|
LMQdl0B/5mnCnPjCpnr2O1eyxUdOkaa8QMlASOPUDKRrOE68U7J2KT8naJ3pmHF+
|
||||||
rs4/xoJmAlgQHj2vmRlQeiDDZ7g42pjbQ2hZtBBaHYiHThCQmG7FKpSqF+va1QhF
|
gs69oxnfviJTYeFl7VKemTXsvgSPQpy6K5fSvlQ0ShSqXWqPI2VxGJNhI/j/z6Xi
|
||||||
csj+IsV4nJ5ivG7PyPI5STQL8SEfZZJ8mgkficcuwZqGv/2mzif9vRXrWvmg6et1
|
5xIHpC7rKHbXbXKE/wrNIPGLcSihnO3sZ74s4DPfBrMna3cYE2g7mhpp916I2BZt
|
||||||
nbCjrwwB8pMZdQkc6EzCYdyGk/iEu1pjEkrZ4ySPvtJeAYBZIltIfD1k5RuCQ+zx
|
I0+cuG5IObYI7HTunSMeyTFzzpVQ4xCx77XTSgE6itJeAbDB0u1LhgfQHHn67cLR
|
||||||
xOAB0jq70Mx7KrGMkaIK+wOBr2NFO86DRotBNd2vHNIWytkkp9mueNqfub7RtsLQ
|
/yXcwbrzhoL680STc/wmruqfebolrjOH2MHKlPpLMxax57L2rCWDWGdUrgBGZmxo
|
||||||
gl0DtSKutPU3ZKMPRQwW4B55nWxmLPz3MZrLTzUPfg==
|
uHl3gcvg4Utv3gmBlLHemtDRW+h+xn6oSVIH3ce8BA==
|
||||||
=iCOa
|
=Jd6c
|
||||||
-----END PGP MESSAGE-----
|
-----END PGP MESSAGE-----
|
||||||
fp: 65BD3044771CB6FB
|
fp: 65BD3044771CB6FB
|
||||||
unencrypted_suffix: _unencrypted
|
unencrypted_suffix: _unencrypted
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,6 @@ _: {
|
||||||
enable = true;
|
enable = true;
|
||||||
ports.stream.port = 41081;
|
ports.stream.port = 41081;
|
||||||
};
|
};
|
||||||
moonraker.enable = true;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
network.networks = {
|
network.networks = {
|
||||||
|
|
|
||||||
|
|
@ -16,9 +16,7 @@ in {
|
||||||
nixos.barcodebuddy-scanner
|
nixos.barcodebuddy-scanner
|
||||||
nixos.motion
|
nixos.motion
|
||||||
nixos.cameras.kitchen
|
nixos.cameras.kitchen
|
||||||
nixos.cameras.printer
|
|
||||||
nixos.cameras.logistics-webcam
|
nixos.cameras.logistics-webcam
|
||||||
nixos.klipper
|
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
@ -63,7 +61,7 @@ in {
|
||||||
description = "Logistics";
|
description = "Logistics";
|
||||||
extraGroups = [
|
extraGroups = [
|
||||||
"nixbuilder"
|
"nixbuilder"
|
||||||
(mkIf (!config.services.octoprint.enable && !!config.services.klipper.enable) "dialout")
|
(mkIf (!config.services.octoprint.enable && !config.services.klipper.enable) "dialout")
|
||||||
(mkIf config.networking.networkmanager.enable "networkmanager")
|
(mkIf config.networking.networkmanager.enable "networkmanager")
|
||||||
];
|
];
|
||||||
hashedPasswordFile = config.sops.secrets.logistics-user-password.path;
|
hashedPasswordFile = config.sops.secrets.logistics-user-password.path;
|
||||||
|
|
|
||||||
|
|
@ -5,9 +5,6 @@ _: {
|
||||||
modules = [
|
modules = [
|
||||||
./nixos.nix
|
./nixos.nix
|
||||||
];
|
];
|
||||||
deploy = {
|
|
||||||
hostname = "10.1.1.50";
|
|
||||||
};
|
|
||||||
network.networks = {
|
network.networks = {
|
||||||
tail = {
|
tail = {
|
||||||
address4 = "100.106.9.75";
|
address4 = "100.106.9.75";
|
||||||
|
|
@ -21,6 +18,11 @@ _: {
|
||||||
exports = {
|
exports = {
|
||||||
services = {
|
services = {
|
||||||
tailscale.enable = true;
|
tailscale.enable = true;
|
||||||
|
motion = {
|
||||||
|
enable = true;
|
||||||
|
id = "printercam";
|
||||||
|
};
|
||||||
|
moonraker.enable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,9 @@
|
||||||
nixos.base
|
nixos.base
|
||||||
nixos.sops
|
nixos.sops
|
||||||
nixos.tailscale
|
nixos.tailscale
|
||||||
|
nixos.klipper
|
||||||
|
nixos.motion
|
||||||
|
nixos.cameras.printer
|
||||||
];
|
];
|
||||||
boot.loader = {
|
boot.loader = {
|
||||||
grub.enable = false;
|
grub.enable = false;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue