Compare commits

..

2 commits

Author SHA1 Message Date
d41530b65f step 1 for dyn dns 2026-05-28 22:36:23 +02:00
975fb518ef paperless 2026-05-28 22:08:46 +02:00
40 changed files with 160 additions and 109 deletions

View file

@ -319,6 +319,8 @@
./modules/postgres ./modules/postgres
./modules/immich ./modules/immich
./modules/tailscale ./modules/tailscale
./modules/paperless
./modules/caddy-base
]; ];
system.stateVersion = "25.05"; system.stateVersion = "25.05";

View file

@ -0,0 +1,49 @@
{ pkgs, ... }:
let
caddy = pkgs.caddy.withPlugins {
plugins = [
"github.com/noratrieb-mirrors/certmagic-s3@v1.1.3"
"github.com/sagikazarmark/caddy-fs-s3@v0.10.0"
];
hash = "sha256-m5RHlrheqzoGqKQxixq+xTd2hlnCTets9zCT7aFka8g=";
};
in
{
environment.systemPackages = [ pkgs.caddy ];
networking.firewall.interfaces.wg0.allowedTCPPorts = [ 9010 ]; # metrics
networking.firewall = {
allowedTCPPorts = [
80 # HTTP
443 # HTTPS
];
allowedUDPPorts = [
443 # HTTP/3 via QUIC
];
};
services.caddy = {
enable = true;
package = caddy;
logFormat = ''
output stdout
format json
'';
globalConfig = ''
auto_https disable_redirects
servers {
metrics
}
'';
virtualHosts = {
":9010" = {
logFormat = "output discard";
extraConfig = ''
metrics /metrics
'';
};
};
};
}

View file

