From 77d5c64ff7faeec90e06dc17b9bd4aac4db65db4 Mon Sep 17 00:00:00 2001 From: Charlotte Van Petegem Date: Sun, 29 Jan 2023 13:12:41 +0100 Subject: [PATCH] Setup matrix-hookshot --- modules/services/matrix/default.nix | 46 ++++++++++++++++++ secrets.nix | 3 ++ .../services/matrix-hookshot/config.yml.age | Bin 0 -> 1627 bytes .../services/matrix-hookshot/passkey.pem.age | Bin 0 -> 3842 bytes .../matrix-hookshot/registration.yml.age | Bin 0 -> 1111 bytes 5 files changed, 49 insertions(+) create mode 100644 secrets/files/services/matrix-hookshot/config.yml.age create mode 100644 secrets/files/services/matrix-hookshot/passkey.pem.age create mode 100644 secrets/files/services/matrix-hookshot/registration.yml.age diff --git a/modules/services/matrix/default.nix b/modules/services/matrix/default.nix index f63852ae..26bf770b 100644 --- a/modules/services/matrix/default.nix +++ b/modules/services/matrix/default.nix @@ -7,6 +7,7 @@ }; config = lib.mkIf config.chvp.services.matrix.enable { + chvp.base.zfs.systemLinks = [{ path = "/var/lib/matrix-hookshot"; type = "data"; }]; chvp.services.nginx.hosts = [{ fqdn = "matrix.vanpetegem.me"; options.locations = { @@ -24,6 +25,12 @@ proxy_set_header X-Forwarded-Ssl on; ''; }; + "/_hookshot" = { + proxyPass = "http://127.0.0.1:9000"; + extraConfig = '' + proxy_set_header X-Forwarded-Ssl on; + ''; + }; }; }]; @@ -53,6 +60,7 @@ app_service_config_files = [ config.age.secrets."files/services/matrix-synapse/whatsapp-registration.yml".path config.age.secrets."files/services/matrix-synapse/slack-registration.yml".path + config.age.secrets."files/services/matrix-synapse/hookshot-registration.yml".path ]; }; extraConfigFiles = [ @@ -117,6 +125,18 @@ Group = "mautrix_whatsapp"; }; }; + matrix-hookshot = { + description = "Matrix <-> Services bridge"; + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" "matrix-synapse.service" ]; + requires = [ "matrix-synapse.service" ]; + script = "${pkgs.matrix-hookshot}/bin/matrix-hookshot ${config.age.secrets."files/services/matrix-hookshot/config.yml".path} ${config.age.secrets."files/services/matrix-hookshot/registration.yml".path}"; + serviceConfig = { + User = "matrix_hookshot"; + Group = "matrix_hookshot"; + WorkingDirectory = "/var/lib/matrix-hookshot"; + }; + }; }; systemd.tmpfiles.rules = [ "d /var/log/mautrix-whatsapp - mautrix_whatsapp mautrix_whatsapp" @@ -134,6 +154,12 @@ group = "mautrix_whatsapp"; isSystemUser = true; }; + matrix_hookshot = { + uid = 979; + group = "matrix_hookshot"; + home = "/var/lib/matrix-hookshot"; + isSystemUser = true; + }; }; groups = { matrix_appservice_slack = { @@ -142,6 +168,9 @@ mautrix_whatsapp = { gid = 997; }; + matrix_hookshot = { + gid = 979; + }; }; }; @@ -153,6 +182,19 @@ file = ../../../secrets/files/services/matrix-appservice-slack/registration.yml.age; owner = "matrix_appservice_slack"; }; + age.secrets."files/services/matrix-hookshot/config.yml" = { + file = ../../../secrets/files/services/matrix-hookshot/config.yml.age; + owner = "matrix_hookshot"; + }; + age.secrets."files/services/matrix-hookshot/registration.yml" = { + file = ../../../secrets/files/services/matrix-hookshot/registration.yml.age; + owner = "matrix_hookshot"; + }; + age.secrets."files/services/matrix-hookshot/passkey.pem" = { + path = "/var/lib/matrix-hookshot/passkey.pem"; + file = ../../../secrets/files/services/matrix-hookshot/passkey.pem.age; + owner = "matrix_hookshot"; + }; age.secrets."files/services/mautrix-whatsapp/config.yml" = { file = ../../../secrets/files/services/mautrix-whatsapp/config.yml.age; owner = "mautrix_whatsapp"; @@ -173,5 +215,9 @@ file = ../../../secrets/files/services/mautrix-whatsapp/registration.yml.age; owner = "matrix-synapse"; }; + age.secrets."files/services/matrix-synapse/hookshot-registration.yml" = { + file = ../../../secrets/files/services/matrix-hookshot/registration.yml.age; + owner = "matrix-synapse"; + }; }; } diff --git a/secrets.nix b/secrets.nix index 0632562d..c1adc441 100644 --- a/secrets.nix +++ b/secrets.nix @@ -84,6 +84,9 @@ in "secrets/files/services/matrix-appservice-slack/config.yml.age".publicKeys = [ lasting-integrity ] ++ users; "secrets/files/services/matrix-appservice-slack/registration.yml.age".publicKeys = [ lasting-integrity ] ++ users; + "secrets/files/services/matrix-hookshot/config.yml.age".publicKeys = [ lasting-integrity ] ++ users; + "secrets/files/services/matrix-hookshot/passkey.pem.age".publicKeys = [ lasting-integrity ] ++ users; + "secrets/files/services/matrix-hookshot/registration.yml.age".publicKeys = [ lasting-integrity ] ++ users; "secrets/files/services/matrix-synapse/config.yml.age".publicKeys = [ lasting-integrity ] ++ users; "secrets/files/services/mautrix-whatsapp/config.yml.age".publicKeys = [ lasting-integrity ] ++ users; "secrets/files/services/mautrix-whatsapp/registration.yml.age".publicKeys = [ lasting-integrity ] ++ users; diff --git a/secrets/files/services/matrix-hookshot/config.yml.age b/secrets/files/services/matrix-hookshot/config.yml.age new file mode 100644 index 0000000000000000000000000000000000000000..cba8fac9529f47f0500f6628085671944c7dcc2b GIT binary patch literal 1627 zcmYdHPt{G$OD?J`D9Oyv)5|YP*Do{V(zR14F3!+RO))YxHMCU7@OE@73si76PpmA> zib%;#bj(ZhuPo6oa0|^(a*4{Ua`f^oipug!bh9j}$n>j7&*$<>a!xBw40W~43=7V1 z^DfPH%nwX-$?!CbN(s`=$}y`-cPS0_eB3;3$I4UZ`&A=}xAjLyJ z+|k9PG$W-XPd~||D$2_@#mm&!AR<55I8r;H%8|>_)3?en$r>7EFImp%ET0tus{Xl6m364|KdvLB3JW@B=4l$5HmxU z+{`TP%v58iLZ3kM@Pg!I|A^e=@^Y?p=b$3@{BlD_Lq}gvgVYKq*Gl(f?bPJTr2HVG z?BZbKAeY3%l#JA@B43bgicW@}VY=x>sfop@3Yh^4Eo zhK}AARY7i5m7d04!3B9~m6@p}9tLLRMy>@ZdBOVSLHel``Kbn6jT09uHE?BSeL7`g z7sTvw&8gB?Uigel!Q~V8eeRasKlM7}YxT|3egZchNOw)oYBxPr$NhohYDG?^htzqM z5QAN_mhUuizRB z{qVO<$eO$I<(dmk?|z;-=2Lf-$@S5CYx~OMY8i|(-b&e2lyaHgo1D0DWn-jf%%0Y8 zt5-k6V_WwwwO8626x*J!DcgKWtXuKPJ&iE4r9P_y*D~vC2XK0aiI|*r{a2&-!$0(1 zfNS&ZfN-y7ZG%|#?Oa(u4ZeK~<6l(c@@iG<@eDt<>vtn~_KBOzrytAscm3_d_cymQ zwp?h?De*PG>yzgDI&WuTS>)9P-&TF(6L)xjTGst@RKfne&+MaD=kI1exPfu;;nz2G zMZ(|A$&}suE@QWN{cPRE88H?iX0A>9EEJ|+H4`y;{*7g~_|l^`U;nV?iE?MGaIE3q z`0%yq#}e)RTfZ6|ITsY#{lDVf$MlC+i!&#GZ+d&+NtH+ImpLr!jd!rg-uBu1J#5_)=WEe#&yu@qS;|G$x7to!Pg+ar6Piv% z?EWOV+e~O}<$?|?_Ru?9wa-g`eT%V_{ie)6_uFe# zf#oi2n)Xpj58Phyn@!>*>o%-pka0BCIyDi$ik(Ggr*+I%4}T-2C=B({@{Z$3LI7dmY6&66Myoe`qN>QPRtr zTJ|RY6z|luyewlI=N0)~OsiI&-M1h~GUmPb^Cd<{Lj2B1UKPF3a70+|hEbluqIK`@ z-@X}Ts`CH5LwPIXnR8v&@9o}U+f#e(mHJGl^UhUgzIjJan6-O(@MPE8xCtsIE>fa~ zGr}^Tu_>%H@9vIzZ>E30B+G)yS~TEAp;g)@=IHe2&kE{R&G@xh^s@97z2;?%j#a<^ zemySomgQHexIpqRFK6B)`K7x=R?ZZdFFOSy^skEn@GJ6nPsRz|PqE%?3s zmPWeiL7yX~@y8n!t-h?-?^ovHDx9_B=43mkBiuE2^~+z>Nmw{pzrUn0Z?o&)^vPEr zX?X>d+W*^qw11sQc-;K^k6XK)yzc^){GH*%Z zG$H9i<0C~kR`{0r-EZ2ZWuukD&@J=zgpABNAAj?Y-SZY4m>Fw*Qy8p_nEC9Jr B)y@C_ literal 0 HcmV?d00001 diff --git a/secrets/files/services/matrix-hookshot/passkey.pem.age b/secrets/files/services/matrix-hookshot/passkey.pem.age new file mode 100644 index 0000000000000000000000000000000000000000..f91d042c70349e26d3e9186160ff3ac5c16f4ee9 GIT binary patch literal 3842 zcmYdHPt{G$OD?J`D9Oyv)5|YP*Do{V(zR14F3!+RO))YxHMCU7@OE@73sfj7DG$xh ztuXbdDDw93a5Rq04ffa0H%TsybPRSi&ChjAH_;C=%E;HwHQ{oM3@LDR3Q5eYO7!+h zGb!`R^DHiM@^kbpPYSLmO)APXFe^_eB3;4JE2*NW!p|bj(#PM( z#mC4c)Wg6#z$`L9GB+y1J=e!D$t*R)Fe1!7IFhT>Agsd8-6JI>qo_R1JSn@%yDGHI zFrwTq#m_Im)5tv6JTEcPtfJg9*Av~g%ET0tut0^7?Beh&?{X)%q++*#ppeXpECWM7 zY-f`)*FY}Ig2Do0FGG{C;K;o6lth!tq+I<}Zx7!H)2t$G zXMe-Mlx(+DGapY!C$Mey=DO)csfop@3Z-$?e(?&L<^B~ladm}U;T6dxNdX0xm6aZm zkrl;0#@U&r=A}->VXnT8Ic65wCItmyeg(ybKB>kbNs;LmCWRRm;bq?0W#oS1GT@x!Q}ef? zfZO@i!;A5jyJx!W=FjNf_$)VM^`@VzX9&r=)*Efi{PX>P#lr=xA1W%&{c7~o)|;{Z znBIo?JKX>7@O*slp(oh%#k73woTD-a--dTbZk_FUJ~49dvM%eYYn*n19L})@LHhLp zMd9pz?%NtREnIa#dG(Akz4M7>95c*2#NvZGYyODyh~DjVnsLu{%S@38Q_m#rQ0DYA zK2foG>n(wbQvahb(-v}Yd+zcNwHCCJs*$}})3=c2%*mY{Rb8LuS90I8Tx$J5yQ5BX zZQBYj4-cO31r_%zI`=H?p+tBmr$jU|HT5nw9=N_&tog}XDX}inwmnQMm zMjZO8L46r_+7s8Ds<`#w_Vm+&mnJ71d8iQA`uXam^%Af7yB2IwOkZ!eaZ}Kft)`XJ z&C~yDyBgNb-?jI7z(gi9#>aas?H;5v-FcR?iCgB~uls#PQrG13^X+ZDHqZOP`s!Kx zLU+j$k*&Txk%fB>Dt>6zaLAcZderLWtxo5ezxO9__H%Ey7r#2G?0I9G%Rz4Wi66by zO#bV6J*>5N5I=emWl3nWKx`hWNq=epmdRiN_ z_1Yf30*n0O#)jKG4XlsF%yoNgl^GLvGWhl@p1M|iSu#dqX?*FMtyU%NZ~8Ut4QEQG ziE4{fe?0Qx|K6Fsu9vrEWdBzdHd%DBLg;sMcS&T^m*Q08W^Qh4@!NX$`m+`!zBkpn z5O|m6UE@I;k&H|?&xvw+kF@?y-zU0z3ZG%tne?xR&VLZ@VGgtL|4?)9s~qdJNtVkN zY`U_)W#;4LNv>-{eOpWSpV>CQK|Lbr_o1Z4yAS&(@7WpU!g_3D_o^RbeXD%_>yL-!m-3%q!XuS5MQUN8x69fu37h6_+484!e&fbz4^y-h#JI&S zW=>uD&AYXCa@Efl&HMEdRUIC0F=B3v`SdlDUFNT#lF4@gPtOACq+>dR9pM0i8WZ{p!4=eN%-Qhu9$GE)Bj{@cx)zbxpR)OI4Ujjg6+ z>o0acOVR%o4@FpZ{Zi*JQa#X{y6`6BOzRMbwvdBQ?L!VNPrT@PPdaI5hJj*=$gLL7 zKm5Ac%xs5_|2VxxVM6@Yhs#6qC+^H+p7uOiShU})M>nKBTp)x^(0h`MV{lG{ch0t+ zql_0>g=bBjnXT?#R`~6nljJh*vlX5bB6TN*Z0;ZzcS)A;;j z+K%t~OlCowa*a66=gDfd1(a)Lvao#eFZ+`CWp~!El;>~P$>^^?fOEU zrE~NC&vK=+Uvz#t{PJgokZJc>+eL>r#Bdh=eJkfWd9sY6)4#>i9F})BP0q`D{_xc~ z!G9C}{@=VoeTmkmy7IZszg%yxJL75_UiFuYxAc&<0N?$G|Ml!rZLKO zZP20P4E`Lwrx3g>;9_`OMjjaT*-0u#{as#Sx^4$t3Nf>+r5G<+kV|aiyKG(Pw0HcdEv;i z%;iO?n-)~`NERiZAa~v9Hb6lG_kyB#bf6dPu!X7`DdpyaGYq83e z)B6`2=HP6G{B+#!(gV-%j;<25rP4F@+}_D8==y=j z*66^+bNf4z{m-VvE}6Xip}`6OF8$fD^sNs#kDrkLYtSvcTlwsF-h9>@ zZ_L)KEHc}p?)Elt*?Yg!CxUpa)Sh2lH@RHv_BHnSi+3(7_1kUAwd8xX-{wq{j5YTG z=ai*Oc3z*zAjXogr|RE2z3}@2-HnB71Lb(LDn1rh|3782-Y)8myxV!#9nD%=aa`Gd z*lv_B;N*UB0D|E}XV z7P|fQnD`t+{>`_3T-eZU$;gp#_!f(W_rVjvjT=3-Yn=%do)~4>WPj%0X`VYz=LqW* z$JI-zK3aP?B2s_%K7&1*y>@d)me$zH%+z}mS+A8Cyj1k=x}QpOjih7dAL2Ogd75uV zB)4l!@8hdtck~71$<>GdupKIfOToe0?}*co@vSeEtE zI~IdwcdC@s+5KLxU;O0vMeAvNb7#0|Uud}TZDz^$nFl-HdRI674#|GWuxt7>JdNJOdtCM zbID?1J}~lr*{BzE2MYob&vx`ef!x)u$g77&==^ii}q*o#xQ%RCxB5!r2wxt+To( z7Va%D*=jlMyu;*)t7Ys&XAcqn3Fx@MwM&95`db}TkZO01vBI;-*D`_5e?Yp`t9F?I)m`qx)p3iQY_&rLh^f#<}VTWvc@`3(8n`+)?yq`%~xnOG)NkG@SleAZOLK=Wg*C zuTFJW^c22Z*1oa9NuV`j!AiNViQlDpSW>N()@DzW;d>RB?)_dYTBPK=_zsIFM!&a5 zd~LX%XRsqR_P(`7QM*#S{pLTjZwt7tykKPVOO7dgi7nTrw!JgI@m@I^TqEk8UJ#S< zf5jWsz2|mqDEHX;DC5s`#)C7~X`fuuzGZEzQG>=5My-Pni~^>w4lL9-@ac<=d=UF3 zsaZjD@)qeoadoyZlKSK9x4UQV)V+^we8t5pvJ-4~{8N7`Upw!nc>BHHm@P-NvM+lD zK2o~L@`F9CJZi!16WJ-!HQS4RU+rx2I2SohWD#R|^e6VWLi{SaFOQZ+eVmYVe4E3R z#M-J)3!hA^pI{h$Dy||iepQX;$K{9D7Vfbv^!RggEkobC$5!`F^GP_pwTX%(X|aO}zd1eB$e#uLaGv zf9CQ^A5A~?KfC1^#|cAM$0+VolcS~y8wAKK3@TvAcq*ym*CQmCQZTLVX=6}#1ownh z+!ZUkHZA#7bt5T8U!=IU>1?`9-j|c1ALeY@$ZYe+y=@<(k%8&w53Fj_SbSGp+i|g> z|JS5UReMg2c;B**%um1H;5vK0v8?d(`*UrgZXXzxzAW_+7tO!CeZkx&#p^9wK7QI+ z_*7-F=^w|*^JJ2@*sdyzF}zV?e0N*Yb=SJ8;|qO`Hd($rw!-Rd?Jwh+CAKraEf%P< z?!O$LJ=0EY`G%T8My6zo6R&T*nffJa&eziZvxfuaoTsxhC0*CbJ2hzrtFVsBwg(69 z_jNEIC^Ql(%5y&}H`l}XeeFq(^Nb8>8&7$d?NKtb+s(Q$PY=saEhrE0$WON@(k`sjc15?X*s>_eB3&UTyCg5)HOe#9P2bYp zF{I2rDBQ^_tDvY@J1|Py)UndVBq$&`%D~GxyO=B7(<~yVJ%ZN17;>yIJ(8OTx ztRR=NoUmNe4E@X^!_4riP%}fvkZdkXXJ>DN2=hokuWWOFk8JO(d{grfqu_K?b3=o) z{M^8z0^dk8eGlIv$9#}&n!W}Bj=JeZsfop@3gtC{0pq@`TouoUZpODr78MpmO0EQ~ z``MRv{a=59O(QAfzx~{)Q+hw|NWVLIN8X(1b*Il~q{XD|UL}(GH!ABz$ti2&uOFVg zwyBr0`{A+SYt(GT)4S@~CK#kfWWGM~*c9I>lr6DdV=;k4ds_6hw(W1OY~YjK671>b z{o45yOHYxt;xkr5O_i1n-yIuT3)UPxsJiI+LzbC)Zr$pC-?V$Z+4B?b<+^>33iey6 zZ<^O~p~B>5eOTGtSpqu_<~7QlyXB{LfRQ)rk0MWS^4!**Dv>V`kz*N zFK4Q1?oJQRnx?hT%wfSqjY|$XOE=3%FZ_L=Xu(B;<9AmkPp##OnY!ww^HbL95X=23 zG8SqXns+M|pBuioKaGF6rf*zcD~sXovK}$d_j0W}f4hfB*0t*!PDqr|&ztZ++VaWa zUn`y#x_x_F#rrmShx1`ZRhb#*FD*{*T2y)GpuqX93Om}|wQr=c6fF_q%{zLj`S=Y* zqfa^oVQ~j$um8Eq%Xzlio_EQdDVu_3F&3+z{5VN!p77mCza7JDa}A`GZ@gA?V#qmj z+ z+)^-K?fr+VSKBu`-aWng0MC*4{3$vvj&J@cfxZ?6uA>ROyA1OTUR+4uke literal 0 HcmV?d00001