|NZYZ%OA!>Q_y3yR7
z722(=*1I!@;*t`p*qiX;A3|*IQ}rER){)G*PR;I^XIcyHp}X?z5P$k(D|bW=y4U+xTG)>yWMr$^4H
zWa;c3SH(`46#eJ8yxP&gu=8abI4IDWe4r`jb6dta;0xGi;=@j~PQrkE*Txt+4d=sN
zM>UD!Exewpm1FF>|D9|!QA$^(xMJEE(V@ha6lF|hu*(_z4vlQesK
zoEl;^{7tv<(OmM8S9vh)x{DI0qo%{1?a@(K1@)Ob3+rjUOb&YA?8;mXTE${DoibV-?MU+<9grELM
zN{o1tFP+Ry2wRrmKJU$5Mcg0%E_}wzC%jx8b{*EMcCb@}Emh-RQ}M^(Gr$7)bUM=H
z_y6c36&K5)J&yKQd4szGg3(#8M}>duTPDrpK;qMTdrNqoH_OgWOU0w{@?Bj)n6zlR
z`_h~Vy!&?sgi)<|a_N{nt^qmJ@{8Tl-6bh7n-hu4nYXQGddxh_*K8t?U610v)f!G8X4md?1DgNy!<6jFi*w_I73WvZlvB}w*zIsB5pod*
z)MPZ=X_w*CXe%U}!I!1$CFq~4Rs{-STLmxbbSII(Ymk>CyzTaF>X4Z?BEL*gOAL#B
zvt0RSfY%|3dqs(6FDxCP;i5}BFCliCORQtSbk!9ndzDZD>=x$kgR1H!qw!vJo%FMy
zGKs+?c6Wt1vXP+KFx3$}KF3(8Yw=&l4K_mqqodJIPH%a^t2j&IE+xeJ&
zTPBHqC%BrzUS+bp_0vNCVCiM17Zr#FMZlD_Ms1XKSCh~}yyS!<
zLv`^UH+|hiS#b@LhqF_AOndyeN!vpQZ;~bUeyMNC#hTkNWgF9Vjom24i$7!7hb((w
zDi#&^h!+u68{tl7-ggq3DxpluX*PKw=hnH8qTs+o-Hzglbz|@!X)-NmfEjpT>LSyN
z*&vD7kXGv@qP)++`k4NcP%3osxN$J{eQMV>&YiBQ_*AAIUohA(I6Y)(8dOrl2sE3!
zE3}XIi4g1xo?S*Uf@mgpBl9=6+uLG7bh8j}T%tF+fZf^nIJRP|bpJ~qOhoi2OgV!f
z?I7_W*=<0?X2MAKAkg-i$@8$8)CkCxv3aQs<3Ww8;*@Y3vmc*?3(Ph1n7_^g(=t{3
zxLVih!{f-G7=7-`5(iV$%WwT_QIDqxq8em9-
zyarC0=S_8Wm%H%Xy#U6R2N<(%S1sE%rOO#HdpH5`y%fEIjo+RYy}wym$!@Vk8j1e}
z9R4$A@cD~ZEfD%?wQzl^FKlU=+#TwWc`8C2C&W$r|v8SmL+XCu5IO*^TgwU|r~
zH(_nU+}jHooY#&b4rLZ62Xl7ZF4Q%&K06evXxi%DcQEr(Mwm7yggzy~hGxq@j7SoC
zv8e3Au9LJ_5&1N-Mz(g=U3&^2T>F$peIt`8;nwqXK@6egsKts0V^270kM5uO-QihE
z)hg~2rb6vw#JFG^|MRfpHmbx?%~V__Mc
zV&jwmF3F+H5W1R@*E@6_agihZEv^F1ZEBTe(l=c5+fMOaKEbC?W&sz*QK*W#@=&9f
z7ojLrVm>#})U-7i_TjM7Qs-s1YB&SNz6-%k
zPGLlFN`tl)3)9-b%aqUPwCu?T2GTuZD(P$6feoi<7Cxxy?S%o?3i6
zSF{wvp;>d6T#+(_FyKg;~$91o{V%xaCj|(cR7AeYgbS}
ze6bmShJBvS9#|r;;04G^(f_H2K-0%@;@?N}VEBBW;}f3gWGP^M5+6
z|9z-tHkoGOIJnISUt!MYJ`8CcE<@VL8I2A}kJKWHR)r;^9M^EA$a
z@B7M^W>nx?S#H%o8+_*2Vqc9FN_B$Z=(^k?hoSzfRX6eZX(nSSiy;4JSB2f3e#!1P
z1&a&W@sJM;f*=GcJNzYXPiFSo89?9qp5RgLkHugR2}6Y1E4Q&_v84{>gH;~n8#Rqk
ziCcx1=!GXtQ4~2%Rgepz{;~E$*$a%;g|~^G-EEvMY|Z#9Rr6I?pGN57xWVg!#9YwU
zslw}2hQ*RH1jlO=)475B5pmgF+S@j21wU#koIV<%IV_f>;D6ipF5uR6tbbSGX*ja8
zS{~O{504ENHsdcW-*>SXRQM?ma|VVAD`Jc?_BPTAqi2Mreo8-+K;^7IfLx{}i17id
z6bQGJBov=)Jo-b*Jyy{zve@Z|dkc9tIxmIl2p&nShSbqiO_byW$GyL+f4`(o4JGxo
z7+u5v^7TxiOIOthAV^bV9=Tq&hzVLRS~x1u=#ze46bk?5RxOn-QV(UZI_*d|g0dRR
zB$67DHe)sWIf{uY9BrAZj44t91h_)h(lsk`P|1cic4A&4
zj*-n>zT$HokWD$lw2k2b)fycf+*_muSO4d`?Z2(t
z0Kgs>XYC0g4or!9g9;SMrj+jr-%cCufZ(v-4BXPC9B}Cj1+raFT3x(`m33kQ#e4kl
z4O^f48A~jI`AhPr?+TXEI18+Z`l#GxZ;O~3D{OZcO8!-0cv!G)8AFJ`vInsaFy1l(%E8Nf(H^UL63K6rFq!A-atC)QDpbiQvX
zN~e=FL!Y(}8|0I^acDB@b~x7_ujJctir_U^9e44n8l7ux!K*MvRJLv)vwY`RvJ?W>psKg)rF$WPXESiiuD)VmpNavvVr4?ZEK@v6E30~)N9v&k?*t5
ztEk!t=+tD0<_&ebGl!@K%IY>My!bp}K2B<3+W+XK>v<)ZEO)Ru^CRZR^C$^MAybQ3
zR!N_@9>2{|RS+bM1ZoWq332Mhx=e@S@M11vY{+wIP
za-LDnvl2(yzZ6heyazInes_~=;1TA}G7HY`5xJ{%ks)kB2^(jC{E1~EtfHJKDzikd
z5PmTgyFC*9B(`PfrM{aHn_E1MY*e>Nm0Jxd1^0Hqbj_amf^iwjeY?oN{>1BCIRa!$
zdD2`A{v10iHY>VUfjtB89dZl2dDC$!at7Er|9hwleEIt*kjdJa^)wAgF50Kbk`{Sn
zvITZ8fEBJ3${OC?6-jVHxl|&uT#qF#y&=OoR|PpokDr+ut*?|My?Lt%T=LtZv*y?t
z%D_A2pRz7@ij?JfF7iXhYNS|U4_pJR2KW(nvZl68rwBEaIk(&?D`U?rEKj##?dHVq
zf3?qcx^rmXLQhAjIvBV_RjVqTj|$#a*6Tt)Cc@a@wLfa>Y0meeNWs+JsqXgCI#DZIDxb
zf1>n48i+s#yLpTnvU<@L_Cik*Jl`Sst=S>
zY1xRe-{`2z>fT{yMmO9TE~g;%!8s;yJ~r0JR|4E}hhHRsS31?-_S9=7NwCn@v4*U3
zjYu`@c^r$)ozm78Pb`)t_;A@8-Rg|mHspEkgqi8E`Jvddq8KGR(1V>YCZps@pV4Eg
ziJ@Q3480O5EONgCihx6yL!#pNY2CT*_4Xxe-IaGLTAEwTTTE25@sNb$IE1XMeF#&?
z5mQKQHsV~>`?qwr@o7ZG2EtOJ?$+$F1JQ4~(D*_EpRiV2h}|c5LnA*c
zv8@(o80UdbWSishh3jR-GXe0`tUsGx55zo>g5LI;D5wc_T-6R}USOl4vIY+kf$4X537;VrOiFV6h?C5+gU0CuAl&@=fYs|3rU{@lM%JS*dHq
z%!oS%uif@!wxbYz2H5bXQ_ibrGRgabIxPHl?&1IavU;OcQ?4w#%qvom%Lb!HeXaMA
z+`ZSn>)ft9Pe&!;jMK_qoM1ljqCjz{{pkEseGZ3iJFKl6!a!X7i+T~++DB(_?V+?`
ztkCMi$I@!Q&HzPcfOM-16U4gKfbrG>xljDb!nGk!5ejaz$uIgTV+jn=ZmvHXzjY-a
z!pXgiK2-q?=mGbU=N}QRo-JiMS*C8+mSDYeBa7e8t!<4hy6+fH3tQYuMzdgLU-$2^
zG^U$W9V@cC$+M3-KXVYZdm1iYDOg+rI|IM8QDLjF2@C
zT)z%dGxo5TsObF_xAkB#+2T-qwJH5UQEV2kNTC36KZ)z(n}X5zc6
ze+IY^Sm+u@@+j*Mz!Qw?B==!U7WY@=bbJK+93>b*jNN|jbJFkTv!dB!J7b)2HKj0G
zE2WY&M|+HjPeE0S{}KwPTkT&hnJiSJltzoXpLzq5?-+c8k^W_h=Zvtw&-{9}sjKX=9c*j^fxA1Ft#b$bF@BPUm*N*+1a)`gT*)^Dc
z^E-FwZosydxD??!_5SnJV-CH^*Yn8(8(H3`d^YdCtjZ^<3zB!e_G+SuvwU&{0+$zm
zoAS*=)hB;-+l@LnHxeyjv7VMuX)IZ4zg()>{kr6S?9eCHBDyK`>YGt(%zP?-Y%#V&
zvk6`WW|D1FHs4R(xS}^vs;o0|Xt%^W$7K@G+Ih62oa)GF8hpAq*=G5H_<4`P-kE?ARBrmTvTd0dn3
z_A#b=Oi(o6AHWIeL}I0bWESQOz}4wmz;*ke@l>TDZ^AhBo_$BE
zFy*0k61CF417;2?>wve)Z{r13(vYy$LKo8zDSmT&h|_lfAl|)yxx6=TS3MNO;G)Ln
z8$0f6RjK`^ByZ$p22r~0=e)f<5zeF9jtiBT^z^NX;4+;FIpIA%pRcrc8~zw>DA`O7^Jgj%ky*gwdZnPf3-OlSr~#`Hpk#Cb$YLumu#33o
z<0jSFc~~|jU8?$IdLt{XlAS|PV2K*JxXbu6d(?!aiU32va$&R0S=MslJi4Lc5}hE!
z2VF7CQO|7#`7stAP?UgnRn*}2QpGRSegQ6xLoKY1F4(_kv3pV$e*8l|e~(VDS{uOw
z)_7DO6)aCMh8G@bwDOEL;6hL%I?%*t$@KazAOD(A2Fr^NNz=L;Wt|)xw}T3nn_fOA
zgdRCYIGgA`;9=qztU+Z-h1sL&Y+
z;NK+YXgRqy^;aUN%vz#_pW}_rB}14)I&SlSSwT)r#=s^DI?z|g9QKpEp_3Vw)k~hq
zY&HEpASLHN1@+&Ye}%AE$1TllpQNbXoe8?F<%CAjgeJ!01Ab{9Kox%)cLQ0)*zwT?4K7D1-
z|MECYG4ymu#(MS)@Q_!Zj)kjr@-%dE?Qx#*UsCv6LJs#QQ0~LuXTd}-?1Q3g_kT~d
z8}&<&;A~@%&>C^nu*+LQj9A2xLi&2K_8iTU(&a0iwG+}#b!`uf>XYV$E_@@H;dD-{
z2fN#d%M5O&%S}(WddN_AE+1rK4ZV!`v}Af_NR_sZoAOY4lg!m7p+ns%gO}jppDWNB
zsmQ|Wy_(>iHM^gFxZlbC)+U2)JIWE+V4Y#~xQ=aDt@IB1Cn8FLQ%zuBEn1$Gj=1US
z$n_p_=$x_|wq0-O8=Wetd=)*ju{KU;_JJ-a;bMjxqq
zF-!k&VX6A0t#9d^8Raq@E^gATg%e`(k#isTb?5E*xIV6Y6m9*yr}owfM+Ekzx1Z~z
z9M%dClbL5vb(dkxW&H{;bz8`M+kNZWSv|FU!^#!QRZ`ZN$B*xbh+D1!Rrq-mjz5-%
zou0z1+|#Ynt*nkh*6!92xDUaNR_OXGPlt{sFq}SrcF0&Kv0Flx(_5aTe2D00h8jws
zCZ)8{&5q1q#AV4s7Sro*FW|CtRel$J9JEk19H0U!Y1|~V?%S(piTaQPkYx)>ce7^0
zk)JwusIL#=wi(5?!e-p-*`Jf59C96+GuWa&iu1FV&$O*G)w)Mm+FAaxWK%8dugkj6eorA&ZeKP9!oGd+kr1JH>0@A=J0FkPo7
zxgFu+3Y(9f!AJVDJDu7dwta4ibUN5#hCPNQkHTo6Lr85)=#N4gZDZsN`_+IWn?ukU
zz_v^w$aCwi_wbaneAD6Ggxo@;>^xKVzTcMQ_zCfcJIirkjRkRxy0qY;|E4}Njq)Nt
z)2SdG-NoLKB=%tBcLb;RjlPuBo35Ja33u(agn1YGvpXO?KyBF}c@at{ZT0J+*Y8SEHBL^YKbXX=zzO*}IoU
zS2@5YmXB+Q2t;3Ms5RL7$_I_mtG8r3+!UXC@JJ5&^`$`3W;WH5{dYd_%B}(am-{e4
zW_LkrX;E~byYl%QN90gY7ClvOOmR)CjVnDrJS`J+xnKEggEG}XEZ_1;UbRYAe(4Bo`5PUD
z#fPCrxWNg57Gv)+O6Jjx+7|5cK=3G!NP=gx20RuMW-pW3Rvn*?1-Xx|D9_;aevuU<
z(@67z0!D6*zmo;_R>jeGy%N86tr`{pAyB^2ymo){IA@*Uqo=dBs*`gQp5ot%44cMH
zPnw5PZ}BkWUm{jm*Y!Z22qcx)Ouy##jW+QHh}D5RrzY3p-K`6Ti4j(|9z!-$TFnnN
zDd{Dt+M37O#+pLYk_fx4gMxd&(BR#I{n=sRBQ^hq8*g&=aFQ5!K2s-6dG1_8TDU6W
z!>P42_X^d4+($C3$_mOiB1MWtIg-UBR@XD8{E`>a7h9)#NR6=>8>|`Rug1zfwMq)r
zorD)-Hu_N|BEkp>8CSlSL@19Si;;AIPjQ)nzHv#BDh^0?`A%QBo4j-5=kZ8%r9ad3
z7%QF2T!QQK>XC0M-1ND}i7(
zqZ@z6mQ2fym
zgJV<^mD^O0#pz%BmS`Z>t77!=2vA$m`H`K@bF0u^_ZD7KBD<~xYfQWwv>oYN5d29g#<~R9J0Lr#)l*CdPd_x!@$y`VH;1DqAQ)ud;v6Q~#>&NX
zV;rQ7xLQ~0LV{nBE-rjA;C$3n528!A9+o0?7*|Vr@AfD(1InDjx3Vm^$*}a{_5bjv+kecY>LzT`OM(@Kk
zH+|0lUwx^O{3d@txB&nO2HAXNS0+R6K0bc6mET2i*;Ec%(HN8-lzBvP*xZ6f<;iZx
zKafl=5v_BLFsKumF%OGi#F9&&*A33-cFixNhweB9mS*+sDg_2ns7iE;c~HblQK{%M
zU`?oh+2jDh<+fU7A-Xi+8UN2&86-burlHz#Ti+{`*Q|Zu?KvHDz%fCp8@}m4elOzc~w<4Mc
zB-ocw;71>>*L-=1{_twZBtlgDcc
zBSbQZla=#?Qdha~OB+d7{cbF+PKAGiNivTmeAOh%Q-1aDu3uRod>;;gx~xhhJBmc!
zoRhO|GHh#RTyxv$M6arU{I=W}ttoXpTvPQE0N`qgk?wYrU;gNnA6LKuYvrXylkOpe
z+Zjuy9;@DqD%3W8lUTrl_lmNU<9WXX+GX==nSQ49KFzOF)OzcEhXV*u?IhIX^6;z-HNEOw+Co?G3IQ
zAt=4fbu!V%l2+ECrd^eJ6yf0kpp5w578uU!eb_e@xImd#G2U(;#&BxE>iFH(-^?o|
zJ*qGH@p&gw?~+E*;G~^NA8Z|)bW;5Ii>OMlDYMOTaiJ;s{vJ--Qs1NV=zo1K0dSDW
zf~HVgn-C-t-1*&9>pJABd11D#J1Vm^*$R{^Sbuc5o=gE%BFGdF;)Y6AbEI^
zOq18ymJw=kFHN0Mh=7kRIX!&&}bR8VCe4rX&Bx8TO{HnNy`
z@AwR0^HwQ*$hw~zE+*Vd=;aiJ3UGCbn0V2Qa-@;P@2$uFIe(2e6sy3gZ`n?=a0q6p
z?Iuvk@jnqLdHpTBCBh~Z7;9%R9UBY3Rx-gurx{TTOWhqKJa<}$z>6Py8?UbhhPBYJ
z9N4@N^7z{0C16c$VTK9>JmGW>=<=sh>`VjB02V8rHCA8;%o7Uptj8qfczmSPQLcxk
zwmiRUROYo4q4jkv&b3}g7yChh<(9B4UdkB&pvJfl$a8Uw*PJGFVW2q~>!jRSbC>k6
z448`bh|@gJO$~6Uqs6hm9`Ah8tiLY2r#+QnI9uCkfgs;M=QPDdgp9}?-$e1@^^Ieu
z4476l2sU%Luac*kV;Y+u>UduD&1Tm>9dl)f?YwPl=4GFEy*W?Dj<@}xfS$6_(b$oV
z|8GAScSQxOX}Mmd4EXyRuEuuE$awJ9A_W<0Q-8AN5!W2;1e%{j+u1h7Y&Wg8$8BvQ
z?Hov@iv{i`AM5+2dmTOUy=L}SYd}klVHJe5;O7Sh-w@&gr%osK$6!LIN~Y2VoIi%c
zy+`G~tdN!=Rr7O@Oo}b5Wp{;)RZjj3vix}*n}DK#)-bK5Sr1+;>jUe7c)r4Uh;4bp
zsm9v|{83)e@3T^966NF3P|MskwH9~Hve6QkHMwEdqSOr|GlX>at5BK%Qpgp)>3J7^
zserEfBsLE*88d#5RP7H1saBr;f|N4j5R^afPu^9`t!!OAYl}ZfMc(=$I^463X|zlx
z5Q>c
zm83`A4qr^*hHOP))ygwE2}oYbo3c-jPhfVkkG#$R{)GPGGXTiP;83dk3@{i=#Rns-
zkI0oFov85B+>i;copV3R(0IbBo~z34!#hga3OMC0Up($n;5t9TQ6XcOGnNlBI5#$=
zr1$y+RAb_Cr>@5He!-N|ezsCn<#c5U-whzHvi#KsZ}I~D((Y7jLD{DhFN8l&`8tBl
zXJ%prOUuKWAL>-o>}8oi@TT=B$kqR28LEj$R|@E4`PcyYQ5lwr4;IOtC_AC3XqTNp
zM^$Er&I82^Ro3N>OhT63I?n))&|F6e(d&in{V1sXhqdv9S@aMxa1#~Iyl?0g6-e1s
zIh;jB{pYa>064k1>|)_t^&lVLT&kLo$bYo>*+wbRags$J95tiU4;p
ze`u;r&SCcQ+!a0~H3=Ay5QC<2BExCq*q<&`_B
zZRs0>_MAIzn1N^ma^-{!D2#z|(w!u1CoHErGwRAXkYXWmICt*W!GH|CvIzX=q@Dq0
zgKGaPbN^4=Uvu_`sAh<>o}9kqeI8X7Lf*2OtH}yEh4*E7{g(*rf8b?xxYc-Z!-j8i
zPTc-=;ob?3|28)=Fl2kJA&|3TR=;Te)9h{UeojZRjDdPCeIhs}_t>~4ZExB41==&~
zz_b7B9E-tP7aZp?^Y$O={g1+J$R@$WD{$-H2d7&VsUmCOR-EVT${WlS3e8T|#HbB}J*D(J*M72(}a3bQ$xZOKeu=y6hkdiLf5F<8QEIKF4$@
zV3oPJi0znm&Pnze*8dhDvfLM*qA;v<4iF)N?8NVxkQcB<3kN}cAIF?&lfiKqF(gC<
zD!h2}FbHR2zNbk+*s+kZh#t*jeTtMhaPxfzF`bD6xVP3oeh`8|h43NhbD%a@WO{7MR$OR|=v2nQZrI#A=@cRUo
zIH(sKdtf=k4>k10DktLa#X2&@hPa+o*M+)!E&Z_>Ju$GjdaugxX%8x^wKP_*zQZHG
zd?(MVaZ2|!sKJ!}!(5MaFDfRXazs8fh#5tkSKbmQ`@_=a{zLr#c*7_I7d;hgY=tY%
z`smckeX2Ut=_|#c8MjqzE#&4C3%rFN@GO`rJ3CS3dkL>g{mq*nnnGW4I;l80d5oU{
zcJbDKL8AH&)=n-l2Ao5p_A*0izMmK%BWbZoP=;(X&_@rUE?q5r-CYfOL|bB*z0Ast
z7G40bW$=D2Sag4)ab{9ACSQ6@t!YJGy%+~^6?+{SftNBb|NY$YMEnbfb+tuz&kK2u
z!wTn?>jJkK(ElR?e=l)P&H%5BD`u~cg}0Xmau`6z1A~Tl(lAY3leVa0Csg*ZO(sbk
zVOwBcpdQxZxpqIR!o*zcn8NHXCwxA+8`=%0kr?FW>dmVHJDH%IrLl7>*t^*9E@|Ai
z{^sl=wQg1V@Z5QJ#$*8vqtMRJ1=e2U?F`5x`s-yyxbNYwthNa+GDCEye_6>Gv^Tu_
z@%YftcI>Im(4hm>CTXK)s$L##@3ri5L(btLu(0~(e3R#DRcOndzf=E@SKa-^mm3_5
z!{FP4d|&!ecbq_&nF(cE@1TOasQF4V*eJM+`b~9f9O_bWxT+onX=KzvpWLiid0=9t
zEa7!6_V7ZB|N7@+VE%@3vC*f}5aKQkQ~?qmi%!*Tt+bQ<w2%VViQ=v6XBjEhOWXIo>ErZdFFN!Fxu$^I{qF9
zj9tE`VqUurq29R(mk8vD-=pALX
zqOa~_;_xYVh^kB8Pj8UU?@wFxOugOdCO;WdAE-X`Q`J}6=ck1aN%@=|N;Eq#bwl~(
zi!^0;7mO99Vi9`Gnp@9UleJ$A(j-Gm^ctEfJRx%@pVM{F$v)DIqSQwI9?I}{Nu_1X
zq7K)fTKha^0{HRz`{L0Ma?H+LtoEtO
zUhugh`p+qNazr1uxUr*w=H459T(anf>(r{irO8FwPtVD7reXy>mjQqWmzI5Z4hv9SO5Oy(7%KKd;KTnbVhH?w$jIdE`7z_7VqNRmUf&Xk(SIF=R02%^%}=;0%t8XknuF
zQD9m`|FUoq^uhD8s^ZGG=SDoB+4m%}_*eZ<{sKFl2;Tf$4LF9yzgjkwkKXEO(G}Ji=Ll)39gWb7mmj0*AK7<$g54C&DoB4Jq{Grw$1IFe`;K@{
zlxaQvziGIw>@k*C`CR`gxDF
zVnj^zjT!?s==-^ZY3~G-9NqP!En7WM;idh4MBP>W6W0l8@@pLY
z3CrNpst{~nrum$p3$se?Z#S)Z>vk~$>p|THOUI{+ay`8+o&~W^^o6p}w$$pPxQ0h?
zhS`S=)5Y!!bHiXFwgd-O7CdN433trm(vEImu=M6KunIqNeq?-1^gA3W<#|?Pche~5
z^wQI%QW;jXms1z%6G-pp{}+}6Y5b#BI>dHWBF~}ONnR0{nD@^bJO2QSTeOaM=tabik)hw
z3reu<#=$EZl@2}SV?<1b3VQR00000^WLAyd2egfY&0Ij
z&UB8Yq}r$2!&B%Qy)NCa$yN}wA?4Lx!<`QjS;Ezr^3c*`#$JBpcUyB9RwMraFL^?n{~#dbZ-`Rc|Uc;F{0hCcjt~vdn#Jw%+fdK?CltD3(hjlcCWhXm2um~T4EDu
z_+h;d_g|$O&Rr47(|C7Q;r;5Bg*o^rGiTj$ZR&b)@0PRr4`GRSrN&azk7Z%rmF$Nz
zjAJWDyNT6TPxNB-O5|?7*45!3aJ9sIujc;%HKB#sV&w?;_i++A6_)POoA~49g<)Tk
ze>Gt~*~T!hYw^#>O%cc1-Z)QX(_M?4rb}C2Fx~a%BdI_5lKL&^;i;^r_u8Ta_-8TR(~_Rcf=GIam|000000000000007
zZX^lw)$oG~T*dqRei0)*Azv?StJ~tr7oUHQGOurMe{5$zvl%^WRPoQqP3^`S(fChg
z+?|!2CNo;6Fx~bSBq?9`Qo<@I<|*8(_hGy%IsL|Ja}P!@RKB?D4Qjp-_X?~?%03VD
zx)@w)HWI&YXBQ)`*=Y?WykkEst1A4{`KJo^#xu2U74)Nd$-TJ-Z*l7UKZ4S}rvCsN
z1{C|QwY|VjeX{O^d^r
Date: Mon, 29 Jan 2024 14:42:16 +0100
Subject: [PATCH 004/256] feat: update version
---
apps/calcom/config.json | 2 +-
apps/calcom/docker-compose.yml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/apps/calcom/config.json b/apps/calcom/config.json
index d09732ea..dfa59696 100644
--- a/apps/calcom/config.json
+++ b/apps/calcom/config.json
@@ -6,7 +6,7 @@
"id": "calcom",
"description": "The open source Calendly successor. You are in charge of your own data, workflow, and appearance.\nCalendly and other scheduling tools are awesome. It made our lives massively easier. We're using it for business meetings, seminars, yoga classes, and even calls with our families. However, most tools are very limited in terms of control and customization.\n That's where Cal.com comes in. Self-hosted or hosted by us. White-label by design. API-driven and ready to be deployed on your own domain. Full control of your events and data.",
"tipi_version": 1,
- "version": "3.7.6",
+ "version": "3.7.9",
"categories": ["calendar", "social"],
"short_desc": "Scheduling infrastructure for absolutely everyone.",
"author": "cal.com",
diff --git a/apps/calcom/docker-compose.yml b/apps/calcom/docker-compose.yml
index 3b8a0747..614a59f1 100644
--- a/apps/calcom/docker-compose.yml
+++ b/apps/calcom/docker-compose.yml
@@ -3,7 +3,7 @@ version: '3.8'
services:
calcom:
- image: calcom/cal.com
+ image: calcom/cal.com:v3.7.9
restart: always
ports:
- ${APP_PORT}:3000
From bc70013ff06ab0896c1c51bb9d8d60bc4d3190c7 Mon Sep 17 00:00:00 2001
From: Sturdy <91910406+apollo-sturdy@users.noreply.github.com>
Date: Mon, 29 Jan 2024 14:46:46 +0100
Subject: [PATCH 005/256] fix: restart only unless-stopped and add
container_name
---
apps/calcom/docker-compose.yml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/apps/calcom/docker-compose.yml b/apps/calcom/docker-compose.yml
index 614a59f1..5089c665 100644
--- a/apps/calcom/docker-compose.yml
+++ b/apps/calcom/docker-compose.yml
@@ -3,8 +3,9 @@ version: '3.8'
services:
calcom:
+ container_name: calcom
image: calcom/cal.com:v3.7.9
- restart: always
+ restart: unless-stopped
ports:
- ${APP_PORT}:3000
networks:
From d18be4b8d751841767b7af0901ba38845d348d6e Mon Sep 17 00:00:00 2001
From: Sturdy <91910406+apollo-sturdy@users.noreply.github.com>
Date: Wed, 31 Jan 2024 13:54:58 +0100
Subject: [PATCH 006/256] fix: hardcode NODE_ENV to production
---
apps/calcom/config.json | 8 --------
apps/calcom/docker-compose.yml | 2 +-
2 files changed, 1 insertion(+), 9 deletions(-)
diff --git a/apps/calcom/config.json b/apps/calcom/config.json
index dfa59696..42bfe571 100644
--- a/apps/calcom/config.json
+++ b/apps/calcom/config.json
@@ -93,14 +93,6 @@
"min": 1,
"max": 1024,
"env_variable": "EMAIL_SERVER_PASSWORD"
- },
- {
- "type": "text",
- "label": "Node.js environment type (production, development, test)",
- "required": true,
- "min": 1,
- "max": 1024,
- "env_variable": "CALCOM_NODE_ENV"
}
]
}
diff --git a/apps/calcom/docker-compose.yml b/apps/calcom/docker-compose.yml
index 5089c665..3a285201 100644
--- a/apps/calcom/docker-compose.yml
+++ b/apps/calcom/docker-compose.yml
@@ -29,7 +29,7 @@ services:
- EMAIL_SERVER_HOST=${EMAIL_SERVER_HOST}
- EMAIL_SERVER_PORT=${EMAIL_SERVER_PORT}
- EMAIL_SERVER_PASSWORD=${EMAIL_SERVER_PASSWORD}
- - NODE_ENV={CALCOM_NODE_ENV}
+ - NODE_ENV=production
labels:
# Main
traefik.enable: true
From 0fc5dd5872e0c4854635a037504f149b1aac52b0 Mon Sep 17 00:00:00 2001
From: Sturdy <91910406+apollo-sturdy@users.noreply.github.com>
Date: Wed, 31 Jan 2024 13:55:46 +0100
Subject: [PATCH 007/256] fix: Set max value for port to 65535
---
apps/calcom/config.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/apps/calcom/config.json b/apps/calcom/config.json
index 42bfe571..589a404f 100644
--- a/apps/calcom/config.json
+++ b/apps/calcom/config.json
@@ -83,7 +83,7 @@
"label": "Email server port (SMTP)",
"required": true,
"min": 1,
- "max": 8,
+ "max": 65535,
"env_variable": "EMAIL_SERVER_PORT"
},
{
From 88de8f459553399fc22eec2b10d338441cbcccf2 Mon Sep 17 00:00:00 2001
From: Sturdy <91910406+apollo-sturdy@users.noreply.github.com>
Date: Wed, 31 Jan 2024 13:57:04 +0100
Subject: [PATCH 008/256] feat: use random value for auth secret
---
apps/calcom/config.json | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/apps/calcom/config.json b/apps/calcom/config.json
index 589a404f..0b2f9a83 100644
--- a/apps/calcom/config.json
+++ b/apps/calcom/config.json
@@ -15,10 +15,10 @@
"supported_architectures": ["amd64"],
"form_fields": [
{
- "type": "password",
- "label": "Next.js Auth secret. Generate one with `openssl rand -base64 32`",
+ "type": "random",
+ "label": "Next.js Auth secret",
"required": true,
- "min": 1,
+ "min": 50,
"max": 1024,
"env_variable": "CALCOM_NEXTAUTH_SECRET"
},
From 8923e085b1d41ae06a5198b3d9fc768ceefcd867 Mon Sep 17 00:00:00 2001
From: Sturdy <91910406+apollo-sturdy@users.noreply.github.com>
Date: Wed, 31 Jan 2024 13:57:24 +0100
Subject: [PATCH 009/256] fix: delete unused .env
---
apps/calcom/data/.env | 0
1 file changed, 0 insertions(+), 0 deletions(-)
delete mode 100644 apps/calcom/data/.env
diff --git a/apps/calcom/data/.env b/apps/calcom/data/.env
deleted file mode 100644
index e69de29b..00000000
From f31b83e84a222857ad36e4c9d3a6c1cc96d086f1 Mon Sep 17 00:00:00 2001
From: Sturdy <91910406+apollo-sturdy@users.noreply.github.com>
Date: Wed, 31 Jan 2024 14:03:33 +0100
Subject: [PATCH 010/256] feat: add separate postgres instance to calcom
---
apps/calcom/docker-compose.yml | 19 +++++++++++++++++--
1 file changed, 17 insertions(+), 2 deletions(-)
diff --git a/apps/calcom/docker-compose.yml b/apps/calcom/docker-compose.yml
index 3a285201..2c16786d 100644
--- a/apps/calcom/docker-compose.yml
+++ b/apps/calcom/docker-compose.yml
@@ -10,9 +10,11 @@ services:
- ${APP_PORT}:3000
networks:
- tipi_main_network
+ depends_on:
+ - db-calcom
environment:
- - DATABASE_HOST=${POSTGRES_HOST}
- - DATABASE_URL=postgresql://${POSTGRES_USERNAME}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}/calcom
+ - DATABASE_HOST=db-calcom
+ - DATABASE_URL=postgresql://${POSTGRES_USERNAME}:${POSTGRES_PASSWORD}@db-calcom/calcom
- POSTGRES_USER=${POSTGRES_USERNAME}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DB=calcom
@@ -55,3 +57,16 @@ services:
traefik.http.routers.calcom-local.entrypoints: websecure
traefik.http.routers.calcom-local.service: calcom
traefik.http.routers.calcom-local.tls: true
+
+ db-calcom:
+ container_name: db-calcom
+ image: postgres:16.1
+ restart: on-failure
+ volumes:
+ - ${APP_DATA_DIR}/data/db:/var/lib/postgresql/data
+ environment:
+ - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
+ - POSTGRES_USER=${POSTGRES_USERNAME}
+ - POSTGRES_DB=calcom
+ networks:
+ - tipi_main_network
From a27e0f2ca90eb58ebd269f063d3127126a7e85a4 Mon Sep 17 00:00:00 2001
From: Sturdy <91910406+apollo-sturdy@users.noreply.github.com>
Date: Wed, 31 Jan 2024 15:08:51 +0100
Subject: [PATCH 011/256] feat: make calcom encryption key random generated
---
apps/calcom/config.json | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/apps/calcom/config.json b/apps/calcom/config.json
index 0b2f9a83..42826579 100644
--- a/apps/calcom/config.json
+++ b/apps/calcom/config.json
@@ -23,10 +23,10 @@
"env_variable": "CALCOM_NEXTAUTH_SECRET"
},
{
- "type": "password",
+ "type": "random",
"label": "Calendso Encryption Key. Encryption key that will be used to encrypt CalDAV credentials, choose a random string, for example with `dd if=/dev/urandom bs=1K count=1 | md5sum`",
"required": true,
- "min": 1,
+ "min": 32,
"max": 1024,
"env_variable": "CALENDSO_ENCRYPTION_KEY"
},
From 6f6fa54348889bbc1168c2107018776381002568 Mon Sep 17 00:00:00 2001
From: Sturdy <91910406+apollo-sturdy@users.noreply.github.com>
Date: Wed, 31 Jan 2024 16:40:42 +0100
Subject: [PATCH 012/256] Revert "feat: make calcom encryption key random
generated"
This reverts commit f4e1148dadc65379c56c9ce3cde4afe7e7f380de.
---
apps/calcom/config.json | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/apps/calcom/config.json b/apps/calcom/config.json
index 42826579..0b2f9a83 100644
--- a/apps/calcom/config.json
+++ b/apps/calcom/config.json
@@ -23,10 +23,10 @@
"env_variable": "CALCOM_NEXTAUTH_SECRET"
},
{
- "type": "random",
+ "type": "password",
"label": "Calendso Encryption Key. Encryption key that will be used to encrypt CalDAV credentials, choose a random string, for example with `dd if=/dev/urandom bs=1K count=1 | md5sum`",
"required": true,
- "min": 32,
+ "min": 1,
"max": 1024,
"env_variable": "CALENDSO_ENCRYPTION_KEY"
},
From 74d21f7ee135bb132349198350d65a23ced5fd85 Mon Sep 17 00:00:00 2001
From: Sturdy <91910406+apollo-sturdy@users.noreply.github.com>
Date: Wed, 31 Jan 2024 16:40:54 +0100
Subject: [PATCH 013/256] Revert "feat: use random value for auth secret"
This reverts commit ba6e098ead8b647d6670771df3c3aaf939b3b25d.
---
apps/calcom/config.json | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/apps/calcom/config.json b/apps/calcom/config.json
index 0b2f9a83..589a404f 100644
--- a/apps/calcom/config.json
+++ b/apps/calcom/config.json
@@ -15,10 +15,10 @@
"supported_architectures": ["amd64"],
"form_fields": [
{
- "type": "random",
- "label": "Next.js Auth secret",
+ "type": "password",
+ "label": "Next.js Auth secret. Generate one with `openssl rand -base64 32`",
"required": true,
- "min": 50,
+ "min": 1,
"max": 1024,
"env_variable": "CALCOM_NEXTAUTH_SECRET"
},
From 83698e7b3b8556c23673b68a80e1190ccae16a33 Mon Sep 17 00:00:00 2001
From: Sturdy <91910406+apollo-sturdy@users.noreply.github.com>
Date: Tue, 6 Feb 2024 18:45:37 +0100
Subject: [PATCH 014/256] feat: Add form field for google api credentials
---
apps/calcom/config.json | 6 ++++++
apps/calcom/docker-compose.yml | 1 +
2 files changed, 7 insertions(+)
diff --git a/apps/calcom/config.json b/apps/calcom/config.json
index 589a404f..8fcf2d83 100644
--- a/apps/calcom/config.json
+++ b/apps/calcom/config.json
@@ -62,6 +62,12 @@
"max": 1024,
"env_variable": "ZOOM_CLIENT_SECRET"
},
+ {
+ "text": "text",
+ "label": "Google API Credentials in JSON form. Used for the Google Calendar integration. See https://github.com/calcom/cal.com?tab=readme-ov-file#obtaining-the-google-api-credentials",
+ "required": false,
+ "env_variable": "CALCOM_GOOGLE_API_CREDENTIALS"
+ },
{
"type": "email",
"label": "Configures the global From: header whilst sending emails.",
diff --git a/apps/calcom/docker-compose.yml b/apps/calcom/docker-compose.yml
index 2c16786d..57a3d3b3 100644
--- a/apps/calcom/docker-compose.yml
+++ b/apps/calcom/docker-compose.yml
@@ -27,6 +27,7 @@ services:
- MS_GRAPH_CLIENT_SECRET=${MS_GRAPH_CLIENT_SECRET}
- ZOOM_CLIENT_ID=${ZOOM_CLIENT_ID}
- ZOOM_CLIENT_SECRET=${ZOOM_CLIENT_SECRET}
+ - GOOGLE_API_CREDENTIALS=${CALCOM_GOOGLE_API_CREDENTIALS}
- EMAIL_FROM=${EMAIL_FROM}
- EMAIL_SERVER_HOST=${EMAIL_SERVER_HOST}
- EMAIL_SERVER_PORT=${EMAIL_SERVER_PORT}
From 2f047a834f58ef7cc165411693e82c7b2c382e07 Mon Sep 17 00:00:00 2001
From: Sturdy <91910406+apollo-sturdy@users.noreply.github.com>
Date: Tue, 6 Feb 2024 19:14:56 +0100
Subject: [PATCH 015/256] feat: bump calcom version to 3.7.11
---
apps/calcom/config.json | 4 ++--
apps/calcom/docker-compose.yml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/apps/calcom/config.json b/apps/calcom/config.json
index 8fcf2d83..29286311 100644
--- a/apps/calcom/config.json
+++ b/apps/calcom/config.json
@@ -5,8 +5,8 @@
"exposable": true,
"id": "calcom",
"description": "The open source Calendly successor. You are in charge of your own data, workflow, and appearance.\nCalendly and other scheduling tools are awesome. It made our lives massively easier. We're using it for business meetings, seminars, yoga classes, and even calls with our families. However, most tools are very limited in terms of control and customization.\n That's where Cal.com comes in. Self-hosted or hosted by us. White-label by design. API-driven and ready to be deployed on your own domain. Full control of your events and data.",
- "tipi_version": 1,
- "version": "3.7.9",
+ "tipi_version": 2,
+ "version": "3.7.11",
"categories": ["calendar", "social"],
"short_desc": "Scheduling infrastructure for absolutely everyone.",
"author": "cal.com",
diff --git a/apps/calcom/docker-compose.yml b/apps/calcom/docker-compose.yml
index 57a3d3b3..05183e6d 100644
--- a/apps/calcom/docker-compose.yml
+++ b/apps/calcom/docker-compose.yml
@@ -4,7 +4,7 @@ services:
calcom:
container_name: calcom
- image: calcom/cal.com:v3.7.9
+ image: calcom/cal.com:v3.7.11
restart: unless-stopped
ports:
- ${APP_PORT}:3000
From eec48b79760f073a84539922a1100c42e79f2a53 Mon Sep 17 00:00:00 2001
From: Sturdy <91910406+apollo-sturdy@users.noreply.github.com>
Date: Wed, 7 Feb 2024 09:58:59 +0100
Subject: [PATCH 016/256] fix: use https for env var to make google integration
work
---
apps/calcom/docker-compose.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/apps/calcom/docker-compose.yml b/apps/calcom/docker-compose.yml
index 05183e6d..c3be3693 100644
--- a/apps/calcom/docker-compose.yml
+++ b/apps/calcom/docker-compose.yml
@@ -20,7 +20,7 @@ services:
- POSTGRES_DB=calcom
- LICENSE=agree
- NEXT_PUBLIC_LICENSE_CONSENT=agree
- - NEXT_PUBLIC_WEBAPP_URL=http://${APP_DOMAIN}
+ - NEXT_PUBLIC_WEBAPP_URL=https://${APP_DOMAIN}
- NEXTAUTH_SECRET=${CALCOM_NEXTAUTH_SECRET}
- CALENDSO_ENCRYPTION_KEY=${CALENDSO_ENCRYPTION_KEY}
- MS_GRAPH_CLIENT_ID=${MS_GRAPH_CLIENT_ID}
From 00f87dc91beffc01f759485a120c203cf326e99d Mon Sep 17 00:00:00 2001
From: DrMxrcy <58747968+DrMxrcy@users.noreply.github.com>
Date: Thu, 8 Feb 2024 02:06:42 -0500
Subject: [PATCH 017/256] Update Peppermint (#1813)
* Update Peppermint
* Update Peppermint
* Update ports
---
apps/peppermint/config.json | 13 ++++++++++---
apps/peppermint/docker-compose.yml | 31 ++++++++++++++++++++++++++----
2 files changed, 37 insertions(+), 7 deletions(-)
diff --git a/apps/peppermint/config.json b/apps/peppermint/config.json
index bae160e5..d7a82612 100644
--- a/apps/peppermint/config.json
+++ b/apps/peppermint/config.json
@@ -1,11 +1,11 @@
{
"$schema": "../schema.json",
"name": "Peppermint",
- "port": 8176,
+ "port": 8216,
"available": true,
"exposable": true,
"id": "peppermint",
- "tipi_version": 3,
+ "tipi_version": 5,
"version": "latest",
"categories": [
"utilities"
@@ -20,7 +20,14 @@
"label": "Peppermint DB Password",
"min": 32,
"env_variable": "PEPPERMINT_DB_PASSWORD"
+ },
+ {
+ "type": "text",
+ "label": "API URL",
+ "required": true,
+ "hint": "Can be an exposable domiain like peppermintapi.example.com or peppermintapi.tipi.local",
+ "env_variable": "PEPPERMINT_DOMAIN_API"
}
],
- "supported_architectures": ["amd64"]
+ "supported_architectures": ["amd64", "arm64"]
}
diff --git a/apps/peppermint/docker-compose.yml b/apps/peppermint/docker-compose.yml
index 2e603a2c..3249bb83 100644
--- a/apps/peppermint/docker-compose.yml
+++ b/apps/peppermint/docker-compose.yml
@@ -5,14 +5,14 @@ services:
image: pepperlabs/peppermint:latest
container_name: peppermint
environment:
- - PORT=5000
- DB_USERNAME=tipi
- DB_PASSWORD=${PEPPERMINT_DB_PASSWORD}
- DB_HOST=peppermint-db
- - BASE_URL=${APP_PROTOCOL:-http}://${APP_DOMAIN}
+ - API_URL={APP_PROTOCOL:-http}://${PEPPERMINT_DOMAIN_API}
restart: unless-stopped
ports:
- - ${APP_PORT}:5000
+ - ${APP_PORT}:3000
+ - 8217:5003
depends_on:
- peppermint-db
networks:
@@ -21,7 +21,7 @@ services:
# Main
traefik.enable: true
traefik.http.middlewares.peppermint-web-redirect.redirectscheme.scheme: https
- traefik.http.services.peppermint.loadbalancer.server.port: 5000
+ traefik.http.services.peppermint.loadbalancer.server.port: 3000
# Web
traefik.http.routers.peppermint-insecure.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.peppermint-insecure.entrypoints: web
@@ -42,6 +42,29 @@ services:
traefik.http.routers.peppermint-local.entrypoints: websecure
traefik.http.routers.peppermint-local.service: peppermint
traefik.http.routers.peppermint-local.tls: true
+ #API URL
+ traefik.http.middlewares.peppermint-api-web-redirect.redirectscheme.scheme: https
+ traefik.http.services.peppermint-api.loadbalancer.server.port: 5003
+ # Web
+ traefik.http.routers.peppermint-api-insecure.rule: Host(`${PEPPERMINT_DOMAIN_API}`)
+ traefik.http.routers.peppermint-api-insecure.entrypoints: web
+ traefik.http.routers.peppermint-api-insecure.service: peppermint
+ traefik.http.routers.ppeppermint-api-insecure.middlewares: peppermint-api-web-redirect
+ # Websecure
+ traefik.http.routers.peppermint-api.rule: Host(`${PEPPERMINT_DOMAIN_API}`)
+ traefik.http.routers.peppermint-api.entrypoints: websecure
+ traefik.http.routers.peppermint-api.service: peppermint
+ traefik.http.routers.peppermint-api.tls.certresolver: myresolver
+ # Local domain
+ traefik.http.routers.peppermint-api-local-insecure.rule: Host(`peppermintapi.${LOCAL_DOMAIN}`)
+ traefik.http.routers.peppermint-api-local-insecure.entrypoints: web
+ traefik.http.routers.peppermint-api-local-insecure.service: peppermint
+ traefik.http.routers.peppermint-api-local-insecure.middlewares: peppermint-api-web-redirect
+ # Local domain secure
+ traefik.http.routers.peppermint-api-local.rule: Host(`peppermintapi.${LOCAL_DOMAIN}`)
+ traefik.http.routers.peppermint-api-local.entrypoints: websecure
+ traefik.http.routers.peppermint-api-local.service: peppermint
+ traefik.http.routers.peppermint-api-local.tls: true
peppermint-db:
container_name: peppermint-db
From 29f06c4e1a5cfadf1a28bcaf37e8d58bedbd1eca Mon Sep 17 00:00:00 2001
From: Nicolas Meienberger
Date: Thu, 8 Feb 2024 08:30:42 +0100
Subject: [PATCH 018/256] chore: use random for caldav encryption key
---
apps/calcom/config.json | 202 ++++++++++++++++++++--------------------
1 file changed, 100 insertions(+), 102 deletions(-)
diff --git a/apps/calcom/config.json b/apps/calcom/config.json
index 29286311..d0542790 100644
--- a/apps/calcom/config.json
+++ b/apps/calcom/config.json
@@ -1,104 +1,102 @@
{
- "name": "Cal.com",
- "available": true,
- "port": 8294,
- "exposable": true,
- "id": "calcom",
- "description": "The open source Calendly successor. You are in charge of your own data, workflow, and appearance.\nCalendly and other scheduling tools are awesome. It made our lives massively easier. We're using it for business meetings, seminars, yoga classes, and even calls with our families. However, most tools are very limited in terms of control and customization.\n That's where Cal.com comes in. Self-hosted or hosted by us. White-label by design. API-driven and ready to be deployed on your own domain. Full control of your events and data.",
- "tipi_version": 2,
- "version": "3.7.11",
- "categories": ["calendar", "social"],
- "short_desc": "Scheduling infrastructure for absolutely everyone.",
- "author": "cal.com",
- "source": "https://github.com/calcom/cal.com",
- "website": "https://cal.com/",
- "supported_architectures": ["amd64"],
- "form_fields": [
- {
- "type": "password",
- "label": "Next.js Auth secret. Generate one with `openssl rand -base64 32`",
- "required": true,
- "min": 1,
- "max": 1024,
- "env_variable": "CALCOM_NEXTAUTH_SECRET"
- },
- {
- "type": "password",
- "label": "Calendso Encryption Key. Encryption key that will be used to encrypt CalDAV credentials, choose a random string, for example with `dd if=/dev/urandom bs=1K count=1 | md5sum`",
- "required": true,
- "min": 1,
- "max": 1024,
- "env_variable": "CALENDSO_ENCRYPTION_KEY"
- },
- {
- "type": "text",
- "label": "MS Graph Client ID. Used for the Office 365 / Outlook.com Calendar integration",
- "required": false,
- "min": 1,
- "max": 1024,
- "env_variable": "MS_GRAPH_CLIENT_ID"
- },
- {
- "type": "password",
- "label": "MS Graph Client Secret. Used for the Office 365 / Outlook.com Calendar integration",
- "required": false,
- "min": 1,
- "max": 1024,
- "env_variable": "MS_GRAPH_CLIENT_SECRET"
- },
- {
- "type": "text",
- "label": "Zoom Client ID. Used for the Zoom integration",
- "required": false,
- "min": 1,
- "max": 1024,
- "env_variable": "ZOOM_CLIENT_ID"
- },
- {
- "type": "password",
- "label": "Zoom Client Secret. Used for the Zoom integration",
- "required": false,
- "min": 1,
- "max": 1024,
- "env_variable": "ZOOM_CLIENT_SECRET"
- },
- {
- "text": "text",
- "label": "Google API Credentials in JSON form. Used for the Google Calendar integration. See https://github.com/calcom/cal.com?tab=readme-ov-file#obtaining-the-google-api-credentials",
- "required": false,
- "env_variable": "CALCOM_GOOGLE_API_CREDENTIALS"
- },
- {
- "type": "email",
- "label": "Configures the global From: header whilst sending emails.",
- "required": true,
- "min": 1,
- "max": 1024,
- "env_variable": "EMAIL_FROM"
- },
- {
- "type": "fqdn",
- "label": "Email server host (SMTP)",
- "required": true,
- "min": 1,
- "max": 1024,
- "env_variable": "EMAIL_SERVER_HOST"
- },
- {
- "type": "number",
- "label": "Email server port (SMTP)",
- "required": true,
- "min": 1,
- "max": 65535,
- "env_variable": "EMAIL_SERVER_PORT"
- },
- {
- "type": "password",
- "label": "Email server password (SMTP)",
- "required": true,
- "min": 1,
- "max": 1024,
- "env_variable": "EMAIL_SERVER_PASSWORD"
- }
- ]
+ "author": "cal.com",
+ "available": true,
+ "categories": ["calendar", "social"],
+ "description": "The open source Calendly successor. You are in charge of your own data, workflow, and appearance.\nCalendly and other scheduling tools are awesome. It made our lives massively easier. We're using it for business meetings, seminars, yoga classes, and even calls with our families. However, most tools are very limited in terms of control and customization.\n That's where Cal.com comes in. Self-hosted or hosted by us. White-label by design. API-driven and ready to be deployed on your own domain. Full control of your events and data.",
+ "exposable": true,
+ "form_fields": [
+ {
+ "env_variable": "CALCOM_NEXTAUTH_SECRET",
+ "label": "Next.js Auth secret. Generate one with `openssl rand -base64 32`",
+ "max": 1024,
+ "min": 1,
+ "required": true,
+ "type": "password"
+ },
+ {
+ "env_variable": "CALENDSO_ENCRYPTION_KEY",
+ "max": 50,
+ "min": 50,
+ "type": "random"
+ },
+ {
+ "env_variable": "MS_GRAPH_CLIENT_ID",
+ "label": "MS Graph Client ID. Used for the Office 365 / Outlook.com Calendar integration",
+ "max": 1024,
+ "min": 1,
+ "required": false,
+ "type": "text"
+ },
+ {
+ "env_variable": "MS_GRAPH_CLIENT_SECRET",
+ "label": "MS Graph Client Secret. Used for the Office 365 / Outlook.com Calendar integration",
+ "max": 1024,
+ "min": 1,
+ "required": false,
+ "type": "password"
+ },
+ {
+ "env_variable": "ZOOM_CLIENT_ID",
+ "label": "Zoom Client ID. Used for the Zoom integration",
+ "max": 1024,
+ "min": 1,
+ "required": false,
+ "type": "text"
+ },
+ {
+ "env_variable": "ZOOM_CLIENT_SECRET",
+ "label": "Zoom Client Secret. Used for the Zoom integration",
+ "max": 1024,
+ "min": 1,
+ "required": false,
+ "type": "password"
+ },
+ {
+ "env_variable": "CALCOM_GOOGLE_API_CREDENTIALS",
+ "label": "Google API Credentials in JSON form. Used for the Google Calendar integration. See https://github.com/calcom/cal.com?tab=readme-ov-file#obtaining-the-google-api-credentials",
+ "required": false,
+ "text": "text"
+ },
+ {
+ "env_variable": "EMAIL_FROM",
+ "label": "Configures the global From: header whilst sending emails.",
+ "max": 1024,
+ "min": 1,
+ "required": true,
+ "type": "email"
+ },
+ {
+ "env_variable": "EMAIL_SERVER_HOST",
+ "label": "Email server host (SMTP)",
+ "max": 1024,
+ "min": 1,
+ "required": true,
+ "type": "fqdn"
+ },
+ {
+ "env_variable": "EMAIL_SERVER_PORT",
+ "label": "Email server port (SMTP)",
+ "max": 65535,
+ "min": 1,
+ "required": true,
+ "type": "number"
+ },
+ {
+ "env_variable": "EMAIL_SERVER_PASSWORD",
+ "label": "Email server password (SMTP)",
+ "max": 1024,
+ "min": 1,
+ "required": true,
+ "type": "password"
+ }
+ ],
+ "id": "calcom",
+ "name": "Cal.com",
+ "port": 8294,
+ "short_desc": "Scheduling infrastructure for absolutely everyone.",
+ "source": "https://github.com/calcom/cal.com",
+ "supported_architectures": ["amd64"],
+ "tipi_version": 2,
+ "version": "3.7.11",
+ "website": "https://cal.com/"
}
From 73648b4c0d4124f693d300499c396032fdf1953d Mon Sep 17 00:00:00 2001
From: Armand Gillot <79774155+armandgillot@users.noreply.github.com>
Date: Thu, 8 Feb 2024 08:31:45 +0100
Subject: [PATCH 019/256] APP Maintainerr update (#2402)
* [APP] Maintainerr new version update
* new port
* new port
* new port
---
apps/maintainerr/config.json | 4 ++--
apps/maintainerr/docker-compose.yml | 6 +++---
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/apps/maintainerr/config.json b/apps/maintainerr/config.json
index b61d2b71..6860183a 100644
--- a/apps/maintainerr/config.json
+++ b/apps/maintainerr/config.json
@@ -4,8 +4,8 @@
"exposable": true,
"port": 8030,
"id": "maintainerr",
- "tipi_version": 1,
- "version": "1.7.1",
+ "tipi_version": 2,
+ "version": "2.0.0",
"categories": [
"media",
"utilities"
diff --git a/apps/maintainerr/docker-compose.yml b/apps/maintainerr/docker-compose.yml
index e3f24a4c..6b337887 100644
--- a/apps/maintainerr/docker-compose.yml
+++ b/apps/maintainerr/docker-compose.yml
@@ -2,7 +2,7 @@ version: '3'
services:
maintainerr:
- image: ghcr.io/jorenn92/maintainerr:1.7.1 # or jorenn92/maintainerr:1.7.1
+ image: ghcr.io/jorenn92/maintainerr:2.0.0 # or jorenn92/maintainerr:1.7.1
container_name: maintainerr
# user: 1000:1000 # only use this with release 2.0 and up
volumes:
@@ -11,7 +11,7 @@ services:
- TZ=${TZ}
# - DEBUG=true # uncomment to enable verbose logs
ports:
- - ${APP_PORT}:80
+ - ${APP_PORT}:6246
restart: unless-stopped
networks:
- tipi_main_network
@@ -19,7 +19,7 @@ services:
# Main
traefik.enable: true
traefik.http.middlewares.maintainerr-web-redirect.redirectscheme.scheme: https
- traefik.http.services.maintainerr.loadbalancer.server.port: 8030
+ traefik.http.services.maintainerr.loadbalancer.server.port: 6246
# Web
traefik.http.routers.maintainerr-insecure.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.maintainerr-insecure.entrypoints: web
From e430c57965b4f90f9f153fc355fded5e2f475e6a Mon Sep 17 00:00:00 2001
From: Nicolas Meienberger
Date: Thu, 8 Feb 2024 08:58:58 +0100
Subject: [PATCH 020/256] fix(calcom): missing label in encryption_key
---
apps/calcom/config.json | 1 +
1 file changed, 1 insertion(+)
diff --git a/apps/calcom/config.json b/apps/calcom/config.json
index d0542790..c1b579e1 100644
--- a/apps/calcom/config.json
+++ b/apps/calcom/config.json
@@ -15,6 +15,7 @@
},
{
"env_variable": "CALENDSO_ENCRYPTION_KEY",
+ "label": "Random string",
"max": 50,
"min": 50,
"type": "random"
From 72ad285aea13790163eb9c335e8688e8a988efb0 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 11 Feb 2024 02:33:03 +0000
Subject: [PATCH 021/256] chore(deps): update elasticsearch docker tag to
v8.12.1 (#2406)
---
apps/tubearchivist/docker-compose.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/apps/tubearchivist/docker-compose.yml b/apps/tubearchivist/docker-compose.yml
index 51791beb..8218d2a8 100644
--- a/apps/tubearchivist/docker-compose.yml
+++ b/apps/tubearchivist/docker-compose.yml
@@ -62,7 +62,7 @@ services:
- tubearchivist-es
tubearchivist-es:
- image: elasticsearch:8.12.0
+ image: elasticsearch:8.12.1
container_name: tubearchivist-es
restart: always
environment:
From 235f71490d8812bd6c5771d6e4af57f57b55684d Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 11 Feb 2024 02:33:26 +0000
Subject: [PATCH 022/256] chore(deps): update calcom/cal.com docker tag to
v3.7.15 (#2405)
---
apps/calcom/config.json | 13 +++++++++----
apps/calcom/docker-compose.yml | 2 +-
2 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/apps/calcom/config.json b/apps/calcom/config.json
index c1b579e1..4c4720d8 100644
--- a/apps/calcom/config.json
+++ b/apps/calcom/config.json
@@ -1,7 +1,10 @@
{
"author": "cal.com",
"available": true,
- "categories": ["calendar", "social"],
+ "categories": [
+ "calendar",
+ "social"
+ ],
"description": "The open source Calendly successor. You are in charge of your own data, workflow, and appearance.\nCalendly and other scheduling tools are awesome. It made our lives massively easier. We're using it for business meetings, seminars, yoga classes, and even calls with our families. However, most tools are very limited in terms of control and customization.\n That's where Cal.com comes in. Self-hosted or hosted by us. White-label by design. API-driven and ready to be deployed on your own domain. Full control of your events and data.",
"exposable": true,
"form_fields": [
@@ -96,8 +99,10 @@
"port": 8294,
"short_desc": "Scheduling infrastructure for absolutely everyone.",
"source": "https://github.com/calcom/cal.com",
- "supported_architectures": ["amd64"],
- "tipi_version": 2,
- "version": "3.7.11",
+ "supported_architectures": [
+ "amd64"
+ ],
+ "tipi_version": 3,
+ "version": "3.7.15",
"website": "https://cal.com/"
}
diff --git a/apps/calcom/docker-compose.yml b/apps/calcom/docker-compose.yml
index c3be3693..164c514b 100644
--- a/apps/calcom/docker-compose.yml
+++ b/apps/calcom/docker-compose.yml
@@ -4,7 +4,7 @@ services:
calcom:
container_name: calcom
- image: calcom/cal.com:v3.7.11
+ image: calcom/cal.com:v3.7.15
restart: unless-stopped
ports:
- ${APP_PORT}:3000
From 27a507663a347f0fc7831875180d75d1c9849242 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 11 Feb 2024 02:33:29 +0000
Subject: [PATCH 023/256] chore(deps): update invoiceninja/invoiceninja docker
tag to v5.8.23 (#2413)
---
apps/invoice-ninja/docker-compose.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/apps/invoice-ninja/docker-compose.yml b/apps/invoice-ninja/docker-compose.yml
index 1c3ba443..aa472a00 100644
--- a/apps/invoice-ninja/docker-compose.yml
+++ b/apps/invoice-ninja/docker-compose.yml
@@ -42,7 +42,7 @@ services:
traefik.http.routers.invoice-ninja-local.tls: true
invoice-ninja-server:
- image: invoiceninja/invoiceninja:5.8.21
+ image: invoiceninja/invoiceninja:5.8.23
container_name: invoice-ninja-server
restart: unless-stopped
user: 1500:1500
From 282ada9b3cd6de4ac214bbc3c4a75d770eefc527 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 11 Feb 2024 02:34:21 +0000
Subject: [PATCH 024/256] chore(deps): update netdata/netdata docker tag to
v1.44.2 (#2420)
---
apps/netdata/config.json | 4 ++--
apps/netdata/docker-compose.yml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/apps/netdata/config.json b/apps/netdata/config.json
index 7dd69b68..c55a0341 100644
--- a/apps/netdata/config.json
+++ b/apps/netdata/config.json
@@ -5,8 +5,8 @@
"exposable": true,
"id": "netdata",
"description": "Stream any metrics from every physical and virtual server, container and IoT device, to one dashboard, in real-time.",
- "tipi_version": 6,
- "version": "1.44.1",
+ "tipi_version": 7,
+ "version": "1.44.2",
"categories": [
"utilities"
],
diff --git a/apps/netdata/docker-compose.yml b/apps/netdata/docker-compose.yml
index 1f6630eb..8a13a4ce 100644
--- a/apps/netdata/docker-compose.yml
+++ b/apps/netdata/docker-compose.yml
@@ -1,7 +1,7 @@
version: "3.7"
services:
netdata:
- image: netdata/netdata:v1.44.1
+ image: netdata/netdata:v1.44.2
container_name: netdata
pid: host
restart: unless-stopped
From 4772a44b4ca22e5302537ab83a0b2dc177fa7292 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 11 Feb 2024 02:34:28 +0000
Subject: [PATCH 025/256] chore(deps): update nodered/node-red docker tag to
v3.1.5 (#2421)
---
apps/nodered/config.json | 4 ++--
apps/nodered/docker-compose.yml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/apps/nodered/config.json b/apps/nodered/config.json
index 9ef07973..9094b6c2 100644
--- a/apps/nodered/config.json
+++ b/apps/nodered/config.json
@@ -5,8 +5,8 @@
"available": true,
"exposable": true,
"id": "nodered",
- "tipi_version": 7,
- "version": "3.1.3",
+ "tipi_version": 8,
+ "version": "3.1.5",
"categories": [
"automation"
],
diff --git a/apps/nodered/docker-compose.yml b/apps/nodered/docker-compose.yml
index cbed1d18..7c7cc263 100644
--- a/apps/nodered/docker-compose.yml
+++ b/apps/nodered/docker-compose.yml
@@ -3,7 +3,7 @@ version: "3.7"
services:
nodered:
container_name: nodered
- image: nodered/node-red:3.1.3
+ image: nodered/node-red:3.1.5
restart: unless-stopped
ports:
- ${APP_PORT}:1880
From 7198cd8437465c6d5ae9461190b2fdb23ce3830e Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 11 Feb 2024 02:35:03 +0000
Subject: [PATCH 026/256] chore(deps): update kanboard/kanboard docker tag to
v1.2.35 (#2415)
---
apps/kanboard/config.json | 4 ++--
apps/kanboard/docker-compose.yml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/apps/kanboard/config.json b/apps/kanboard/config.json
index de37be63..dcf47c32 100644
--- a/apps/kanboard/config.json
+++ b/apps/kanboard/config.json
@@ -5,8 +5,8 @@
"port": 8010,
"id": "kanboard",
"description": "Kanboard is a free and open source Kanban project management software.",
- "tipi_version": 8,
- "version": "1.2.34",
+ "tipi_version": 9,
+ "version": "1.2.35",
"categories": [
"development"
],
diff --git a/apps/kanboard/docker-compose.yml b/apps/kanboard/docker-compose.yml
index 8f8d7961..1ae8cdf5 100644
--- a/apps/kanboard/docker-compose.yml
+++ b/apps/kanboard/docker-compose.yml
@@ -3,7 +3,7 @@ version: "3.9"
services:
kanboard:
container_name: kanboard
- image: kanboard/kanboard:v1.2.34
+ image: kanboard/kanboard:v1.2.35
environment:
- PLUGIN_INSTALLER=${PLUGIN_INSTALLER}
ports:
From 25e89ddac29e756d710cf570acb056606d80b312 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 11 Feb 2024 02:35:27 +0000
Subject: [PATCH 027/256] chore(deps): update ghcr.io/ajnart/homarr docker tag
to v0.14.6 (#2408)
---
apps/homarr/config.json | 4 ++--
apps/homarr/docker-compose.yml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/apps/homarr/config.json b/apps/homarr/config.json
index f94c2770..88be83df 100644
--- a/apps/homarr/config.json
+++ b/apps/homarr/config.json
@@ -5,8 +5,8 @@
"exposable": true,
"port": 8102,
"id": "homarr",
- "tipi_version": 24,
- "version": "0.14.4",
+ "tipi_version": 25,
+ "version": "0.14.6",
"categories": [
"utilities"
],
diff --git a/apps/homarr/docker-compose.yml b/apps/homarr/docker-compose.yml
index 60f7ae09..3f2fdfc0 100644
--- a/apps/homarr/docker-compose.yml
+++ b/apps/homarr/docker-compose.yml
@@ -2,7 +2,7 @@ version: "3.7"
services:
homarr:
container_name: homarr
- image: ghcr.io/ajnart/homarr:0.14.4
+ image: ghcr.io/ajnart/homarr:0.14.6
restart: unless-stopped
volumes:
- ${APP_DATA_DIR}/data/config:/app/data/configs
From d1e476edf182b931e75cce2e789f9f922ab44346 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 11 Feb 2024 02:35:35 +0000
Subject: [PATCH 028/256] chore(deps): update frooodle/s-pdf docker tag to
v0.20.2 (#2407)
---
apps/stirling-pdf/config.json | 4 ++--
apps/stirling-pdf/docker-compose.yml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/apps/stirling-pdf/config.json b/apps/stirling-pdf/config.json
index 26a70be3..5f34297b 100644
--- a/apps/stirling-pdf/config.json
+++ b/apps/stirling-pdf/config.json
@@ -5,8 +5,8 @@
"available": true,
"exposable": true,
"id": "stirling-pdf",
- "tipi_version": 19,
- "version": "0.20.1",
+ "tipi_version": 20,
+ "version": "0.20.2",
"categories": [
"data",
"utilities"
diff --git a/apps/stirling-pdf/docker-compose.yml b/apps/stirling-pdf/docker-compose.yml
index 4b2351fa..f8b3151f 100644
--- a/apps/stirling-pdf/docker-compose.yml
+++ b/apps/stirling-pdf/docker-compose.yml
@@ -1,7 +1,7 @@
version: "3.9"
services:
stirling-pdf:
- image: frooodle/s-pdf:0.20.1
+ image: frooodle/s-pdf:0.20.2
restart: unless-stopped
container_name: stirling-pdf
privileged: true
From 9441a5bca5a7363c72a52274525cb271ae4a9cdb Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 11 Feb 2024 02:35:40 +0000
Subject: [PATCH 029/256] chore(deps): update ghcr.io/jorenn92/maintainerr
docker tag to v2.0.2 (#2410)
---
apps/maintainerr/config.json | 9 ++++++---
apps/maintainerr/docker-compose.yml | 2 +-
2 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/apps/maintainerr/config.json b/apps/maintainerr/config.json
index 6860183a..d8921735 100644
--- a/apps/maintainerr/config.json
+++ b/apps/maintainerr/config.json
@@ -4,8 +4,8 @@
"exposable": true,
"port": 8030,
"id": "maintainerr",
- "tipi_version": 2,
- "version": "2.0.0",
+ "tipi_version": 3,
+ "version": "2.0.2",
"categories": [
"media",
"utilities"
@@ -15,5 +15,8 @@
"author": "jorenn92",
"source": "https://github.com/jorenn92/Maintainerr",
"form_fields": [],
- "supported_architectures": ["arm64", "amd64"]
+ "supported_architectures": [
+ "arm64",
+ "amd64"
+ ]
}
diff --git a/apps/maintainerr/docker-compose.yml b/apps/maintainerr/docker-compose.yml
index 6b337887..d93b9879 100644
--- a/apps/maintainerr/docker-compose.yml
+++ b/apps/maintainerr/docker-compose.yml
@@ -2,7 +2,7 @@ version: '3'
services:
maintainerr:
- image: ghcr.io/jorenn92/maintainerr:2.0.0 # or jorenn92/maintainerr:1.7.1
+ image: ghcr.io/jorenn92/maintainerr:2.0.2 # or jorenn92/maintainerr:1.7.1
container_name: maintainerr
# user: 1000:1000 # only use this with release 2.0 and up
volumes:
From 0e48faa19e6b8b9c0a089a298e9bb42dbdcc76b1 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 11 Feb 2024 02:35:41 +0000
Subject: [PATCH 030/256] chore(deps): update adguard/adguardhome docker tag to
v0.107.44 (#2404)
---
apps/adguard/config.json | 4 ++--
apps/adguard/docker-compose.yml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/apps/adguard/config.json b/apps/adguard/config.json
index 7e784d06..c9bb51f4 100644
--- a/apps/adguard/config.json
+++ b/apps/adguard/config.json
@@ -3,8 +3,8 @@
"name": "Adguard",
"available": true,
"exposable": true,
- "tipi_version": 23,
- "version": "0.107.43",
+ "tipi_version": 24,
+ "version": "0.107.44",
"port": 8104,
"id": "adguard",
"categories": [
diff --git a/apps/adguard/docker-compose.yml b/apps/adguard/docker-compose.yml
index 28a4f533..dc636933 100644
--- a/apps/adguard/docker-compose.yml
+++ b/apps/adguard/docker-compose.yml
@@ -1,7 +1,7 @@
version: "3.7"
services:
adguard:
- image: adguard/adguardhome:v0.107.43
+ image: adguard/adguardhome:v0.107.44
container_name: adguard
volumes:
- "${APP_DATA_DIR}/data/work:/opt/adguardhome/work"
From c5b62b50bc8ef416f2396f65c8834812918f6da7 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 11 Feb 2024 02:35:49 +0000
Subject: [PATCH 031/256] chore(deps): update
ghcr.io/dgtlmoon/changedetection.io docker tag to v0.45.14 (#2409)
---
apps/changedetection/config.json | 4 ++--
apps/changedetection/docker-compose.yml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/apps/changedetection/config.json b/apps/changedetection/config.json
index 9b7728ea..afa06a3c 100644
--- a/apps/changedetection/config.json
+++ b/apps/changedetection/config.json
@@ -5,8 +5,8 @@
"exposable": true,
"id": "changedetection",
"description": "The best and simplest free open source website change detection, restock monitor and notification service.",
- "tipi_version": 11,
- "version": "0.45.13",
+ "tipi_version": 12,
+ "version": "0.45.14",
"categories": [
"utilities"
],
diff --git a/apps/changedetection/docker-compose.yml b/apps/changedetection/docker-compose.yml
index 45944106..900de1ad 100644
--- a/apps/changedetection/docker-compose.yml
+++ b/apps/changedetection/docker-compose.yml
@@ -1,7 +1,7 @@
version: "3.7"
services:
changedetection:
- image: ghcr.io/dgtlmoon/changedetection.io:0.45.13
+ image: ghcr.io/dgtlmoon/changedetection.io:0.45.14
container_name: changedetection
hostname: changedetection
volumes:
From 2ca8957a38e9f45a39f7291152f9aa51ad20be56 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 11 Feb 2024 02:36:02 +0000
Subject: [PATCH 032/256] chore(deps): update lscr.io/linuxserver/bazarr docker
tag to v1.4.1 (#2417)
---
apps/bazarr/config.json | 4 ++--
apps/bazarr/docker-compose.yml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/apps/bazarr/config.json b/apps/bazarr/config.json
index 1f7db2e2..95d03ea0 100644
--- a/apps/bazarr/config.json
+++ b/apps/bazarr/config.json
@@ -5,8 +5,8 @@
"exposable": true,
"port": 6767,
"id": "bazarr",
- "tipi_version": 12,
- "version": "1.4.0",
+ "tipi_version": 13,
+ "version": "1.4.1",
"categories": [
"media",
"utilities"
diff --git a/apps/bazarr/docker-compose.yml b/apps/bazarr/docker-compose.yml
index ddd30c16..5eb13ac3 100644
--- a/apps/bazarr/docker-compose.yml
+++ b/apps/bazarr/docker-compose.yml
@@ -1,7 +1,7 @@
version: "3.7"
services:
bazarr:
- image: lscr.io/linuxserver/bazarr:1.4.0
+ image: lscr.io/linuxserver/bazarr:1.4.1
container_name: bazarr
environment:
- PUID=1000
From 5f62d64e43ab7b5002479ff654b00688159bfb99 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 11 Feb 2024 02:36:36 +0000
Subject: [PATCH 033/256] chore(deps): update halohub/halo docker tag to
v2.12.2 (#2412)
---
apps/halo/config.json | 4 ++--
apps/halo/docker-compose.yml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/apps/halo/config.json b/apps/halo/config.json
index 4da763aa..1a0ed53b 100644
--- a/apps/halo/config.json
+++ b/apps/halo/config.json
@@ -5,8 +5,8 @@
"exposable": true,
"port": 8092,
"id": "halo",
- "tipi_version": 18,
- "version": "2.12.1",
+ "tipi_version": 19,
+ "version": "2.12.2",
"description": "Halo is a powerful and easy-to-use open source website building tool.",
"short_desc": "Halo - Open source website building tool.",
"categories": [
diff --git a/apps/halo/docker-compose.yml b/apps/halo/docker-compose.yml
index e3da01e2..e6e25fca 100644
--- a/apps/halo/docker-compose.yml
+++ b/apps/halo/docker-compose.yml
@@ -2,7 +2,7 @@ version: "3.7"
services:
halo:
- image: halohub/halo:2.12.1
+ image: halohub/halo:2.12.2
container_name: halo
restart: unless-stopped
depends_on:
From bd2ea4d242aebf66947645fe4a813c4184b8680d Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 11 Feb 2024 02:36:40 +0000
Subject: [PATCH 034/256] chore(deps): update jvmilazz0/kavita docker tag to
v0.7.14 (#2414)
---
apps/kavita/config.json | 4 ++--
apps/kavita/docker-compose.yml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/apps/kavita/config.json b/apps/kavita/config.json
index 9416f9c3..1a1e3891 100644
--- a/apps/kavita/config.json
+++ b/apps/kavita/config.json
@@ -5,8 +5,8 @@
"available": true,
"exposable": true,
"id": "kavita",
- "tipi_version": 11,
- "version": "0.7.13",
+ "tipi_version": 12,
+ "version": "0.7.14",
"categories": [
"media"
],
diff --git a/apps/kavita/docker-compose.yml b/apps/kavita/docker-compose.yml
index 55109e32..b4d7b152 100644
--- a/apps/kavita/docker-compose.yml
+++ b/apps/kavita/docker-compose.yml
@@ -3,7 +3,7 @@ version: "3.9"
services:
kavita:
container_name: kavita
- image: jvmilazz0/kavita:0.7.13
+ image: jvmilazz0/kavita:0.7.14
ports:
- ${APP_PORT}:5000
volumes:
From 832788b9a0f7e36cafbb5f997b3c429b85b600b8 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 11 Feb 2024 02:36:43 +0000
Subject: [PATCH 035/256] chore(deps): update gristlabs/grist docker tag to
v1.1.11 (#2411)
---
apps/grist/config.json | 4 ++--
apps/grist/docker-compose.yml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/apps/grist/config.json b/apps/grist/config.json
index 16bc8af6..7b8b2524 100644
--- a/apps/grist/config.json
+++ b/apps/grist/config.json
@@ -5,8 +5,8 @@
"exposable": true,
"id": "grist",
"description": "Grist is a modern relational spreadsheet. It combines the flexibility of a spreadsheet with the robustness of a database to organize your data and make you more productive.",
- "tipi_version": 9,
- "version": "1.1.10",
+ "tipi_version": 10,
+ "version": "1.1.11",
"categories": [
"utilities"
],
diff --git a/apps/grist/docker-compose.yml b/apps/grist/docker-compose.yml
index 9e980e8a..335f5d0c 100644
--- a/apps/grist/docker-compose.yml
+++ b/apps/grist/docker-compose.yml
@@ -6,7 +6,7 @@ services:
environment:
- APP_HOME_URL=${APP_PROTOCOL:-http}://${APP_DOMAIN}
- GRIST_SANDBOX_FLAVOR=${GRIST_SANDBOX_FLAVOR}
- image: "gristlabs/grist:1.1.10"
+ image: "gristlabs/grist:1.1.11"
ports:
- "${APP_PORT}:8484"
restart: always
From 32652b24f4686f8b65be1ece1d843b56fbc3b4a6 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 11 Feb 2024 02:36:59 +0000
Subject: [PATCH 036/256] chore(deps): update lscr.io/linuxserver/pairdrop
docker tag to v1.10.7 (#2419)
---
apps/pairdrop/config.json | 4 ++--
apps/pairdrop/docker-compose.yml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/apps/pairdrop/config.json b/apps/pairdrop/config.json
index 1d421381..301a42d7 100644
--- a/apps/pairdrop/config.json
+++ b/apps/pairdrop/config.json
@@ -5,8 +5,8 @@
"available": true,
"exposable": true,
"id": "pairdrop",
- "tipi_version": 24,
- "version": "1.10.6",
+ "tipi_version": 25,
+ "version": "1.10.7",
"categories": [
"media",
"data",
diff --git a/apps/pairdrop/docker-compose.yml b/apps/pairdrop/docker-compose.yml
index 341cff93..861083ed 100644
--- a/apps/pairdrop/docker-compose.yml
+++ b/apps/pairdrop/docker-compose.yml
@@ -2,7 +2,7 @@ version: "3"
services:
pairdrop:
- image: lscr.io/linuxserver/pairdrop:1.10.6
+ image: lscr.io/linuxserver/pairdrop:1.10.7
container_name: pairdrop
environment:
- PUID=1000
From a6cccb06d1cf3b31c1bf2481530e9ff24a672266 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 11 Feb 2024 02:37:15 +0000
Subject: [PATCH 037/256] chore(deps): update lscr.io/linuxserver/emulatorjs
docker tag to v1.8.8 (#2418)
---
apps/emulatorjs/config.json | 4 ++--
apps/emulatorjs/docker-compose.yml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/apps/emulatorjs/config.json b/apps/emulatorjs/config.json
index 0e1ed232..1920ae09 100644
--- a/apps/emulatorjs/config.json
+++ b/apps/emulatorjs/config.json
@@ -5,8 +5,8 @@
"available": true,
"exposable": true,
"id": "emulatorjs",
- "tipi_version": 11,
- "version": "1.8.7",
+ "tipi_version": 12,
+ "version": "1.8.8",
"categories": [
"gaming"
],
diff --git a/apps/emulatorjs/docker-compose.yml b/apps/emulatorjs/docker-compose.yml
index 5d9b976b..e1b6dc7f 100644
--- a/apps/emulatorjs/docker-compose.yml
+++ b/apps/emulatorjs/docker-compose.yml
@@ -3,7 +3,7 @@ version: "3.7"
services:
emulatorjs:
container_name: emulatorjs
- image: lscr.io/linuxserver/emulatorjs:1.8.7
+ image: lscr.io/linuxserver/emulatorjs:1.8.8
ports:
- ${APP_PORT}:80
- 8165:3000
From 5fbe0242ff5054abe399f4957dc562f34ca1286b Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 11 Feb 2024 02:37:33 +0000
Subject: [PATCH 038/256] chore(deps): update simplexchat/smp-server docker tag
to v5.5.2 (#2422)
---
apps/simplex-smp/config.json | 4 ++--
apps/simplex-smp/docker-compose.yml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/apps/simplex-smp/config.json b/apps/simplex-smp/config.json
index 01bc51c7..1cec29fe 100644
--- a/apps/simplex-smp/config.json
+++ b/apps/simplex-smp/config.json
@@ -6,8 +6,8 @@
"exposable": true,
"no_gui": true,
"id": "simplex-smp",
- "tipi_version": 11,
- "version": "5.5.1",
+ "tipi_version": 12,
+ "version": "5.5.2",
"categories": [
"social"
],
diff --git a/apps/simplex-smp/docker-compose.yml b/apps/simplex-smp/docker-compose.yml
index 1f52eb94..95a39d00 100644
--- a/apps/simplex-smp/docker-compose.yml
+++ b/apps/simplex-smp/docker-compose.yml
@@ -1,7 +1,7 @@
version: '3.9'
services:
simplex-smp:
- image: simplexchat/smp-server:v5.5.1
+ image: simplexchat/smp-server:v5.5.2
container_name: simplex-smp
volumes:
- ${APP_DATA_DIR}/data/simplex/logs:/var/opt/simplex:z
From 0b554403f0a9a4506b9cda83b79076535f9ba524 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 11 Feb 2024 02:37:37 +0000
Subject: [PATCH 039/256] chore(deps): update koillection/koillection docker
tag to v1.5.4 (#2416)
---
apps/koillection/config.json | 4 ++--
apps/koillection/docker-compose.yml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/apps/koillection/config.json b/apps/koillection/config.json
index 0093317f..e96b19a5 100644
--- a/apps/koillection/config.json
+++ b/apps/koillection/config.json
@@ -6,8 +6,8 @@
"exposable": true,
"id": "koillection",
"description": "Koillection is a self-hosted service allowing users to manage any kind of collections.",
- "tipi_version": 6,
- "version": "1.5.3",
+ "tipi_version": 7,
+ "version": "1.5.4",
"categories": [
"utilities"
],
diff --git a/apps/koillection/docker-compose.yml b/apps/koillection/docker-compose.yml
index 038ab85a..94e92e78 100644
--- a/apps/koillection/docker-compose.yml
+++ b/apps/koillection/docker-compose.yml
@@ -2,7 +2,7 @@ version: '3'
services:
koillection:
- image: koillection/koillection:1.5.3
+ image: koillection/koillection:1.5.4
container_name: koillection
restart: unless-stopped
ports:
From f35a8d218f6fb68458d70892d340359e7e769100 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 11 Feb 2024 02:40:28 +0000
Subject: [PATCH 040/256] chore(deps): update
ghcr.io/paperless-ngx/paperless-ngx docker tag to v2.5.0 (#2431)
---
apps/paperless-ngx/config.json | 4 ++--
apps/paperless-ngx/docker-compose.yml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/apps/paperless-ngx/config.json b/apps/paperless-ngx/config.json
index 59f55cc2..24d84b02 100644
--- a/apps/paperless-ngx/config.json
+++ b/apps/paperless-ngx/config.json
@@ -5,8 +5,8 @@
"exposable": true,
"port": 8012,
"id": "paperless-ngx",
- "tipi_version": 18,
- "version": "2.4.3",
+ "tipi_version": 19,
+ "version": "2.5.0",
"categories": [
"utilities"
],
diff --git a/apps/paperless-ngx/docker-compose.yml b/apps/paperless-ngx/docker-compose.yml
index 6fd9bf1b..386bb477 100644
--- a/apps/paperless-ngx/docker-compose.yml
+++ b/apps/paperless-ngx/docker-compose.yml
@@ -2,7 +2,7 @@ version: '3.7'
services:
paperless-ngx:
container_name: paperless-ngx
- image: ghcr.io/paperless-ngx/paperless-ngx:2.4.3
+ image: ghcr.io/paperless-ngx/paperless-ngx:2.5.0
restart: unless-stopped
depends_on:
- db
From 5b949db7f2f2b369f191e44fb9daccd19f400c82 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 11 Feb 2024 02:42:33 +0000
Subject: [PATCH 041/256] chore(deps): update svhd/logto docker tag to v1.13.0
(#2438)
---
apps/logto/config.json | 4 ++--
apps/logto/docker-compose.yml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/apps/logto/config.json b/apps/logto/config.json
index 9d8b4b42..3b46b018 100644
--- a/apps/logto/config.json
+++ b/apps/logto/config.json
@@ -5,8 +5,8 @@
"available": true,
"exposable": true,
"id": "logto",
- "tipi_version": 13,
- "version": "1.12.0",
+ "tipi_version": 14,
+ "version": "1.13.0",
"force_expose": true,
"categories": [
"security"
diff --git a/apps/logto/docker-compose.yml b/apps/logto/docker-compose.yml
index fbfb831e..86a98f21 100644
--- a/apps/logto/docker-compose.yml
+++ b/apps/logto/docker-compose.yml
@@ -4,7 +4,7 @@ services:
depends_on:
logto-db:
condition: service_healthy
- image: svhd/logto:1.12.0
+ image: svhd/logto:1.13.0
container_name: logto
entrypoint: ["sh", "-c", "npm run cli db seed -- --swe && npm start"]
ports:
From 6cf39e59ffca6c446e5f9719334102346654a468 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 11 Feb 2024 02:43:02 +0000
Subject: [PATCH 042/256] chore(deps): update neosmemo/memos docker tag to
v0.20.0 (#2437)
---
apps/memos/config.json | 4 ++--
apps/memos/docker-compose.yml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/apps/memos/config.json b/apps/memos/config.json
index 4e5423a9..5fea4c72 100644
--- a/apps/memos/config.json
+++ b/apps/memos/config.json
@@ -5,8 +5,8 @@
"exposable": true,
"port": 5230,
"id": "memos",
- "tipi_version": 25,
- "version": "0.19.1",
+ "tipi_version": 26,
+ "version": "0.20.0",
"categories": [
"utilities"
],
diff --git a/apps/memos/docker-compose.yml b/apps/memos/docker-compose.yml
index 9f862e5a..0a565dd3 100644
--- a/apps/memos/docker-compose.yml
+++ b/apps/memos/docker-compose.yml
@@ -1,7 +1,7 @@
version: "3.7"
services:
memos:
- image: neosmemo/memos:0.19.1
+ image: neosmemo/memos:0.20.0
container_name: memos
volumes:
- ${APP_DATA_DIR}/memos:/var/opt/memos
From 4709692603d1ac6a9c8bcf7a970b8efc9f70f3f4 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 11 Feb 2024 02:43:08 +0000
Subject: [PATCH 043/256] chore(deps): update lscr.io/linuxserver/code-server
docker tag to v4.21.1 (#2436)
---
apps/code-server/config.json | 4 ++--
apps/code-server/docker-compose.yml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/apps/code-server/config.json b/apps/code-server/config.json
index 1f60cdc2..93372800 100644
--- a/apps/code-server/config.json
+++ b/apps/code-server/config.json
@@ -5,8 +5,8 @@
"exposable": true,
"port": 8138,
"id": "code-server",
- "tipi_version": 21,
- "version": "4.20.1",
+ "tipi_version": 22,
+ "version": "4.21.1",
"categories": [
"development"
],
diff --git a/apps/code-server/docker-compose.yml b/apps/code-server/docker-compose.yml
index 1beb47d2..e8c5ed1a 100644
--- a/apps/code-server/docker-compose.yml
+++ b/apps/code-server/docker-compose.yml
@@ -1,7 +1,7 @@
version: "3.7"
services:
code-server:
- image: lscr.io/linuxserver/code-server:4.20.1
+ image: lscr.io/linuxserver/code-server:4.21.1
container_name: code-server
environment:
- PUID=1000
From 5f2528a7ffd5970529c4ef954e41e4909879ad50 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 11 Feb 2024 02:43:17 +0000
Subject: [PATCH 044/256] chore(deps): update lobehub/lobe-chat docker tag to
v0.126.3 (#2435)
---
apps/lobe-chat/config.json | 4 ++--
apps/lobe-chat/docker-compose.yml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/apps/lobe-chat/config.json b/apps/lobe-chat/config.json
index a1e7e2ed..52be00e4 100644
--- a/apps/lobe-chat/config.json
+++ b/apps/lobe-chat/config.json
@@ -5,8 +5,8 @@
"exposable": true,
"id": "lobe-chat",
"description": "LobeChat is an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible (Function Call) plugin system.",
- "tipi_version": 24,
- "version": "0.122.7",
+ "tipi_version": 25,
+ "version": "0.126.3",
"categories": [
"ai"
],
diff --git a/apps/lobe-chat/docker-compose.yml b/apps/lobe-chat/docker-compose.yml
index d78b9a2f..d1a33e70 100644
--- a/apps/lobe-chat/docker-compose.yml
+++ b/apps/lobe-chat/docker-compose.yml
@@ -2,7 +2,7 @@ version: '3.9'
services:
lobe-chat:
container_name: lobe-chat
- image: lobehub/lobe-chat:v0.122.7
+ image: lobehub/lobe-chat:v0.126.3
environment:
- OPENAI_API_KEY=${OPENAI_API_KEY}
- OPENAI_PROXY_URL=${OPEANAI_PROXY_URL}
From a84260bd8b1271c4a47f8ee7bc42a7335f1fae6b Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 11 Feb 2024 02:43:21 +0000
Subject: [PATCH 045/256] chore(deps): update gladysassistant/gladys docker tag
to v4.36.0 (#2434)
---
apps/gladys/config.json | 4 ++--
apps/gladys/docker-compose.yml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/apps/gladys/config.json b/apps/gladys/config.json
index 34edcc04..5e5438be 100644
--- a/apps/gladys/config.json
+++ b/apps/gladys/config.json
@@ -5,8 +5,8 @@
"available": true,
"exposable": false,
"id": "gladys",
- "tipi_version": 26,
- "version": "4.35.0",
+ "tipi_version": 27,
+ "version": "4.36.0",
"categories": [
"automation"
],
diff --git a/apps/gladys/docker-compose.yml b/apps/gladys/docker-compose.yml
index 952a1a52..8be903b7 100644
--- a/apps/gladys/docker-compose.yml
+++ b/apps/gladys/docker-compose.yml
@@ -3,7 +3,7 @@ version: '3'
services:
gladys:
container_name: gladys
- image: gladysassistant/gladys:v4.35.0
+ image: gladysassistant/gladys:v4.36.0
privileged: true
restart: on-failure
stop_grace_period: 1m
From e5791f676d976e38d22eb24a09856a5b1d3bb00c Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 11 Feb 2024 02:45:25 +0000
Subject: [PATCH 046/256] chore(deps): update ghostfolio/ghostfolio docker tag
to v2.49.0 (#2433)
---
apps/ghostfolio/config.json | 4 ++--
apps/ghostfolio/docker-compose.yml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/apps/ghostfolio/config.json b/apps/ghostfolio/config.json
index b3b69664..90278622 100644
--- a/apps/ghostfolio/config.json
+++ b/apps/ghostfolio/config.json
@@ -5,8 +5,8 @@
"available": true,
"exposable": true,
"id": "ghostfolio",
- "tipi_version": 45,
- "version": "2.46.0",
+ "tipi_version": 46,
+ "version": "2.49.0",
"categories": [
"finance"
],
diff --git a/apps/ghostfolio/docker-compose.yml b/apps/ghostfolio/docker-compose.yml
index 81b0b76e..768f3092 100644
--- a/apps/ghostfolio/docker-compose.yml
+++ b/apps/ghostfolio/docker-compose.yml
@@ -3,7 +3,7 @@ version: "3.9"
services:
ghostfolio:
container_name: ghostfolio
- image: ghostfolio/ghostfolio:2.46.0
+ image: ghostfolio/ghostfolio:2.49.0
restart: unless-stopped
ports:
- ${APP_PORT}:3333
From 97c60eefc4240cac01f6ed38ffd9df112cd4c449 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 11 Feb 2024 02:45:37 +0000
Subject: [PATCH 047/256] chore(deps): update ghost docker tag to v5.79.0
(#2432)
---
apps/ghost/config.json | 4 ++--
apps/ghost/docker-compose.yml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/apps/ghost/config.json b/apps/ghost/config.json
index f2a5ce4a..08929bef 100644
--- a/apps/ghost/config.json
+++ b/apps/ghost/config.json
@@ -5,8 +5,8 @@
"available": true,
"exposable": true,
"id": "ghost",
- "tipi_version": 72,
- "version": "5.78.0",
+ "tipi_version": 73,
+ "version": "5.79.0",
"categories": [
"social",
"media"
diff --git a/apps/ghost/docker-compose.yml b/apps/ghost/docker-compose.yml
index b2091311..6d90e347 100644
--- a/apps/ghost/docker-compose.yml
+++ b/apps/ghost/docker-compose.yml
@@ -2,7 +2,7 @@ version: "3.9"
services:
ghost:
- image: ghost:5.78.0
+ image: ghost:5.79.0
container_name: ghost
depends_on:
- ghostdb
From 88f11ab60c66d8d21d8a6bccf9a1d67ebc515aa8 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 11 Feb 2024 02:45:42 +0000
Subject: [PATCH 048/256] chore(deps): update ghcr.io/bitmagnet-io/bitmagnet
docker tag to v0.6.2 (#2430)
---
apps/bitmagnet/config.json | 4 ++--
apps/bitmagnet/docker-compose.yml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/apps/bitmagnet/config.json b/apps/bitmagnet/config.json
index 7de10eaf..75bcccc8 100644
--- a/apps/bitmagnet/config.json
+++ b/apps/bitmagnet/config.json
@@ -5,8 +5,8 @@
"available": true,
"exposable": true,
"id": "bitmagnet",
- "tipi_version": 6,
- "version": "0.5.1",
+ "tipi_version": 7,
+ "version": "0.6.2",
"categories": [
"media"
],
diff --git a/apps/bitmagnet/docker-compose.yml b/apps/bitmagnet/docker-compose.yml
index 243c4986..5c641bfc 100644
--- a/apps/bitmagnet/docker-compose.yml
+++ b/apps/bitmagnet/docker-compose.yml
@@ -2,7 +2,7 @@ version: "3.7"
services:
bitmagnet:
- image: ghcr.io/bitmagnet-io/bitmagnet:0.5.1
+ image: ghcr.io/bitmagnet-io/bitmagnet:0.6.2
restart: unless-stopped
command:
- worker
From 4a18e2cf4dc0f80ccd665782c9fa516cdcbd1280 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 11 Feb 2024 02:45:46 +0000
Subject: [PATCH 049/256] chore(deps): update flowiseai/flowise docker tag to
v1.5.0 (#2428)
---
apps/flowise/config.json | 4 ++--
apps/flowise/docker-compose.yml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/apps/flowise/config.json b/apps/flowise/config.json
index f1662af7..a27bfc56 100644
--- a/apps/flowise/config.json
+++ b/apps/flowise/config.json
@@ -5,8 +5,8 @@
"exposable": true,
"port": 8009,
"id": "flowise",
- "tipi_version": 3,
- "version": "1.4.12",
+ "tipi_version": 4,
+ "version": "1.5.0",
"categories": [
"ai",
"automation"
diff --git a/apps/flowise/docker-compose.yml b/apps/flowise/docker-compose.yml
index 57f2eaf6..7b086f1f 100644
--- a/apps/flowise/docker-compose.yml
+++ b/apps/flowise/docker-compose.yml
@@ -2,7 +2,7 @@ version: '3.7'
services:
flowise:
- image: flowiseai/flowise:1.4.12
+ image: flowiseai/flowise:1.5.0
restart: unless-stopped
command: /bin/sh -c "sleep 3; flowise start"
container_name: flowise
From 92e1f9a8c6ca33c38b424bd464c31dc73067fbaa Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 11 Feb 2024 02:45:47 +0000
Subject: [PATCH 050/256] chore(deps): update
ghcr.io/alexjustesen/speedtest-tracker docker tag to v0.15.2 (#2429)
---
apps/speedtest-tracker/config.json | 4 ++--
apps/speedtest-tracker/docker-compose.yml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/apps/speedtest-tracker/config.json b/apps/speedtest-tracker/config.json
index 97f6459c..a0856def 100644
--- a/apps/speedtest-tracker/config.json
+++ b/apps/speedtest-tracker/config.json
@@ -5,8 +5,8 @@
"available": true,
"exposable": true,
"id": "speedtest-tracker",
- "tipi_version": 10,
- "version": "0.14.5",
+ "tipi_version": 11,
+ "version": "0.15.2",
"categories": [
"utilities"
],
diff --git a/apps/speedtest-tracker/docker-compose.yml b/apps/speedtest-tracker/docker-compose.yml
index f73fcbce..8412b636 100644
--- a/apps/speedtest-tracker/docker-compose.yml
+++ b/apps/speedtest-tracker/docker-compose.yml
@@ -2,7 +2,7 @@ version: "3.7"
services:
speedtest-tracker:
- image: ghcr.io/alexjustesen/speedtest-tracker:v0.14.5
+ image: ghcr.io/alexjustesen/speedtest-tracker:v0.15.2
container_name: speedtest-tracker
environment:
- PUID=1000
From b532285010f9aaaa47c5c178da149ab0c1a1f743 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 11 Feb 2024 02:46:10 +0000
Subject: [PATCH 051/256] chore(deps): update budibase/budibase docker tag to
v2.19.0 (#2427)
---
apps/budibase/config.json | 4 ++--
apps/budibase/docker-compose.yml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/apps/budibase/config.json b/apps/budibase/config.json
index 92824229..eece42f9 100644
--- a/apps/budibase/config.json
+++ b/apps/budibase/config.json
@@ -5,8 +5,8 @@
"available": true,
"exposable": true,
"id": "budibase",
- "tipi_version": 81,
- "version": "2.17.3",
+ "tipi_version": 82,
+ "version": "2.19.0",
"categories": [
"development"
],
diff --git a/apps/budibase/docker-compose.yml b/apps/budibase/docker-compose.yml
index 96661f36..ad74c26a 100644
--- a/apps/budibase/docker-compose.yml
+++ b/apps/budibase/docker-compose.yml
@@ -1,7 +1,7 @@
version: '3.7'
services:
budibase:
- image: budibase/budibase:2.17.3
+ image: budibase/budibase:2.19.0
restart: unless-stopped
container_name: budibase
ports:
From be938d8244c7f4213fcbad334750147dde94eeee Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 11 Feb 2024 02:46:13 +0000
Subject: [PATCH 052/256] chore(deps): update activepieces/activepieces docker
tag to v0.19.0 (#2425)
---
apps/activepieces/config.json | 4 ++--
apps/activepieces/docker-compose.yml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/apps/activepieces/config.json b/apps/activepieces/config.json
index 0e95333c..173b22d9 100644
--- a/apps/activepieces/config.json
+++ b/apps/activepieces/config.json
@@ -5,8 +5,8 @@
"exposable": true,
"id": "activepieces",
"description": "Your friendliest open source all-in-one automation tool.",
- "tipi_version": 13,
- "version": "0.18.2",
+ "tipi_version": 14,
+ "version": "0.19.0",
"categories": [
"automation"
],
diff --git a/apps/activepieces/docker-compose.yml b/apps/activepieces/docker-compose.yml
index e054b5d6..d4423ed6 100644
--- a/apps/activepieces/docker-compose.yml
+++ b/apps/activepieces/docker-compose.yml
@@ -1,7 +1,7 @@
version: '3.7'
services:
activepieces:
- image: activepieces/activepieces:0.18.2
+ image: activepieces/activepieces:0.19.0
container_name: activepieces
restart: unless-stopped
ports:
From 2ccd78fcc9dafb29c373c7aacd95a6232bb6f7c0 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 11 Feb 2024 02:46:16 +0000
Subject: [PATCH 053/256] chore(deps): update amir20/dozzle docker tag to
v6.2.4 (#2426)
---
apps/dozzle/config.json | 4 ++--
apps/dozzle/docker-compose.yml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/apps/dozzle/config.json b/apps/dozzle/config.json
index 1cf5ca53..667eb1dc 100644
--- a/apps/dozzle/config.json
+++ b/apps/dozzle/config.json
@@ -5,8 +5,8 @@
"exposable": true,
"port": 8013,
"id": "dozzle",
- "tipi_version": 8,
- "version": "6.1.1",
+ "tipi_version": 9,
+ "version": "6.2.4",
"categories": [
"development"
],
diff --git a/apps/dozzle/docker-compose.yml b/apps/dozzle/docker-compose.yml
index 40ca4dd9..2370f61c 100644
--- a/apps/dozzle/docker-compose.yml
+++ b/apps/dozzle/docker-compose.yml
@@ -1,7 +1,7 @@
services:
dozzle:
container_name: dozzle
- image: amir20/dozzle:v6.1.1
+ image: amir20/dozzle:v6.2.4
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock
From 8f8e82181ca2e95adc3c2f9b77ab2989c1155cef Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 11 Feb 2024 02:46:19 +0000
Subject: [PATCH 054/256] chore(deps): update superseriousbusiness/gotosocial
docker tag to v0.13.2 (#2423)
---
apps/gotosocial/config.json | 4 ++--
apps/gotosocial/docker-compose.yml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/apps/gotosocial/config.json b/apps/gotosocial/config.json
index 8218e102..e1d33c2a 100644
--- a/apps/gotosocial/config.json
+++ b/apps/gotosocial/config.json
@@ -6,10 +6,10 @@
"exposable": true,
"force_expose": true,
"id": "gotosocial",
- "tipi_version": 13,
+ "tipi_version": 14,
"uid": 1000,
"gid": 1000,
- "version": "0.13.1",
+ "version": "0.13.2",
"categories": [
"social"
],
diff --git a/apps/gotosocial/docker-compose.yml b/apps/gotosocial/docker-compose.yml
index 485452c9..a426a91a 100644
--- a/apps/gotosocial/docker-compose.yml
+++ b/apps/gotosocial/docker-compose.yml
@@ -3,7 +3,7 @@ version: "3"
services:
gotosocial:
container_name: gotosocial
- image: superseriousbusiness/gotosocial:0.13.1
+ image: superseriousbusiness/gotosocial:0.13.2
user: 1000:1000
ports:
- ${APP_PORT}:8080
From c01d51b8c3831afa06a6046b91cdd785ea6ae289 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 11 Feb 2024 02:46:34 +0000
Subject: [PATCH 055/256] chore(deps): update zefhemel/silverbullet docker tag
to v0.7.1 (#2424)
---
apps/silverbullet/config.json | 4 ++--
apps/silverbullet/docker-compose.yml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/apps/silverbullet/config.json b/apps/silverbullet/config.json
index 2373053a..0b4eddd9 100644
--- a/apps/silverbullet/config.json
+++ b/apps/silverbullet/config.json
@@ -5,8 +5,8 @@
"available": true,
"exposable": true,
"id": "silverbullet",
- "tipi_version": 3,
- "version": "0.7.0",
+ "tipi_version": 4,
+ "version": "0.7.1",
"categories": [
"utilities"
],
diff --git a/apps/silverbullet/docker-compose.yml b/apps/silverbullet/docker-compose.yml
index ddd3de0f..03373772 100644
--- a/apps/silverbullet/docker-compose.yml
+++ b/apps/silverbullet/docker-compose.yml
@@ -2,7 +2,7 @@ version: '3.9'
services:
silverbullet:
- image: zefhemel/silverbullet:0.7.0
+ image: zefhemel/silverbullet:0.7.1
container_name: 'silverbullet'
restart: unless-stopped
volumes:
From 8f82871e68cfe0a42daae1a89b1de7f1d4f87c07 Mon Sep 17 00:00:00 2001
From: Falk Heiland
Date: Sun, 11 Feb 2024 14:04:16 +0100
Subject: [PATCH 056/256] added exposable version of home assistant, deprecated
current version
---
apps/homeassistant-1/config.json | 22 ++++++++++
.../data/config/automations.yaml | 1 +
.../data/config/configuration.yaml | 18 ++++++++
apps/homeassistant-1/data/config/scenes.yaml | 0
apps/homeassistant-1/data/config/scripts.yaml | 0
apps/homeassistant-1/docker-compose.yml | 41 ++++++++++++++++++
apps/homeassistant-1/metadata/description.md | 28 ++++++++++++
apps/homeassistant-1/metadata/logo.jpg | Bin 0 -> 45400 bytes
apps/homeassistant/config.json | 14 ++++--
9 files changed, 120 insertions(+), 4 deletions(-)
create mode 100644 apps/homeassistant-1/config.json
create mode 100644 apps/homeassistant-1/data/config/automations.yaml
create mode 100644 apps/homeassistant-1/data/config/configuration.yaml
create mode 100644 apps/homeassistant-1/data/config/scenes.yaml
create mode 100644 apps/homeassistant-1/data/config/scripts.yaml
create mode 100644 apps/homeassistant-1/docker-compose.yml
create mode 100644 apps/homeassistant-1/metadata/description.md
create mode 100644 apps/homeassistant-1/metadata/logo.jpg
diff --git a/apps/homeassistant-1/config.json b/apps/homeassistant-1/config.json
new file mode 100644
index 00000000..df1a46c3
--- /dev/null
+++ b/apps/homeassistant-1/config.json
@@ -0,0 +1,22 @@
+{
+ "$schema": "../schema.json",
+ "name": "Home Assistant",
+ "port": 8123,
+ "available": true,
+ "exposable": true,
+ "id": "homeassistant",
+ "tipi_version": 1,
+ "version": "2024.2.1",
+ "categories": [
+ "automation"
+ ],
+ "description": "Open source home automation that puts local control and privacy first. Powered by a worldwide community of tinkerers and DIY enthusiasts. Perfect to run on a Raspberry Pi or a local server.",
+ "short_desc": "Open source home automation that puts local control and privacy first",
+ "author": "Home Assistant",
+ "source": "https://github.com/home-assistant/core",
+ "form_fields": [],
+ "supported_architectures": [
+ "arm64",
+ "amd64"
+ ]
+}
\ No newline at end of file
diff --git a/apps/homeassistant-1/data/config/automations.yaml b/apps/homeassistant-1/data/config/automations.yaml
new file mode 100644
index 00000000..0637a088
--- /dev/null
+++ b/apps/homeassistant-1/data/config/automations.yaml
@@ -0,0 +1 @@
+[]
\ No newline at end of file
diff --git a/apps/homeassistant-1/data/config/configuration.yaml b/apps/homeassistant-1/data/config/configuration.yaml
new file mode 100644
index 00000000..036bbb18
--- /dev/null
+++ b/apps/homeassistant-1/data/config/configuration.yaml
@@ -0,0 +1,18 @@
+
+# Loads default set of integrations. Do not remove.
+default_config:
+
+# Load frontend themes from the themes folder
+frontend:
+ themes: !include_dir_merge_named themes
+
+automation: !include automations.yaml
+script: !include scripts.yaml
+scene: !include scenes.yaml
+
+http:
+ use_x_forwarded_for: true
+ trusted_proxies:
+ - 127.0.0.1
+ - 172.16.0.0/12
+ - ::1
\ No newline at end of file
diff --git a/apps/homeassistant-1/data/config/scenes.yaml b/apps/homeassistant-1/data/config/scenes.yaml
new file mode 100644
index 00000000..e69de29b
diff --git a/apps/homeassistant-1/data/config/scripts.yaml b/apps/homeassistant-1/data/config/scripts.yaml
new file mode 100644
index 00000000..e69de29b
diff --git a/apps/homeassistant-1/docker-compose.yml b/apps/homeassistant-1/docker-compose.yml
new file mode 100644
index 00000000..7a73aec7
--- /dev/null
+++ b/apps/homeassistant-1/docker-compose.yml
@@ -0,0 +1,41 @@
+version: '3'
+
+services:
+ homeassistant:
+ image: "ghcr.io/home-assistant/home-assistant:2024.2.1"
+ container_name: homeassistant
+ environment:
+ - TZ=${TZ}
+ restart: unless-stopped
+ ports:
+ - ${APP_PORT}:8123
+ volumes:
+ - /etc/localtime:/etc/localtime:ro
+ - ${APP_DATA_DIR}/data/config:/config
+ networks:
+ - tipi_main_network
+ labels:
+ # Main
+ traefik.enable: true
+ traefik.http.middlewares.homeassistant-web-redirect.redirectscheme.scheme: https
+ traefik.http.services.homeassistant.loadbalancer.server.port: 8123
+ # Web
+ traefik.http.routers.homeassistant-insecure.rule: Host(`${APP_DOMAIN}`)
+ traefik.http.routers.homeassistant-insecure.entrypoints: web
+ traefik.http.routers.homeassistant-insecure.service: homeassistant
+ traefik.http.routers.homeassistant-insecure.middlewares: homeassistant-web-redirect
+ # Websecure
+ traefik.http.routers.homeassistant.rule: Host(`${APP_DOMAIN}`)
+ traefik.http.routers.homeassistant.entrypoints: websecure
+ traefik.http.routers.homeassistant.service: homeassistant
+ traefik.http.routers.homeassistant.tls.certresolver: myresolver
+ # Local domain
+ traefik.http.routers.homeassistant-local-insecure.rule: Host(`homeassistant.${LOCAL_DOMAIN}`)
+ traefik.http.routers.homeassistant-local-insecure.entrypoints: web
+ traefik.http.routers.homeassistant-local-insecure.service: homeassistant
+ traefik.http.routers.homeassistant-local-insecure.middlewares: homeassistant-web-redirect
+ # Local domain secure
+ traefik.http.routers.homeassistant-local.rule: Host(`homeassistant.${LOCAL_DOMAIN}`)
+ traefik.http.routers.homeassistant-local.entrypoints: websecure
+ traefik.http.routers.homeassistant-local.service: homeassistant
+ traefik.http.routers.homeassistant-local.tls: true
\ No newline at end of file
diff --git a/apps/homeassistant-1/metadata/description.md b/apps/homeassistant-1/metadata/description.md
new file mode 100644
index 00000000..2a9f607c
--- /dev/null
+++ b/apps/homeassistant-1/metadata/description.md
@@ -0,0 +1,28 @@
+# Home Assistant
+
+Open source home automation that puts local control and privacy first. Powered by a worldwide community of tinkerers and DIY enthusiasts. Perfect to run on a Raspberry Pi or a local server.
+
+Check out [home-assistant.io](https://home-assistant.io) for a [demo](https://home-assistant.io/demo/), installation [instructions](https://home-assistant.io/getting-started/), [tutorials](https://home-assistant.io/getting-started/automation/) and [documentation](https://home-assistant.io/docs/)
+
+## Migration
+
+February 2024
+
+This version of Home Assistant can be exposed. To migrate from the previous, non exposable app, follow these steps:
+
+- stop the previous app
+- rename `runtipi/app-data/homeassistant` to `runtipi/app-data/__homeassistant`
+- remove the (previous) app
+- install the (the current) app
+- remove `runtipi/app-data/homeassistant`
+- rename `runtipi/app-data/__homeassistant` to `runtipi/app-data/homeassistant`
+- add the following section to `runtipi/app-data/homeassistant/data/config/configuration.yaml`
+ ```
+ http:
+ use_x_forwarded_for: true
+ trusted_proxies:
+ - 127.0.0.1
+ - 172.16.0.0/12
+ - ::1
+ ```
+- start the app
\ No newline at end of file
diff --git a/apps/homeassistant-1/metadata/logo.jpg b/apps/homeassistant-1/metadata/logo.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f090130e2e73c8edfc751af1fcdb260c997284c0
GIT binary patch
literal 45400
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%0A*n73mAVk$L7Znzj|3x@Q}!Cfut*V2C5zds3F(A
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