From 25391e326135a26baceaacb108a4685d0283f9c4 Mon Sep 17 00:00:00 2001
From: Amanda Graven <amanda@graven.dev>
Date: Sat, 5 Apr 2025 16:05:09 +0200
Subject: [PATCH] Add Out of Your Element

---
 .gitmodules                                   |   3 +++
 config/hosts/grondahl/configuration.nix       |   1 +
 .../grondahl/data/secrets/ooye_client_secret  | Bin 0 -> 55 bytes
 config/hosts/grondahl/data/secrets/ooye_token | Bin 0 -> 95 bytes
 .../hosts/grondahl/data/secrets/secrets.nix   | Bin 1259 -> 1403 bytes
 config/hosts/grondahl/services/nginx.nix      |   5 +++++
 config/hosts/grondahl/services/ooye           |   1 +
 config/hosts/grondahl/services/ooye.nix       |  16 ++++++++++++++++
 8 files changed, 26 insertions(+)
 create mode 100644 .gitmodules
 create mode 100644 config/hosts/grondahl/data/secrets/ooye_client_secret
 create mode 100644 config/hosts/grondahl/data/secrets/ooye_token
 create mode 160000 config/hosts/grondahl/services/ooye
 create mode 100644 config/hosts/grondahl/services/ooye.nix

diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..b988793
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "config/hosts/grondahl/services/ooye"]
+	path = config/hosts/grondahl/services/ooye
+	url = https://cgit.rory.gay/nix/OOYE-module.git
diff --git a/config/hosts/grondahl/configuration.nix b/config/hosts/grondahl/configuration.nix
index a7ac181..a4bb6cf 100644
--- a/config/hosts/grondahl/configuration.nix
+++ b/config/hosts/grondahl/configuration.nix
@@ -16,6 +16,7 @@
     ./services/nginx.nix
     ./services/synapse.nix
     ./services/postgres.nix
+    ./services/ooye.nix
 		#./services/mail.nix
 		#./services/containers.nix
 		#./services/redis.nix
diff --git a/config/hosts/grondahl/data/secrets/ooye_client_secret b/config/hosts/grondahl/data/secrets/ooye_client_secret
new file mode 100644
index 0000000000000000000000000000000000000000..719fb6ee2bebc3e59a11b31ce0daddb3f9451225
GIT binary patch
literal 55
zcmV-70LcFUM@dveQdv+`01E?mXvyVq5q%XEx#jmN=B8x(q2}#j;EnS8K?<Z~wVp2J
NbBs>&m~9vp;}n>s8a4m`

literal 0
HcmV?d00001