@ -1,40 +1,11 @@
{ pkgs, config, lib, name, ... }: { pkgs, config, lib, name, ... }: {
imports = [ ../caddy-base ];
let
caddy = pkgs.caddy.withPlugins {
plugins = [
"github.com/noratrieb-mirrors/certmagic-s3@v1.1.3"
"github.com/sagikazarmark/caddy-fs-s3@v0.10.0"
];
hash = "sha256-m5RHlrheqzoGqKQxixq+xTd2hlnCTets9zCT7aFka8g=";
};
in
{
environment.systemPackages = [ caddy ];
networking.firewall.interfaces.wg0.allowedTCPPorts = [ 9010 ]; # metrics
networking.firewall = {
allowedTCPPorts = [
80 # HTTP
443 # HTTPS
];
allowedUDPPorts = [
443 # HTTP/3 via QUIC
];
};
age.secrets.caddy_s3_key_secret.file = ../../secrets/caddy_s3_key_secret.age; age.secrets.caddy_s3_key_secret.file = ../../secrets/caddy_s3_key_secret.age;
systemd.services.caddy.serviceConfig.EnvironmentFile = [ config.age.secrets.caddy_s3_key_secret.path ]; systemd.services.caddy.serviceConfig.EnvironmentFile = [ config.age.secrets.caddy_s3_key_secret.path ];
systemd.services.caddy.after = [ "garage.service" ]; # the cert store depends on garage systemd.services.caddy.after = [ "garage.service" ]; # the cert store depends on garage
services.caddy = { services.caddy = {
enable = true;
package = caddy;
logFormat = ''
output stdout
format json
'';
globalConfig = '' globalConfig = ''
email tls@noratrieb.dev email tls@noratrieb.dev
auto_https disable_redirects auto_https disable_redirects
@ -59,12 +30,6 @@ in
respond "This is an HTTPS-only server, silly you. Go to https:// instead." 418 respond "This is an HTTPS-only server, silly you. Go to https:// instead." 418
''; '';
}; };
":9010" = {
logFormat = "output discard";
extraConfig = ''
metrics /metrics
'';
};
"${name}.infra.noratrieb.dev" = { "${name}.infra.noratrieb.dev" = {
logFormat = ""; logFormat = "";
extraConfig = '' extraConfig = ''

View file

@ -18,7 +18,7 @@ let
vps1 // { vps1 // {
TTL = hour1; TTL = hour1;
SOA = { SOA = {
nameServer = "ns1.nilstrieb.dev."; nameServer = "ns.nilstrieb.dev.";
adminEmail = "void@nilstrieb.dev"; adminEmail = "void@nilstrieb.dev";
serial = 2024072601; serial = 2024072601;
}; };
@ -34,6 +34,7 @@ let
]; ];
subdomains = { subdomains = {
ns = dns1;
ns1 = dns1; ns1 = dns1;
ns2 = dns2; ns2 = dns2;

View file

@ -14,6 +14,10 @@ let
A = lib.lists.flatten (map (host: if builtins.hasAttr "A" host then host.A else [ ]) hosts); A = lib.lists.flatten (map (host: if builtins.hasAttr "A" host then host.A else [ ]) hosts);
AAAA = lib.lists.flatten (map (host: if builtins.hasAttr "AAAA" host then host.AAAA else [ ]) hosts); AAAA = lib.lists.flatten (map (host: if builtins.hasAttr "AAAA" host then host.AAAA else [ ]) hosts);
}; };
minipc = {
A = [ (a "100.100.2.1") ]; # tailscale IP
};
in in
with hostsToDns; with hostsToDns;
# vps{1,3,4} contains root noratrieb.dev # vps{1,3,4} contains root noratrieb.dev
@ -89,6 +93,12 @@ let
grafana = vps3; grafana = vps3;
infra.subdomains = hostsToDns; infra.subdomains = hostsToDns;
# --- internal stuff
internal.subdomains = {
immich = minipc;
paperless = minipc;
};
# --- other verification # --- other verification
_discord.TXT = [ "dh=e0f7e99c70c4ce17f7afcce3be8bfda9cd363843" ]; _discord.TXT = [ "dh=e0f7e99c70c4ce17f7afcce3be8bfda9cd363843" ];
_atproto.TXT = [ "did=did:plc:pqyzoyxk7gfcbxk65mjyncyl" ]; _atproto.TXT = [ "did=did:plc:pqyzoyxk7gfcbxk65mjyncyl" ];

View file

@ -0,0 +1,24 @@
{ config, ... }:
let nasDir = "/mnt/nas/HEY/_Nora/paperless"; in {
age.secrets.paperless_env.file = ../../secrets/paperless_env.age;
services.paperless = {
enable = true;
consumptionDir = "${nasDir}/consume";
address = "0.0.0.0";
port = 8010;
environmentFile = config.age.secrets.paperless_env.path;
settings = {
PAPERLESS_TIME_ZONE = "Europe/Zurich";
PAPERLESS_ADMIN_USER = "nora";
PAPERLESS_OCR_LANGUAGE = "deu+eng";
};
exporter = {
enable = true;
directory = "${nasDir}/export_minipc";
onCalendar = "02:25:00";
};
};
networking.firewall.allowedTCPPorts = [ 8010 ];
}

Binary file not shown.

Binary file not shown.

View file

@ -1,5 +1,5 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 qM6TYg I4FIet5K6KGjWaCvKbhK7UV4LFJthRpRVDO/FoARzxw -> ssh-ed25519 qM6TYg 0u8KWoP0daJZA97H5KkNCSn839ObF87VYU4AChP2XVw
F/KQtQI78KlLe1jT84oxdg4UG8QuG8xAVAutzVM+kJw PqtYdZR3xokf7iIQ9khrz2pt7n6FipWn5y3bmzDfdEM
--- TEgDiZeZQL2K8Nq/xqUKrkPKSXyO5NgRbx8SkfGl62o --- 3tTg1eoL9exHUTtn3Uww7xWecgmzf5EyyQEZ//Bbjic
(L× * ‡2þ¿ëÊÚƒjö¥ED* ȹÅ^䥶IJs<C2B2>´<EFBFBD>yð:…7 o†Reâ |˜H¦ôLXñõ'v2"ÕóÈ<K#9ÿ$TÔûÇ Ó_Ì« æ}^aoÜ4¤

View file

@ -1,5 +1,5 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 qM6TYg pA28Ib4AvSxoAZuGE7ZDW7CpA1GQkYm77WKNahcUFEE -> ssh-ed25519 qM6TYg z5yLpu5zJ9m7Ukl3nEHZND8Ot2cYnADJidYjELzfr0k
HjzZ2b/iVig4reIgU3z0O1El+tct50LS5fp+SiQB+Pk qy1n6TSeWniRFXLc1Zkpvz1+pmjFaMga0BeSE1q6RSk
--- ExFpE2FxaqSuuSMtQTU+kzVz4rI2SriLKhcy0JHZXPo --- fe6vqb3f0bRvXlQG4JglZ0h/At5kUPIM+VkRh91BCtY
KÀ¦îÐz)`Q=¥­ý gXŒµgì èµ}<7D>|ÿ øªR—!ÙwD6ˆÖï¿é?^4ÜùHγMV]¸`7L0TŒÏ6ã1×ûNãøŒd<>1 \¬Ø×¥C~Ï<>êF±¶Š«ü †Ã"Ô.O†ë J‰±º7ÄçªÝ6ÛàÜ~Ô¥SõñHÈø»ó-4¡0ý Í[vA¶D‡ÐÜ=‰´²^T°ýy"@A¤‰@÷,§¼ÝáéüPÛÝ|¶q!ØŠM

Binary file not shown.

View file

@ -1,13 +1,13 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 qM6TYg AcP/Za8jdEONeSNcC2fm0rZg1VOMvqCreXdpd/iDKDY -> ssh-ed25519 qM6TYg WSRKNimMa2qdIrTxZIsnybHi+gzOweCGmCx2D3DPciU
dgBlpFUcvP/n86idjIWuKsx7jX6xEWQJKY+pdGG8XVY e6MO1QIL5FI0ATaR8hBUeE2ayLoyP4P7d5eO7liMBHg
-> ssh-ed25519 91VHug R4SIqnNLIoIVGIR0XnUsh3RCz+20M3pWoQGJta4y2CM -> ssh-ed25519 91VHug JZjoc5tcVSQjIpbVGVca4P2s80Rb7NTIEKPhlXx9wQ4
s4O6GBECMUQpUX7yhx9CrNgedDn6yomCg8Bkke+4vu8 QWqufjXwphL4Kes5Ky2tWozdusA5AJwqgzT5JWCQbvQ
-> ssh-ed25519 XzACZQ OVHPNsSR5IfrAslyKuIMAZakz+k12GUGNYsGc7e5WQ4 -> ssh-ed25519 XzACZQ ek1dpX4Lqf6hd13B0dX06tTTmNRhZswxV3W1gBLKkXk
IQKyRtlh7lkwIdH79IYCYod93+qAqap6rGL/VJ04Mdo LQMnAxrr3ZfUc3Brn39BzIdyBe8Jma8LSML+eaBuKJE
-> ssh-ed25519 51bcvA NYivGhQwqPbjLY+Bb08ow38Rb1SBfbEotPwdDr/v7gE -> ssh-ed25519 51bcvA zA9GHEGOXETl9zX0yoHHB9B5On06KlEcYRba8eKGKEo
VRT0QUnImc0unH4DoEg07+PhQ0a3IsJRrJIcgDzBtjU yPTcsFhDLiSLpWoZX0b7dNzZmBaLTUY8PSMVFCUzlRA
-> ssh-ed25519 vT7ExA 6gW6MAGGmz7wqrE1cNgAJqhLyLBDnAkh3IFB/EJf7Us -> ssh-ed25519 vT7ExA N7U+hiTEzwKvglQ0At36e/p0TTA7xVRb7UvuX/4Bbjs
nhE8i7G/n/CnLTOUYsprFFjWCA+v/CmOpYRB8dAAjaE acP9zBODifOsHVmM7COfBX+tkxZIPnQCUR0TskHacQ8
--- WvW+S65yf7YP+UsQH7VY1CSRqIFyNQAMBzVDCKcgk28 --- tOLU9ascA2rI4R0oIg/0vsn2dEC1LBLFN6TFRcyrcvI
²±¬wBÑ<EFBFBD>*çN¿%uz>¦Î9`?T7…­LÈìÈ?)Ñ:<3A>ÅgâºÕ0é°ô7Þµ LËbxµ…aÕñÞ·$‡­ ?±ä {ÏÄ<C384>q.忳U× ÙŽcO¹Å)¨ì|Â¥ü,+^]¥Ÿë?­©PÄ»$3mº4©Ç¦|…cõø)ó.R6@r]ˆ½´

View file

@ -1,5 +1,6 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 XzACZQ 3nDPKBmskuTAvsJAqjRdIWyRBmz4r6sPAKkgUu4DWV4 -> ssh-ed25519 XzACZQ jIs+NClvISjvJSkJlkkGX5ZJzFge/1Nj2Wi4en/viRw
VHlijfVCMdwh7VruZkldVzEZoNLanXxq/yDzmiZFIao H1sfzg7cCWmCVg9GpFF5QNVVJjllxbmt7wBETRfM8hw
--- glAFu4uwb5Jk3cSyOCBWJr4BfJVAi9HxzWkvTVm1dZA --- hOo2vi9EjLwAa8PQzJGdzUZ/VIzfhM7TnPsQ+OYJzcY
<EFBFBD>ƫs <0A>ȷ<EFBFBD>ocp"<22><><EFBFBD>H<EFBFBD><48>഻`<60>3<EFBFBD><33><EFBFBD>M<EFBFBD><4D><EFBFBD>r<EFBFBD><72>P<EFBFBD>avEP#<23>9"b}%<25><> <0A>w<><77><EFBFBD><11>Bo<42><6F>i<EFBFBD>l<EFBFBD>Q@X<>C~y"<22><>zP4SԊ<53><D48A>Xh}P<03>æ<EFBFBD>ڡ9<DAA1><39><EFBFBD> %¾f>8ëá¤ÅÃðÐÀuwª[ žl*´V(u”2ó)e&•äú’XÎ)
ƼåQÑ"ÂX|iOÕôÓ,'Û<16>;æä<C3A6>ItʽoÚZËÕ<C38B>kÕàÓE)ÐÉI È —0v/»ë?

Binary file not shown.

View file

@ -1,5 +1,5 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 yMKb8Q wDQ9QOIpJMfsxGr63x9PozZEVfy1M0XvW9MvIjBjlSo -> ssh-ed25519 yMKb8Q szKG8gw88EAiUx26fzY/pYMVb7Vb91FZC1FEQTYRZDY
eAbDN8ZB52vcC1zEXKqjWUYb+vvIJVQ+f9CZmk1Jcos 0jBl8757lsXnxWE90iZLJcO5VUXz+E2+7m/ZfNq87J0
--- ZRGd4IncBO5g0BIoezzfvCxNMAVP3cgmsF8Co06u+fc --- huOResyzGVCip/Sdoyvid3TxFI01wiXNaHdZ/oGI5Zg
Ui¨,ž•¥W ÿ b%dõ9º:˜dޤÚq¹¦È{û À®€Å½Lš[M<>£ ,Ýd™š§8{6 *cÚlH¢àxôAhã5H(dçŸUé'ònÒ˜;M.Vx}‘À•"Ö f· ø«§³9мfß~JvÍ9

View file

@ -1,6 +1,5 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 qM6TYg 4XizqcJTul2c4nKebIgHNBlX1wfNM6ZdJIi+uD4STCI -> ssh-ed25519 qM6TYg mMvnBUGVS8d0di+drDXo7mws4Uz5T+nZmQY9uUpKfQ8
wLKLC8dfC1jVWNLQR2pmJM3+yvlILUkn6be+x/l1Se4 rea2peORLvRF6qYtGKFnylyEdnV0NTc6QO3xSgp/y1I
--- kgeOkLbbLqXAK8urZUOVhqPKn4AWulo4hGbOkgr+fOU --- xyeBOfVq3hwyckUma5LWOU9cWHzg/XY2f8T/0Vc+njk
þþ§¨BøòáSæXN<LÃå㵆|sÏ®à<>Évî|»¿p`9ª"ˆèh€ÂUÕiçn8¤ûÅêdêŸUÕY¬¸àèžÇ«œoPuVë¦àJgÔ7áH)#ÌG G6kN0 !èUm<55>Ÿõù[rïH<C3AF>§ÿæêŸ‰ät}׊X'ÂyqÛL³ûbE…ª“Y®°ý:ÚÍn NHnHàƒݰÜöù'¬¼<C2AC>¿ÁãÛWœ|©3…Òøz{Ù¢ºà×™É'äµN&M`#²Ø
ä«Â¿îu

Binary file not shown.

View file

@ -1,7 +1,7 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 qM6TYg bv3MPWeJTJj/lrwKDBAv4T+OrRdD3ViwX8HLCmCKghE -> ssh-ed25519 qM6TYg OO4FC/zdYJPzw8ujHG66sX2ShWSrWfCKRj1z9FYOwyU
MGP87vT3Rmf+aqhMMXyZIs4OeMkS+uc+je6Zkod0hrY 84DDDS2TPxxoGxxaj4WLJN6zZfVIH7m1xC1mRMMzBaM
-> ssh-ed25519 XzACZQ cUkJyWCO6HkdxCqSnv9onmEUhEQY+Pj4seR/lH8KSAg -> ssh-ed25519 XzACZQ YydvMTzqlr24U79p1vCZ0DIB1DmLNxp/kLptb5WtmCI
qTUgF/iT2IoJf7UOleaayWbkJbn5dgSVHKctKWnqfIw KaJ0zuNwVsYr0pLRB2MJIix22xTdujqspFPISU3Q9EU
--- BOvXie+k6OIewLDVF+Rx2YzkpytshqkFGCL/uYgljNQ --- TzKmJkMsYD2ZS7LJw9qdVRsBeoxMPQjOyovIoopesMI
…}ËpˆŽSS  íy*Sp*>ŸÝ–Å  ¹uí¯:0bŸŽ:=)t…¶ÍS\HNœbòµ9_m‰ØÙ<C398>jµÚ{<7B>)˜º(­<»3&Ó˜`ÑR<> õ¸[«{aÜ“Øô!Àòó ˜ƒœŒ×ÎøÔS ´•âúp+²rÔG<C394>F ¶"ë1Ñ9ÈßÄæ,kVñЪ¤¯é<C2AF>S¬ühŠ<1A>nhy·ldšFX+£× ÒÔ”dˆ;<°fLí~¹Dg-'C„‰ÔB

View file

@ -1,7 +1,7 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 qM6TYg 7Nt/x/IT9ofXjrRRV7coT6nrrCSOCkqUqflm1oXLXTk -> ssh-ed25519 qM6TYg anB4Ljud6na0zsnFkNjgBcicE6kFUg0y2xTlohEUggI
BafDaEiVpuT3SDVXvuD31WIKe0QlvAGoyn4MzUm9LfQ gUTv83/Mktm8CyXdKEf1eu7NpWJd/hmiGzKs91WyPCc
--- BsY9/meRTzX5oCBD+w9f+2TO/TdPD936xOjgtQMWuag --- zxoGip/R/tIH30MATCWht9P9oUxU//L/jnf6T/DwKEI
RN|å-ò UĎÍŚ5ś¦f—śqˇ{¤ĂÎ!„ł´%ĺZóŔEŠűó;í¦
[¯6Їùq xČ»é‰vËn´k†Ź ŤľtéÄP\-ť1PŰşŔB}gMn{3ĄÄňo<C588>ąż *]łÚ¦Ä0<C384>zŐU5Č2Ůß<C5AE>±Ęý@yär®UţgAé ŕ-4ă¬Ń)Fĺ
rú7ìˆÎd% 襡¬[3K`I{Š!™u5™¨èƃnÇè<C387>ÓºMvo÷dÿò§z A…Ì~á‹åâ“ûò<18>óÇ<E28093>Tƒ QñåóG¸h?N¯“w/YBëQn•_ñ`¦ÜÕÃÍ_€,¿ýZ‰€ƒšF”VÆ8yw Ć>"­ČUĄb

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -1,6 +1,6 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 qM6TYg /73Z7R1RE4lfUfVSeJqZjbGA5yjygfrxKi5iuMMxrno -> ssh-ed25519 qM6TYg wkP6wv0rewclikCkz1XjByNu8dWtQgk23SW++uoNmy4
tsbPaW/x9HFT/tG+5F3n/3SsuhmswVIfHVLNRAzdiP0 Pqd1t5ITKxwLmBZxQZqQ1jHn5o+atN2L5Kdk02SZiDQ
--- jHapfTz6oq7gdrgBn+XNQdMZ67DbrFPBY6KKzb+wfjE --- vcfVaVUg2W8jTf+BrDYg5TKccjk0I6iA7bJEovIvsVQ
œÅÇU1ör(RßMN8<14>ÑOlè$ùüÔDN¦u±ÿ³·ØÆðŒ´¿3ê¨Jo<4A>înÜBOc%ÿATµ~RV##[‡‘íù;3*½¶±Þ6˜/Ð5gD€]ƒö˜2À¿žñÿŽÿñ¢%Õfü)fxv EcbMf§%sÔчºß¶—Ëù<C38B>©º˜Õ¼^zòm7޹C”ËnêŸD;Ûá¦3}ñšZѼáP<06>Æ5% £¸B¹„ì1­CŽu`³?`4÷¬z¥õŒ­}my)¶^Ÿœâ¤…Ü<E280A6>8Ü;¯4vÒnÊáTÿ‡I,SŒ}x}Çû阘RC†c¦º"¥Ið<49> z•h
¼›]Ìé¥höî<C3B6>†…:ßd¥{_O½~Ñ2Œt¤iŒz28¡Ï ÒW>ÐêBT(aõ%<25>—ŠŒ•™¢Í‰l`é³\õ ª;"²(?^¶aŒF»oO“0zýcÝÊ•3

Binary file not shown.

Binary file not shown.

View file

@ -32,6 +32,7 @@ in
"website_s3_key_write.age".publicKeys = [ vps1 ]; # only used by Noratrieb/website GHA "website_s3_key_write.age".publicKeys = [ vps1 ]; # only used by Noratrieb/website GHA
"does_it_build_private_key.age".publicKeys = [ vps4 ]; "does_it_build_private_key.age".publicKeys = [ vps4 ];
"immich_secrets.age".publicKeys = [ minipc ]; "immich_secrets.age".publicKeys = [ minipc ];
"paperless_env.age".publicKeys = [ minipc ];
"wg_private_dns1.age".publicKeys = [ dns1 ]; "wg_private_dns1.age".publicKeys = [ dns1 ];
"wg_private_dns2.age".publicKeys = [ dns2 ]; "wg_private_dns2.age".publicKeys = [ dns2 ];
"wg_private_vps1.age".publicKeys = [ vps1 ]; "wg_private_vps1.age".publicKeys = [ vps1 ];

Binary file not shown.

View file

@ -1,5 +1,5 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 LZU5Eg 3Bde2BfrG8qdngKCIg4xeXnkqqdrtcAZfW0REYwkmWc -> ssh-ed25519 LZU5Eg OKL541Y7HQSCBtUqWQVdIxZK9HiWeaPyAWwkcj/bsgs
0Js204/ZpkBK9mDZwhYOY1IGW8yA5L/iMAmrZR1r940 PviTqNl4VLbQtErGDpXFEJSeRf59Mx0v3qcznEZ1tTo
--- V7Xj3KkcueKzPhl6wjk12zRrEmFPMpUcQd799p0Dqr4 --- yRq8T7TGu/yBKFx2r+t8gbohrUHDkyXdvsB3n5csgpY
Ö~”TO80} ó‰¥ÕQ.<2E> <0B>…{°„q6ÑÚQuˆù׆ú%NÒ6­¢ÐŒÁaÛ|”—41Ö€åZòÕ€Ò;DözÏ*»^©ÉôÑ» kMõQl?N'!œñ¦.LlL¹±BoDæ§Y<59>ï¼:¯¹Ö_¹“cèàžðtì¬ci= ã3ärKv¹<1D>MÛfîDuúÑ

View file

@ -1,6 +1,5 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 5bWSnQ V/5bLxQqdZEF9tgSPGgm7nEpnyNGScgSVfjS3KOvxA0 -> ssh-ed25519 5bWSnQ KNg5E8fLL/rDMbRGQDujv/NaSUVGY/HmxFgIVK7vox4
oKHKz5IIZNdsWhBCTCqvHVLAJGC+LEC7RuMgQHI9Wkk bH+Gywr/dDW3UPfQpLpWg9sVZq+LfE2aDs29chCpaDk
--- 71jtq96kfCYsB8UGSccc2F6qWtj7DO658MeVWSD+L64 --- mYTYZH2KoiKyxtfrxgIomqaaCyfnLVNwXkUzp+cDl7c
”XĄd2ŮC<C5AE>¬lEV~FgŮđiíďčöpŢă%áN6ů ç«Q}ðBö¿.Š$bðŽqú¸ {4ù;5-;†²3ôJybleú÷ÌžÜdÞo¾³#i‡(ý{ï²Jè­<C3A8>¾­ÒyÇ<>>˨]Ô
ŮÖt%͢Ż{LZş@˛ÂB9$ŕ{Żg&PŮBHQ¸Ű<C2B8>%4

View file

@ -1,5 +1,5 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 yMKb8Q o1qLnZBL+o8wrQYM6bo01DsCKVmA/NCzLe84aO4NSlI -> ssh-ed25519 yMKb8Q 8ESNEQZaTfjWl4qGZJV/GPN+tFozDmiZZtXCctRD8yE
iEnVZGcr4wyMN5b5f9Qzt1lmycZVe+km/8ApNvq6ME4 w2+Pjzmotz2X0O8ehb3TTOLk9YCk8hqRqNKfNNnLQIw
--- MiV3GRLz1rEy283zGsbTtrAbQgmdW0pobJE83BmPrmU --- pfmBROvSCK/41HS44uMmwU5izVCyHrRirYjL/WBAhZQ
<EFBFBD>¶ƒéƒG^÷ì%L˜ûj,´¶sC€ÖIC&@Ö>#¢t<C2A2>$.2ÏÿRñ+p.µ4ðù ¡•ªkÃeüÍÇ^+”sCgõn-šz©{ m í<>*QÀØv"­<>¢+˜…JQ ®ñÔÄ€ý'òPø´hD·¡>G¹ð Jû]§êÀÄ Ÿø‡×LÝ©¯ù¹¼ ÁN÷žÌ¤Û€

Binary file not shown.

View file

@ -1,5 +1,5 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 91VHug 2cqCCA9Di37CBwXKIg2nRfgX90fqVQbIDlvbys7uSCQ -> ssh-ed25519 91VHug nuqwTTdoNOLWvbQAIhl9WguvArxG0jNfkFn3qM8VyjE
IKMUR81lUusM+BqXSMiuCEyfeAfup0ljLCZ09GVjv0M NvhMCreuxdWHezfH8cF4wXjO8ZbG7yQC8+sVnWFghFM
--- oisBggLksra17ZbAQcWuIX3iOo2hE+De/mtXpmDDXGQ --- OGewUdFWzL1PzHGBHB7ulJVi5eX6UXKLFUyfbvGErmY
ÕÚ—‰<EFBFBD>¾7•¹¼È<1E>¯úf-1·|H8×ÄéB]ãÄjéŽÂq2ÿI6÷Û7³yBL°4ijÈäõã"d_¡+Û%ô]×U Ê‹Ì.\†—ŅدiÒÎóÒ~`êQ ,¿§W;m´<C2B4> ­pQóTY TÅz?]¯£T-sÃ4)ÑZPý,6ŸH5bìÔ„7—ƒh

Binary file not shown.

View file

@ -1,5 +1,5 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 51bcvA CkaPksfSDKWRMaL4FV7vI4VZ2c8Fd2RlyRW8DEkOkgM -> ssh-ed25519 51bcvA jfwnJ0gZN/FeF0krZ/ERWq/eqKBGwANBwea3xCJLeHw
NrvBSSPDrwNL+YKgBTHqQuLhKgGy1+/H51JTsA70Dww x8ccoxcT8Yn99d6aWzZ667jUjE4dHPfz3ZIg9qG4xe0
--- 6qkEageKcIweJ7wWcqb2HZp9zJNTyLcoQ+Gv/+O6CJA --- H0b14xAs2FTADz89JQx2eOSmAgN3Rs5A2o316xzISwc
(¦©,¸Ê<08><>zfßðD8¸Ÿ)Šü]¥Î|P+Úáaƒƒ‰ ñ{n·•ƒ$ ¸<41>x"•ù¢]綤©è…KîæÕð ø’@ï¥Î}`Í &9Úæ¶WjWSõEáãHÄ@„ð—ˆV<CB86>Ëx[…’±Üá?¢öéU´u.ƒ½Ø~ìÄøJ*Òô7¼Ò·<

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.