From a1be51859cdfa24026bda1a4012807731549f656 Mon Sep 17 00:00:00 2001 From: Eneko Date: Fri, 23 Apr 2021 01:35:15 +0200 Subject: [PATCH] Cleaning devel deployment --- docker/cert/ca.jks | Bin 4063 -> 0 bytes docker/cert/create_dev_cert.sh | 65 - docker/cert/keycloak-keystore.jks | Bin 2419 -> 0 bytes docker/cert/keycloak.der | Bin 713 -> 0 bytes docker/cert/keycloak.key | 32 - docker/cert/keycloak.p12 | Bin 2419 -> 0 bytes docker/cert/my-truststore.jks | Bin 3722 -> 0 bytes docker/cert/root.jks | Bin 2411 -> 0 bytes docker/cert/synapse-keystore.jks | Bin 2409 -> 0 bytes docker/cert/synapse.key | 32 - docker/cert/synapse.p12 | Bin 2409 -> 0 bytes docker/cert/synapse.pem | 38 - docker/keycloak/docker-compose.yml | 20 - docker/synapse/.gitignore | 2 + docker/synapse/Dockerfile | 3 + docker/{cert/ca.pem => synapse/cert/ca.crt} | 0 .../cert/keycloak.crt} | 24 +- .../{cert/root.pem => synapse/cert/root.crt} | 0 docker/synapse/data/homeserver.yaml | 46 + docker/synapse/docker-compose.yml | 21 - docker/synapse/synapse-data/ca.pem | 18 - docker/synapse/synapse-data/homeserver.db | Bin 1667072 -> 0 bytes docker/synapse/synapse-data/homeserver.yaml | 2797 ----------------- docker/synapse/synapse-data/keycloak.pem | 38 - .../okupamicoche-synapse.log.config | 22 - .../okupamicoche-synapse.signing.key | 1 - docker/synapse/synapse-data/root.pem | 18 - docker/synapse/synapse-data/synapse.key | 32 - docker/synapse/synapse-data/synapse.pem | 38 - 29 files changed, 54 insertions(+), 3193 deletions(-) delete mode 100644 docker/cert/ca.jks delete mode 100644 docker/cert/create_dev_cert.sh delete mode 100644 docker/cert/keycloak-keystore.jks delete mode 100644 docker/cert/keycloak.der delete mode 100644 docker/cert/keycloak.key delete mode 100644 docker/cert/keycloak.p12 delete mode 100644 docker/cert/my-truststore.jks delete mode 100644 docker/cert/root.jks delete mode 100644 docker/cert/synapse-keystore.jks delete mode 100644 docker/cert/synapse.key delete mode 100644 docker/cert/synapse.p12 delete mode 100644 docker/cert/synapse.pem delete mode 100644 docker/keycloak/docker-compose.yml create mode 100644 docker/synapse/.gitignore create mode 100644 docker/synapse/Dockerfile rename docker/{cert/ca.pem => synapse/cert/ca.crt} (100%) rename docker/{cert/keycloak.pem => synapse/cert/keycloak.crt} (51%) rename docker/{cert/root.pem => synapse/cert/root.crt} (100%) create mode 100644 docker/synapse/data/homeserver.yaml delete mode 100644 docker/synapse/docker-compose.yml delete mode 100644 docker/synapse/synapse-data/ca.pem delete mode 100644 docker/synapse/synapse-data/homeserver.db delete mode 100644 docker/synapse/synapse-data/homeserver.yaml delete mode 100644 docker/synapse/synapse-data/keycloak.pem delete mode 100644 docker/synapse/synapse-data/okupamicoche-synapse.log.config delete mode 100644 docker/synapse/synapse-data/okupamicoche-synapse.signing.key delete mode 100644 docker/synapse/synapse-data/root.pem delete mode 100644 docker/synapse/synapse-data/synapse.key delete mode 100644 docker/synapse/synapse-data/synapse.pem diff --git a/docker/cert/ca.jks b/docker/cert/ca.jks deleted file mode 100644 index 644bc97e36c61c4f57b09333476e5881a4ed79a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4063 zcmY+FXE+-U*N2Tr#Au7CS+z$5u`2dz>^*9a*lN}ID^f)eHEWNeV((Ses$EfPD{WDG z7NKTaBkJktT2c@x4s$aWfVmm< z7l*?!6sZ4-C`#kfb5` z3lfpM;I=~&#H@ro=um=rw>+uKsSRO9CLA^HzdNK(w@EZ)Q}=xd_t8HZmAXSWdSpcB z`RMdfQh7Vkq}=l85xk?-*PZpln)EwAaLv;J>l&|aI^5t|jcVwff~yZ9i`-AsDO4c| z&B0-grHgh8IhQ-B3;Ds{>Cf68CdduHy8conm!t|dH&m4|E%%|50;;J)2GIL0(nG&B!*Kvm*3Fup&OPuj++p&E$~-tZnaB-kXl?4dCU z8lOs-sqx9) zDTnQg%nqH_DY*TOgzPxYK#TL-9~?IxYr%h$DIjAqlzv~>Yba=XEuvs?!=A2b4-QvhP((aoR@ z{RN4pEyn%o_FKa=o{Ys9DjW7rpnB>dH$8bU`lXbnq6?XKvIk|C zEjB{|ft(wZu^iHa=9ypT2uIsr78Kcp4;#Hv5XK6nQ4<|xxvp( z{YALmCnYl`tim|Y)I5F2h_h)lag_gS)<_Jv7q*zM5b|s- zC7QrV=fkpF$t$(_H8VCKO9IYN*DtrH-W$PMf5-CI59l^(R3U*7s=30R}xp3<5-|yYpBQ?a%#qkQhi(vO3)2yf;?vY8;VFN%FPWJMgcXs%X2v5l9nI3L3t50;uO=iSM2 z5)a$~t|_`vw+)`TmkbMVhjEE(MI?iE6V58b*k}{ya=2|b{k1KF$@3;0qaPj}`qp^J zJN_KFWqC7;VSYbxTfKxP?Fy)|i*RKOk!N@eYwK8-)iqVA5L9G^1T#j$equhd&Z7#i ze7^|sQlD~=z6{`BmCrwA;>_t0W{eu08jmjLW3{@Kfx0o9L5k~p>W-(ExMvy#7z;60 zml2xZ0hX)0MSjqlc;;P1k4K}ZP{taIAG%YOxgNuqm-eys$^1IN(yuJ{sJ+fQl>zz{ zF@9W&ztKzcFCanGDbvkZWkFSaFXTzgB&GzZH!uw|9w?qMp!O6=u47Hz=q!^%KC31H z&Vj5%2w0I3OhO}2QS|oyDOLI7`2ey#U8r>R+od(iu7d{M5u`ZfP4#mu6@ry{tYl6) z;*^U6tIlFM?>is(v3;znWYO33rL7 zYxc+|A<2s1TqquZ^(C*_xNVrCv`(4URPDgALGf3%;gEo z&iHl}Sr5-<0yrr?pWax~x@nL%DQjgDVa({j_I96t+UK*g$#Rd!Nd4QFkl*%WJ2tl(VUox4O+UWH5e+aD;B;O)I)tZb$O5_Ez^foo32G2=cih6E@|B=CEwu3*lVzgxuh!{G32&zyj&h$9%w3wOf^D**1m-(F}>t z`4>;MC;amS8wCyME4|m_4xMv1?=rb9=GicZ!x+BEl>MyI4Z(fmS)`e}s<+l+%=qze z@)t!kDjjAR@r`aM&Eb7lmg2KmI<;*JE0BRe-5tv{(uf>y>A>?doi9hSv=@HI6FZ-Zj*?5hw@tZbKl!c=C*R3uW|KTI7!*V}d!%a~8I!<0H z8LlHoiTrf^1^(eEXT$Wpi_Hwt#;w1D5;3r_W~ukh1`(imlk;Tud`lPiuq)lU2}fqOc2U*Aa>sb3zY3K>el(<#K3>+$)|*DyzB<~8R8mgo%#@G4VvGLEp1qsc^idSbG~tt%ZuUJL7QJz>5h*3FP< zPJvK+H4T{f8r&%&CiytxUAR%+d!ezGEp2l3y(clYuJ&LztFu1FP{~2Ashuv5`^e0U zcclBd1sWCsNc?LrWz+EuZ+0DhGFqQ%Mm3k3se^To(T7i|B?9LrfGfkhgq|OsBjqg< zL4m(=!{xu{y9>&GrOcR|{*ggy^y712fl92ksdftS=d_+p9>yv`JDccsWJ;%+RsQRg z)FPBH7$|4)r-mlhKZS0Q?=0gY2#vd*V954aHy4juS{}Gyn2VrU7%x8fXkp~pYBoaq zCUQ?To$iQp5*mL$!*XT)2Mg7QXN|;GcCbM5<)=HkEn5x88ns?s^!Gs}jL}lX31Whe z#A9MQ8Chu_XAWX5E(Vl_kgffz$#M2B)xJ9DSaqW<8d29qgZ_rzw|7HREB%JiHfsxS zmrk8^SX_)TU$&`qG)#y6eidd}M`yVqtyBhyUAw`&hnHnV%}plP4LpKUFIL;66=j*F zs^>?ss|X$K5nlC*GA3W8N_oCGCqk_GgQdKIF~8n`I>TE4=#rk9ZWT2Vi?+tK?Zn<6 z1gEjqCaSsP96VhzyDIN@IHE+O4b<^|_Re?%QSCrYzBXpdI}yW> zZ?~0N2!uNvg1!fjOgH823gn4NJ}St?75wOZ-M4lPO*EFDT9u)&y~2-%MQ+mdjOV0k zngd!h?RC)PiYSGwJfRF|HqVGOJ^#??z{{xNH>%rDGt}syPVVCMl{#pKsEHy460>&u z$zV&}z22M128O$DtNDmN?Ab^d-3Of*`Hsg!B1^j*jI*hr=^ z`$Ex2S=7ZhPj|r2zBldAK$U(~t$q{&h>C4wLU z-{gDK#9pR_Nto-b60R4BCOIpSsV!H*zoKC|R2vnUK>~pMw&7lWK-VNCd7=7_XK7EsgNY*n0LkwVA^RtH`!MM9?fIf7igM3q|LG+o IC&l9a1$q&p<^TWy diff --git a/docker/cert/create_dev_cert.sh b/docker/cert/create_dev_cert.sh deleted file mode 100644 index 294fa9a..0000000 --- a/docker/cert/create_dev_cert.sh +++ /dev/null @@ -1,65 +0,0 @@ -#!/bin/bash - -rm *.jks 2> /dev/null -rm *.pem 2> /dev/null - -echo "====================================================" -echo "Creating fake third-party chain root -> ca" -echo "====================================================" - -# generate private keys (for root and ca) - -keytool -genkeypair -alias root -dname cn=root -validity 10000 -keyalg RSA -keysize 2048 -ext bc:c -keystore root.jks -keypass password -storepass password -keytool -genkeypair -alias ca -dname cn=ca -validity 10000 -keyalg RSA -keysize 2048 -ext bc:c -keystore ca.jks -keypass password -storepass password - -# generate root certificate - -keytool -exportcert -rfc -keystore root.jks -alias root -storepass password > root.pem - -# generate a certificate for ca signed by root (root -> ca) - -keytool -keystore ca.jks -storepass password -certreq -alias ca \ -| keytool -keystore root.jks -storepass password -gencert -alias root -ext bc=0 -ext san=dns:ca -rfc > ca.pem - -# import ca cert chain into ca.jks - -keytool -keystore ca.jks -storepass password -importcert -trustcacerts -noprompt -alias root -file root.pem -keytool -keystore ca.jks -storepass password -importcert -alias ca -file ca.pem - -echo "====================================================================" -echo "Fake third-party chain generated. Now generating my-keystore.jks ..." -echo "====================================================================" - -# generate private keys (for server) - -keytool -genkeypair -alias keycloak -dname cn=keycloak -validity 10000 -keyalg RSA -keysize 2048 -keystore keycloak-keystore.jks -keypass password -storepass password -keytool -genkeypair -alias synapse -dname cn=synapse -validity 10000 -keyalg RSA -keysize 2048 -keystore synapse-keystore.jks -keypass password -storepass password - -# generate a certificate for server signed by ca (root -> ca -> server) - -keytool -keystore keycloak-keystore.jks -storepass password -certreq -alias keycloak \ -| keytool -keystore ca.jks -storepass password -gencert -alias ca -ext ku:c=dig,keyEnc -ext san=dns:okupamicoche-keycloak -ext eku=sa,ca -rfc > keycloak.pem - -keytool -keystore synapse-keystore.jks -storepass password -certreq -alias synapse \ -| keytool -keystore ca.jks -storepass password -gencert -alias ca -ext ku:c=dig,keyEnc -ext san=dns:okupamicoche-synapse -ext eku=sa,ca -rfc > synapse.pem - - -echo "=================================================" -echo "Keystore generated. Now generating truststore ..." -echo "=================================================" - -# import server cert chain into my-truststore.jks - -keytool -keystore my-truststore.jks -storepass password -importcert -trustcacerts -noprompt -alias root -file root.pem -keytool -keystore my-truststore.jks -storepass password -importcert -alias ca -file ca.pem -keytool -keystore my-truststore.jks -storepass password -importcert -alias keycloak -file keycloak.pem -keytool -keystore my-truststore.jks -storepass password -importcert -alias synapse -file synapse.pem - -# Create keycloak.crt and keycloak.key file -keytool -export -alias keycloak -file keycloak.der -keystore keycloak-keystore.jks -keypass password -storepass password -keytool -importkeystore -srckeystore keycloak-keystore.jks -destkeystore keycloak.p12 -deststoretype PKCS12 -srcstorepass password -deststorepass password -openssl pkcs12 -in keycloak.p12 -nodes -nocerts -out keycloak.key - -# Create synapse.key file -keytool -importkeystore -srckeystore synapse-keystore.jks -destkeystore synapse.p12 -deststoretype PKCS12 -srcstorepass password -deststorepass password -openssl pkcs12 -in synapse.p12 -nodes -nocerts -out synapse.key diff --git a/docker/cert/keycloak-keystore.jks b/docker/cert/keycloak-keystore.jks deleted file mode 100644 index 21027a925ef696ea69357262eb183882cf8b7e8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2419 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 Ztyfpijd+s!y6%?X7SC9@MQ;}F2LOuH9oql^ diff --git a/docker/cert/keycloak.key b/docker/cert/keycloak.key deleted file mode 100644 index 83497c7..0000000 --- a/docker/cert/keycloak.key +++ /dev/null @@ -1,32 +0,0 @@ -Bag Attributes - friendlyName: keycloak - localKeyID: 54 69 6D 65 20 31 36 31 39 31 31 30 39 34 33 35 33 33 -Key Attributes: ------BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCO+Jc0fg4GM0ZT -0vQmmDdr5aqmLJcXEuibyl75BMTSlXKOAAw5IGdNoElTCEWRiMIio/aG9NY9Rglf -0rShNt8+nhCF5WI1i8NnWzP+dpQBeV5NiGBK4+pPPBJniTx/7FAdYrUQIvcmaQjV -zMncsSM0qvJYgthu+zKgbUeZspwhkgrNQq+uCoL1IgSprTCVm0L4BKLXomq/WQIO -0ZNzaBw2Z651ABJ8OptiI8upd5zUZZdJWJ7OHAE7SauzU0Ro3zzXSHc9FENaSEJ1 -mKMKO8sLoCq1lGN0d/ubcKK3qTMnnSrbsI4Y23AJVVoW604kKIyM1yyM+HwcPVy6 -7IjlD9KdAgMBAAECggEAeci1fAhYR93LbUHHqUyGAQm8iBp5hTUdIP+MUNBIHB0j -XGQcBVldxZjgfLMSF3sH61wBdkn+aGlNOOuR47WLCpq39mZDdtsb0uG0c3BseKj6 -tE6Tv5dPErlX8AvNliYkxDM9ioZOQtC7rurnlG7rT0TCdLTYSgj9wfv0Pq8PIeQv -LwtnOjZsG1p6LYEMPCWyNHolbV0saRf5ZEowvE7EPoGrFucOcxWYgnIC8Qa83ODD -02vBSI/MMXEn/HdcwwyRDALTd8pGvIsheIHnaKtZxG0KBRuXrJ2OzLaDfYFk9QEg -fH+iB3lcX1+tftD0Q68m4+Uti+GpJTwpj9xE4/yH4QKBgQDOAS6B+aKlLY15tJAE -UFVrMj/n5qRjoYXMK8MUi0qOi4Ytzs63u8MR/owuZ7KstUpEGmgkSTJUCWy6C5gn -iOW80wFheWMG9ZqUYFEx79a1Yna46SIEpowM+gunEqW0NIUHeuiOsgkZn3slnaxA -lNT5s81nZvWHZRmnc9xy7pT0xQKBgQCxqzXCQMJS09qIZhHAQblIfDA4iwCUGZAn -wcsfI9e4CxJ4m5SnJTTpe8G9680xXpR2tVhl2FrarNxWMMZUGWxqBn0Ug6dDmSwX -SpBZ5q/bpbphRoRQvlVjkhX0prX+lB9yFcyH0qnDchoW/CPgnKaYndE+eBPMnjSO -n8ZuM2iz+QKBgAC96Fj3eSp3G4dQqyQY1fXo3GoNXpItRroRfkZYqhARWI5ZrEzl -FDLAY+jW3sHYdUgBgFaBHPlIf2e8GvQpfgpMCDk9oqmnwMLABgrT/kXw8NSBomm5 -3888J0aWvpoDhmccfjHlWjsJY/wisTgaURoFF7xDlqbCKnF77VNMoKSxAoGBAIef -JONKocuuMlQKbiRvRytguUKAQQnMVbEzioUTzDiOIyRzxs6sZS6RrLv4QuMbyoKv -PXJI7FmeuHcGtm4+Ffb9Sv+c29KLGxAQeA5YPQeTA6n7tUcZc38VZbMiiyxxD2v7 -3ewUUEiEUgwXnp93lOhNGAvyh1KbtYzlxAgdMCCpAoGABEqs4vSc2vmaUKf6uek6 -M1r3Qv6/NW3IBTY/eSaihszTxG3uVaZUK8iiORd3ELFiMWZKDk3kCW8PcmFIu96k -VNoaawwZY7+AQzTg7pN2uF8CqQaMNjAi9MxcJK6cdXj9T4uP8yxahlt6TveoMGRd -Y3uBGHr9qoVnbFnvr71DF0s= ------END PRIVATE KEY----- diff --git a/docker/cert/keycloak.p12 b/docker/cert/keycloak.p12 deleted file mode 100644 index 5a1673ddf674c0ad30b62ea458e1c7d072232c7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2419 zcmY+EX*d*$8pmg|49YU5Y@t*lF~f|V5ZRZ>nk`{$L-w-NVFqJ6V>{L&+aycbCHp=J zp+YX>sO)12HN)7t-TT~o&T~Gz&-*;T|NnhI{tyJHKL`j$5TI9Bq0&SH;@&AB8?cA~ z6@(C=@L!l0L16LwN5tX`A+Xs0!ZyF=7AxofuDCdWpdtd~5J77l!ad z3GmDq^62ruBDT!-oI*sf6_x5BFrd!@LVyh7*7V;RMsx63xxC8Gh%^}-*O~?|awn%K z+V6zF^>g#!taS>d$$EBa-^2`maR&)zfvAql_QF(cHyhu^`^-cPi+@x7o7%wzJKf0V zxg+Yv%}l#d7d&R=C`)O{VGM(MZaOD4BWHv2m`W}O0WU1tKSW?3?vT?EaPrm zh#rvVv)r}B7AB*8eK>fnk>uD^*Q0`OMdRE7=IPb3^pqRTRZ$!Af=^4$_Ca?FC6>LAYI2uPE#YA+COZ( zK5*}mQ{ssd$h1UHjuTyWEpOcmEr&CtuQ)_&OREj1X`RRdRuiHhr7tF;m4#}x|KP1Y zrT)l)KqEzfmqWQSQ);oQ``@3j^d$7_w%tg<>)oy@xPNwdrA;U5w6*}TE3Ycx6(yEN zyfd8LB=oqi?hLTl>Yh<|Aiv^*0gJy!j$(>D1Rys3H=7*uuQUcKS*W$DJu8Ut zW^B}iWj!u_!Yzr`X$#8cP0|S-=)zAuavYG?M^->tYXW%?6bh;S4oew2C`IwbC92l^ zzEOzC{Z{SNgpL=m3g*L>4=lD@2Xniq6vsbs?!rN9nLj^VBTHufW^~!BfoJ?erH;h0 zfvzhGm3X=^3)Efu`e2F5l%ynY`6~eGzN#Pdx-m^B^_PQGyH6(l*|^#~m*QZ~vzoJ* z5FM@VC0l9Ohle5r55MAMiYpiNAeanL{?nRnYz%_-kJKZ zh0{!`aplPt;$07R*;l1;%R9&PiMZ{N#YHZnMzj{+!Ze0>;!G*{SgiCeF5&3+Nx{)8 zn>|l}BJiQn?%LMdmDgl~x8=wO60i1n1-`ZCoII_o_-@AC(wY8SQZkH*My2BU|zM<98xO+<>%4DJD(Y3GN zmsC6zhP&#$x}5GCQUp}?Xc`y0tzQ@;^@iE+mq>;iH4TSPo+l)>1Dk%QxNgdVPfsZ#kx?r-fj8v!cRM6{*Jd?gIc`4R|OoizHU*$1tvCG4SkKqfg8Ow4S z9@R4^VgqG1AFUNTz4?$vGXX@DY-R)P!Jx*dlML!==X2^&S{~?9L65;r5U+%kdG83T zHDjHdTfZ)FvT<6R>!Zu+q#PcP%f<1QC}Ms(2vIMd<_iqD%aKB48vRgFGReAZ@UzZ* zuB}r1gLy{y#jN=V5c^A&P<|wzC=UP!zyiVnZUA3^Kj1C^hdBRt0gmK{@L75LVa1V(NEIX!p@LFC zD<~ic;QYTzY^+5DFzFXc1OWlR7UAy%_z%mn{>QRQ9X((=t40LEQrT{gF(GUBL!9|v z%SIEx2BGjYva`Le$NhO2Nxa{GGWE?6hedQNcaXQ&@t>qarn5=ZvM+Y^ob`nXT&>$C$@%-as?Q3rBK;ZVuG(=$#D!CB49!;&#q7X4jVancBv4WCuv`>(HMpU5tvSJlglMV{&KWB6O`RQw-E_yJzropUu8COQ`dr)W zbGb)5Y`Z#MjwUiVo z`Ng3EAcyl$UZxcakc3WG zo*VtSqa@dHsPj_VHqa~1hmYgYQ8)bUVVsY8J@u9>HQ_pR1A)I(=TS*(UzdUNh=f*r z;XS+NO!6HpnaVF5VP{!lxM#QbTXFdCeRO|*h&Y20Qj;v(EZny{qVXTaCGC(p*OQPyF1nfPbKAL*&0) zmC|OT^ha#1p)cxek8#jB{$0jkQiCN|%p39huMZ(j% zWJrd;<5FZ#+)D^G!f?!P*#?!r@2`Yw2hW8Bt2LUiC1_~;MNQUY&+l|lxx&p)kt$IXnd?;d)%CyuCMA-b z!w|6qU#ZqmAB6WBHLYM>joa4Hi_X8h9Hoq%4z9;nGM>_7Zq|`HN_3Eh*gP;?l&98;~1@(@!C;bxM{mSW-QP2B(Jiicn)W>hIwqkCClb zYUMdF+XTTrW*TEauW4-q+=Vq#%|1ZdXGT%P_~9tiyq2J=>4ttXzEX3D$aA}I^{@0> zaqJ@=d_ns;n1H3)rbxp*8*W%AU>pHtBvn(dN~)S5BnhF^HKNX?b4!)H;OCuINP4k4 z&>0Mz9mSY&AFHodG}R$Z)8@=Xvact9g1*i9&Y@-8W+>&)j0?bnl5UE~^&VA3_G>`r z$lcd?7w%G)ywk9XL+FO!Te}kgK54}tmQN_%-p(NBOWs?tA{tOc`7iD|JYmDLe=eeW ziqE$m#jS`t$+hH~w%HFoOLv-%5cKjGnPk_HU^gvQb_iP~wxOTv9{AO40Bzf}cOgIP z#Rj6FEnt>3roI`4Kni;xjov$!bA+vvTUxP_lTri9IP}m1m;gfqJ$a6-WmZ6^cW8Qz zn;1>1yCux1dbf=e8p?Jqt4=r625}baAc^d_v?}y5uES_6i}e3kUwf?U@_3=Hb3h-4 zZU$B|RSWD76&Vd!G#fhSM^<@GQ|ZY8s6i5*lNygQv{adkGrL^~LB)YXgvvP-e&v6? znb-72b?Dzxp92YMhJpIB`v?FbOw+7_gFh{IL`^%2!&KVU_2fvG?ZN^;Y> z(sz}TFI(a_aQ>43T*#(+gL58-cu2z~Gn3%y$`>T)42|u|{~QL%LMCsvHH9 zfNO8*JgJFp1(QnNI})bW4+h+n@D5EBmjEoS(F5SZEhFD4!dWiiRwt zqSN*(bZPK?M>>cROV5>tMJFB&j)k=+a07h=2}GHr2a10P`eo(Vj|4MIn336(%%T?0 z4YlS0b^GTde8NFP7?4s}$qzxosV~%TsIA=d%|Yzz_fsOUTNC~@y?VUl*i{SegMB~$ ziEaxxhEwaGqo_rSE_W4H-4DXcnsF;lTQ6byi!X!=atSsjCK}iBEuTa3VtBL6hCJbr znUsXU?O22k!M=IUTqTZi!g|+61PW!crwmwWePyh{GJ)X)&0XP9q!Ov+Cs-Y2qNikf z*~KUrfaych!V#~ZrIb0ts&nrkS158Kvdl0&=`VmO&}c`=0{0hm>#1Ni=^KxpOeN8ldM&xbANV3Sl#whRQ7!7vAh&EG#bDplFq!EMED4hx{b{q zArq7lGTfSVx!$2GvLwa-?^paQ+i`YLDpo=#(-VRvlM_f=nuV0qPwLzjn84#|C9?-; zc4VyLnM0O1e)}z7JX=iDb|!*HMC015AcFs|*ZSJ1m4`>h0E0(?D;G)rWTl|uM6)5@ z_SLk%HAQ#v3JX~U>FTF!8`;a>q5?40Uy+e*!qgWni6tO(>aT*O^TI-+*^h|!fHOMW z{pn}l(M>>_{2AJv=M^djb+~r@O~wR zyKk&T*kNdRIm|@#J_E)Y@aF>XPgX$?Wp(NUL`-d4P|?~Vtu`y^9;%vEb20Nb6o<6N zrV7s?&n5y5>NR^ltI`J4NLry_ZjxF*-E1mZ8q5`^SYHYxz7#l;T1g>qDsW(qz8kNZD zt~)v+<~29n%Ch2asWCRO^I40v=WsEPFll|o{ryqN>@p6Qtn{0^qRK(`9+nHa)(hD4 z)eMd;?Mq_Yf^|2r|K`m)u{UsQ2~~WAU-X|f>}33>$b+Qg=w-5yr0wf{OAHZ^5Lj6U zt291kfo<2u8DOv$l$W*xijOzft1S>=kOBcWG|XxZyz^)0$o(|!Nnn@_O4Z{=YT6%B>e-Zb7(=$KW-%HtQ|;-RhP!IO}rWH-UfHqrocT# z%J6lck$=k_{7z<`de6#cu^Fq>OtSCG4cyV+-AGH(lsOF#T?NM8(_a|II6#OHn*Bu| z^fX|=^iyR<_(p{2B@Gt+PeMgPaCx(BhDlxz1SXz$jS9q;fHgej( zN=CR`0$oMZF3!p!+gJlAa9G8R$2Y*v^j}2A{N}RdYKDgO{&m{N{2jj0^3@m$@63Wk zuFt?DTn=lR1@4L>_$T;fu}aXzs>LVat;Hh@CyDzCEDU-KA8(6D%vCkUSH>s{hr`hE z93{l=zQTE zdU@b3Z3iikQWS8+{fJa!kBN zk`DA%^KZDWPnKruGp^&Oy6?Ew)vI<*Dy>=Md#05GEp1zHXlKys26JEsc*13ahR992 zBO0Be91*JzC1DYD+q2N}ZQ!&htp5q5>Enpz#1z+TOZ{2>CaZNFkrMv$0RZRW%}6!i z(dvYDcX7AbjJ&O*&AMIf9qm*n&svhCAx?+H`b^=EAJ5_Au1l0f^q7(&#gLBES-2x& z# zIBA$h;TQT&WL(9IVHQLw7Fh*?jZC~dNbx(dwJs8cS+%uIgd2s(Dx=`7d;tA3IK04W zscuVyxL{H2kutz%7l>WwLGGgyU2r?spop&vGnH|l-Ys|8aPfxYjYW5Hp{)Ig33*L+ zrRYK|3PFaLE&AF{N66UuY6ri_9|R6=aHB8C8N5I=ds%R-gG!BH(sgY^a8Sx4tU@0s{etpc1wD)Bpeg diff --git a/docker/cert/root.jks b/docker/cert/root.jks deleted file mode 100644 index 3392f4efc8f9153545df86985e5da07ca39d3ec4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2411 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 O`uQm6RTdC1iSln90$-5; diff --git a/docker/cert/synapse-keystore.jks b/docker/cert/synapse-keystore.jks deleted file mode 100644 index 5be0a35d166e7153651ca1559798507af2a43702..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2409 zcmY+Ec{~%0AIG7kTZawJ3yb3A^(*YEc{ujh~N>-&AZKi}{7&o_z$a|HppP$ZZP1a>0EG=|L& zgaUI(Fa($c<2}Go6p7pOUlBI}OyYJpz;*{^4dMOY6(1Z3$|Zq0C=!^BLPFsG#|O_P z!6FM2h}v;knwzEURMN>`gTW0C!g4@dfHrF|3CuEFDpS5E=+*-^w2zk?FAbT9TBU{iB-$6v652NVW3|cXW-c ztRYLaw!{drK7oaXJ@+IyjmQCVy>$06O~?oeUlx16-S_(YP4hp!C^b`qii~_quFa&Q zVI!*R)xOueI=8?2zA;pjrMWMNy}{t)G(e}I@x!0^iA@ESWcAwqb?;E+D1m~~Jy}_O zk;T{sNR{YOW5E;dlfU(?;wXzyVMi6hm}hI`DQ0mYNM=lb?pt`&3We+$A#t2}Z>S%M z^C&cYodexAsJX;%F;Kb@bEK*@mfiCl3)9gPutsx5bM7mm-Ic*%pL;w&#B`gk{LG>x z%2uUTYE#=Pr4V_ueC|tmHw^GJ z=8W;qvXxUxYJSuC^5ebcT4x%ggytIqtd;|V7U#TISL8DEWQJ!vu2^rrM3$&Xq+&yT zjUDQ8hQ9{o+b|AE@9CZrV0`E^(yUcBO{a}72w;sz#TWNGs=7f&fr_H27IRUlu<4cz z5zCw37F(GNK}oUh8}W&_ZO2ami~=INNAKByp(wd@)T^i;AQfEzc0`i&J~KI7y_y@A z&g(|-(CERnxE9UHqf;bPibG=J<~Wn_OZA-iT;G~-5K6w@?8(}cZ1*OhIYa<+B>C|5 zWdEaDYa_{5Gt2K2Z*Nz}A=KXR1V1#(*37TZRs1rW&k_L!k0W}-6NJV=(tDP2{>B&Fi1RZY&Ea6q+|acIhJVX@ z$>}-|(w~5_Zy77iLAz_W-2-?uE?7)eNhrV!^=cDqaO86FW~E#D5DftZQ)s1 zRn2$$Iss9h8O!4t>};>5lC6Si8i?`(wnlVK7pQ%S%VrBa$ja=l!DU_w_e3GQLT#`>ZS-yg%fIz&;6d$ zMJ7FEshiRRzNhit?+R&k*ml_sIaD+IMr?eEeG3(!_f)O+86MKde>qHVu2E!T%k5KQ zd~+Y#044pmDq$jM0hvPpKR^(`2XGxgJeXWja{t7lXc4fG-ED7IS+o}V3>t;eK7~20 zi9wOL(*9n8LUKu5jL)kUkHJOqpOfaKX(Y zEY5+m=o*3B^pRmZzCt+g^PP6uw}L!oG%7t-C&5^6kdJgV9JdFzedqr67`FB&nXrF+ zhCdLES;eM#=~I#PH}rjA`BAOt@E&~In!LF_f>35nVI#=oIBC^!_+F;{Q?m-ws6aTl zS|Tbot+%m;h8>ag%DVCpi8Sf;MNK&2$R7tL;LqKbs|RgpH_NC)VE~i2845f&S2??L z=Dxe3Al`xw)|D$IfuZzKgYpVq7Gv`RHrZleMNYztK}*lR7)z!;)?7Je-}Y#f-o>77 ze^;0va-GV`t@%i)y%M>g2$N9%l06eCfBPfQ@9IeQ;#rU9k^A=VrlN_2Ko4Tc=$E(Q zZ6lv!lyfh}_;x0D%O#bRWQ6@*=_hts=uyi_(gXKAWbg}_bks`JL z*$HQl6o(Ud#?XB8Vugg+d5pNpOE>h9{cp;XPR^|@{)M6J1Xxf<`41dE+LKbbC9JS% z<`T}jN!jdM6WNGF4nw!=S3`95aP`a9t5Q1m+dg;kpWU;ncZKpMG^$(Mw`obwP=B@F z)H|GgnNh^be%e2?K=5aWI24<6!zGJX-ev&02Lei8?Ny&1Kda$L{m9E&>Bjaa!m6n} zJ4GW)qHx81efXk^5gryvKsaiJA0-Rz&Gz#UHHbi1=&^fT$wf`Z!82GFmVEEmyvSZ->qOD zrHhh7!64ix4{?DcxB*}hsSihf5V-j_@4f2NA_&gL8_RO ------BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCc1B6qv7o9TRyZ -jvarx1vbeFi1pwfEMjW1ecOaBkFkQDgDgN+tQDtGz1qUq77heHKCw1F7aYZFA4T+ -p1W1SOe2jAhWVIHH80sMKLzoFwhfoQu33wKcxkaIsP2lfg/zW5qkMNsOBDa4daX0 -sPOCT1vnP5jyN+BBGU5OFCVK57Mcgezp0f9vOApHml7MAW2fVawpWsc/2vHV/72t -8VG63UWxScAeEdxp388bIEfXCY2ssB0ZCMAJUzGar34FohyPq5Pvf714CE5BmO7L -8Pm8CYP2BanM6gM7jiSGr0yk/Z8fJvPbRpOSMMW2s/H6FgdnjMbrqesnZx6+KiK6 -bONSkKdPAgMBAAECggEAJYseQFAfvJceNqCj6qGSGusniW0QDebbNrOMoO3Ib8Bz -6FrMsUQELMJs89RdoMpd13H8qqerbhAWoYPbn8dxOSEyyb/3Ra+3kpSaDJGe/o2m -KYFotbE9p3F/d0PDe8W9MntDpYpaszPu47IMyXBIFwcBjVLVC6CMP2LRPqpTFYqg -7HURQol4Q9K7GQQqTLHJECnrY60FHVqg+3A9VWOulwF7qXRrG9mrUiujfmwgX/st -CiCUIXvhWqi52mx6z+X4yclSVqAAqkxvgZSB4haZ2yIe+4B9++ayXmiN5jtY7bgq -/hiZjTuec9XQK0LXnOEdf3zQF1jH38WuaHlA4x29WQKBgQDRw10CDjvhOQoHmz2z -s0MtHT6uPRBlID0nNpylg/LVL7PjMxyXIjYJZxH070fzDC2+IFP01bRPa+Ffxxnv -UZrLfXu0IpkOQDFyUAXE3K8ODEl9j+HYzZPqY0xsM6J9uH6MwJie9LvdwQJw7sJw -bgOyuGlrUeC7vgQQqlhFykbrewKBgQC/ZbwvqJKj+CTksnL3qylDPufGnaaXDIn6 -YAKJK9o8o5bUwp7pNs+obtbVq4kqjxcA8nJYlr9KxF3yEj3hffNmoL8P0ADomxgO -t94pW/F+QWQn+C6Z3pIzZcQGK+wjdLSQUStPStLhvEkGc8GV97Zeg9qKTp3hPMph -p8lnVkgxPQKBgFAyQPzoNDyHci42TADIKIa3B5/V+M6w5LB5UKp3KAAZnMzgXa3q -hn5Ryau7T+a8YUCvW2nfynAS7rePh3rX2Da0YvcbwyiPolfyAEKjnMniKLa4q8AX -2NVj4XP8ycMHJlrpx2/+YVUG1cgXgH87kG5j0uoVA7bDjwpQFi+YhkTBAoGAG7BT -Fi3z8OawJ6mtOik30fOiwjgCZq24tFD5bPC8JLOh2WvCY4i7Z+mJCOZE9LQ4prls -U2aTi/R2htOewiVfdgRhP59e0kfFpjNxX1heyl4ZaDLeQwJQ8kCRqDbodYSnro0f -j9wKP//mLJnIcrKgXnICxqly66fIu3HzkBCKZx0CgYEAi/LBqSsBCenij7tN/GhY -rBiQo3mxmlAgA38jvh7d21JpIH/8PPgO/kI1bIfVWajTvv1mDxIB4Ieq/w56/ZKC -2ziOPF2olA59DKD0yzMk064iwIYo1+7NYziU2uUhR2BTCzM7iOOngR69HJrG9lrN -ZHrnOmSv8EnT+uI+mCykAKk= ------END PRIVATE KEY----- diff --git a/docker/cert/synapse.p12 b/docker/cert/synapse.p12 deleted file mode 100644 index d7cad4e754609d1bd80574c54734e2d5801a7878..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2409 zcmY+Edpr{g8^?FY=9(dfbaI?!&9-KTA-UgrWA3-+l9ULQLNc-%MvE0Dx0YKWm3x`o zZ(XR!F;Cmu$M9?D;I@D_$yKNT*hWOu=G#m)x(jl98Iz)`$3xoe3Z$C#t zkOlM&kAso|xEp#k3O7Aw>1_TClQ6O|ke+qt4j#?SBQ0BDjdl%uyI=COJ+&;E< z>2*bY&Ygx&I?J&>dl}x`Zz)ph1N=dm14gu&aL-_G#Yj8U;Jh!y1CFI&GrDUd@rPQp zZtWH9y9(4Pzqn9idD=9p#dfjpV$Ca=z7WtS-ruc1)?>rr@o7)riT-pW04qR zh80_7cjx%lG69R&&5ESQ;#@Ce**;&D=5jZd17}FfWo<@BbDh}%*X?6lj~X##Ha0%J zn}@nfNZ~^63^kFSUHA9PSF7F$oP&p+qQz){ave^Fkp$Yh;px2f1xmyl$3^R4R(pH`NDjfP|eXJy4j2wi1s*XuD6&`HGKJwk*K1; z4$ydUXW7xZo+z;iGl}3Ou93+)faX8^aBKk8^JMe-{+HkZSr3ttb#@hmFvXutyMbn1 z?fejBwsmGf^hQr**f|JbiuZ#j~d$ z*B^B0dziAa?Dz1*_t=e|@*NNCo+Ye`HxrD*)ToDVRa)2^xmE%A{ffVZ3gf6~;!_G7 zF{~gzxRr{C`~V-&ycH z50>8B0%52$b+ibtw5iIY9%_%P^g4IonESp=2O($5{T>N*J%)ICVl_*j-0tB!X8!%P zjvG((kK`y0r}hwK6;5WZm?H!)vlyKs;fMvG%nWxm&?U6`t=4-T!-?C~H#SjHiRM z{#ufNap_>jHcA2k0oyI^?*#Y{$HM;OSd};)Vd^o!vKad%(5cQBi~yXt{$IylqJzy) zS^=CMH?T0y z#qQv_XzG&avdCy(#Bxu3J2 zJCBg<&e~>or%7Z?i`Y4r5x@Jap}?tFg29d)GHuwZ{jHID=9yiwCT(fc7@rQL0>l07 z{hJ$wG+|w1xoeusLpbh`Iq7h5N#e%{G{b0ckDP7;jInVK?Gd!r6U||2^EI0;=eEx_ zJ=$pSjCw9Q?`k(jnnlWPY9r>C+EX?q0;0Xc@udfR5neW=wXnZ(Oc>EUBUxC(`Aj zT8RTcsJv`Yu2y(_{9RX1Eb_MfFr|F+SO#FVI-a@WK7YRYr{Av|#!ev-25>RU-SHT2 z>HE~#)P%I)8aFVc=H~D*&6ZiUHcdw3P4T<& zQZOh+77S8@0w74FLDCiT6Sb+m*)yakB{o)Z5AK^lkn=UpxA-dLvN}^uj%3X)>pj$8 KtwCU5GWXx2I$+ZP diff --git a/docker/cert/synapse.pem b/docker/cert/synapse.pem deleted file mode 100644 index f68d92a..0000000 --- a/docker/cert/synapse.pem +++ /dev/null @@ -1,38 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDMTCCAhmgAwIBAgIEepUKBTANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDEwJj -YTAeFw0yMTA0MjIxNjI1MzFaFw0yMTA3MjExNjI1MzFaMBIxEDAOBgNVBAMTB3N5 -bmFwc2UwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCc1B6qv7o9TRyZ -jvarx1vbeFi1pwfEMjW1ecOaBkFkQDgDgN+tQDtGz1qUq77heHKCw1F7aYZFA4T+ -p1W1SOe2jAhWVIHH80sMKLzoFwhfoQu33wKcxkaIsP2lfg/zW5qkMNsOBDa4daX0 -sPOCT1vnP5jyN+BBGU5OFCVK57Mcgezp0f9vOApHml7MAW2fVawpWsc/2vHV/72t -8VG63UWxScAeEdxp388bIEfXCY2ssB0ZCMAJUzGar34FohyPq5Pvf714CE5BmO7L -8Pm8CYP2BanM6gM7jiSGr0yk/Z8fJvPbRpOSMMW2s/H6FgdnjMbrqesnZx6+KiK6 -bONSkKdPAgMBAAGjgZMwgZAwHQYDVR0OBBYEFFtgp2h3pbJNqKA21hfFHk1+2nno -MA4GA1UdDwEB/wQEAwIFoDAfBgNVHREEGDAWghRva3VwYW1pY29jaGUtc3luYXBz -ZTAfBgNVHSMEGDAWgBQD7PILP4eCg6TDhEkwZwLiNAb9gzAdBgNVHSUEFjAUBggr -BgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAFaxdcpju5n52d4R -ePIrwJYwU/HqukDw+4KNcKH629LjzuIaHnkGmlUDZ+1uvHQgJ0776oqF84S0Oa85 -gH3wcgluO7dF2bR8TKn4WEDij5I8MDZGuVctrfxLmP129d7aqei3bXp+LzokfbVi -I3PE8U3blYQF3gevcopulz2DK5WvRDsG9PrMHs/GRl6X1RdhKXV18Q5UIkJUJrJR -BdcdKvggK4+gdN5mWuHJ3w3zqpeQbCrRz5D7/CTjS7NFpHSZydfpkdTsrnymSNW/ -M9cPtWrGbtfeCO5usKc/4Iy3QA0HmRBxLWsDweXaub1lZwgoF5duS91O/yEwskcW -gDlPzcI= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIC/DCCAeSgAwIBAgIEY8cv5jANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRy -b290MB4XDTIxMDQyMjE2MjUyMVoXDTIxMDcyMTE2MjUyMVowDTELMAkGA1UEAxMC -Y2EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrabUOthTKjjoV+5Bj -2OVtdNqBYeGNAvxH4Ae0GNx8axuu2O5oyItkYvhTg2HSoBUSK+jL5FT000z+8k+v -wL2HZd7lZhF6xeUFBhkPYepsK62I6w7f6Zg+d7ccnRcA+9Jt3Xok4vaPnYhjvUB5 -Z25VEZZa6/35YZJ7wEdyhFuONnnVM3+1tajq1GVanwSK0y3qhmX2jLy2neMXx1zY -J2neDElHwzYtsmVek9T8TlxLhNJiFcHEscmWrT5NOntfcTYaZosWyH+Nm/+EJuAb -UTTscG6YdAL7p4zvOiZ1j+QKb3UCrtSSi+XUZi/uNS3Ky4asgiaUNCbHc3D0a3G0 -HsmbAgMBAAGjYjBgMB0GA1UdDgQWBBQD7PILP4eCg6TDhEkwZwLiNAb9gzANBgNV -HREEBjAEggJjYTAPBgNVHRMECDAGAQH/AgEAMB8GA1UdIwQYMBaAFORJiEeDfjQa -MvoMZkmv3bWw8/8NMA0GCSqGSIb3DQEBCwUAA4IBAQCFPmXAOgth6wMD6XoPvfw4 -xg0Qr5ky1pUhJj37ocr6aCNbW3dr0jUFcHHkdhyg4uEoUGbPYyKMCjp6DpPq+Sks -Nx+xWXaTeNIiHzXsY1TuQdvvC+rrANmHatYj8/kGNg5tcNvMn7PPBfy9lEYWCSL9 -ql3yim0GuGZ9CyNS/ZCmM2X/pKc3yiZK57iywlHJ7Sp1z5bmjFHE2l6NrkLYLwh6 -5V+JkeHvzgGAiuh9cIbA4XvB0UWD8GAiwyrLhTD3ZzQDe+kXskgMzNj7OYqey3dA -BDnxnTQel4PnYQQ78JeOwCVZurRL4Nph8icY8iQEeXEFp3H9hRpRe+rPs8+9ZnUT ------END CERTIFICATE----- diff --git a/docker/keycloak/docker-compose.yml b/docker/keycloak/docker-compose.yml deleted file mode 100644 index a6d8d32..0000000 --- a/docker/keycloak/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -version: '3' - -services: - keycloak: - image: quay.io/keycloak/keycloak:12.0.4 - container_name: okupamicoche-keycloak - environment: - KEYCLOAK_USER: admin - KEYCLOAK_PASSWORD: admin - ports: - - "8080:8080" - - "8443:8443" - volumes: - - ./https:/etc/x509/https - networks: - - okupamicoche - -networks: - okupamicoche: - external: true diff --git a/docker/synapse/.gitignore b/docker/synapse/.gitignore new file mode 100644 index 0000000..4b97f19 --- /dev/null +++ b/docker/synapse/.gitignore @@ -0,0 +1,2 @@ +data/ +!data/homeserver.yaml \ No newline at end of file diff --git a/docker/synapse/Dockerfile b/docker/synapse/Dockerfile new file mode 100644 index 0000000..c077186 --- /dev/null +++ b/docker/synapse/Dockerfile @@ -0,0 +1,3 @@ +FROM matrixdotorg/synapse:latest +COPY cert/*.crt /usr/local/share/ca-certificates/ +RUN update-ca-certificates \ No newline at end of file diff --git a/docker/cert/ca.pem b/docker/synapse/cert/ca.crt similarity index 100% rename from docker/cert/ca.pem rename to docker/synapse/cert/ca.crt diff --git a/docker/cert/keycloak.pem b/docker/synapse/cert/keycloak.crt similarity index 51% rename from docker/cert/keycloak.pem rename to docker/synapse/cert/keycloak.crt index 968c6a6..473f4cf 100644 --- a/docker/cert/keycloak.pem +++ b/docker/synapse/cert/keycloak.crt @@ -1,4 +1,4 @@ ------BEGIN CERTIFICATE----- +-----BEGIN CERTIFICATE----- MIIDMzCCAhugAwIBAgIEJ7Mx8DANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDEwJj YTAeFw0yMTA0MjIxNjI1MjlaFw0yMTA3MjExNjI1MjlaMBMxETAPBgNVBAMTCGtl eWNsb2FrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjviXNH4OBjNG @@ -16,23 +16,5 @@ RGXGkOZxM12X7RTntU+6bheDkftuLD44eaAsfBhV+ZL7tU1gyx+qQ6xqgRWwilji +hR/ycrjDSoozkJknIpNBM2puUc4ahAKo68rPufGrrnWSCs/EDre2peAnhi3qqVI 6wqVJp3gdY5F4q96pDVdY5DBkOqdOFdE/Sp12Ybkt9EID0CyZFBF7eefVbS7IVpu aSfHe8z9GjJz1Yh/iHX8ERsSDt+YnaXk4J/Si0G5xVzd/ApPc7XpEwKXU9CcQdkg -WxsaAmyUfg== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIC/DCCAeSgAwIBAgIEY8cv5jANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRy -b290MB4XDTIxMDQyMjE2MjUyMVoXDTIxMDcyMTE2MjUyMVowDTELMAkGA1UEAxMC -Y2EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrabUOthTKjjoV+5Bj -2OVtdNqBYeGNAvxH4Ae0GNx8axuu2O5oyItkYvhTg2HSoBUSK+jL5FT000z+8k+v -wL2HZd7lZhF6xeUFBhkPYepsK62I6w7f6Zg+d7ccnRcA+9Jt3Xok4vaPnYhjvUB5 -Z25VEZZa6/35YZJ7wEdyhFuONnnVM3+1tajq1GVanwSK0y3qhmX2jLy2neMXx1zY -J2neDElHwzYtsmVek9T8TlxLhNJiFcHEscmWrT5NOntfcTYaZosWyH+Nm/+EJuAb -UTTscG6YdAL7p4zvOiZ1j+QKb3UCrtSSi+XUZi/uNS3Ky4asgiaUNCbHc3D0a3G0 -HsmbAgMBAAGjYjBgMB0GA1UdDgQWBBQD7PILP4eCg6TDhEkwZwLiNAb9gzANBgNV -HREEBjAEggJjYTAPBgNVHRMECDAGAQH/AgEAMB8GA1UdIwQYMBaAFORJiEeDfjQa -MvoMZkmv3bWw8/8NMA0GCSqGSIb3DQEBCwUAA4IBAQCFPmXAOgth6wMD6XoPvfw4 -xg0Qr5ky1pUhJj37ocr6aCNbW3dr0jUFcHHkdhyg4uEoUGbPYyKMCjp6DpPq+Sks -Nx+xWXaTeNIiHzXsY1TuQdvvC+rrANmHatYj8/kGNg5tcNvMn7PPBfy9lEYWCSL9 -ql3yim0GuGZ9CyNS/ZCmM2X/pKc3yiZK57iywlHJ7Sp1z5bmjFHE2l6NrkLYLwh6 -5V+JkeHvzgGAiuh9cIbA4XvB0UWD8GAiwyrLhTD3ZzQDe+kXskgMzNj7OYqey3dA -BDnxnTQel4PnYQQ78JeOwCVZurRL4Nph8icY8iQEeXEFp3H9hRpRe+rPs8+9ZnUT ------END CERTIFICATE----- +WxsaAmyUfg== +-----END CERTIFICATE----- diff --git a/docker/cert/root.pem b/docker/synapse/cert/root.crt similarity index 100% rename from docker/cert/root.pem rename to docker/synapse/cert/root.crt diff --git a/docker/synapse/data/homeserver.yaml b/docker/synapse/data/homeserver.yaml new file mode 100644 index 0000000..a8e2687 --- /dev/null +++ b/docker/synapse/data/homeserver.yaml @@ -0,0 +1,46 @@ +server_name: "okupamicoche-synapse" +pid_file: /data/homeserver.pid +public_baseurl: http://okupamicoche-synapse:8008/ +listeners: + - port: 8008 + tls: false + type: http + x_forwarded: true + resources: + - names: [ client, federation ] + compress: false +acme: + enabled: false + port: 80 + bind_addresses: [ '::', '0.0.0.0' ] + reprovision_threshold: 30 + domain: matrix.example.com + account_key_file: /data/acme_account.key +database: + name: sqlite3 + args: + database: /data/homeserver.db +log_config: "/data/okupamicoche-synapse.log.config" +#media_store_path: "/data/media_store" +registration_shared_secret: "Y_XNuno*Dh,T2IpHA;i,bWF^fg&x.*t=iEz*@:y5REBMhgCA63" +report_stats: false +macaroon_secret_key: "6VvBQj_TedGcDDB_z,-qXV1W3:.CXrRG6AWF&4p:~iGNguy&_h" +form_secret: "FM,2TSq++sZ@Tl0atcQP" +signing_key_path: "/data/okupamicoche-synapse.signing.key" +old_signing_keys: +trusted_key_servers: + - server_name: "matrix.org" +oidc_providers: + - idp_id: keycloak + idp_name: Keycloak + issuer: "https://okupamicoche-keycloak:8443/auth/realms/okupamicoche" + client_id: "synapse" + client_secret: "40cf8d3a-f910-4617-b290-7b5b12f6ae87" + scopes: [ "openid", "profile" ] + user_mapping_provider: + config: + localpart_template: "{{ user.preferred_username }}" + display_name_template: "{{ user.name }}" +sso: + client_whitelist: + - http://localhost:4200/ \ No newline at end of file diff --git a/docker/synapse/docker-compose.yml b/docker/synapse/docker-compose.yml deleted file mode 100644 index 78eb995..0000000 --- a/docker/synapse/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -version: '3' - -services: - synapse: - image: matrixdotorg/synapse:latest - container_name: okupamicoche-synapse - ports: - - "8008:8008" - - "8448:8448" - volumes: - - ./synapse-data:/data - - ./https:/https - networks: - - okupamicoche - environment: - SYNAPSE_SERVER_NAME: "okupamicoche-synapse" - SYNAPSE_REPORT_STATS: "no" - -networks: - okupamicoche: - external: true diff --git a/docker/synapse/synapse-data/ca.pem b/docker/synapse/synapse-data/ca.pem deleted file mode 100644 index c3957c0..0000000 --- a/docker/synapse/synapse-data/ca.pem +++ /dev/null @@ -1,18 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIC/DCCAeSgAwIBAgIEY8cv5jANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRy -b290MB4XDTIxMDQyMjE2MjUyMVoXDTIxMDcyMTE2MjUyMVowDTELMAkGA1UEAxMC -Y2EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrabUOthTKjjoV+5Bj -2OVtdNqBYeGNAvxH4Ae0GNx8axuu2O5oyItkYvhTg2HSoBUSK+jL5FT000z+8k+v -wL2HZd7lZhF6xeUFBhkPYepsK62I6w7f6Zg+d7ccnRcA+9Jt3Xok4vaPnYhjvUB5 -Z25VEZZa6/35YZJ7wEdyhFuONnnVM3+1tajq1GVanwSK0y3qhmX2jLy2neMXx1zY -J2neDElHwzYtsmVek9T8TlxLhNJiFcHEscmWrT5NOntfcTYaZosWyH+Nm/+EJuAb -UTTscG6YdAL7p4zvOiZ1j+QKb3UCrtSSi+XUZi/uNS3Ky4asgiaUNCbHc3D0a3G0 -HsmbAgMBAAGjYjBgMB0GA1UdDgQWBBQD7PILP4eCg6TDhEkwZwLiNAb9gzANBgNV -HREEBjAEggJjYTAPBgNVHRMECDAGAQH/AgEAMB8GA1UdIwQYMBaAFORJiEeDfjQa -MvoMZkmv3bWw8/8NMA0GCSqGSIb3DQEBCwUAA4IBAQCFPmXAOgth6wMD6XoPvfw4 -xg0Qr5ky1pUhJj37ocr6aCNbW3dr0jUFcHHkdhyg4uEoUGbPYyKMCjp6DpPq+Sks -Nx+xWXaTeNIiHzXsY1TuQdvvC+rrANmHatYj8/kGNg5tcNvMn7PPBfy9lEYWCSL9 -ql3yim0GuGZ9CyNS/ZCmM2X/pKc3yiZK57iywlHJ7Sp1z5bmjFHE2l6NrkLYLwh6 -5V+JkeHvzgGAiuh9cIbA4XvB0UWD8GAiwyrLhTD3ZzQDe+kXskgMzNj7OYqey3dA -BDnxnTQel4PnYQQ78JeOwCVZurRL4Nph8icY8iQEeXEFp3H9hRpRe+rPs8+9ZnUT ------END CERTIFICATE----- diff --git a/docker/synapse/synapse-data/homeserver.db b/docker/synapse/synapse-data/homeserver.db deleted file mode 100644 index 9a0673d5df2cb570c46a41ff62c4d3c58cdeb05d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1667072 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 E2OIEa!T