From 11142b9cb0a20130cd2ef2774712bbfd43157061 Mon Sep 17 00:00:00 2001 From: Juergen Kunz Date: Tue, 18 Nov 2025 19:36:08 +0000 Subject: [PATCH] update --- .gitignore | 2 + .playwright-mcp/settings-acme-section.png | Bin 18934 -> 0 bytes .playwright-mcp/settings-after-reload.png | Bin 24403 -> 0 bytes .../settings-fixed-persistence.png | Bin 18713 -> 0 bytes ts/classes/httpserver.ts | 7 +++ ts/classes/ssl.ts | 46 ++++++++++++++++++ 6 files changed, 55 insertions(+) delete mode 100644 .playwright-mcp/settings-acme-section.png delete mode 100644 .playwright-mcp/settings-after-reload.png delete mode 100644 .playwright-mcp/settings-fixed-persistence.png diff --git a/.gitignore b/.gitignore index a313ed3..fe5f1f6 100644 --- a/.gitignore +++ b/.gitignore @@ -48,3 +48,5 @@ config.local.json # Logs logs/ *.log + +.playwright-mcp diff --git a/.playwright-mcp/settings-acme-section.png b/.playwright-mcp/settings-acme-section.png deleted file mode 100644 index b2b28eb223d99d37240ddeaa722b1bbbd02130c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18934 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 HB{Ts5HAvu0 diff --git a/.playwright-mcp/settings-after-reload.png b/.playwright-mcp/settings-after-reload.png deleted file mode 100644 index 183075cbbc993d49454181db684735eaf112cad9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24403 zcmc$`Wmua*v@Tk2DOTK}cyV`YAy~2E4#gdcJG7;R;KhpQKc zLZ^tOIn$w|hwd8k(hn+!DR&<{c>O>T@J`Do;{fVwq@|5|e#FJwL52U!l1y&S^9RO< zSDjDC@Kx|Megr%UG^(xlo80E9V;&#ZVCyn1Oil~8LE7;g5z zpLtUrUful>{QceNnN8`)O&84|_##8Z`|ttHu*gM}sgnG2BNuFBI=1%2)CCk??DV`?8|`<@0}4P+UdmzQ`~7 zss1$iSV94T1_1$q*!?||*;BfEDWA{db;ZjA^a|pNC44cn^TX^YjPtUBP%w`Yui5f7JX>HbE_;%7)s`WLZ4(F zZJ-N0*!y)Zq9}mDOaR7dR8`=Zf+`Q6TwN`(45{_~>#D-7to&NB-2_f?R+pt;77HE1 zzo*~Ye@IVdj&0ZUEpq)<(*_Wsm2_Zt_LsWDilJKlR*(H@=P zKKY9CU2|&=PtR#>k@KdLQoJd@M))U#Itdg zU0Igd=8ST(N$Av|_QuS&V~+1H2VX{^YX*7(eBQD|iCS$jqMX>IvvP6suJv{jr`BY{ zwwgVx2l(G+b~r_p|8-)`RA^K^H`Kz%$BV1E!nKf%8H!DcOQBA5)$OJh@feVx3)XC; zD{G9Ys2E~R4E7eDgBQ0=k!I$;c3JDDpvM_#v|&4}_GHI1G)&jlXx?_4{^2Q9w0vNj z`u(q1$)S`@dE3nnj$zOAv{jO>b8PEA(%o8mpI7?^ck$D;h=p10t$A~8Tk>9!9(0fk zbvSEWD7(ghv(!)J zuabsT2;nqCLqYgkW8ZWNtN~0+CMs@W6mDHNmNAw8YpZdNMzEsJfy`A{tL76I5wOkl zcOa1YHlY0SEaq!u0{|dYWmOK_$7j`%qaKcNF8|vIy0h0U%)HJrRXK@q5nQzO;m!J0 zR?^#_v;1r3*+S}x7)%5uS?aca-qX!UoXDzR`thT=-RA1L*n9h5S^bEL>lQK~>SapF zRQhP|d(oX}jF1CFc0;>Vkkxo&0J%EBNndN={9UFsou})R?nIK`JGZ>{+ug~KYq%!@ z8(Z0L))(uXda0*;HR(;XDRL@Y{LA{;=qp^ayTblDis{>Fjtvyk`{KIg%8|l5CYDp@ zgXkDYs`1V-dekVN6!N&g|#^i!E#)X3#jJ(EoHv_iQnbqk}%Xp&jFwFjz_TUIvf@5T^jL$o+x|!Qr4FmT+Ea= zzUy6oXiu3H(o7UhhB9~Zngf~j8m?9kH$eM!wh+aW&I*cLKK3x>pS$LE3PiXs-86YO z$&rAU&Jm}kv3E1H=_Qy#Va*W=oCAs?c+4qyo}}@}SL-64%|-L`y|AF$7IS;_GcOaL2|l(~KA6^GaGwd&96=Zgwm9B2UQYH`HcBR> z3{mJ&wYttVD(NQ~I|VM8knKS;4X{BHz|;$*b^3+177a9j1(e@X7CEvIxrKeO)Mqo3 zvsXTQB(N}S#8p0Bw^G0CVm&9qf>?Ub5)g&O~IMYU;LyTFUqOV z_Qf#FU3b}JyQB*@?ftgesGlEDWd_%VeFbv7AbyQp2GD zoTmxQtB$a-gzxT~8Y(nj0 zqiR8-RT$2x>MVgMKIY%GIT^RNBayM>Z8y75nDr0V;BKZj9^D^k@zfRjkHI`b8dkVT zZIy+MA<~8ZVn^Y{ya;8-v();<=j@R5u7M5{mjE+1O*P6W(ez|p^#KBphH6CC$>D1@ zl{SSTt)*`dcXf4)R0kMHnD%( zT%7I#!emy3<Kx}Wt+*QlDXb#1GDQ!_B8~8kA)?{yb=6suI?0K+zIssh?%4}zTM)US& zbJi!DtV6{h`QQ>(iU$)?OihX}tvBePhUbCRr3B?I2bRs^q@W5e+;JDTBm z;Lp7_%!ME$;+DFbLy$4Bc;$EQXb4d|jdRwlA(xo*=3Xzm)u|NWl%2d_`je5D6w6?K z=gnFg5~5DBG@lVeD#s6>_#MYC%qoW+0$SA_`fqA(D!+3^ydY9Pj~ks^t_qs7DsY(@ zZea+{-`MD%D}y(WARQMTsCPvhqd?cEU1!ieS7JaCMi~ieIa(5Be0TghAxyD#rm8KU zA^TeT!s}ZQS&5Kbbg(;hSrsc?_l8tpddn7>E~ezBkcT7-VS^Q*8xSGxD?M@C(%<{I zPhN|)x7_i%@!Wb^#*N?cl#)wjzpQrbw?`TbEa6R|p=-U`@d!U+cXjvg)mO}Kr&J?QjIC%Rid8xyn@t`eE zgZrb*r>$)jL!um8_s$>wdakM z!@Rv^zVXz&rKW1|?s07$37`lHwRgj%5+Efx2?CmJ4*e_!uc~telCIG*Tp@}Z)Su!Y zX|tP1wFn1bOKq2(EO^U@XG9(I5gWysVsPN{Pmw>8y~Y(Bmz9#U3jadoxh^U|jT?QZ8?-^o}% zo!@73tD;%1@njCXL>6BoCyBSUiM^R9GFsMS?{fj zIkY5Im$LJLf7$~t1;}`$Tw0vBgjOqdC7x*O>(bGAIZp)#Hx||KGI~w)y@#{#Ey2v* z5_P5Ozl7;mYwM@s2N%U(ilf(XFSRd;&10+nF61#kkvWmFD({TW{(O7sW~*t~9ap>) z(8^LLO^LNT7V>pc<6)f7UmH{+h|-zub!i_2-$rZ|swSgcBG*@BIOJLHU(>`o!@2fn zDKPey>q_pS;@+}UTgqa<-H9M|v?7_X?0jxsWge(3w0@bPJ^YJg0b>!NzkjNoqQ!y* zEl*x=`f>P)BZ7BuJW0Lk1$ws@fw;Bq_+6UrpCfa=j%|+%9F1AtXW`JQkf5KKsw3U%*q^q#tmOmr#tQzz`N^+LkA{PoI2*=>3d zhCrUcK9z#<&pl(fS|2JMgFcjrXI41+D|f`;$7zL*OP&GJSC=k+|SC%h@Vii z4}6E6uCge7%SQrN7}R>7d6`r|WGSj=?qdGd@-;t?CRsZ7r_5KvlgaV`^I*^=d|X4R zuYGk{XK4V5XpIUBZOgjW1{j&AhLIRcxQA_@jO=zCTmmfdg+&~orFFV)U^xT4@SA8y zN+*75a^90^o1UtzoB4%l7oL+Bl)JAP=+y(gB)~d9O(R2ri5l z$Fqbr7pEiU9DYC!4w#VyRNQgDHF7Psznm#Ra9leZ*lP#)wVWwXR7n_R|5G-{%_M*i zSM4~5Pl)$X#X)#6|E78S7l)5!hY_`r^7v&&OoL}ts5%=*dpmhRzOsmy$(Z-`w^aoA zMWCE&azVLpw#J$W(A1!0l0*!FpMDbl?O9>66FF+libh`;vMWW>&H3?1U|7*>WwjvJZLvU+93=yitxK9^un)6sg*N&dsq8E^=wtk7eWVL-R&lF%{S1hq^` zkEv7x&YR53jtmJu2i#c;x&$42E@m)RVZTUFxDjjh!=)i39(fW|X)xe-h$Vk?x_+AQv|yx90I7KY;Ar$_P_&M5p$ZheOVq^u{4SsH=4eL5vr7 zwapeXf^94h0F;XtDZD1zgPGd_ENN>uC~qt#R4er%a1S>VyN+xCvR8x7?`M*+^=nr< zR`b1$#mwwUt@mn<%dM^kRbLc!C0ya%VSa^7ep63z*?{w2(mx}HD1`RN$al0!#4QbP zzXZg&CDitLm0L{Ii8YDt-6f}Mt291k(YGXGx4X{S+2vfF3CkZpSbR?)Z&M>G&*jrt zh-D>&ohKn`tk6ygDJkP5E(H+FW#8B&_h<%cV)%%TOz>iJ80crl_av7&7YF#%Tpqu! z>6X%JDqOif1~U`zS>cwEBR|ddI{+_rmSnmdE-Li{^w(a;oq4*uHaNDu5VsIhUpMR; z)ypOva)0V$9!4GAdZ~j$Cz`0OY?4SzU!yz0fRUAy_tU%i*9S$N0F5oHdLA z1QxZvbLE=ZF0QGu7Id~kS=ACg4uSXG?L+$O;f%ietcXt&UwyA7o(*HWPB69D(If+OL_0my6Wf%f0usjzQN4wog_n5GjZ+vHyQvCHrnwtFC9_3&UXb{-pf9PR(_d zb{&zQu0x!3wL$aS-1RkrF1IFccykv{Uee{TBTSkb9I^{dnWmjNw;1T@%&*n3@l>+; zK5cx)Gg*=ekiYgv@Y`!!d9J06(hz`AU~6^A5|eQ_XOQ6a!WP)bTS(y0{wip9rPoGO zb)bZ=s8xhq&&Y<0rsx;C)b*DKapB!6t znq;l(2d23&`DEyuK+is#ky_Bvwa@-)rs1z^vLdW3@3%iBn5fyAU(3|`k;uc=yy;Rm zFOP|{)qav3o&F3dra{=x+SfVw4S1sZT|Qs$$+v)UHOJDCyz-DpAwsq!z_oZ89$)g= zz^w!iqX?tfcHer>?b5X^AW$B7ZBRZK^&)o211m#9-<+24D2c^TGE(D;1~Nr(Y|vIn zjw&;a<$9%L)QO*xLobK33~}vB)dU4FE#SrF^el3jxQK}ZCb!zYjelvZ3FEY3W$Y%Y zB1}K`U&H7U09cA1u8ZW&FA>pt_=-((3NbQXsm@o>i{Vnmsb)+4L8QW&G%>Skz8B~z zSPJmu+rzq5m^(4$fMUYm4GS|P z5rjz&5w*gg#BYt=9BM-!e*~kN;Ht7k3I_&MBM2|V=mAAu2-7ab!i8%cd|hx6!tM-f z0n0nLF;V3kR|V65+1bSV!WH`h>*}NG;6~hO2c69|DqU~~Q7ds>@lsRWpun(l5A6}gZ^ zlw}(l$7Om$pkGp@=-F&2=3P&5_V?9MxrIw@njF;DW%3Nk^W)+Bc1i192(Z9KWdTcH zG_bd`yZ_gjs{I#(8AbeA17*#=O8q`ERLgm_ESIYOF$AYKZTlU8l+Rm`jfw8Nk1UR= zvbY0{1@21?>Iv~C)5GI$VjGRiY=gA)@l&U6_5Hkvjk^EZr}>|rpbv;VE#3qr zRRO8-;3C^{nCC9RlzkhRKZIjJm2;H%?g3KowJF*_X4n!SSy3pVcs}{ZQ_<$8q~>$NA^Kw zh@KI{ABfF1?rbfwS|Rg{I?GEtTqwS-a*{P%SdD{ayS+OFjAhv;Osfpc9|3ZF!on4APF-+}zXAhi^|E4NKfMvd~ok*y#PCj`|+c%PKS5(%9-9EyyI^p%KcTkY zMD3!OP)sI-9z@3L@RJM=JUOJS7w5~SWah&5fp`fhoT{yffbV9Hi|m zt&+UL6;DUeNkK)WOy8I4kj7x+_l9|}J354ll@c0RtI<6<=gPLq= z(|Rk#b(XVgqczi`(q4$`jxF(sb$!B*OKG?|SR>aPkgDp_P^Ivz{LQd(8?AQ+_xr!b z6H1)Usy7!XV%j%&*e5H(!Ruf0jMx6+hNe%p@yxzA)lW?~VL#ZmuHr&aSf8s54s*24 z+~s%QmewwoCmISkYlem^Rno+k)t>Ay3QiTpcP9QNUvHo1&ko^2P&3>fkB%wFV!*N< zL1un^VUnVnCv&+DO()vyhN-+^fTE4(vM1r|-|0x6EAi247n+PzjDvWmnCTvCn!%+uc60wv*$cQM16Ty}8t2Hj>RmQAat-^Fv&N}oS1nIVWVW)Y;KWh2;^wc)r)RQHC^Ze4#^PB<=RPG5SBM*zgF>#xA21+Oul(T#geT3VvNX=v2Dl ze6egQx)e(4;E;2$H#fj*=MqXvpYztzPUS{510rPJl=>NuTw?B5?#E9@fWFD<<^{*( zYmpEAhh1^r;Q#>Oae(fdUo7F<0V&y0TuGX}`jWUpy^SWEsvCL(D?2K+$)#CY8 zr@)jSu|(LA3GWODIaB%Pm#-44)$dO2bm>Y;qU_6hA(-#uCJy-e%ik=`zmoI~oDbgu zEDvTKW>zdATd^)>1O36(yr_2z^wG*g-qFFsxXu=Z(KX?>B4uVJ42^DPld$jk7JojF z8D20v%%rtC`+l~ASphOUYfM`ZPJjQ=;jSV<{7ti2N&eq}x%|vpK_W7C8jB?l&eWOl zZL6~K2>xyWJNFXzufeia8C^mLT+1hI%loN4WZ4SH<_5MA0Zt|sFVee_nP*DmOeG3( zs$@h&HFhfErmqjIH(~2(6vikQiCEnvFI$@c#ixe!JN7KT2&hojM{SC%q~$m3hIkYg z{q|@63Xhhs%S|U$XI=g-riI|i)9D;oT|wDR&a)}kw52|?V5hD%3fQ0ir56v(Nll3L zUT#~5X>oi?Iy7)cAOGxDxsmDQ#>Wa-{3|m zAygeC{M+$z5OkIoOA|TU2Ksu2jm_@J*l`0gO=|b}^^GL!a+LG;cX$3(M!S_oPz+px z{AQ>xjA6&#Ozcf(0?1QicS$wfakaJJ#>xiMug2>Y~!>5A*dDcD0Dr{;Wga+Q_nIe94=`2qbOO@o~?-KkJZqgVQMct0{x;je9jXRvp!_-k3 z+_}C)k>hOsx<+=Ded8|YU-8oP{l>Z-Ea68o6jC@NoTVShWGJ>DP6X@G>~+10i<^mG z_Cgq44}mmI2H0${oER!)zHU#(R{0DYz4Gw9l6v-SK(Xa=7KuxFE4@vVT_=3BnY(w* z_#kVi`KfcZi}CRAo!5y&S?|2l_^rr0yX+J`Kqt4>?S83fGN=5TEjhji4P)`r;#(z#u1H+ zFu{xrs93#mMwZdvY2&!NNS4FG(?l{K)Qn7->m!`3|OtUBfjbE>m)ywGtFuD?1E#I#5<9ws4wR$>6t zAY9C*P68LT-PL_mwvco?sz6DyfwzZqLt{9N^RV;Y9DMTC8R&>+?+jyFz_uT2EWLYv z*cPayu1fi{^6w^UM`EV-*xT1NOKm+91-LCCAfLIZEO~Jw;%m0obT$P#1nuk3H%PAb zze8mnh+(Nj8sA!{ zsf1=P{QS||2!ibussUEXh6AB=*W017Y|ZX$fnO5#antnpFy1;OF%*};Axs6zC z+R<#LgZC*YJYcO|r>o?C94ee1cQAg~wO=W$W{eCf_&^QUH5ip)$1;g zow*#XzM==HeK;7|l|5s)!}~}67!{p=70=&ZO^aqDymc^c5uXtq-?IxTq_`(MjFM*; zUD>t%qlf(RybSnP;^^@mbbpIhx?wK({K#UJV>0ZMB zg8)*YQ&Em4brh>lPft#Y2YqRN`k#!Ht^e<=lm9+l#bmQXK9)vm+Jo<2sd|MJPGcW& z>Z;27pgIwKPsJF0Df%z8aT;^4J-bgJ$N%3$lKJne`@c%dd7&6wEbJB$Ia_$;(0M|r zB6Lss5v8iCV@-yN2fX$}m82`~Ue)Hl6j6#A{qTmLFxAlDqBceN0`X~Yf2^uV;n$K4 z*xN_O!{AhgZ@We_pj;%@k|1~iFU4@|a`eL_7q?G!s-NLwwA5geOuYCF-Qa8ZBGLBv zEU}@!uWVdf?i(Sg-D|6ec^QBub@l$9uH;_8UesM#aD;P^$wbNBJfKcmq8BHG@=!vN@k>N1}UMs=2lFvb!e-471b1#S}47*Pp&rNrIeCu zy=eYOSl*WkHWqbk&?S%Uv0b8!#uk0Mu?#$X)vAFJRmfW339jwRg6+PI z&Yy;USTBEyI`orbOe_&3n=YX4hIg92CD!M@#6SNb?E6eL$YyIN>+8uK!A&sn%;Flg zI}Xj=V6*nBKQrz@xTG5!j|6>DP?~riGrv$-HWPgHaCfn)Dy6O<&881MT(<=!Am;F- z0c{#`QDOZ?@8Y)`J+41( z%#KE9*Qb~5^{H0)I3R}|WH|(D9X-{ZgYNjRW{V{{eL^!AL{%o88PNkW8sRsiX#S1E zO{uF7TdXo!%8IJC!~Jm)mviP1gC9lNSlC(ZJJQd?Y_SXpC4?>^r5K7_tPO6n5wB0YPcQWt_lxBR?d1FOg^%O9W=P2A8Sh~Jr|JNb`gjO^3Yo>llG zSpXoaVG^93QA`K(Yq$5{g>M#Le|yA6o4O!&!Nyd|`F^BVT_mxl)?08!lf@48oJts` z2=QzW0n0K&Vp~Xxd7qRh%yWAqGN)bDY*~41`Xf&wH?$Ier)HDqQ_uREG*piUU9tr- zZiNDfPIA{W&JsH}@SO(liFpQULj)jWCdfJhV#R@UtRqq^vPe+vnU*pign>=S*2E5n ze(U;^H?VNtFdn4uvtoqTxbR3K`i9^(swmc+M!j^=b8RliDj7=6gI@zVZDO4aT%n(*YDagT6)y%(6=H;_r zuahu1a9YWfv4}E!7CMh^P*y~XRC1@N&wA;D?Q=1++1#k6;>;Y)9$y^PNTEX)hxZm0 zax=sJ^^e=rfr3&#pC}{LU0*tW(qlIqK$dQC4PuY>YTLWDophbf{K+G}6xYarRnIt6pVa@Cxgvr#}aB_lC~c$cX|B!YY~w>uNl$H zzc@Ccs)>XAPJ7S{?xN#38+3-dMZ|$K+&hPaScOpZbP$5p;KiMYylC64c<^~y z&3^4nUwNF^d6uPE^90%qpJ;(&2j`6YKLoi4#px!p0rz4RAQ_WxrL7}U0R~>xsZW)u zYj->x#i|%Apab!5@>cQu**pe|d*1~b`zdBJCQpMYjWZ^Zf4I<{6HJnMGUxQD@8^hM z?3F^Y8`2|Sv1C9u!G*Cv_tTkMHQ6er(39@KHFXrXklOUxuZSi_c+cG*O``3M+R1k# zQ;{}PGXQ2t#HG)elM7kE4=1mUo~TyhGo2fVxr2<6cq{EzDyJsC$cDVD znKzBcHCdigBdhC68CN5CI12Y$xS9;K!-@3?UCD@)HM=2dJ*Np%9~2ykVajh)p66SJ z^&`j))zA%}dwHc<#ih>?e9fB~!2@!XsO;i~eHTuyaBluHS`5pHGFj*|9Ae-LGTLOb z^A-&797eb=qzqE+o@V!EoX6bnz&M$t@dn&`yF8+obqIg8@)I7Hnml1u@-=bV^8*vIZzuE5ovx>PXfa(G@;t~7XzC(aN~rcEke-JG~Gun z(9(jk+Gy!SL0d?OmzynfKM2>n>;;nLy&q!~`AaYfkZj0X9xhPlm#sc!WaZ zN|m)6DNkc*OH*k%_9mJkpEfE^G6rsh0z_Re%ifh~8XV$97;s(%B6^3s%!%m<8%g)x zw^CpQbiT-|$Ns}KvlGYae{~;e&A{>QES4bNCdg7d2}MCEKjgP2 z>_G6fV#RmAPMzL}lZkkj!cCo-3ptFNhSHIxf)wga!J>$K4%C7F^4nOtbEO`_zAgk0i_mLpUk2up!9Y?|%HtB{w!Zs`lKo3E)Z4m(I2vG>vPk$=q!8BSA`kzPfvO%KHNDr{uW*Yljme++}`XJ`#DN~ruWKoF;M<;xMMqk&n==< z0JIW6>hP!Xa_k0zvQt|`M4^v9=E{tBZI78DeC{4<@5UpD9UOVB>5{~)?uMr?-=$QU zKmrg3?=}3|*+F_tRX^$gQCZE+sh(UV10S=0*I2ZbH@wD1H}SS)r+VtW3h1HeZ<9Oo za#Zr|7Pcy!GB$HNw~qDL2A?x>WimOfvj2lr^; zH|FOoh9Nf8Cb<1{q$b}6Ix+=L0rxI`0F;-%k=pgUy*f+o_^$J?6(@KzZ`gcTdn}jLbViw3s8I{Jgx05`_1Ah4HZ*PEliz`yhIEf81Mvm)rxpn7zF{ z>KTc{C`mFjLTG6bHHLDE8yh2ZFwuEN-v@eQ#l>)XmXuUfR0NhURgyIfDVEacte^U# zu{gSdug7S!k9d~f_Ej-6!<0~QWQ-~aRwcUEKQnpkj{lIEOiGx16`z*&cRdI99$)c? z_DnFAYU-+L7^=lPlbqcT@#oN8uiab@2}QKt=x`4~cfT^GpmV?N@bG9654vrV%oexN zwm(pm{^uWoy+1B1&*m4uN0F0UeUCzqZqdz3i|=#aB0yk)X#Y7?B!AEqRv&>np~VFu z{m_{nWSQP&46x&DTD1 zu}Sg4O!Hnu+IO<;+aA^sWViA=s&8aKuT?G&Pa#Fb+OI5_Y8wyM4@BvFwmi5_Nqp?l z8X3GZl+jQfJlMtbV%Cn#0N;J>5&KDCnCQBBJ68?5fMt=nx|XCD&U;?m7C6e0w|qh} zgoSdI%%8nsH;FWFd{qC>|Lz>&#UsE;BH-8(|PJ=); ztw{xP%0cUq32t???dvj74l+S50hr0!6_AntW6MmhsuU4g8IHUpT18ij)w8SCgu&bC zZ!XSPJ?%%gjnx3`#;E>CR=rw&4GYucui7tuPJh|L;7LYm7CkNDFBIo7KR@F-59HQ- zEm|Mc^kGxs1{vSxzCYddBzS)W>T}-NqRkx1zC7OmH=O#~X}w)NGA)XJOQZyxG7=KO zHdoUOZa=SJTY^wpVv~vXKoHoOK~T(jO6(nde$4n`OxEKN>nf1|wXwE~14sE1=;C_m zQ^GJCZ}_3eOd>~KfIacu@t*stv+8`Y2ygEK;ZJ|3W3qUddR@eBA@ zF#1D&clni1cX7^=hP<7(*vJ=TT}r*}v##I+J9D9%naNOQ-neHj<=G<)t@Vg?vJP>H z)&)evDJ9?PI&ff94N;4SN7nq!(S+jQZ5JenV9dOcc;fUI-h6g42E;u&pXrU!(>5!XbKbxojQ#`yf$(pkYKR_vSLBDbjL^Z1-MOm;u2SZ#vG9j2_6cIDOcz zgy$Zx2pi+kl-Pj6I|+H8InCjr1>U5JDE=Llq`1zLOJi4}>Gp}QgZkfdS0fpMf`${x zy-Q%gB^oo*oF70A7x$${u_BR=vE0wg=ldHze)+u#U5*K>N)wq3y}KKYIZ~7Q$>;YO z%xS0>(nB@tGTLB;2PV5^z# zo)y)*Rzm*PvDrwKfqzZdE(dj+dS?MKZr!`gkERqV$0!d|H5K&`#Y@_TwtMXYHVOsC z;`o@fBZoOJg1VbG(aTJ*jsa=>!Hoj2655*io<7UI6Gm1HiDYn@fqdQW#JIB_Hib`3 z7!=C`YI~n*p1&$lU1BPf^(Gi#1yUB48;~se@&0&gdv#Xz2RvDCZ_Z9t-s~l+YeTzqyKKw>~D3@TxiaM?BqfR>}rPiLq_au zCLpSH`Ng5WX4Hkedq6IU8G9CSw~r^MsUM@IuHPYHztLru-UKfZ0-`)TQr&GkazHNL}Ew8^S0Y z$@uQlHGF$@_pxizjy@yxfFBO5q&_zR(4QZL`-vuQWo$OxPP7TbM}1)tmvUcu857v!Ry#`YF~O%ayk8Xo3} z(u&8D8T-c@TfD%yXK;Q_+Tt@Xsc2!c#coE> zhAjRBjYnS^lF+a+-`^Ozg9dS_CNj9$A3>nBDD&Nmo(|$3QvKGeAq-PSqiwHu1?fGu zJ0SlKC*rF4mb*w9%dHj3wNvBuIusH9IU(%u>d!Qy-e+pMchkLbUtj6j6AmbK;^}I! z)C)zxG*XHRE@BRCf!5$D<+AB@D_c6v1rOdTwo`HGC)U9CH*bJI1zTrp`nYEt853J| z3r(caSefg7JE!Ta#)?}(O1kQ2;XhAPys8%d9hclcQC}l7Qr$zKS#Ddx_YMDoV^|T; z81ETv@8FR1-b%K2XFP31+q-&-9Y@Z;C!}e)$Bu6h$uKdwW2%;38hU>~1!<@$NJxvA&{c<+qrmOBmEP zKrfS`ZU<)O!hR>vdi^xx9#`Bd+BqqdwtKCZBX(w<6LnGzI5+GU#L)zk9G`mQm7ye- zRt`f)t4%Spnx^~37G$I_l-y0~gIs?^XU$XGpSgp{=E>trt5D=sLMPEH$B+BZshTF- zva@n#`-i*xhwWA-M?ZRRLf2EM#nm$lW^_jk+rZ<@j(4{+orrX5Cb{rON!(ZBH%}H%O(_;{DK@_l19YX3REDp$E8&X7 zlqP55NcpJP?H*3UVp-WE^{-$&;2EKBPn${ki6HG)pxPN}DJ=4j%TU1Nf`5Mxf$R)U zXUZ!c=RElccy~rQT-48J>o;QWVP05j@zp)1d7FNWc4guzcPcL-E7Z*waBqzm4mmd&{lZq?!OE0;1+Cas!*!B=v_M)*nJWU zZWVN9nI~za+j{HVtIS46H_k`2u;9v=j^o)tanbk8fX87dcXZFnjNpLG)#bUU+jYES zDfWydeZrUZ=Z+W){@=!V9Rs(T#Nqn)3te{9^pK)C7nO+4+`{tA*l>60s?s=@Ws}u( zUtai#At(#lq$U_};O5#I&y{^v6p0lQ{L3daoxPu=cdyoA`YTF~|E zCNfm^)N6BY*r?IW3x4CTtDJeJdel}e;EL<$6qSx+^(@M7=-XL_oIoWBTIPdbdi2%Y z$=v&CfzpZ!ZPp}cRP-cNP^GNx^0*Vua@Lci@;Dfs?H7VNG3oRwz}VP0Q*J~j_IyZj z{N)r;fmL`bJpopm5Y}61wAJTQOj=^~E>nW%K-7mKsW=;1~5~(pM zuvq9s079odsDJcdeHXzNf&Tyvxs!>ce6+e)2_03ODhku@k*fXgiK!_P?ni;$e+ToG zQf%4~2Tw51jtXFG&2qZU>{r^|r_EI_kQ*7njEtfnVNoV6(EbHgE?=j5xC?TwV>h2vRGr zDnc2$D~NNn@()ZeHq(FWj~=-DbMo!u?6YJxV`hI;MKFy3Mx7)+ zcn^O~NN7LU(c2BFjpz?U*M;ugKRQzGlUMFx`IzobB^U(NhKLz>NJXBubi)Pk{<+LA{BPd$Z0WCK&=A~D^zK0gNm5)g9NRFSH03PfFppWy& zMfdoFe6Ogz$5WN=UotbBcE7}Bre7*zMnKapc)T>krrgY@WTIgQQHt3ARArrIu^ChU zpQ;u~McT9j9~@nr6&)&;mR$#4_*c!6lj%1-Lw#C(SC)y($&UM}ft$BB(CV-~s_2cL z=Uv!GT}*oVg)bA0$ffJ-zMC)^c`G>Ouu;nj`OciCe{+Xx&$~=ffokjR`?Ez@2|OOJ zkEu+@b#a~EajZf2?5IL|O%Jq?U8}+?OzM}Urq{O#1OnySLplXC^5YH%e_kU(wUNS%8^! zEawKdm6ExE+bL<@dY(XNKPyZ}Wq+#h)Cp|J=L2#aQ-;(9HL9hX+kL0P+20?0aVH!a zx%E5(kVL)33!=31*>VfYDJ#L&L*@q?l+<@NOnU4*I7hEM#b>~}cuP+!ugOAlLVA{< z^OuEDgkc?^jZ1X2zL3N~kz{p#wZ-BFkm?#^S|(=aSYM`mKZi<%xIV80{bh93*vwMF z(xuGVoLooYt9?IH#IhdW^iM&O|Gy>H|3kx>AI@1}ERNp0Z?jRqvPyDP)3D<5MZcJQ z3Pwo6W8}WujX*dy`n2DfgI7bVLF-J%F58n3d`2*t2#(B_G=h(A@9C-M%wP+F& z@gz&QRjJN;dA*u7c-HTUd>KAFDB*q4h zU1wa>(lCvG>#g8a2I`3>qvML9KegI*g&E;Jdj2Wr)Fv``CE~&$SMEeof0^MDeSb6D zXL*JbZ+4#}{?Zc$Ob7$4FY7!CP4pM`n@L)0)YO2@w9vixCTp{^Ti6@A;nYNmz|Lxe zSC+cGzZ305uCMk;$Y%JHCf%^rUU_<8X7IzH%Zg(Qt%sNz;ST*7d72#g2tJ#!V3rM3Ib&@&(tzWGAgSsOOSZ<M(M; zDSLBlXK7wnypE`rwoV2jYNMqD<-e*3DIHD!7Pi}#?4{hfKQP+on4(s_(Fq#)B;1*m zSpqtXT>n%>+1t<1%p&}j3H?n?=E#A=$`Y(Dv~HyV=6zthTM@9Yi`XmZvfo>{-nKvR zg_2W43w#~DOVX^J-snpQBHlIvKw8KhQAPn*X_?O!v|gYT{A^8kIW{RB1n4-H_U(j3 zh3!`67GvqUqm9WO&^Utz$L#%d1i5@~b+I+W-is&KN1Z-m!_)ljHZSl2!#1Ox7b4V9 zxr``p*Bn{dyg=H2ONFiy`{*R0ofWJQXe+^Od5#)b!$4x0tBU2tnV8<_Tj@`=t&Le_ z$b&#otT|z_Q-=a%xfM*Tr|V)MvCjkFZZ)QQXIk;#Re;Q;w;VAj*qAqb$k!lMokuS9;+^jsfDm;w3f^7l8#+W8<8L(MI@j`}{7 z4NwMpvSPShO%m9iZxR-pV<(v+x!k}Qk5&F25D=(<5OEZfiI*R$_2Zgmd@J|yrkw|v z+uH@D^!ib;q4z+?ALLq(2YyJ#{_{dM+soCoyoX+2N1F5CX2>dLAWn)6Mnjrvqt=H8 zqg*%~8vRiU^78AeGcVyiCp!cIHEaT1*IJ((#dI{ z_YV0ndDvO^hD8phM#cBuRjDh#Kg*911;)t#XLSFtXn3(Q+Vqf>@5$+gFK%La`kfD| zY1d;A7h6+4C2!u~k?Ffzd#@(%h-q;p@X_VX3t+UYp=pLufh2TC+gkSA$!(DAZIrWi z0HHp7JShJz0RaU9{Pu&=G1SL1`p!2~;5UTNtR4NDMiyex`o-ur%3mhSP%KBowU^JZ z`Ik=e5pLjpsr{=)rec#Xdhd!TF8E<9MO%y1I6I^@ob#O>4pBzNgDkR;>zGc|8FU!z z{6w6qAJ$Uk%Q^unn=(AXs>3yC+nvRM*o)fb>BKlY+=w?ri9#%F$L^{Z%c!4TQ8{B( zsfR8hsE5}&pP0QzYQgHEwb7^hrcPo`*k86%wYIr|zMUfXqJ8$Htu2cT7Y7_#B;6qk z)Wz@TVtO@Ht}xzi7uukAqijVc10>gxZlDyFU}zhfq|U@N-@G#hkvwxMyF!kaBKAro zi;aHRF6(37&CZ?ip!0=0V4RZ{<-@!2FJ?y_K&eg&hIXY$s-&HQF&p8SA{Gt~#;K`VU+@E_3dC#MLrAg;|q}Q1W#5IYTb+ zvk>(!F_ZO8xEI7~$D}q79TOA1V32Ku+To`8tT>~YaDD*?l-fFgAITAT>4;3GA z^9Jc7q4M0dvr&=SvfS*eVX{q{E&UJ07@ z^l7P(sdVEJk>+Gwd$~@KNyvJX4Sy)Yz7(`NH)b^cW=~vqUe_M!ALB^QEvM86$4n$2 zu3~QC;85YGhCHmJ&CG-k(*=WqX>X(MaIlSxeI6Wy(HprU?L)rOY%+tYtV`nr1!sm8 zeH~^^C*;Da)^k!n*oXaL?BAcP2LF=0O|hNntIvqr@#P6#7AGF8oWY1tV`h)z7>dTv7kr;>lPvLDb7LB~t>Y7e zOiVBRrVc%@a{YjhYF+1vhMUOEV%93nTm`bc0bdx^P@vSa=n;*Y66fx9s+(E8-JQL{ z9!xZNyz(=2+7$a(`L|)MHg1kx`+2`_-3FbD$5Do^o!+ZE z)5^t8K8?dLrNp)q!saywVVZ($Y~rSayYDttM`b1WP9DjP@~6d2lQBKPk>X#{sSRk5 zM$HSd(+Mei+h<_aB(A0FjkS}{G9j){dxQ!Z5)ofn-v~t9$`9-88m9$+s~#2Y!>ICm zXTkQ57f7CnkW+7AW_l!1x~%8>vGVoGWU43`+%p&TC1Elq&aM^T50_1c5j;|y3np-N zt|}S}ernLn>(bmM%uh=$fu*FQM4>$j!o{qVcaUh2n8*3Yg`MoB0|v?`9o`}bYVihv z@aeJzlP6K;y;9CO;Y1jX98KmiI%m6P{?QZD%{YFkTYV5Yxv(Ht_wIefB{yrxrRcZk zbPRi*CQL=>I$5FgSs6@d1*ByWD4Co8Gra*|Broc<{Y0M!KA_Ou=_> z!yhUc88QY_}~Nd9YBm zvNum~=1S%9SwZr@npQD~hR>kUDCfbh?G8(t$Z~y(L1*=FG&c_zrJR?DMpLHV-(Qn1sQ`zS$((3) z>YNIY^E#5!GP-Rdi7F%M8eB9jP#s-&-E+}wo;rDw87h)RhMHfjoTEiF?b~R{5+{{j z8fEErRbgL!t$S7^%j;+r!W3*j*IMU04~Jfk3aDiWT%>PHWk%7#h&*v{Uf zQkR7Dg@!)_SJkvNuJCK*P!&(n$`;slWXo+hE?y-J%LMP*4e}hn2sOzna-A5T5i)p( znMP+{&*RiP#&+rkP5T{jMDsfWGhShQrdCUIt*&8S{9d{AQ@u!a6QDePRU{G>>A>>m0LuJY({%+?&>2# z$@`ug@A+UY_&oblV3j9LZ=WiEUFUu$oMqO}TI(;l9L0`sR^&Y1TxXJHEXYnc1LBL< zvP(S19w|o$-C$zs#{t%6ALNNuOU(X5&W1CZtcH$`uy`FW`ZS>~`_bg_mdCRRJ$!~* zyJ3v}YV?Eeqi5I_>!%_qJ9Sn_l~i`ZN!A;_5oYe!_~U*Ly<+&$D1P|?T;&V;DJOX2 zO`e-N`Xi6gtZ7!yRBV3EjoU2H4V8@`bz8NH_p>x1BW*Tsx$~#()idI>MR0oOtv_9~ zGJy*EG-9L?51}u(rR5Mgv#;g(qqKj)nGt%Y{Si0Auz{k~68q z2X%j8vh9<`_&NtKmms^m;c$W}*1t95)S}qAbFJTM`m<;$dn@Rb z{>};E8Zu8@fnQolQMBmm5T!(38d1GzM1vQg-a;s+TdQmZRoIHOn4=?mUfeP79cF#u zO~*(1Vk2!AfJ>zh`fOSXhWnqFojH+~a7J4!4nSxDG4;{v2DuSCK6Hunej1>nz8QK* z0EDQ2D#hIbxc|L8`DqK)l%v7^sx?phdFs=N%l#LH@!kh7g2=g!h2C&mcg?1juu;AJ4l<>93;%zN) z3-N-BB!nx&I^Nf2#$GU>CVDMT3BFsJVjn^yl8}y!kD63saOv~`7o~)tdWSIH^Jz%S zAVvXMcXt zPIag2T-OAz%H^$Eih$OxolG&f`;hhvL4!6R?> z`UPN%4HI83F!%+67t2uLnYVXF0UGN5lAe~gMmOfr*r;A>e0!MaLd;tk3J;YFdA%Jz zvyMXw?7-gVDSP_F z>Bhv(F&v&mgwZoNmXQ^ki}s|4J7kVt()JE5I$2I(1qQfE%(jc1M4j%LWn?vjXL|V@|92nH`o}30tF<9CC-_+()^Dous5PKw)X8JTDm5Z`t=^yoL4ZzN0TM5Vk)4E|WghI-#ri5;>(N^lWTc z7OL4sBc00Howjk567XEhK!!?C;qw_ww4^fNUD_!jYLE!!W6bt~qqI+sva4OITp(_VyyZ0;LUK?(}JJ2OqN`@Xm0 zrhuM{%WW`@G1A7>MDxygL52!dQp<`yGhjmsUd3y^fYLV?zljPkF@638sIjzYo5-^~ z4!aSdRK$4BVH!y&c##=dz{bxnAr!Jh6&$u99&OB}s5i{}+JEyI-T(MWK2#I=4Kohv zVs&^jLRzdY2VJs%E4{2k+BD7ylW$cM3XMw#qW?ih#f!G2sro8a*T3?8Y$lL5zZmd+ z?i^YSEbjA2t*Q%X4>APG+v`2Q{)_nXH_`o5tGPTXP{Wg!ntF~NvJ1xL&10~$vo7&~ zBX}EK@YN7@Y)4lOj)-wig~4qPe~UdRPba#rU}~m!GL0a<176<_(w%K>Tkk=-Gf09_ z87m+7b_l9+n;g#-qafso=YdNj&D*5y`Sc%Y*6lK}!^Nj2DiDX$?abPJZCx5j{;Y_& zbl9a%%-uF!MfnPLte3g~Ky~AssWSC}_t(0>z?{J+XD>rVJKEbr)K&Ax{BQoq$DTLp zu?)GaS7}&_bkN6xiWNs`Ng7-F2^w+T!}7Gjpr5(kKid+`U)qrgL{^DFWG=pN{%1{$ zE=v(T0FVQ4aQE~(9fNT(#=V>sarc0y`OptDJut)#-xsSB&YAs@df9%eS^w3b=l?_e z`u`dZV3blZ{;Fc%&;4V~^8q0F6WheDMZ>W_&;xJQYv6^>9W;}6Y0&fVd!e87C#Yg= zy*(5EEcM4?ME*woPEKt;z-5R-uSsavWU?kl`jHh1ANv(^U9Ny}a0o z9eKIHMI||mX{zKL#uTfr8VFy{*YM*;bG|c`lv|gaoqIJqJFAcBz6eu-D_!{~xcP5^ zaH}5F&8S4I1Rp=ih=Jh5KcNdp@6F`t;k~Tj4B<~(dK~b@< z5Cec%azXfw${f8)OX&@v{QLqw1t2&ZuL8&~w~&}5-S;R%6kts_OMQ$l-Ws~?0n8wq zm0B2Jd`oXxGz_g>aKD#tC7tYnSG^V-Hg))50ZMbT6EOBHL<);ZS`zKkAkwI;?;UDQ zt;Qc8O#cmQ9!;>5%S-YRQ~c&{V{q^n)8V4#=dwEj{0P^c3rHDl8EUYl@2L;dJ1ofP z-(PuGDLPyhe(L7#jVT zWnhsuRA!jlZ*L+hqdxA6xAsJt(`loFRnsmmE=7H*si_`|;G$zE0URg`!2jazo(f8L zt{Pl8km7AhU z4mHVhK!z!q{k4DOao{20+@n@RTwhm(UXhi8?V@n{!IN=piMcpleuyF~v$H%fs^s@R x_UE^w@**yY0%T55aiM<{FxMTfzaeW|jO)LS8TQ&R|M-P5MB7NK41D+T{{RY1dba=o diff --git a/.playwright-mcp/settings-fixed-persistence.png b/.playwright-mcp/settings-fixed-persistence.png deleted file mode 100644 index 49e68a47aade42e13128a5bf9ea636d32ab2aa4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18713 zcmd74cUV)~yDl1aDJmi&C`y$kf&wA}QloUFNs(TpcLLH&h>b42*CmMFr_S zKp>$?FQNAYawcp2_I=L2_wN1dbIv{Ix%p#C=Exj#%x{eGmG^z8VXxE`sjf0y1%W_R z%1UxtAkc+tAkaC&<@3N9i8L2>;Gc8uT8c8D(q5)z5a=FAS?-07PsZAWzwwagB$tgt_&r*lav+62(ngnXr#nn_r|}XeOQBdHy5%<>O}`rPoDW#%-iS4i@+B zo=*GvH%-A0zBze?ctju)G0Ps$nAj9#4{+x|pv^A~DkTaznuy^d-3iCGK1>jB(wOqH zGBEn9|LaFmgUP!ms~u${l|Sa1p49mlUr6x zbD_D(_{ewShs4dre2vhdvCi-)__HdBor5Pw19)3M^fM61)nxN$j1_(_1S<_@uH9@X z#?pSkLjv5`y9ku7N4_3VXYbF@yO z3yUo)tydT2L)4E=vXBpZUQSlV%k-#J--afZbBfsv9riCJAmv%ee}O>n4vyYvXuTS` zQL+ZE5iWSNoYk(vtdqWz4)cGCczgIcBa;{()O`KpY@m8&-I6bLObiHA(+XHOE;KZ-eMr$PpXnZl^wEXZq~q5mRyuwVOYL#I28}6S!(%?J4Rva*hGW9aZ(oRA8AKUL?m|LO(!Ru zG^^{yC2iJ!HsTe+Lp_iNvF|lyC4I_(B}so|r&RajhOhgt@pM|7&oOtS1HMC{y`6{t z9=hdW*D}(#Lb#eGSWBtVvuR(WD>cP=SaL(1+p zu&Epaq&bn78+~PR*FXNkiKmD1J1FI=mx7iO|q)?;^Yn&~dr#5|>xnvRi zsaEI`VKl%nSn|n1RFp>HUakS)1^6__)}q!kmmTIk#F?)vh7R-x#RDG8PcJf0H)r76 zu)}M_I&$`-dmM1GJ~{^2lwaQc|M>W03V-o|{bAs0I&7k1V>DX$<{gXAp$xtUAKDh$ zf_ zG^9@~jCElCo(2Q47ut%LCrei>PHd#negk)6gDV6?8&7nPAHHYQ>l5-tKLD;}Yow23 zxDNGwb)Q7s9`Y#(RT`R(E!U3YUz7G;+Hl0y!@hhQ{7S_tLP(Czp8)eJ$z2`kRTofE zV@1I%C%;~;^*<80-jGFmu)wGiQk~(o-@Lf!a?Rg*rwoD#FL}CAB3d0__)3?r^=tVS zFt*XB@u5l`{#}cUpH(!zbq0|8qp4=iP zK(3LS4Pwf;m~$u0;6Uh?@xU!F3 zIZhrqE#j&^9p-*367UY3^0Vln7i&Au&8^xWuCpjb-o<5qOVGofSQG2!cP>y%!cTj@ zjyR6NMpF$^H&+�*?l^Yv7ud3J98XnV-NKD%<`U=`!ytR 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 lfMgcLd-ibuJAO{OV8GKgd6>Tf+z { + try { + if (!this.isConfigured()) { + throw new Error('SSL manager not configured'); + } + + logger.info(`Acquiring SSL certificate for ${domain} via SmartACME DNS-01...`); + + // Use SmartACME to obtain certificate via DNS-01 challenge + const cert = await this.smartacme!.getCertificateForDomain(domain, { + includeWildcard, + }); + + logger.success(`SSL certificate obtained for ${domain}`); + logger.info(`Certificate valid until: ${new Date(cert.validUntil).toISOString()}`); + + // Reload certificates in reverse proxy + await this.oneboxRef.reverseProxy.reloadCertificates(); + + // Return certificate data + return { + certPath: cert.certFilePath, + keyPath: cert.keyFilePath, + fullChainPath: cert.chainFilePath || cert.certFilePath, + expiryDate: cert.validUntil, + issuer: cert.issuer || 'Let\'s Encrypt', + }; + } catch (error) { + logger.error(`Failed to acquire certificate for ${domain}: ${error.message}`); + throw error; + } + } + /** * Obtain SSL certificate for a domain using SmartACME */