Compare commits
No commits in common. "ba096569096cc72fa80742c606be8d9fd5c97861" and "fa59ebd06a0009ece032e293348c68b63bf6542b" have entirely different histories.
ba09656909
...
fa59ebd06a
23 changed files with 213 additions and 205 deletions
|
|
@ -1,8 +1,13 @@
|
||||||
{ ... }: {
|
{ ... }: {
|
||||||
imports = [
|
imports = [
|
||||||
./hardware.nix
|
./hardware.nix
|
||||||
|
./disko.nix
|
||||||
./nvr.nix
|
./nvr.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
networking.hostName = "kameramann";
|
networking.hostName = "kameramann";
|
||||||
|
|
||||||
|
networking.interfaces.ens18.useDHCP = true;
|
||||||
|
|
||||||
|
swapDevices = [{ device = "/swapfile"; size = 4096; }];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
35
hosts/kameramann/disko.nix
Normal file
35
hosts/kameramann/disko.nix
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
{ ... }: {
|
||||||
|
disko.devices = {
|
||||||
|
disk = {
|
||||||
|
main = {
|
||||||
|
type = "disk";
|
||||||
|
# Proxmox VirtIO SCSI (scsi0) → /dev/sda
|
||||||
|
# Proxmox VirtIO Block (virtio0) → /dev/vda
|
||||||
|
device = "/dev/sda";
|
||||||
|
content = {
|
||||||
|
type = "gpt";
|
||||||
|
partitions = {
|
||||||
|
ESP = {
|
||||||
|
size = "512M";
|
||||||
|
type = "EF00";
|
||||||
|
content = {
|
||||||
|
type = "filesystem";
|
||||||
|
format = "vfat";
|
||||||
|
mountpoint = "/boot";
|
||||||
|
mountOptions = [ "umask=0077" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
root = {
|
||||||
|
size = "100%";
|
||||||
|
content = {
|
||||||
|
type = "filesystem";
|
||||||
|
format = "ext4";
|
||||||
|
mountpoint = "/";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,21 +1,16 @@
|
||||||
{ lib, modulesPath, pkgs, ... }:
|
{ pkgs, ... }: {
|
||||||
{
|
services.qemuGuest.enable = true;
|
||||||
imports = [ (modulesPath + "/virtualisation/proxmox-lxc.nix") ];
|
boot.loader = {
|
||||||
|
systemd-boot.enable = true;
|
||||||
nix.settings.sandbox = false;
|
efi.canTouchEfiVariables = true;
|
||||||
|
|
||||||
proxmoxLXC = {
|
|
||||||
manageNetwork = false;
|
|
||||||
privileged = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
services.fstrim.enable = false;
|
|
||||||
|
|
||||||
services.openssh.settings = {
|
|
||||||
PermitRootLogin = lib.mkForce "yes";
|
|
||||||
PasswordAuthentication = true;
|
|
||||||
PermitEmptyPasswords = "yes";
|
|
||||||
};
|
};
|
||||||
|
boot.initrd.availableKernelModules = [
|
||||||
|
"virtio_pci"
|
||||||
|
"virtio_scsi" # use "virtio_blk" instead if disk is /dev/vda
|
||||||
|
"ahci"
|
||||||
|
"sd_mod"
|
||||||
|
"i915"
|
||||||
|
];
|
||||||
|
|
||||||
environment.systemPackages = [ pkgs.intel-gpu-tools pkgs.libva-utils ];
|
environment.systemPackages = [ pkgs.intel-gpu-tools pkgs.libva-utils ];
|
||||||
|
|
||||||
|
|
@ -24,5 +19,4 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
extraPackages = [ pkgs.intel-media-driver pkgs.intel-compute-runtime ];
|
extraPackages = [ pkgs.intel-media-driver pkgs.intel-compute-runtime ];
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, ... }:
|
||||||
let
|
let
|
||||||
cameras = {
|
cameras = {
|
||||||
"ulfried" = {
|
"ulfried" = {
|
||||||
|
|
@ -14,7 +14,7 @@ let
|
||||||
"gnisbert" = { };
|
"gnisbert" = { };
|
||||||
"taubis" = {
|
"taubis" = {
|
||||||
frigate = {
|
frigate = {
|
||||||
detect.enabled = false;
|
detect.enabled = true;
|
||||||
record = {
|
record = {
|
||||||
enabled = true;
|
enabled = true;
|
||||||
continuous.days = 1;
|
continuous.days = 1;
|
||||||
|
|
@ -35,7 +35,8 @@ let
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
varName = name: "FRIGATE_" + lib.toUpper (lib.replaceStrings [ "-" ] [ "_" ] name);
|
# Uppercase camera name for use as systemd credential / env var name
|
||||||
|
varName = name: lib.toUpper (lib.replaceStrings [ "-" ] [ "_" ] name);
|
||||||
|
|
||||||
go2rtcCameraStreams =
|
go2rtcCameraStreams =
|
||||||
name: cam:
|
name: cam:
|
||||||
|
|
@ -44,11 +45,11 @@ let
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
"${name}" = [
|
"${name}" = [
|
||||||
"{${varName name}_URL}"
|
"\${${varName name}_URL}"
|
||||||
"ffmpeg:${name}#audio=opus#audio=aac${video}"
|
"ffmpeg:${name}#audio=opus#audio=aac${video}"
|
||||||
];
|
];
|
||||||
"${name}_sub" = [
|
"${name}_sub" = [
|
||||||
"{${varName name}_SUB_URL}"
|
"\${${varName name}_SUB_URL}"
|
||||||
"ffmpeg:${name}_sub#audio=opus#audio=aac${video}"
|
"ffmpeg:${name}_sub#audio=opus#audio=aac${video}"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
@ -61,21 +62,51 @@ let
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
path = "rtsp://127.0.0.1:8554/${name}_sub?timeout=30";
|
path = "rtsp://127.0.0.1:8554/${name}_sub?timeout=30";
|
||||||
input_args = "preset-rtsp-restream";
|
input_args = "preset-rtsp-generic";
|
||||||
roles = [ "detect" "audio" ];
|
roles = [
|
||||||
|
"detect"
|
||||||
|
"audio"
|
||||||
|
];
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
# Only cameras with a frigate key get a frigate camera entry
|
||||||
frigCameras = lib.filterAttrs (_: cam: cam ? frigate) cameras;
|
frigCameras = lib.filterAttrs (_: cam: cam ? frigate) cameras;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
age.secrets = lib.mkMerge (
|
||||||
|
lib.mapAttrsToList (name: _: {
|
||||||
|
"camera-${name}-url".file = ../../secrets/camera-${name}-url.age;
|
||||||
|
"camera-${name}-sub-url".file = ../../secrets/camera-${name}-sub-url.age;
|
||||||
|
}) cameras
|
||||||
|
);
|
||||||
|
|
||||||
frigateConfig = {
|
systemd.services.go2rtc.serviceConfig.LoadCredential = lib.concatMap (name: [
|
||||||
auth.enabled = false;
|
"${varName name}_URL:${config.age.secrets."camera-${name}-url".path}"
|
||||||
proxy.default_role = "admin";
|
"${varName name}_SUB_URL:${config.age.secrets."camera-${name}-sub-url".path}"
|
||||||
go2rtc = {
|
]) (lib.attrNames cameras);
|
||||||
|
|
||||||
|
services.go2rtc = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
rtsp.listen = ":8554";
|
rtsp.listen = ":8554";
|
||||||
webrtc.listen = ":8555";
|
webrtc.listen = ":8555";
|
||||||
streams = lib.foldl' lib.mergeAttrs { } (lib.mapAttrsToList go2rtcCameraStreams cameras);
|
streams = lib.foldl' lib.mergeAttrs { } (lib.mapAttrsToList go2rtcCameraStreams cameras);
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.frigate = {
|
||||||
|
enable = true;
|
||||||
|
vaapiDriver = "iHD";
|
||||||
|
hostname = "kameramann.lan.baubs.net";
|
||||||
|
settings = {
|
||||||
|
auth.enabled = false;
|
||||||
|
go2rtc.streams = lib.foldl' lib.mergeAttrs { } (
|
||||||
|
lib.mapAttrsToList (name: _: {
|
||||||
|
"${name}" = [ ];
|
||||||
|
"${name}_sub" = [ ];
|
||||||
|
}) cameras
|
||||||
|
);
|
||||||
mqtt = {
|
mqtt = {
|
||||||
enabled = true;
|
enabled = true;
|
||||||
host = "192.168.178.33";
|
host = "192.168.178.33";
|
||||||
|
|
@ -93,89 +124,29 @@ let
|
||||||
height = 320;
|
height = 320;
|
||||||
input_tensor = "nchw";
|
input_tensor = "nchw";
|
||||||
input_dtype = "float";
|
input_dtype = "float";
|
||||||
path = "/config/model_cache/yolov9-t-320.onnx";
|
path = "${./models/yolov9-t-320.onnx}";
|
||||||
labelmap_path = "/labelmap/coco-80.txt";
|
labelmap_path = "${./models/coco-80.txt}";
|
||||||
};
|
};
|
||||||
detect.enabled = true;
|
detect.enabled = true;
|
||||||
snapshots.enabled = true;
|
objects.track = [
|
||||||
semantic_search = { enabled = false; model_size = "small"; };
|
"person"
|
||||||
face_recognition = { enabled = true; model_size = "large"; };
|
"bird"
|
||||||
lpr.enabled = false;
|
"car"
|
||||||
objects.track = [ "person" "bird" "car" ];
|
];
|
||||||
telemetry.stats.intel_gpu_device = "sys:/sys/devices/pci0000:00/0000:00:02.0";
|
telemetry.stats.intel_gpu_device = "sys:/sys/devices/pci0000:00/0000:00:02.0";
|
||||||
classification.bird.enabled = true;
|
classification.bird.enabled = true;
|
||||||
cameras = lib.mapAttrs (
|
cameras = lib.mapAttrs (
|
||||||
name: cam: cam.frigate // { ffmpeg.inputs = frigateInputs name; }
|
name: cam: cam.frigate // { ffmpeg.inputs = frigateInputs name; }
|
||||||
) frigCameras;
|
) frigCameras;
|
||||||
};
|
};
|
||||||
|
|
||||||
configFile = (pkgs.formats.yaml { }).generate "frigate-config.yml" frigateConfig;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
age.secrets = lib.mkMerge (
|
|
||||||
lib.mapAttrsToList (name: _: {
|
|
||||||
"camera-${name}-url".file = ../../secrets/camera-${name}-url.age;
|
|
||||||
"camera-${name}-sub-url".file = ../../secrets/camera-${name}-sub-url.age;
|
|
||||||
}) cameras
|
|
||||||
);
|
|
||||||
|
|
||||||
# Assemble env file from individual agenix secrets for the container
|
|
||||||
systemd.services.frigate-env = {
|
|
||||||
description = "Generate Frigate environment file from secrets";
|
|
||||||
before = [ "podman-frigate.service" ];
|
|
||||||
requiredBy = [ "podman-frigate.service" ];
|
|
||||||
serviceConfig = {
|
|
||||||
Type = "oneshot";
|
|
||||||
RemainAfterExit = true;
|
|
||||||
};
|
|
||||||
script = ''
|
|
||||||
umask 077
|
|
||||||
{
|
|
||||||
${lib.concatMapStringsSep "\n" (name: ''
|
|
||||||
printf '%s=%s\n' "${varName name}_URL" "$(cat ${config.age.secrets."camera-${name}-url".path})"
|
|
||||||
printf '%s=%s\n' "${varName name}_SUB_URL" "$(cat ${config.age.secrets."camera-${name}-sub-url".path})"
|
|
||||||
'') (lib.attrNames cameras)}
|
|
||||||
} > /run/frigate-env
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.tmpfiles.rules = [
|
networking.firewall.allowedTCPPorts = [
|
||||||
"d /var/lib/frigate 0755 root root -"
|
5000
|
||||||
"d /var/lib/frigate-media 0755 root root -"
|
1984
|
||||||
|
80
|
||||||
|
8555
|
||||||
|
8554
|
||||||
];
|
];
|
||||||
|
|
||||||
virtualisation.podman.enable = true;
|
|
||||||
virtualisation.oci-containers = {
|
|
||||||
backend = "podman";
|
|
||||||
containers.frigate = {
|
|
||||||
image = "ghcr.io/blakeblackshear/frigate:stable";
|
|
||||||
autoStart = true;
|
|
||||||
volumes = [
|
|
||||||
"/var/lib/frigate:/config"
|
|
||||||
"${configFile}:/config/config.yml:ro"
|
|
||||||
"${./models/yolov9-t-320.onnx}:/config/model_cache/yolov9-t-320.onnx:ro"
|
|
||||||
"${./models/coco-80.txt}:/labelmap/coco-80.txt:ro"
|
|
||||||
"/var/lib/frigate-media:/media/frigate"
|
|
||||||
];
|
|
||||||
environment.LIBVA_DRIVER_NAME = "iHD";
|
|
||||||
environmentFiles = [ /run/frigate-env ];
|
|
||||||
ports = [
|
|
||||||
"5000:5000"
|
|
||||||
#"8971:8971"
|
|
||||||
"1984:1984"
|
|
||||||
"8554:8554"
|
|
||||||
"8555:8555/tcp"
|
|
||||||
"8555:8555/udp"
|
|
||||||
];
|
|
||||||
extraOptions = [
|
|
||||||
"--shm-size=512m"
|
|
||||||
"--mount=type=tmpfs,target=/tmp/cache,tmpfs-size=1000000000"
|
|
||||||
"--device=/dev/dri/renderD128:/dev/dri/renderD128"
|
|
||||||
"--cap-add=CAP_PERFMON"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
networking.firewall.allowedTCPPorts = [ 5000 1984 8554 8555 ];
|
|
||||||
networking.firewall.allowedUDPPorts = [ 8555 8554 ];
|
networking.firewall.allowedUDPPorts = [ 8555 8554 ];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 hC2TMg 4we8pxrWxgojBXIk1RQvhRZxUI3Upsn0ZlcFr811HEk
|
-> ssh-ed25519 hC2TMg K23laRBk9Jvf6Uo9ofAk2gCPp7EppKPVnomDWE+mJ2s
|
||||||
U31oa9jVcRrTDEIF5hTTfv2XI6MJKG6gr3cB+eZ7x+c
|
Z6r7vtDMPx0hSXxqOwQHwHeQzE/97hhy+KPBRUmkloQ
|
||||||
-> ssh-ed25519 9AVdVQ eOcDDEQiH5AkOMwyWMRED1EkxnohA6EwP08W5nGL32Y
|
-> ssh-ed25519 psfYGg 5jNbtluxAGBo2H2k2zoRUjbtAxvDvtm8i9UNNTNAuB8
|
||||||
iztcFRHNRJctdDHVFKPPXQQBfujHVao7pOi/DQQAurY
|
d2z/qob65J5AVhxDt35fn05+pkeNHDrIEfzCV8uGvwA
|
||||||
--- G2s01Plk3CY5Mg4lhvcePN38IsGV9pdmxsjZ3xjJFIo
|
--- EOpZwlsfsISDz9J/4735DF21LMMiLmIc4sE7F3wAlHI
|
||||||
õ6%Ô{—TIfQ½¯g´µ•)n”]ß á¹_NŸ] ‰V…–´õØ?±CÜxÅú©•½„èÈ’„cV¤û˜Û° [SÍ4 ÒÌÛ£O’/Ñ=÷ù¸l@*{ù« YÅóËy~¿
|
^Æ{e€NÂüÞ¨šŒ§Ï,ö´§3áe‚)¼ý:]@Ù×"´<>ÔÀ€ß7¢»O
3©ôjÂØ#Yq£i£ÝY„ÜâQç)k^;Ï<}èƒ6ñdÚC$×ÍfqPy_V…»:3þ©
|
||||||
Binary file not shown.
Binary file not shown.
|
|
@ -1,7 +1,8 @@
|
||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 hC2TMg gfYjuxvb3pgh8BFaPuugCTC4X+jH4iuaTn/tlySHFgY
|
-> ssh-ed25519 hC2TMg h329e0tkuyIHY1qDoj+bL6Bb1rXQ/xfIzIdMZ1QwSlI
|
||||||
Gk8VkjCKdKzlODmrCHqFodNQ8jVsGzZbtru5maH0ZwA
|
twGdpKH4ZbOtvBSE6VmhYgBd77ALBoaubHQFPq2/MIQ
|
||||||
-> ssh-ed25519 9AVdVQ 5hgDLYchlEFlxmyHoNuW65sMzJudRR9Z+u00NWKA93Q
|
-> ssh-ed25519 psfYGg +U9wzhqrx7eoIrYU3gdQE4Cj+cjwmgiI+SyoDnB6ZVc
|
||||||
lhWMffnVKfCkbl0Tnx4vhI4CF1B1FygWr+9ThyAHoGI
|
Y03vO9kY8tBT/ijFL1R7xICkF2a0OwYnrQu5R8xpPMw
|
||||||
--- l1LP2r07DQckiBHRkfoPiOienDa/rC0PlORm+fZt++U
|
--- b+Ans7uEkZZoigbu3h9tW+lH9qpLAfrtnjUHq/GfeiI
|
||||||
“cͬóÍÆÇá<àšUKÿäøPB²Óuž—:ËâæîIЪ‹ÿvÿ¬lÈsh<19>¯<EFBFBD>©ƒÜ<C692>Hn¯Ô0JÖ‘w™ÌPšðw9ªƒbÊUôH'dÐtéLEÝÉtHû›€
|
¬“ÄšõÊuê«ÓçéNcB:<3A>ÙŒg\²§y£zªsÃXjònC<6E>úR«H¦VýÌ5
ícv„Ôrê’]ØŸ³No·Eµ<45>ÁvñÆ^uLä8È•G(Älo
|
||||||
|
Ü
|
||||||
Binary file not shown.
Binary file not shown.
|
|
@ -1,8 +1,9 @@
|
||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 hC2TMg tOGEXhEGm6d+oLDrey7d/9MBz95xXZopqA/pL05wKy0
|
-> ssh-ed25519 hC2TMg hQ9We+2gIJfdmnP5iTiQVt0Lz5tXJpjgQnyI5eEnHGY
|
||||||
S4Zk53Zwg2XYrA/zqX0lmK5ABtKNp/IiVKZjStxisWQ
|
rffB6DKI01Rwc4WchxN8uSYofaiWufAy6OLXwaeAdCk
|
||||||
-> ssh-ed25519 9AVdVQ Z07v6yFGdfiKhiUgbAZVscKcfGajzQAWt10QeqJAI1g
|
-> ssh-ed25519 psfYGg 6TJ5VeXmU/W7LuIS+6ud/V0LpiUm+xwQJppQSHX+NnM
|
||||||
pGFJYdj0CUIn/wmvhVpgvaC5hyKOBiLwrZKrdnJJlog
|
8p+BkvGGIcXe8jytEcr8+rfE1r9I/gg9Kur8yRYssRk
|
||||||
--- 1QAqRe6ae2KhtqRBA8dBU2Ig9GgUDAMUHJoYylGLWBc
|
--- m1eFeYo8bI107h4muwA4TgHaLrdNiuw2YpKOuyU8wNs
|
||||||
ïªæ-ñšÐÖ
|
öÜC4™Ñv8aµªÍß«Íà[ë¼ö@5\\öi!†ÉÁÚGÕ²
|
||||||
E|4
,|¡ÐZ¥S—âcüDªÎ[ ‚rEÅl*DÜ÷ ¹5·æ}“Ú{쨜ZëF_ZÓ^° ®Ê†Á ÝlÆb¯8Dë’Ÿ9˜5ïã(Ü?Ø
|
º-Iý;uB¡ ti€ âd0¨>ެæàÂò‹uôýlù,óŽ<C3B3>Æü¡‚w:J¶Ž
|
||||||
|
èD~ÎÈÕB~<7E>Á
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 hC2TMg DRZaz0y4F+Ot/JZGksYvvqkJZGXhfe4dqQA6OZkiPCc
|
-> ssh-ed25519 hC2TMg kiwLTnSCnEbIWlw2j1SZ7aAQsqFipJDqJCBCyHT5p1g
|
||||||
lrZuE4SCJ9eKV+HgApUJvbxrfwL0jnzVnzMWzbOIg8I
|
eI3p6oADMssBAIndqjmSXbeJROtBHETfF8W3IvFRg/c
|
||||||
-> ssh-ed25519 9AVdVQ maHML3K/9CulRq+K0DITSzhLt/eBbPs2rfxqOaefx1w
|
-> ssh-ed25519 psfYGg B7cdkEzmyrkeM7cTnoC8SjTaV1pWuAXOXiGYSJH9gxI
|
||||||
Cubrab4WCDp/MgyKjKEdLAGEqi507wDI450GxWN0KBw
|
kFeERXxWDyOjhN+jNGOXWy3m6WY+S5+s20hzgrF5qkI
|
||||||
--- 45uDj8rqOmpyduRV2GKL/stOf9teh604Mo9ZS/rcqI8
|
--- FPWKykTSfx4XH7tsnhREG0HC9NcgCXJjt77TQ3Sdxk0
|
||||||
‡# ÃìOF’Ô¯f=åóOUÚºÎeõ†mÒÑZeìà ‡ ~J´£Ý³Et×às;„a'£zœ¹¢
|
Qď÷ţ-®ľľ´č ň‘yŕ6«M]”Ő|±ÓIpľ2˛_“w†îBŁ|Ň©y–i/áuzwWđËýfŃDkY»8602ş:ĐBµľý7e…A”FAď
|
||||||
ÕÒÁ‡uy¨N1ægøª;(Ö7ÍÎcôK‰Ÿ–ߨ;bã
|
ě˝đ)9ĘőŹôöô
|
||||||
|
|
@ -3,7 +3,7 @@ let
|
||||||
users = [ jbruhn ];
|
users = [ jbruhn ];
|
||||||
|
|
||||||
telefonmann = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEwgqWVjNOgBygI1uaG8P6wQlfr91A+FJS/EHYZbYWlX";
|
telefonmann = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEwgqWVjNOgBygI1uaG8P6wQlfr91A+FJS/EHYZbYWlX";
|
||||||
kameramann = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEfgDpNz95SbbBHYM8zSGCh1pyb/2quR6Oy8xyWFkl0n";
|
kameramann = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMkXAM24G3s7EO6eQbwC85Rkb3OhrGZtLZRQMqut9IB5";
|
||||||
systems = [ telefonmann kameramann ];
|
systems = [ telefonmann kameramann ];
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 hC2TMg yATZJHK5AEN6h8IbCEv0z/cRvLWTtsE32NCK2qVSLSg
|
-> ssh-ed25519 hC2TMg aTDzgRT6xEL9BaIhqfpEgQKjGPfahKSHh3uYOm7n32g
|
||||||
X+nfSXveDvPA6t90kkw0pz4vCrbAy713TdgwkWlk2Rw
|
rrTgEzAxcyWeC9Qwrw/Tp1GsE902mmGcs8/rKbflobs
|
||||||
-> ssh-ed25519 Gfi4hQ Dphc5VIi5O6DF2Ct3FxRSxz+Si1ikZFzALAkfAXaYR0
|
-> ssh-ed25519 Gfi4hQ 5qBnv/8OonFL8JgrgfIsi254IKX5q6oVV8/4epFlNEI
|
||||||
yeIVhpfyCSWWkBCaev5oCy/iqpx21Jr7rLDbx6d6hPc
|
nNe7V6St3VLUJ1xdK8iJBROia7CAQfMaGgGUiv++fns
|
||||||
--- bvtu/BU18oJ2/KnHJEtLDIv92hI9TEjSa/wEVm06xo8
|
--- qo99nBZJS8fqU+vfdxg5CME+HZdTrWlga0hgEQqqUTM
|
||||||
ó Wh’åÂcI(‰7ïšx¿7wuÄž½$ë(I·/¾Ø]bRÙƒ÷9ÓÒ²Ågú)åÚ‘v
|
\j€ÃÜSÁBÚhòºù[²\áH#DbbÕhšŽ-¢ìï]ŠS–~^°Eb{;º'‘æ.´ …€
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 hC2TMg o7MYtPe6/giPT/Czs0IRmLh3sBXMsNqsTcwgABgKeUA
|
-> ssh-ed25519 hC2TMg cV6nDhAKb7tWgyx4nKFT2tYnlQJzLszqnQVoHiye7lw
|
||||||
KVXT1NVCRiCPEwnDk79D0+oqjJ2DzJoH5dcbhS4X8ig
|
oGMbfNIBSFVmts2IeCTBgDVlHDjqgIpNmmwjFXP/XNo
|
||||||
-> ssh-ed25519 Gfi4hQ qRTjNZWOjIczygkBrpAHxh7fQmf+VwVfY+OuYyqe+js
|
-> ssh-ed25519 Gfi4hQ iEwAaUJd1gnYhsbi6LutKk/KHr3YripvY5CUfV6StRA
|
||||||
Ido9gOE4x2+oasGwtXZR1E6mlqXuto3gQEJpXbZeD+Y
|
GffKWdz87M1XRYIsImXsx0Rpxz0O6113rClVpNZFmqs
|
||||||
--- rmKNWi4be93IKtwEt8mW3PPg4Sk55iHKGaMFdo2hJrw
|
--- li/YIWk6iDAtMYCNf1kFq46i0jpy5bgI80t98bRqGFQ
|
||||||
¹¯ôá=põê5B4âü:öÀ›z²1Á_ÎÃP·m<C2B7>ÏŒ#꜖VNMûÉ
|
ÛOÚDø(Ò¢Ãñ».¦ÊšÔ݉iµu.÷#>Çès6$dbJ€"ä߆ÎOçv
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 hC2TMg iGQpGRxYWXuWJQeUV3bhBvpO2nZSeop9IQ8CgdW8ynM
|
-> ssh-ed25519 hC2TMg CSy6l/EdpaJZhQKFBV/P1OEy7OfewLrcV+xxBFVoPHQ
|
||||||
YFjTrTRGds64AChKTyVI4XSRU0KaND6YtSyORkhh+PI
|
ZceDzPQH8Z5mu3xuCcOdM6hiP+yD9LtWyqVRBzT08oU
|
||||||
-> ssh-ed25519 Gfi4hQ wE8MQjCqGjvFQ6+XJyVzpu41v5xS6pfOpIXrzPw3qnE
|
-> ssh-ed25519 Gfi4hQ co95lRFjdU3uakIPvS8Mj7aGhYamlouyj/2cGZJ8o3Y
|
||||||
0r/7BKqJclJRe4EQN3JZvw8FH2WNXRE06Dn9NRBmAhg
|
SvHzNxzHJbHMUmJENu934Wuy27s8yotCa+yqZngTr6s
|
||||||
--- 73Gk0CoWJXK2AuiXOwKvt/c8GgGw+DafNksdE6cBa44
|
--- FIIm6l+HiK2Eh4Tkmr08rZhhFtE+x5hUHM9TWgP0BPQ
|
||||||
X{üøÊÂ(äþW•ÀópHk{QjEŠÅvÕ²Ž<C2B2>ß!ò©…”âè²ç"
|
*Où>þ<18>E‰Þ
€TÇ'£×¿©˜½²=‡’ø8¡—Tâ
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 hC2TMg JIc2Y0jvzXdztzCirPS1AUVYxBxRYwSeCEf3CQmrRns
|
-> ssh-ed25519 hC2TMg ZXCCEKHvyj3V/dGDNgMZNxrcu3Kpqk6T/KcE9KvI60g
|
||||||
Phs/xoioYruXoWWOxPDjEwQidIWnIOsmijWgAJbk624
|
X8EoTT5COPZUjJ6VvQLZDzZs63K/RyIZanFQx5USFrw
|
||||||
-> ssh-ed25519 Gfi4hQ mOGEHxgdWmeqghBHbvj5r+ENMTFewu6GdlbjeryEURw
|
-> ssh-ed25519 Gfi4hQ riBFzxyTj4ph6tpL6mC+2OoCnJFTxxnsPUbX6BrF8lU
|
||||||
XP/3vVltwSqgJBF4MnyjDzICsB1ajkCQ+4FmjYId9S8
|
BuhSoMAroN+YkPxziSMUQtmJrcOfUlfqn9bgfkpbJxo
|
||||||
--- /5KN6s4iBJtMZFY5DTmvCExoXX6BDN8YMXqPIb0BkiU
|
--- IQA291DTeWEMPkmDXjHzSZ6gg7mUu19laesubfmG1to
|
||||||
ª£¹<µ4T|gÊ´öšÈZa"¤mUTÑy‚õ/U—ÕTù£ùï'Ö²—‚=<3D>
|
ÜÄCùàdcW<63>òô>/e÷€Qå•M|)–D…I>×€9¢Vå
|
||||||
|
ÑMNj¨¿E{
|
||||||
|
|
@ -1,8 +1,7 @@
|
||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 hC2TMg DFbs+kB52Tsz3OqgIDcKrvViDw2rv4/R9FnfUi9p/04
|
-> ssh-ed25519 hC2TMg bbVG5NDvMUfqP5bAjKakl3XtsAyv4Mo1xqsshyqgsyU
|
||||||
C8qgdSvuIRMnF0FqDX7uvjAv6/9Wc4Z2soyG/nMgKNo
|
Y06IQn9fX37uPanqUSr8h9GZhlkFNhX5XQCdSJZtAJE
|
||||||
-> ssh-ed25519 Gfi4hQ 1vKc3JcAu6jmKhvNNxyBUTOkKup1qVzVf3yZWiYiHAQ
|
-> ssh-ed25519 Gfi4hQ 8JvFmMpFX5RK+sn29l3vwC852h7CwPjpaN/XrjIq/3I
|
||||||
tlOROgfmumAeo7u6X/PXw49UGIDWM7r1NGSo2Cs0BhM
|
LVHOqggZFi562Rd3Fr2ePbTyFDsIuROShUq3T6LVnBo
|
||||||
--- IULV3hNZSfBngJRDRcRijfLzn7Oj1iPoioyo1vqUaGE
|
--- WXzMczGriwzzcUkJhMOdVzMRfSCLwfUwzOwRU5z7Tr4
|
||||||
(i€UþÐ@
ï$U©
|
ÚV&Mn\IÔ‹Ó~HeíKWø×PS2GCiÜÍóM%öyvs-ºo1õ5ã
|
||||||
eçJÅQÖ[ÐFVîsìÐ3`v©<ùƒUSMNÏý/
|
|
||||||
Binary file not shown.
|
|
@ -1,7 +1,7 @@
|
||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 hC2TMg VKKRBUo+B3BoCoUAdVObdbEYjc2jgRgaOMNzGaWl4m8
|
-> ssh-ed25519 hC2TMg R8XRdHbLzVSEYlz2P4d0+imtxZnOZmtG2Hrhs+OkY1Y
|
||||||
mAl+2oQQU0I2xeateEyJzBr4wi2ErB0JMNyQdE+OPm8
|
b6IUJ890xJEceyCGrrp0xlGmVgtfhn0qvAg19yWnMwY
|
||||||
-> ssh-ed25519 Gfi4hQ oubD5PsQMTXjcGZztiCUkzSU2fP3rPhVCQ2sZY3fKTY
|
-> ssh-ed25519 Gfi4hQ YPoImdtxqMO2GjFVeXDzqmtH3JcHxP6CjfeYZD1diHc
|
||||||
C4hv2aQGNOJDMU2zSgGc+CQ1TLy/tF4zBJRVgWeiGoc
|
mj7b8FSrXiFvcCc2yVHV9GgtZDQvV2Lq/T1V+I4NsH4
|
||||||
--- hACW1LprkJJZHPwyCfQzYbsHvD4BYD6SwWzZO2DiznI
|
--- g+6x7BOXv3hlti1rlXsKoEK17fRSd9ReukGG43t2jrg
|
||||||
å$€\!#©»‡¯þ<>S˜OëÄ7b"š‰øØoR›²L³¥Úéua5õ
|
åI;N™;FùãxãuBVˆ:
ÉT‡)÷½‰è*…ñn<C3B1>æ:æçcÖ+w¤Oé¨
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 hC2TMg FGPfMQ837cCsa57PtNGdoL5iuJU6yBqBLOi38gTWa24
|
-> ssh-ed25519 hC2TMg nDn8cdsSuRv/XO5u/h1T8VGpZbkrsdte+ueF1ZUobhw
|
||||||
+p1ov9CK680rvyt1wotbNOdc5A8DJo//LE9na01T7d4
|
KSK4TB5HrMHwdHngNM4VGBKfYhWBbKJKY18YCGYjyHw
|
||||||
-> ssh-ed25519 Gfi4hQ lSZQLcW9jJmTFuIsF5aHiPJcMqsCouXa0TC8XSBMG3E
|
-> ssh-ed25519 Gfi4hQ M74IR8bxK3/KzzCN00azEFaU9eRhdEB+V+V7GH2Bf3Y
|
||||||
sBDhduQ19U2pbrDziofbd9kwBHbhPO9FKOEJm/HXxCc
|
mzKKwWX7su8FpVb48RSM3d3iZZy3SLfOL6/Hzo2yfa0
|
||||||
--- EuEFQk9H4WPRWJF5qt9exFvy8IVea0YHIUgUkF9TSvA
|
--- /aLAt2joNYE6oeVrJRK+EumSTnHEb+E5caPS0HLNWy4
|
||||||
±Űáî±(Ô/żCí+Aô}ÄÓ‰B¸ş§ńt(„.żśĎC—ű|ŚśÎ€
|
<15>7•”k
|
||||||
|
—c,<2C>©¹[dŒK©UÍàí§`ž¾>LŽ¥ãIÐE¬_Ë“¨
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 hC2TMg 4FcYMlKpTQNeeUj7EkDFRVzlZ1ch1Qjd26mJLsSQNGA
|
-> ssh-ed25519 hC2TMg +rLrjqElf41gDx5/V0uZeX42jgKq2OdoGIUiZZWcOVo
|
||||||
6fOpllptK9TGgXr3mFb/0bUvjhBjhXY7m8F0XR+e/pE
|
5Yy9j+zoGrM79TF8N1YdOqtgq7VRW9NbimSs+2tirkE
|
||||||
-> ssh-ed25519 Gfi4hQ pGvIqYZxMsmynhWJiHMCD3YX0spQbmuqdel7o262bnc
|
-> ssh-ed25519 Gfi4hQ v1UuYgI53qKi4+ZxmcOrgTcLBtAcmeyPYJMCLtF6CzQ
|
||||||
h7zmqOB0aJSY7pvD5EUEpDH0N2v7VkJPtssLnQK0wps
|
bnkNvL9NPbcvautilYVNqxdhdt2xsbjbJh32kQCTJjk
|
||||||
--- kkhfrutrCG6qgnamNrVzgdPdU5DXro1soFbslTp64To
|
--- s/IQDcSq5lcxgZmz9XIEFNR197RewsdksMTM9MBGOCI
|
||||||
Öú…9Nø`/¤¡Ï.¼£€<§È?84R!äU)èls[òÇE0Ù
|
½âꔞQpEQUÊu†¼ÝÞŠÎ9‚><3E>î‘“.ZÇ™<>W•Óý
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 hC2TMg MArpjBV+1UwxZYXhAc8N3rGrtjNie2gHxbauF7+Ho3w
|
-> ssh-ed25519 hC2TMg rKE6zb0itefbnwHKXzxZEE3Rt18q+qg9h4/jOJVabDE
|
||||||
WIXIGJkgBzpx7on5KLEi8lW/iKcF0u0r4GVfLn2cLkA
|
sAnTslcN+zxaBT8ZR53IjX9pUP4bAS9kmZfIM7iOpjA
|
||||||
-> ssh-ed25519 Gfi4hQ qduy/LiAA/os2iU7oivTIfoTfWbBO/CQp8ZoXMkHr18
|
-> ssh-ed25519 Gfi4hQ wT4Jd7ctLUaQtB9oKiV6Ot7pIABvmRfaK/9duUJ0PR4
|
||||||
kS/HOP4zP4/Q6FosIJ+3Uf6qeX/7ivSDhvCXl2a0MYg
|
uaVZZZEpbsceLsMjoLt7lUkM7T5bEJvsw80VHuFIVQA
|
||||||
--- /dCQQyR+Y/57D6dBMEt8qGWj07yExjRWr4f50ZxEeuw
|
--- TZv1bkbXqioF48w3n1ayh/oRSAewdvhq5DYk9SABU+g
|
||||||
zöä)4\ĺö<C4BA>ťÚ˘ô#“â,]Ní —pNúď˙m9á’™‘/pÖôÖ(˘=Ô7Ý
|
Ì?uL‘{wEµ5q’ÿüÒ·^§3ž62“³Ì*Ø$¢<>ÃI›¾GpÝ€þ
|
||||||
Loading…
Reference in a new issue