From 66ceb66382a269965c1469d3048be0a6b1981ab4 Mon Sep 17 00:00:00 2001 From: Kiara Grouwstra Date: Thu, 10 Jul 2025 16:45:46 +0200 Subject: [PATCH] add deployment pipeline (#452) part of #177 Reviewed-on: https://git.fediversity.eu/Fediversity/Fediversity/pulls/452 Reviewed-by: Valentin Gagarin Co-authored-by: Kiara Grouwstra Co-committed-by: Kiara Grouwstra --- .forgejo/workflows/cd.yaml | 24 ++++++++++++++++++ keys/cd-ssh-key.pub | 1 + keys/default.nix | 1 + secrets/forgejo-database-password.age | 34 +++++++++++++------------ secrets/forgejo-email-password.age | Bin 890 -> 1000 bytes secrets/forgejo-runner-token.age | Bin 699 -> 1029 bytes secrets/panel-secret-key.age | Bin 905 -> 1015 bytes secrets/panel-ssh-key.age | Bin 1271 -> 1381 bytes secrets/secrets.nix | 3 ++- secrets/wiki-basicauth-htpasswd.age | 35 +++++++++++++------------- secrets/wiki-password.age | Bin 905 -> 1015 bytes secrets/wiki-smtp-password.age | Bin 926 -> 1036 bytes 12 files changed, 64 insertions(+), 34 deletions(-) create mode 100644 .forgejo/workflows/cd.yaml create mode 100644 keys/cd-ssh-key.pub diff --git a/.forgejo/workflows/cd.yaml b/.forgejo/workflows/cd.yaml new file mode 100644 index 00000000..802d90d2 --- /dev/null +++ b/.forgejo/workflows/cd.yaml @@ -0,0 +1,24 @@ +name: deploy-infra + +on: + workflow_dispatch: # allows manual triggering + push: + branches: + # - main + +jobs: + deploy: + runs-on: native + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up SSH key to access age secrets + run: | + env + mkdir -p ~/.ssh + echo "${{ secrets.CD_SSH_KEY }}" > ~/.ssh/id_ed25519 + chmod 600 ~/.ssh/id_ed25519 + + - name: Deploy + run: nix-shell --run 'nixops4 deploy' diff --git a/keys/cd-ssh-key.pub b/keys/cd-ssh-key.pub new file mode 100644 index 00000000..8c90cccd --- /dev/null +++ b/keys/cd-ssh-key.pub @@ -0,0 +1 @@ +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMlsYTtMx3hFO8B5B8iHaXL2JKj9izHeC+/AMhIWXBPs cd-age diff --git a/keys/default.nix b/keys/default.nix index 6e33783b..a3eddeb7 100644 --- a/keys/default.nix +++ b/keys/default.nix @@ -35,4 +35,5 @@ in contributors = collectKeys ./contributors; systems = collectKeys ./systems; panel = removeTrailingWhitespace (readFile ./panel-ssh-key.pub); + cd = removeTrailingWhitespace (readFile ./cd-ssh-key.pub); } diff --git a/secrets/forgejo-database-password.age b/secrets/forgejo-database-password.age index 0d8488d7..342282d4 100644 --- a/secrets/forgejo-database-password.age +++ b/secrets/forgejo-database-password.age @@ -1,17 +1,19 @@ age-encryption.org/v1 --> ssh-ed25519 Jpc21A 9edPaA2tT4SeYNTPzF0E157daC2o+JH/WQQCT+vLbFg -C48EtLdhB75TTzfEZTw1DypicHiVlSmFzjfbqfO9N/8 --> ssh-ed25519 BAs8QA T+kXpZg1v0XRkub5DWir7vYwO7KaOJLZBNYxxXiBUCw -zBRwMTDpyI7twEwUGsmJYyYPw9btBx5Kakj1yT+XY8U --> ssh-ed25519 ofQnlg 4UoEDY/tdKz8LrX1BkBU1/cn+vSaYLUl7xX9YmzANBY -8CACq1n3AJgD9IyPN23iRvThqsfQFF5+jmkKnhun24U --> ssh-ed25519 COspvA HxcbkqHL+LpVmwb+Fo5JuUU+C+Pxzdxtb0yZHixwuzM -7FIhxdbjHJlgQQgjrHHUK5cecqs5aT7X3I8TWf8c2gc --> ssh-ed25519 2XrTgw R6Ia8MVIZKPnNZ0rspZ34EqoY8fOLeB9H7vnvNBLg1g -55NUqz5Yygt6FKJ3bR5iHxQp8G7S2gyFwrJNX1Pb/2Y --> ssh-ed25519 awJeHA hJdTuAScoewVMt7HWiisSkL0zSeClFzYzzKL84G893o -ou780VLrW1s4d6L+lEVu3kXaGn4dvtFPA31supwEL50 --> ssh-ed25519 Fa25Dw mJcqnXA3fQeoKrG7RJ7nVeLxPvrxqbj+lJdx6jQ9IR8 -f5Q7mrQSSDsm1Z/uSAnvx66mgnRC3XaBLQrVL9f/Ijs ---- W/KmboXTLV12X6WtVQKHNe+ZHvS2q9EHUZwofSgJSE8 -^k h0k _ǷQm7\}?q ssh-ed25519 Jpc21A bBCQmvfRUwJuIXbpVJ092XUBVszGrb6gILGbgV9j9BY +7DEGwhqdfqMs5cxXtlMkSTPjw4qhczBgW0dmoJ6dh6g +-> ssh-ed25519 BAs8QA oiVedFC6UklEFCJUybGr93+XrddyCtV4r4TnE4nhpWI +xasnkP4NCl9TuYSE1u0Xi0b/PiwcrfHCz2QMnpTjLcU +-> ssh-ed25519 ofQnlg LrMcWdaEUVyIgd/KznwJW/2sucIu5MuxDEcEJAmf8mA +p6pQoisuXre2J4r6ArV6C6lKO2J/aNdBFhqLPBoZ2wA +-> ssh-ed25519 COspvA q2OGeVofPKyGCpr4Mf9VoaRvZCWTRl8n2mvkQOdTnyQ +M+ffAGecJG/94k/Z5DdokltrZppS2IcxkZa8JKHwIMs +-> ssh-ed25519 2XrTgw Bsz/G4QderToPSfMKOR6s5yWb0xCGUlsjGJxJYQNBRc +JYrXZb8qj1Yi9u5bnI/WzuNxy7gyFLCTIUaGNmcOYnk +-> ssh-ed25519 awJeHA KKJMQSt0PvC6P+T/kxQv96tSBdLQLiY2f8q35IwGm28 +p7Cf2HLlPl0qmsO6Hh5zwVgKkEs3A6fdSBndMKsacbk +-> ssh-ed25519 Fa25Dw 3m/qyannP4gjXxkUuO0LQRU8Z8HXOg4WReMDd7786y8 +dNMyiBGeJDrBScE9TEyZZ7+MGMG6FLuoRTK82EVeX1w +-> ssh-ed25519 i+ecmQ oCs4Ep2K75yjmUOh1ox4F25tGq+O/mZ2/c2E8+IRlEc +0Wc9gDxhvHK5tEVM5kJ0mQXc3kp7tJ2JNHg54N0+tJ8 +--- mXrqbcHxjjkS5MrQaCVm4hTsAUEENAWlIYtiYx6rtas +`}7>ib/& ɪw7[Hc \ No newline at end of file diff --git a/secrets/forgejo-email-password.age b/secrets/forgejo-email-password.age index ede91ddd9c66da23406d6bc7ec72265fa095f81e..4ec8fc15d04b05da761be007bcb2071f483c4f1a 100644 GIT binary patch literal 1000 zcmZY7InLu`00!U@r70+==!`T4k_leo__GTTcI0W;xZlJ`gRv6{tz&yNqNZAV$gt^kHFSR;0t0F;@{%*`0qbajZ zjv1!~Jg~;WTg8^-W+0${ym6cr(@rrHNF`LZn8#UR8BTOM+u9HbQ8gz?XsJY7w%v`- zd&1*x=JlnvJ;G+-QFD&HQ{|23TGE}%dnRC$Igco62X;b68?vegrIRqYZ6KOtveD8{ zBm><&e?A5L15UZO9Y(IqT_X3hOV-pWR3QISqr9h+jHm&kDwVD$sK|Q4t5aGEOHB3$ zFyzlERc5(5XdQ1BZIUAo8gErm5aRT7$a2aaMb^4|$-=CMrrDW}AYy=xVXhY+>~5CEQ+k-SMl}gQ046xvhV=A8;>c`1cu9suL204@Vgest zr_0^)z1)I$$SKy5i3M|@-S^dE6m`g8o6ZYFs)6s7``+m3pw!O?E{|Qu(P7HF>;x{P zb-9#lyyxh2Opw)TgqzmMPl`uY1`y*Rf&fBWS-^oL*Gyy?FC;ZJ?49o#fJ(L1&Vcecw4Glzbyj5CW|qT>=KhGxln6GkFC zKwY|QX?4p?jI`%F5!8F@T3RuyKWZG?u5}i@OYy1S7H4-ZTRygj1IcyCSCGZY5QaxJC!(59v6vpDz}sAHzsko9eAUkND4e^Wvt(>5Dg35 z&(@qg@wi%vb;##2e^`yS#S~fLQ+Q(4c~103JpQLK+?b5G2U%a+c_PJFg{X{@9hs@` z0pr{gN`$*t=XChrZF_91fkl@*C@pKZIv+*YNWMAZF zO0egamI4(vqfJy)EJm^b`P#dMb9%;&yE@dnR>K`kdb|-%bAclYYzp4ftUchR;ZcK5 zp1{+(BvZ|mvJ~gsnA?QA0B-a>i(t0hlOk?Z<)%niz$6+{p2LO~A>-G!+Fv?VJ_^T- z)XYcC8|7%vqU-638I{Azj6+osUEg`d*~^1^%YdM*DenAKc;ei(XI@8C9WIhbeT}ssJOb{XEI0rBTIosTL@c>nWf lmv6tnwXeSU;h&Fxz54M3qJRFymvr?>efjR~-#`8O$G?^2B**{& diff --git a/secrets/forgejo-runner-token.age b/secrets/forgejo-runner-token.age index 82e8efcbad04a5750ce1d7c8a8107caf752adb1a..a90d64922e6d3297cb379c5c7df525b86e62626d 100644 GIT binary patch literal 1029 zcmZY5xvS)K0KoA+h@!O%Da0m>$^0_8EQDk-Gr1<2TrYVK1v9xP=j4}}9F^D!7TdY# zg4f z^Dsyuuj@@eo?KTUqo*HvuddiLbjH_63HG^i?vBbN}3MBKqUm;{+}76F(kK5QOpO=8w% zifSX!ncns@IyQ#T_r%-dAKBVX(!}* z8aC7+uB>cU^<8u$YaS8NV(Tpv+`i_sogyLw23Aa)zQ=>K@RV*kipNn<6;fAo#-D*s z-x@^SIRX2yEf|zo;?d>me+;x0J#+k)P0o>Z3 zFSmO`gGz8+S?$E|G%bxQB;BxBpH97mO|0ao$5?=7tg7`nsjekukZhD&@RYZX7(Q&v zu{f+ul)n_yZUCtK;m*Z61P?%hAX_~otpZ=aWcf872Du)$ZS literal 699 zcmZY5JB!nB003|iM93F7kRsvSuGA)J`p6=rd9+QMCTT8x#3@PhYM%e3P4e%4yMy2h z&ecIj9UT;x8(ajz-AOpO?KoWA&rk4!pXoU*C$V#w?SeFUoaSD;#F5q$v?%mJdoJDYB=lJmHyXxLsOAct7nOm~`<&==?x z5aF^ps+ZrPmSxKXd$jb@bh~>mDfmFov12^ifEsYyy zQXKf82E-!vMKcI!1aeNHVOEVxgxHKgN|LIelnj)MDeW&@-dc7>nvsX?-G3S`=^Ri| zpA=Qs&2=j0vjBKAem`suIdFQANVgq#SG%!?=bl@#BN`zY!v;dHqF72B6jlb5u6U@s zePL&Dy6HvJ!7>>p#I~gW({dqQn-%I-(BH4qaUyeJXo+hZ6MG59%9JYE1uevU;U$)g zhagIkEj*BWQJ)3PY3WXa#YElWOW3YmBPF7-FG&?O0|922&EodtfS+(36%Bbyf!TOp z9X9(RtF!a0-!?+}kal*RiMClgY~M*ZIW_nKFyT)sO# zyEr<#zrXQ5-<#e&XP*E5D!o5`b?4`&8{_i)TjNJ#!Cap-=%=sWe1Oj$99_)+etdC# a#(lX;U%r(z`PWsw{d1x`(7m^p1Y$bu-+;d>Wpog+I z4b-(=;%*=dvm8((ZE1t8uO2l~=vS72V2OZXxO*T1#*=DNI>dX0Ya`RHv{c`*^>hRm zh$cLFHWu4NaWgw+0g)<2ocZBJGuq9jDJ%!q`P>?^+^ni_HQeE&1~aRvbL6(AeZ^J9 z>!2QO$)}{ljdYqy86kPmqx60;gkX)!Q%o5PCM9TY&f-YH!wum8aZPQNhOAuO0*;xR z*~uro>vIw4;iD#*eR~rSjq-r*wT?zO$q{at-9^2f-6+{|gK{p7>CP)xiz%%gRV`Mw z#@X$Gy!1*UonjP^Mm91uXl>Gp0R6pxwrZ?!M{;dFYGly4`G^ctR-nS{N_nKNN7_j! zRQFE1&Q{M(gV`cg9HBZvMk>If1ChV>>jB>p;J?X03-|0g1GM@pE=P z1s=v@J_>uWUmVW@z*&Yi4m-AM3Z}V+&xUe2Vl8W`b$)WAgA|&+8*$^KR-h?3TZlHo zy=jC&C4d;SqIE<>f7o@1?E+ZwB~m(boQ zl45PIRiYE?2psF-|J!njbOv`NR;MxmJdGY1BcIuf=PFq4);-@Qp*d#^vae);O#U*3Eclt%p`=|M8EvzinQ<_tn==AO1vs^zNtc|Mf(D V{Ez;__(Ah``~5dx{3-s+{|9}iNjCrh literal 905 zcmZ9}yUyEW0D$2=%fGR};DODA*zuVPBs#|Q*owe*ek!+TBOA#3r-ROa@cnT|VGgQa*_>=HeWR-l;@mPyq` zyP!^&kU4Id%Q)leF{g^KI7+}ExU@)mBLge0sBeiwTrFpHVj7%@CE9TBwd!n@d5m~1 zt1)sdq=ODRBR>~*b*iK!G*c(NY5OKyp*D)M&LPcay9>^m?xCvi-C&|8lm@;!BsDAu z%k)rDv7CWzw@q}+vwLl2zStHj;P*-|y7`U^%P$45v0hlOOD}UnqMy;ig&*s~b!(-6B-1niUKeOKxVd z%=B0ZEI;PqwOel5mDY|er8wuOe+{6sbynSLnSWy`3+chyhgQVbvENKyV5=D4L9LoQ@!?v&H5f6mq@n<-u`0g80oX z>eKbVkI(*j^ZOS!`Sbf%zy9&+-@mtu%ELbX_6)iH{N>jVZ@bsOy!?iFI|rX1{s*GX BE@uD$ diff --git a/secrets/panel-ssh-key.age b/secrets/panel-ssh-key.age index 62e8d34599e5ccc121628eb18b139d330ba59012..8b4d49d32c4f72d5bb71c8843c994d5ada512e06 100644 GIT binary patch literal 1381 zcmZY6`;XHE0Kjn`B5}wsM!5h&c080gj`iIh$>FVgbkFPhSobg>UDtJ8w{~0CZ9T$8 z5IBPx4vEAF2`V525?^2rgbS#ML?RD^5)lNI!vI0SQxF5<@8@6e$v0n7kvn8vs@avg zYUm4$n&NJNj*dl6(=2qzIS56;PG`6xL7>N3Z26&>of6_u2~UA2PlS>&hVcV=#B_N< zG?34c@vJDQSuo_Fj9?9tHGdvdX+kT>e7V0?Vg8*%p_4N5IEth_W@BRwX; zc${j3vP>ZmRA4KC#}EQSdi)#_OR}Vg$FLr6*7Ao!Nms?v5JyoK!+JfZ;JnGkGEqyn zg^Wp81GGjpg_2M#rVJm;R{@$rMr%f%(MyVx6`5!yigTTv9EwIz1rcaPsYcmkxa@OR zX%W!_#e}XU6@S7J5ep42-^?HuF4+myZ)7;zbXzGc1=&R_jCs;H9k(KISn!Y5ytG+q zc$@@{`ACrH4HZE`B$x=VYazfJkJQj=Fojpupn{euO5rp$?NCD1bee?IF)3CE2}qPB zxG)9#&;|^oKpCieEKiK43QbJ~Mr%;2#w$&y4*P4c1SGhy#Ht_=N{Q|=Ri}Lh#VaZb z1cXYijK+??~*s4S|oF!{afj9U@IHb!+I;1d=C_ogbx51DOCQ z%H=%E^rR>xDO6(VWZr5KNtkif|MyKx*#ycsBMIAu<@9*k%yF#7rhGe9H^i~0>)ew|)fkh&C%qQnb51S1$QY?oiOI%`fo9dFK zGUJ5mSvxI6%Dt>%*aRySbNMEsF?du0rHBqyde9meNT6H;CLE+!z-39mMFVNNgo5pA zioHQvrz$X@dnqsnv9=LIv5IIl9UUDV&L(SP?oP3l00l;HyQzXs5*|`TAlzqCO0LF4 zZOd%YDFBfi@iR*%Jy^YJS9;rp9s6#?*B$COJYmJNv%A~oU%8C$e1FHWHIaqPmGXk= zDqmi6NZvLx@W#N+=k2QlJbCX(-@-43x8FLxaeHvVVC#vHLE-{Duw~=R7lE@wY*c;M zv-IxVWc!}{PZ{@#JHHHH-aFQXj)z7Twe>H-R(63eUB7>E?Vi=i^`HGYFzesHml3rW z?;pH88|W<2HPB_|erf&h&Tg{IEIinQyRvx<{z_8$iP| z@9y;7UsiWMzW>CSu1`F+_T+nqR_e(S+Z z*;qb~>~C#0zHQ%{8~fZ)w!Le@uCMtWfxWfvv*uL}_%Yn~N!Q$8-|62Pgzm}HhKEw# vO;eUlJ^EMQm}Y7G#Bty2KUeNfj_Vf^vtC$ve%C>*wT*S}PMNjIPhtN7DZl@m literal 1271 zcmZY7`;XHE0KjoILS%v<7@{1+5sjzJxvg8f?TiQA*0r~->)PA8^+fOb*t)H~ty{bG z5ez;EA_NctQ8_M3j}qk5bQfx#3JhP-gJUKI%|=~1#epFt=MF*(donbBGZ zRs$q#uKajcq+a*|F<2jDA*hYpy2}+{le9Gb_Tu_6>G9U|4A`O}KoV)C{1;`MZ#6i6bW`k50 zCHWW`XqpU%@jwg~B;E?UEvgIBaPog`QqBy3q`jVufLIFklOXipOd+}023=5+k-sW^V z?PbJNb5c2)lABe^U1v4FQS~Ltk_SiAnPMr^&=S2M7cTH3W81m4@M>@ab7A-XpX4F* z)S3kcUB{-9!^Ya*hi2OP$G61yeLnH>;weAs?N0K|{#9@M+OhA(4D{5{oNeC>xh~DJ ztz7(dOXr%lt9z#od^YCr2H`8ZM27f;D;iJ!N-o%adX$u!#-|*M# zxBasI@4HU!?HznB_E7B%-hbuHQjgU3jl`c+Q65oj2DMyW3CS|J~cQ!L8B9 zcKx$C0EJ$L==v=nuBd}Pw}sUP=t zwY6rI>PyG(+ctwZdv>g+_0zVYEzb@gc=zS$w?{T%^ViboA6#_r@)ND)weO!A+Zb+y cgw^o9O824H_AjERPuaC+)w*%>AHK2lUt=2Q ssh-ed25519 Jpc21A EuMYAiZX+4A12eu19mIY7u+WYF7NJ9qJosQSVlxR6n8 -bK5CMXAmP23t1p9bgmqoVg4Qcu2qYKGc4t36v8e9eow --> ssh-ed25519 BAs8QA IwRyitDNTzUPzQAUbDNEKjFiF8WPD/OyztOZQeoTEzw -OwiTWvk4NmUgExav0uH6HlThDNU5hsKXfR6KHsFOV3I --> ssh-ed25519 ofQnlg 3TcMbLX1JsQL8+Gqy7IFZwykZr2BspvPCuZT1SHtnQQ -Ci5OeBj2aiC8ut9jIEUMt3qfYH+cJrnVud6AH54Ndn8 --> ssh-ed25519 COspvA 0t9f3Wu3ILv4QTJhwT619y+7XFrryCLbpIZC6aE+qQI -oPQP48F6oO/tkqLZDdjkGtIap7KHiAknbpTNL6/yLaU --> ssh-ed25519 2XrTgw YOZsaYQH9vMH0QqSXGh8GyhRV4MbcBGPFfFaKpo3Ckk -kUShJbADA+6bpx2adxvzlI/0jSM5bIBfZfdSE/7Vm5Y --> ssh-ed25519 awJeHA dF3m0hQWX9c0EezDr56Kt/F4d1Uim7NwvIX6zRws0Eo -pst243yrARODwrnyz8cJAzgDxdPOUsRbs7yPZePABFs --> ssh-ed25519 dgBsjw PUYHcP/tgNnKyvlIoJRcNcW3zabVV1iHXIWfKqgW9xc -tXNjSuVH/g/oN5o75FPkFFpviF7SeFSN9kbqURvgMDE ---- wHgBAN9c6F6T5hFJGo8uH8zqDkQDwx3/jVNKUtQ3arE -Ѣ -@fÃ`m;cUdeSyfvJ?`fja}l xBt2fm08otRl9xŞ \ No newline at end of file +-> ssh-ed25519 Jpc21A NStZFZPTHMhVCnQ5Zkbl39vWztrxfsSXok24/e8H7QQ +JjHP6Cus76PGYYxpbnc2cSZ79zvdD8LISYDPbvXsnqU +-> ssh-ed25519 BAs8QA iocHfHjWlEUsbtibqEbYDceAqURr2vjxuYapqon9hyU +ljL+olZdhWtHeV3uh3pOu22+sY13wPn2vKQDduPSqVs +-> ssh-ed25519 ofQnlg 9YVfMKyoP3+xtzg/ok2I9yf3YdIYoBpUJa/3d2N/8lI +2yUalyj7O3c1YDA2xTb9QNYrFBDHwcyGBX3mydv0ifI +-> ssh-ed25519 COspvA cOSNsZXBbhQ/B49fq3KwcY6siVrTz48doTrta/0d/Hw +jcRtVxA/tVFM9btPAPI6zKk8BwAVlaQlvHC203MpmIQ +-> ssh-ed25519 2XrTgw d3EKtYkxjeJZ8kt3ofIklGmRwUCgTIB/WVVlvxggGRk +IhcrpWN9xFsKRw9iCfYMONPOU7TpTt4kTBNwMDtk7zo +-> ssh-ed25519 awJeHA Ei64e3+FJDM6S8NP+YfEWEg9t72qTXZ0IdZE8dYQPm4 +ggRc86sXin06eXJkLbK8CdJFDa1237WMfSgwNd5ngmM +-> ssh-ed25519 dgBsjw 9etK6tNrFlWVAKTz5U0TitkiGYLKTad3QiRWVpLPrwM +xHLzFnRtcvpVZYZrxWz5q4uadhHrHVlfqjteOWfIccE +-> ssh-ed25519 i+ecmQ SDTnYBLMOaH173B/wqaOifE6a90gSesRqMHmX7/iZFk +kS9tuKnMXCXNUnoZ06DisOOyZHe/mZl4a0JRA+eynE8 +--- C0R5WxDDCqQGxyvFoeNX838az0bjp55PGh//1NFG4LE +YKRej7xE7j-J[F?=-wXMC~)śbC4Ow~8vܞXƒ!5 \ No newline at end of file diff --git a/secrets/wiki-password.age b/secrets/wiki-password.age index d1bf3d9faaa854a901a8d7a7a63d8489e7a5aa2e..140d8fed3a8894c7de0f3aafc7e2577122b03f9c 100644 GIT binary patch literal 1015 zcmZY5yAPvu0KoB!o863wxlMM`qr6(UoJL-yP$;kR+$iss0{!tUx!v4$i;07A)wpQ< z16(vZnK<00t2#M5xaeH}f=|BRFiVz66@h!x6?OHj1{pG-i{*z<+vdw8#z+#SA-Rb# zl!3T&L#V5+UBzTXI|zJM=%XXuyLzY9enhs@rLA%2s;R@O@8!CYcfu zqf@ImY%hmUJrb-gm@FeSUG%82OiLLIWNN3`)Q@LzEku=v%e7yGn|(VSTV;&bxkWa+ zctj%Aft&au3vV^RS{Kurl3b#$5;%^F4W@1zbQ(t0<--g{3~|WsGe6s#&IVn^ z$cESw@LJdJ{-efeZ8I=XRBq5f;C8v2-l{%Gypb!{yJ*x5FQphl=W@kjnH8s^;{q34 zkCEdfbnj_6>7BjmhaND*ietl!4sCzV^kPGt5cPj2F%KNG5z6E$D{&p@T?*S|hY<1> znN&bd%C*gSOaQR=>v+owV=~iN;q65=>d;#fMff^_ns33E9UpCV;MtG$XecbYIIY&(*Bo`F(WE z=KH#dIS_Qsq){b~W3eAzQdP%?@llI2wmpxK$CJq}Fg-yl_(Hv{vlGnZ!o>#Xz-`3t zCgL3hD{X(etBX^Tr_+uvT>{%1JF~vJ{Eb?7O_?69);7qwbStmRJmuKzQ7hmix*8B3 zq@(WCPHKQ_dT)!nw?ZVlkF85_z7kPKZ+F=7hKKu^S&&T*_H2CPH^9TH(@b;yRMG@& zTyM?+6X#xVRV#AQ8U63%atXO-MRKYkyVjt|Lbt0V6A`)D71@E7CC9{X^$K0%o_wtS3vU`u>Hq)$ literal 905 zcmZY4yUyEG003ao0g0@XlBr|$v9(>M?7v1~6z{!URN3Nw@GyF}BRr*Q=4 zb7o0w$`CM+upL>C1$FMn=Y7;k#_Yj|RV6is-K4b_-`q93@K ziaqi z=u=zW-D_wtWAm(xc5>wIHNk933<(s+DYd|YrDVL#?hzf>RqPyQHKZy%%Xh)R;Tn4$LH0X+~SjefCh;tpCYfxZ3P==lY+0WLK%_2Msom!vB zn#x7`^*W(e+ZA4%`6|e1;}Rtv$e65``}uLT? z7;`&55D^4#rt3UM*Plv^24i7|NiOQ zr;7UM`RC8%x4uMgJl#G1^<(f^OaA%%@kcM;bL3awee>5pZ|h$_`}fg@=F9JY{Q1rQ E09ZdQuK)l5 diff --git a/secrets/wiki-smtp-password.age b/secrets/wiki-smtp-password.age index fd598eab14e1873b1a1421572bf47b30a3bde1f0..b788aac958ed8ba2f6909fe2bf3451b06b0e75e5 100644 GIT binary patch literal 1036 zcmZY7z02bS0LO84%qTdVw`38;(93(942nsbCTa81=CuhT=B;VonzyD&iksr(>OUYj zImkH*BI@8G+#sAd$Rp?~hd11I=rcd}5B$D-;O8gtEIx(pRG-u8^q^`J_<{nncfqbZ z&f*9oNt6cHb%>!1*p~fnUbIC(jVzLQWYyn%GMjw<`B;jb%D&$ADG{2ODC&@_7Fk5rHJykgaEF z!*G&&*qkG*>KY!BH7j?4Y1PR)QgXa}kwsx+OymIZ-T=d=p%x{C8P(DcnpAE_>Taz% z>`p}j9xt+(@4e!HCYa^087$;jmlgU&sbXK~oN=2C(X~vv3;~AK5bSA*=uO0npgs++ z>Yzdp!)iUb&?(j;dC)cX~rSB3QX#C&4}p9GlSty)UFgmCh{%>+agHeQPEI=&hM> z!Zu+{IGU|qyB!1L;gS@VOLBefl3Ef2#~GqLX@FODy|7T{cWyKeC9ek#<%pqvoE zAv?!QxC*sB+t?avFxtVmcjq!)ap_bWb3^0SYe!qL)?Hha+>Q-kDKkkv_k~p?X}-iA zuXr+*vMWdBxkM7>R59Fg&g`#u@E~&7CD1wTdGF$4i0pq|S1ROIg#bprK^+5A4xG{<=q zA{e%y0I>{^1r4x$zUq0L)p6|$F$cW@I>CWrbU9r8Z?x1K1SHEwL!Uc%(eRAUi*4c-NzBR%G$EZdA2O zR`6jQ8D|!}u<_^;bS2|GAT=hmU{y;EP|*Z~b_D@2fZedddCtn?J(n j?O*?U`PuXP=*ORbBz^YC|Ms=NfBx?2_y1NOcANhJzhgA%