diff --git a/config/hosts/grondahl/data/secrets/ooye_token b/config/hosts/grondahl/data/secrets/ooye_token
new file mode 100644
index 0000000000000000000000000000000000000000..99de1112cf2d08f6b8b4bd35be3e97aee5595b71
GIT binary patch
literal 95
zcmV-l0HFT>M@dveQdv+`0N!{yA_{58v%giV@<z6d{t6tHi?U_iX!WVKZ<J512Z>m(
z`Da>qYlxgh<nS?hq74?1k+u^Y|1%KI5=f?<=vPA{)e7v;>xa=il2Ydb?J)NnN0}{1
BEph+=

literal 0
HcmV?d00001

diff --git a/config/hosts/grondahl/data/secrets/secrets.nix b/config/hosts/grondahl/data/secrets/secrets.nix
index 1c37a019a94c1abab2e91d4a5b12b3aaee580246..88d71554f78cfd88e9f15d7381aeeac7e26fb5d9 100644
GIT binary patch
literal 1403
zcmV->1%&zlM@dveQdv+`0N=o-NyFd|?;k+gaDz6hXg*79yboAX@!K#J0PS~tkq3OP
z8|j?X#++YZNGeTb&tZkx%M~6u<*KXoPE{l3g}`~GYVn%gI*%#RP~X;nI?&#J>)p#Q
z^#I3fY1QtcRE<F%QYDTn0n)}FO;UGSwH{`1WWUNveej~6x9}+%!Z#&uqG8q4i2|#q
z3E)CkzD1fP?d3$i$%j&z?+-O&5SREEwq6SoFIJ63xA*g)6a5ov!TNG49Hrkifol(+
z*vG~;63Wk+2^P}~fyIphvxl#yPHL$<KJxlQq!d$S;_S=W`a|cXscs3bBf?iq#RSdw
zIK+!h*c{MtYq^ePF&o;YNt_>0ixTUDv_5e6y?RL}sv+uE(+_=iVbSfdun#RS&<zFu
zGz88yq7-KTaXShKMQEb|a-IGV{%k76We0CTXR*}TFx`U8eXn|Z@@<PjuzL{x?g<(9
zPfjf%>?=CJZj8hz_K3d8*iOEK-az8@k9eGkZ(0pEgQ=9CNIlqxN2@t>UPETsZXHx*
zB%V)yXAH-0n)tln;p@_-H9b83o&YKKlwfY}S`(1PM%O4^=-2pfJ?O=V7L}RPH8VRv
z@%4r(dJ(L<g44up`S_?WYA!|vr6wnjKk&mj$ibydwvvJiTy>gj9cxu09?C$3cFBd)
zs@o$}*;CfrPfh!zvMGb=TDs?OMg|^u)J$j$LYuEM(iX$^dYdMRGKeho)!aNi(-P+w
zzw5?*l?bEPb#ao$oY)flIZ_ThI)KKm<qlQ#N8)O3B$yy|#um^eU+^vR5={ntwx4h2
z_av?*>>A&Cm|=33xI@UZEbT*$4DCSAv^t$01JUFkX9yw?3@F^WzwfryJ@t`lbpHOk
zh!#MGd_dxskjFBKc`Cq~xKoxi{EqVu3_?j4!*s-KQrW1vBj7)vEvO+ie7tsRM+;sL
z$eBr4V_MvpyLou2`E!qA^T<5$d>`)Yk@)3nz}T|1@UfyDq;+8cFFKj#E3~?lK<gQR
zQ~%YO5B1EJPT{wGVv_T|C-S0CZ9$5Yzk{D7>@kXy#3Iw&e7ADd4IAH{TuB~@EYha4
zRwrm=az&0(NMNjV!B_ts)9obk*i(Us3<)~-2qDGgUy?akyP4=-ace8ZInEGG_|+(M
z<j_hKa7$Gb$!!*oN2t(9czGAVG#`w7!jI^O5ma|W^`=gFL6wpSCTAF@4deSD?zrGd
zfN&2pwDK>&F4kMjx~L#w9Ic0X#$7OsvF_eVu0X`AU2BhXB*xPa1!J(l8<-&BfnJAp
z$t2){3?O1u7%A`UWMLsQH$tc5NEnvy1en2!&uFh)5_O5&P`;;^xelCn1Zc0nY7GpO
zCgH!f?u$r|_8sG-zbvZ%Lyl9rAL~kvb*lS1#gtg6XaftMwQ~uT)TM%N1m}IHk2|bs
zE~hWKOju}0#uvr042}a^#Rb*6S<bQgo_Ifj;C;oWrNY%YPDot8^8dYxeVE!MFx7LY
z1&1NWmPPT1+!(9gR<rp801EL(-R4r?mp*mTM5onyjd59fk&ka3+1rJhv@+;@l|I1U
zUKcRnIgDdGz=Db?M#0%dQnggy+v-n`AHO7d=SA0vM}G;Az*BmFO_iUmwYr<9jhfUT
z(P@qUycfmf7^v{+Fxy(;lhQiC95ri5`dVs2(h>*zu#{r;)Pldv|FqJ7YtS?%n5uAl
z(2pV4ITmH^+rB#Go7)QOE&_xDFaO2`b>#^xHnRl>M@NDLIXEkW0HfSjnPV><0eC$s
z6W=1NwK6R5_R_Bdt@(cL#}yP<ruI>sr!fyH_o8@5%0?LdfB&m4aD%8H%y%Jq2bvA$
Jjo#_QDvVqNzgPeO

literal 1259
zcmV<H1Qh!KM@dveQdv+`0LO5n=1-te-adZlwicz}ZZ}?pkVcK!)nl5)7H&(u!Qb1O
zZrPGbR}WqLx)6`XW4_$reOtM;$=Gw>*Nk1`vKjzm8peLXFk69z%B;n_9rppoq!Zfg
zV8rnXicF$5d)dj0-;B0OA#)booW=ofdEEP9buDMAa~dO71GW=GQ(XJew04na(ftfs
zNPaO?56`i-ye4o<Yx-8_hfCvY{swPEl$Ztw<<2@%wFuQ2EJG#hr*z&{*NQB3%71nq
zVa9=yd1nH=V=BKfz=@PEE#<ScaB_<9E*KAju#{|%nk`5v`vV)Jf*G6L`lf~+PhMj1
zniy&kiTJxgPiMFe)CHLw$q2bOCUJMF=@S~>*lKh7S2%YhFej1+^VSA{jp_H}Fa)H=
zn{bim=m&5{PW}iQ&|s$??vmA(xZAKv-tLC7bM6sgO`%On^zT&FAZ>{7n@HYFWj}RV
zgwp7M6A9fpJSW5+`&g&x2EdOnlMB%6`DQl~YK7?nG4vYC+)aw17aSn4Y_D+kwICKb
zd9a2J>=Tl5Cf-CL9|aA^0hy71R85#SFw$$-&cu11N)<FmzqG1I3A&{$Q%6nOg(}BV
zuDd0m-Y^}39ThG2{I<@mYgjHl7-ZiKwL-6k;$G+}vi&42-+$eH)}G||!uEUxEF3)l
zZTyfzdT@e)?(@Sxaf})bmW(mA75h@elUPdx>l&Ot+?7fnLSd3Rp!CE+x6be^GhDo-
z2tN7Pc?@}l4va?E1{0+$8Hl^TD-8~il&3zUdDnddzPAC3QF#&zlb2zZ319?av}>c8
zY59O}n!2rl_JXkO_H#fC&WGo;eH?(@AgCKFdRj4Kc{Fcoo`&KD=K7%eUJ47<hgXk}
z)#-MLaKw|gsL66~Y0Js$OU<&vr5HOp?CbFTP6q2g=1wUKQ$ky-uwo`fe56>>y8{IX
zR{M~5(*@H<$b+&>C^tQ}eQ`dw{NnTH1A)D8<XeyxnMCVhn)wYaN&K|y#^(tDbBD&!
zrDg4m<-80YA)-g?l@1Y8x_$$Y(`5*-5k4wP!$1x*%X=+H4KZrV@zFc(__!UY8m|&!
z4((E)q~H>Tqy>toUypH{RBh|{b&fpR27!N1YwgPMO4k>?aIaL$0J1Pw$#`dngDS=B
zl`4C|rhm6^XK&AMZ2Dygw?j1SGvVJ(vCO+bj?N`rBgH-xyicJKmq@(Ic<-~Kfy-V-
zmzX7S1bFm?wb<2=ZJ{USa!lRaG`lK)_SBvd9E|k0%VET$Hxd*<*v(ZL+1(b71AM+g
zN9>88Zs2}pO-0mS{kBkY1T<NTFQN-|97fS)O%W=qslJqZgp-%L%Wn<Rt(SG%5pc(P
z(l^{^0u09?$(%eSBlGCFVs{QgN+CSbbu^i5lbAqcNZFHf6T~S6pm4Cr-1N`6xG?ZR
z@2gSp>OH|!Aq{|mLta4NoyKp-gHhBnVI?}%6izA39LSeEsLoCzO^U2>R2wE*Z<b*9
zH4Tj;!6P>Bk(ryL5S>5fu7%}07^{s2jo9n~BQQ+}St&>S9dLNN)T6s32bW#=|Hb?$
ze14Kylf{_UMU7gk*F|F~#O%dK%xlxvU_ud8trhYIU=zjen7q5TyVE(V{8b#&tedu)
Viv3}|H>Fj*IBamsZ9|7kju|Y{ZO8xs

diff --git a/config/hosts/grondahl/services/nginx.nix b/config/hosts/grondahl/services/nginx.nix
index 2195ebe..7b5d306 100644
--- a/config/hosts/grondahl/services/nginx.nix
+++ b/config/hosts/grondahl/services/nginx.nix
@@ -1,6 +1,11 @@
 {
   imports = [ ../../../common/services/nginx.nix ];
   services.nginx.virtualHosts = {
+    "ooye.anarkafem.dev" = {
+      enableACME = true;
+      forceSSL = true;
+      locations."/".proxyPass = "http://127.0.0.1:6693/";
+    };
     "anarkafem.dev" = {
       enableACME = true;
       forceSSL = true;
diff --git a/config/hosts/grondahl/services/ooye b/config/hosts/grondahl/services/ooye
new file mode 160000
index 0000000..11cc65e
--- /dev/null
+++ b/config/hosts/grondahl/services/ooye
@@ -0,0 +1 @@
+Subproject commit 11cc65efa2909bdc7e3e978bf1f56f6d141bf82a
diff --git a/config/hosts/grondahl/services/ooye.nix b/config/hosts/grondahl/services/ooye.nix
new file mode 100644
index 0000000..f739cf3
--- /dev/null
+++ b/config/hosts/grondahl/services/ooye.nix
@@ -0,0 +1,16 @@
+# Out of your Element prerequisites
+{ config, ... }:
+{
+  imports = [
+	./ooye/module.nix
+  ];
+  services.matrix-ooye = {
+	enable = true;
+	homeserver = "http://localhost:8008";
+	namespace = "_discord_";
+	discordClientSecretPath = builtins.toString config.secrets.files.ooye_client_secret.file;
+	discordTokenPath = builtins.toString config.secrets.files.ooye_token.file;
+	bridgeOrigin = "https://ooye.anarkafem.dev";
+	enableSynapseIntegration = true;
+  };
+}