From 2821e43cdd32f8f71cdfb1273dde62f43cb2f242 Mon Sep 17 00:00:00 2001 From: sashagoncharov19 <0976053529@ukr.net> Date: Mon, 28 Oct 2024 00:23:56 +0000 Subject: [PATCH] feat: macos template --- apps/dokploy/public/templates/macos.png | Bin 0 -> 23554 bytes .../templates/macos/docker-compose.yml | 16 +++++++++ apps/dokploy/templates/macos/index.ts | 33 ++++++++++++++++++ apps/dokploy/templates/templates.ts | 16 ++++++++- .../templates/windows/docker-compose.yml | 2 -- apps/dokploy/templates/windows/index.ts | 2 +- 6 files changed, 65 insertions(+), 4 deletions(-) create mode 100644 apps/dokploy/public/templates/macos.png create mode 100644 apps/dokploy/templates/macos/docker-compose.yml create mode 100644 apps/dokploy/templates/macos/index.ts diff --git a/apps/dokploy/public/templates/macos.png b/apps/dokploy/public/templates/macos.png new file mode 100644 index 0000000000000000000000000000000000000000..617122c87d1fb063097520c802c1e4428a0e689b GIT binary patch literal 23554 zcmeFZhgVbC7e9I_ir7cS0wRirU<3n#fJn3Jg#ZfDBormUAV@C;kTSMW1mq?dIywlb zG$~3i$^eG?RfI^jkOZZUVSowEw=d4`{r-lx)^pY@FgNF%eRlcmdcAYjCLG-%zXJhq&uet7`tZS;tKftE~hhQ#t0HjM39IZ2r>sB zMSMk&096DTaYT^Au)$XEl!|k@@Ib;JH9jdZw07HSg3i(X{ZHYem6wc8pFn=#|2?eE zW+2Fg&*+Jx=dbpT4G8`0c&U@~u@b19vy*M(^*To}5mCweBJadPvbFrXs#6aKjHK17 z52saV4fl_1OnvaxUqbQQ5yoE|e>YzBQluqA*YH8^eEpR2%#3o&^(;=#<#?LS{RtKO znc#VwQ5#7({r~^-|2YoiuFAQGAfH_JWH^nEX6KB?5!^?ba#90F|0Id5q975K4Lm*} zw(Gg<6And8L$&mML9L>ih&T~>UUaE&HaOcRk{VLqG??C(K-A)BoVH3OkKi>;3V(nBTR=GI2)m;)f_ADur0< z`;=!i4lNP-7_v`9dbYDrn@q|&b{9#BQC<3KFlrjTb?Q`8md4yS>-_`$EkpZuq z{kZ>260_^gBN@z8p@$=tkUY|HtcpK z_+;W!e!#hjQ%%x&HF1U>&f8#Sxp(JQ*77sUqdoKWe9I4Fq@4JIuCma#FC>=lW=@@% z5X_l1pVFJhLTi`G9H^qWdY1nMdh&*aRmBNBcsbKfBOT>@1ZRF}bW06k-rcc=I^^qs z4Vwl2u>z;Il|**Pixm1c7e6q~%(c|NcupE>) zdK!sz6G!Smd!L-5<*ekJqiM!!)Y>Zwjl2`sny{P8+Un_}ogk2F89)bfn;06(5>{WW zT`pUj5Xvn#{9L}{i?1s-*9PGP^S5tLi+Jmj1YZePzbV ztTJ)@hJJTj9?7se2*PZFmtqfAcj1fl>{j7=~?%9dSC{?Wos*xq^1n}p1i$Iw`U&4IEhcTBr#_LuIq;XlRNz5&A+w8u z8~PtceBNkqimBQa*`E(*hiJ|F_|h5wtt>Dnl{TemEK96Kp3G6SN#`2-2+!CV`#wFz zw@M9c(OKq=^0zYCCkKQi`2OC-aIXwh*lxUV#{p+&j;Ut_} zRy*tUK0PeJ=uvdZ2-Ctm&J?x#%iZ}#7(#0d>9d)$4mbm>-`N}XydTyfRW^BQVW%$> z*`I?cGPtcq@HVn^{^IS?va1)I!AL_m(a#Cd_hQCP1(%~+h8eo<`(pb&Fn6@(N!+&` z3HTKs_)}{VxZ376s!e8=2RgQ`!1u}A!m?$I83_iMZP)BI;#c^UH1e)u-*BfwSYBjE z^+bE#4EHcyRX(c5pZtZzfUB$j+>k=`JX55>d+@=eIYh-~n=2#bjKBsnCr!S_t)ve7 z1K>dnolz8`SgEn|t7t{xlT*ayT`ANVMfzd3!JU?qpU-2l=ALoYV8$R8Wy#oVkFQhJ zgzMARPReU8sj*LBo#2N0`X%r!%?gVfd9w|fW#YJPR^7W7bA>{m5cCi_ILE2vltjW- zGtbyX>z^z(^wCb?vIzz6ovyQ$pR|A`gfeNphnA1ISw>~hLa+gJDNF8)@8{Grf&e{} z?aQpq+{h9`HM7UI%?CF7v6R<`oA~Z!|I~};2}8aC%}S^y@!NZ+9D~@c(WaNFX)#s| zT-?^8b7q0j*YunvdR{R%8*e#H4NJtq$4+e%Zqi2bU9 zkT&c&Fq6rQ4zsrAU=#)6LH15Y=*4C3ZwaBU?;g4-lTb-fgvV#s_?fI)b}9!JJ`%(nV!Cmj{82G z|65+L7z%_$R?_U>E15K1-pdavSg1T1w|C{s06#j6vAia4fC1(8t_<1SWfR(R zjk+HuQXblXp{%CgWRBHPiFnjdY&P<|YR>f;vTit0=K zRP4Laqz*f|Gd675zlTSDZ{)otgc}ROn%z;d^zsIog5lvbLWp_VE7^ZsM}AK<1PhKL zOe)Y#f7G;&Y3QLSSp%kSVZF4P~=j-5hO-^_OdVj zr?J~9Hm~|!e~r~8Z|EAjPM8ep%`3QvheALf$(i#Z8_N|8f8C?b;ARB>VT7}|r7?-Q zxmAo*$rgCq8TBXx>auGU=-Hi~J2bc8&%bQ?xwZ3l=^eHVE<5;-mebo=2Brc7EcDV( zLXT6|XIK3w>Np`sr!F1j35}Mmgl;=hsK>KV(CsaQKp@eiGNA41@&gGSb4yi;=r3`N zyh#Qnus4r1w2Tz89!5nuVN`e7FUxv9>!ixlZcRM}KmZEkZQxUGMZLScb$`JNv|E9m zD+f0KjA+$Sy*=`|!^CIVk%w4)jO@v!&NLAXe(p1MujN&6u94b(S~MFLc(#3fEm}8z z5(4!UHpeETC*wU1@GOs*9=XzcqR zrr(Jx&$vaL_1wqy!a~m*)FgAK2T_ zzs-%vt4&TAMz>6%OWJH5(srTjM2W5IJ=`fF&ezj-6f(v@ajF`59hV)$61hst7l^nN zqPG&uRg1B$I6ow4kzpAaL9B8D4DFyCE@gj>(l>MJQ!a|wLSZ8>M1$NxEGH}j)GqR* z0(k>b*dfE3>?)(ciUZ3ls9phjd)pNfjeV8bDvSk9u)4v~65FlO68L_t8e~(VaJTdA z4-T2SA;QF;!D>)v|HvFih7pbmq9D#PAxKY_*mgFG6t!o7?rWy7~&)hwLhr1CvLN#7ubMd!{wIMYt`H2M1Ukdm>U%NtV zM}=u+3wzmdGAs!O^VUI#F1 z7$v$p64Ars-MMkg2SuTfGNf{;>zei~^Rk0!91@c`wkjkK_iEdhi9bM2zORdMb0A0D zGwnX4p=&;*4vsCU5Z}S^qFr87#?nWRW4>z6nF8u!@73l;y=?QqaJ>hDk+@ilYN+O^ zXuWKbCY;M$y=Q$!1;j){-$#u@nS|5sj%jCnb)AROzR%G|IN1!!ou6iH4{^=u>a(#| z{Qh+%hJ5j#*&>oCb0eC#T7?rnb1Ax6#oUvwmsE6#o_nVSY`!sEX8DBuZGJJ8*jl1Z zI_>NFkKs=n9g79pA;-_yKl9N(7d}B-oI8OPPY-u=m3b`9W(OY&Ih z3=hgXD>0w>{WY_`72C%s0~-^JPox!`E=EoL4*uvD!byW4M691#N{b-`uGePsHHuOx!+_ojlr9V;gEa70S!A zmwcz|r|lOtnQn;TD)A2a@6X>4%T8`VtRFzc(EZ+&qhNC_*~`7g^-4vlzC->_SHDr) zG=^{A6b17KQ0rWY>!|<|Q<;0CX7>C2a@^BipmU?M<4@8RosVaI_t)~Mu%NX+t~pF} zp8bfLOThOx%>5bIwj<2T?pkt(*KqH;onBRC#<)8SuzW-Bvi7UjE}7Y4z+n~jP2Q4W z^?80TursgCt_|xr+fnPcZ@{XF!siDiWi4I(Q?4zjl+Pv-2Gks{?NbNbVo)C>x`v*s@(jDO2F)NC4> z9$x9b%k#dpG{D3kYLRCLzZ?rNuKsr*g=W4OIxZ_#92CHPy)IJQzE+c@ zX4B}SeO}BvWHHoF@Ak{?sVi0;oTMrDhf7M`?Vn|Sv+xW*{i=1{0lE?=I4u9p|8hv- zr1vS6Qs44#*q@!eQH{f5R#uA)Tn{Ek*W4XYqIPiGjg8|PlQC_FA$T7puM z!^nzp?}`rZ=?lpdBh8<#)C>obyPWn7bj36#`lpLjV%!spa}B|-LdxaZiZ6XDv2_p@ zwC+CqvHSgR6fAYRN`_(+Ic8Lp-RN9=w_JZDsIyoV)3$;6v{Je}Sl;Rho#(uQ%Q&Q1cVXKS9 zKfWF1A>+5E%C*!?yN3KRCz4Wn(}+-4UQHxY^11ick~TwHanc7?(IzZ7t}i!bZP%Lq zyy?;HBTbRPxyI%Dy=HgMhx`0_%BA?VPo_OH&7^#PL3!qk^TJiT(sWhY8MQ9A z(tH^OfL4CcxyqWb-m#56)ROg?xqq(ZB=nn$`RyIBU`Do1Zt2eaYFNE-N5R%VZ;uYQ zagz3Yt68H8xLoAm-0$74AzxNA+;Ut)CJ0v9b(9WhXl{61`OAhWPXGGwtl@sW2izP& zI%lea-qn0F&Cg&uw8rHIm`~Z_%?Zcqt9Hq>@aP5?SB}eVHa~u4h?ys2Ag!pVD0oGK zvlmVC7kb$(E}Pjm-rgPcUS*WCffMx}qWjT%4p-j$dD^XOiAK}%9m3=XYX9f9v?;qh zPZv%5m9;@vExGOY_RM~{J`aA^_C&=IPIBcItVry|8*y=B-IXtbBh_yP9AdLaIl<}a zRo`c8yOcuxt1B0&qveiz4o*|ndh0n+?>aEqEs5{TWOIkD{3gIh=zXg(<2H^)cV*4~ zuYIV;HiZ-Zba>LWdf0n0)Ql!7D&>7q=Wur}bIj02PdfLg@O-nOq2K&~)HnT>E-&9% zu359;=_wDse?^D?wR0+GJ09mgIJkY~;tMFFZ5t@k`PluqQo7rGy7yv`-jA1AA=}4B zWLU}OX-(kpO`9)DJEI1} z_VAVu4a2Y3?NrH{UzpyCuFvd07GjNG$vS51%h8d^bIF|p7X`M{qCtBHY#nCbmr>1C zE-%*1cx!B5YJHqbUD9w?m^u^P#{WH_!v0N~p~w1?6Yb@EX>OBQ+G%^%#8gW?Dg2Ro z0$0ea6w`G5K9SYhPklB#3K@8M_B`vfL-(Y%rGbgCWe>!CM%rYF(G_D+q|(0XvtoXy z7k&ILRu+d*M`ue;%Oti{PMf@sbsh1kuuqXQ>G9?+$|Md$xT%m~TQW=y$BWhB^y2a~ zzYz1KO~Y*eAAh=Lw}q(I!RatCoz?s|_A)IjjmsdIqr?-$U8<3pzL9;pLof2| z%O-MtdZ^r*|4sRgQasKj+QYq!tnu7&^-;Ra$V-qGe2YM`2ypzj9 z3&UE{=BBQF@kLMY&o5rB3LA%zD%BMWP4eA7epBYr9XsW%yUDlR&+DfO);fDZfw6AP zsND7lHD9;Q0l5}e^qQWfsAfvkw%#*^rsp%3mUd^Wu!Ba0GuF*nddEpQ%=+o1BUIngH@Ydltk}F4c~>47NExw&tFrP>{6T$u6$>vuKP9B0LHF3Nl~d!7wx~U z?_M(yjn>#X37*QZblg2WwVrNvt2pH{_3TCqsk9?3X=2Ui+9x0TbUU=iHLLp4+}qll zP2c|}`^-lO$6J{#iDqjnem4%8M1r0JPUCN?*Oc zu6x_GtHa>gEBbN*(yqM*s18%{pC8RO&FWu2Ppc@c_l&ZVQ`H(G6=({Tc`tjuQ-4(P z%L!H(O<};W&oAtX$-B^++BB<5=yI6QUB~>wqze)KoH(HyR>+KRV-p+#mb24HNpF>{ zwcE`t(HRBdJhO`l4U_qilZ9opd=pOW>37$f_==cj%|8Bbw~7MFp$CF~PS2cP+lsLsw7rtw3-^oO&%uRd(#<)AeTZZtuK<7K;_OnFF0uJ8dkxKC9~R zV*}@S-(Aiup4d0fyDyZSOPxC`iryP%RlTPDxsqRC9{9)7A@&_+UvGho6abBL1J8S1 z>rMrFrTy9sSz}w)tdUM^yXiL7e1oBJ(6p;gms!+HKgiSUWvuxnQG+ZoLRU`_EC?cH zuxcOe`-0%O_mh#lhvoB*u=)ISzivWN1sL2>N6{98eO8$snu5^kU152RyvPsI4;seJ zqFe7UH@6j-r*U-Cij1yI9cI4&N?F(CB85dw9dhmNHsxgY6Kk^46pi=7?GKk1%SpVm z%aqOi*g0&lQ|Z&f!Y*F>^^Zj1EYr3>+w$G$Z2&T*{b1dmA44)$@{Q22go*Ls?UcI; z-oNO?3kF*YMmaV4Z|N0{e6~zN)5vUEZXA8Yp6q}6RMXsuu!!vJm$oE>B?n(B(juE1 zd4$dRBpXMuL ziuYj8=l=}(+EpKtqX-x>39*Xw3)G^ud!{a|V^2Zc28oABce*<{G~3)t!|VHGkA3V5 zQt4lw1rFi5&YS&=DoSha8kGgm?4P9n*v?7;Mw ztJRW)Yug6-PLsoJMnfuDl|E;^sG7;s{r|eUPYExFPrOd)Xn0(u;-}2(X`MYu#Md|S zW(XbK4?Q?#{g}YxLxg1EYdd3`hN_gJik@wTL8VroUO~${oFIIDi@%fc7|+Sq;p_h5 zZM1PuPE!Ik=7_U3oRS_Rj*WGG#|8kSxp_Rl0%WxL1EjP^Tt2-owPpUbqIT|Z2A zXT%p>mPFQ!GYIKfxwM*OL3=A(Sak|=gu43Z7XIedUW&q_*dl8G3ky+J3rFco!g|6F zbuh1})Ij&wzv13&C#!Ar*R*FoJtjpe&>2g6A?|qKu*IIKMW$8a0(38+BI14!ocGPB zmi?qky9pyftOoh^2=uR@&Z?&9PFsp)rn+>1NAk&lJV2R3U7zW}oeDICpH;ORkS&$` z7e{MRK_@fFC8icC{Qr)P<$eQKCwGqOXQDXmkwKg=FuL_KeDR`EB1HZ^lE~DwFBWbH4UfR3FAk@IWFS~MLKUqGy{5=E z#h{h(2)-=82N(#amRY%DxyFJE*pH;g3TmG}`|ddmpIT33VHBd!7)vKg8>I03)+JfNM%c4m!{=j-Q&bJ=xb&%0OQ4^|iJvHhc4*ue`qg%Nc(;x|H{ZEbdy zaz!fFi?RZl=o>=wGZ%Q{J;4iu)}NN3#IYp^T5W1fZaLGUMGL+nmoPvIzcX)$X#r^1 zt8Lnt@ErQ==FNV)+fIplWmTyLM}I@=#HMJ_Otv=_ECL4>aSlGPg|?hpf}o!lZq#$b z@u6G}Wfda#1p4<$Tp>XM$|!--z&>lTPq{vuPf#HUYoVN`Tl6M0Z%J4g4!8Hg8EK?P zp1*uX?#V^r%QEqZ)BLtM*GXvYHI1n+Q}RWy6IA#QinU=?miU&~E@&JJZ_nNCb0Q@# z0JpCmoMW^S-4wKwXu9lQoFYRiAFkMP+irS8NiABmhc``F+5|+UT6`PSdv9pN?sr$- zrFs#SmfjJf%sbg(aHfZREggIbaZYW$dZq5?%;yBqhcYjTbS{ZSB(h$2t7-lT^t!tG+mx?<*uQ}_& z1)fTOz0)#2-Q<1`go{#R6txq%t{SSQgv75<@7N9qYHbG6nd`j9_w~Z|x1U6=5=<1d z)3_~!$@g`-&>Meu73ep+*TP{`#nBEyCu))-8gW{RHJRAa7f9sq4&8Tv3n3*t!Wg4Z~5X7^MKpMv}nD^5Q(_Wzl?oj_FW9O z84_d=YJX(`$=ZMM?&H$m!eWq0>uZvWF4On2A3@!(XPJ_h&*Z!abR~A!9#}5N3O5nd zVhbTy!DXub0XfiD*{YvyND(BKKn_ph4ukxJhE!l0?@I%-t7R+0!=z~N4Du;5`H2sm zzz#R1uV5zc;!naG zd5+i)(qvWWTkVy|hJ)k{nYw;L6YPgwt^OYJQODQ5Q7sl|cURehyA-htoB^7lxB!Lz1D!nITIX#51$ zkyJ)eb0GlBY@n?KkVlPOMAtvoje^dB!&F*JEMtL+%O-vkD+Fv?_wO=YP=!>2XVi*F zNu}4lpc}O;?mV@IHNM4P!wy@AfY{3?q*ot7$_m+Y9SJrjVLb^OV3iMzqrX`308Ve0_T<5Ie5{B}-;_Rs_sZ>5x4_=mkf0$L zY@yj7aWo+-Xg}bpkSZJRE;DG{)OQ!J`$HtbJsKJ|mx;W^2g8gi^H@oz|9sTX+usgA zyA_3j*f8dywFyaJxTE?1{Kd0E$zbo&xI0toSz>Y+x)*;%R9)d>_Rx_cNWrb&E#La3 z9)L2`dT8snK~txTfy8z0}uY< zDZy|HsHYt3cJvBy;#siK1gNA9I9W*p83$Bd84J+yaYgeXK*~7P z=va_B%om6gy`#!xVWg`pr;9=E8^W$rkf(DX~{ri;8xPO7|-Ki@oi#PWsMwC*9NV#ByJEIrbvcIT1~u9>uv`* zh}PxVodE?LATSzXYV>O(Z-m*^%%3LcfUWj-$Kx$&d3H%0^r-T+?gJ()5!~;IA)eb= zw?}-4Y-rYKI4c8@`87;Cr}X@E+iLNMWMc(knOruOvU!>OzWAb$u~VSneZdC2nGaH@ z;GD7-17Lg;BSGlk&pX;CKQ>?w5<<*0=S7hG*^}5F6y`9vGq@Iwugmlh6u0a}J`o*= z+DTj*b_aX~`wTP+OJDA1o5N0?-$J2^u8#^>1lMSo;_+SsSC55uW%8(W0lDA1OD(|odf|IGJTAX08 zB?EHOCvixr(+Wnsr(N@SVf`r)d`z(ujj5gQuH8EfYX0!jr6pTIECjmi(_V|T!~j}1&i{T(eeeaHfa4JCsL71(F7HrQHA zn;L6`Q=4E5lR8ru>=qP;tkQfQC(dfw0QkH3#!}5?9`K2>G;~GxFUTZlJi#CD&0HY#M+$IB!P5 zJG)mnpaPJHePK4&@1U!VSa0^;Do2Eu7`PX>&_cyDcM=4CNm z4~Rs3@m<$afKl^)UN4b$i0uLlB(UR|94v)GpXK5G=>uCpnyKSwiWGSo3OS%gYBu%0 zy1eohKb%a}pzZFz>AU=j+$SWO%%aHRf2A18JQgW-l_Qzu*r|ZdR!YeroJ9| z6A$fom}nuouaJV}r*q5(Z)$Jsa1=c50XI#bGf%6gI{k|L zFS-R>3XIo4D7X>V@6*l}iy8(AG+WFVJYu2={UrNaFr1u_VT|6oOcO;ERGUV9fcHRp z@jjR<*>0{W^hs7m05+-lx0fY4@tw19L=TDhatxFbhB0AvWer3!HNi-oVUPm50pf$4 zM%-?+j!!?oD~UAR1R^@5SAe(&hl)P#MRuXS_EZ4PiGgQnxbR>Y6XHOo58hjj5GEPg zywY|16{rma;kpYd~)F z@ri<9>}V$v;q}FLH=Dk^xgJ@I(6bLB;KNpCmgMXayv>ayuzKLuQz%T3LX`_?OpuNPRBs-4>_rgJuf>JKlSW04!hTJJS29#D4$d*w zc8THNf|Lw@{@Mnt4So^DAOD|?|LQ0_-@A7E*JY8dm!KwANGm z0r0FQ;msqwLEMjlQmBc13j3$)jci~lv?mjEk{7`zXg&siqsX(g(P85n9zlmutm^({ z`_V}@?)l^jBKSmvIV%VXi!vICpyoOW6c}9o^BhuVEN4XD$$v?>4j#zf3P1V!HyPGe zC;SR_v5RWK7kp<8SPEIws zD44Eqe@+xB1qA7wwsr_#3!0-Dr+scioFr2ElE_|yc|_2{&)q(BZFVNXY7_#^&};u* z#q@CI9#%W-vKcVadyP5Ne21e&5l?qjb|e7?=^fYqL4h;d^0Pbye%kit5Q{{$4qyIl zrVEC+kHxl-loD`H?dgtfh4Ek9qU9jE(}Zy@BU0&`U}K1<7BBeNV#6@?38?tb376vQ zV(eLE|Dj>rc3M3MB1M3v&pabB*3VP6PLn2IfbO(>2Mc~dnitz};b7!I_ zYej_4_7UyCpHvY?eG~$jD=e%hb#odPM{<=^1m@{X^Mbid~Q4eicC9k#atH& zcL&4($1?H6fPDn>QlyjE!Fzx#|5SXo2?du_*_%?t7+W(v^$LXWq7mft^|1M#DJDoR zW%pD=@Y=h;j$@pLVCr2vnuw!*TzT&ci18lf^l)99_act%n$st6f%`k0QzOA-PWwu1 z%os9*SPt;3=u6wOpwMu$Z3nacI^# zkdD5CY_!|;U_>3QVWh-X3XLIZUz9<-O_PEy>09jatHl`;M^Y0xf^$ypA)7g@IzU{5 z%?yVooBGY;p@dS5EzRazJ0t*cw0)j&Dc=zPwaNvdCN>!R3RbBM&Q=bm3?p^V`qOEyH(Mtag!%U+MTz&K?MsW9@kE1c2Gwjc zVjb{i!51^22)YOk1J$mt)fHDIsA|d=hi~CGloYELJX?+AHs=#QE-MMKheUgQ^?zK6 zBqa?OrQZfq|H9-DYr8iK48mzFYz1+Asv6I8;Zi^D#}Y1 zSzDQ+NOym+Thjwr_-!DB7)X+YTVcTi?Uyb%rK@jNEqDUgDlZ^HYUo7}zMjyNidDkD z@=Si}MDLPOi<5}sVyH@9&KL(9>#uhG@{59qh}0=kHk)?milG=#;rk|KlbVQQ+dw=mWZg31bXRvO#n(m~akM+e7t;tvm(;G5 z=Pt`5*wm(}5xutDq1zSJ;F@t*>&d|+J-sSlF zeMw|h;x0!~u^aIAh8pnU|NOkwB$UbSOj@E^ZTk7Zv&jsr*WkyCAvY*TAoF{X&`n(Y zE!tT@1d*58sQNjOO6d!yQ%T5A7UmhDF$&s`enocCM0bvp6(W-RfYpznC?ZTpm-eyi zpNS&dFCPG)KaDNuvJD8@OhUD%>ruL+Q{t-|u|PMOkcj$fjz7V)Ekq*LX&hn*Co!0~ z7oyMH}lr0)KHmLrcwEVcMOU4|{Vo)tNA={Gf3u)1i!#gk*MhWTp`m5oD<8Er~ z&n5XqNS(J{$3*V;t!~D`rGsp9U|^^v9r$o@L!t{n?Z3zQQ06syBMwKlgmn2T~t3yeGSlwax-#Pc|6{ba(*-N z;n$_T@b**~^QFPmO+w!?n_kn_tV($PNPdcnNuef++L`;1=cG_Q_Rj3QBXd4C+jh9Q zx_F+G1AWYBeH?)4Jq06vI%X)K^rp4e=07Y~%IgF@cBkcRs@rd4l3Wc_pe?8z&g=8? ze)4Qaz=rUHYy*XIcd(A9gedggXyEzPo(yS9nTF!K!)$xA)yN0t%S?@l`3t?u{BXl} zPrp0%4pP*UeyU!-<(q|Ax3+NmjW}%ReDjSCW2EO8iXzD~+W$@v91I27cx}73>+0bv zUi|gWq9Rh=#sz&ghHAD>M0N=%Z}K3#KNR2XJX7GV%i>DQOL;~Yhkw$<1>8jlkLRi| zbmO`S2=bx-!MpZqeee#1T0@=rxq*`L1K$F4)-;Q2xvrG*?C2s$xGV3IKbNSUEAFih*;itP7cZDU+%fap?-7#6 zAO=;E_ha3cOut7o@J=^j zDxq%w?bd?F)ycw-oid`U5)oCo_V=Un==$?-`dKuu3+ikya&&}b=x#4gG|hD#;#j47uE4=$^iZY2 z_}*eEH}$09pvlCIYSL?x7V1W*sO`!r%U=1`t?}YWqb4m(o~>2v8^}+8|F1u03M{x7 zFSVy*Eio6cSg{8VQIbIJb6=I5im<|DO>95=AGO&g;i7tR{22c+NN??p)?xR5O5b{z zZxN?_$^r=Y#cmQgOp4b-?(YCKpRq8u%GTMo9K! zy;0gM%_#c8@qQ)5Q8yL!-N*i3VqwgQ2jea4x=&ZTBHhX^(c8KPAj-+zNY&Rc@Sr9@@qUPeQSR$@nXKx``Y!UeO<|1D6W+Mn_L z_jL87={|7I&o4}J4y6Wa5jBI_RqCF-=9PHkr{11I_0RYc@{)6t*CF@P zcrue&`(p!EYQj05S)CW+cN*zjrQ4&3BNqgh=YO6AG6;A(8u$QHCTeSJRAXK0G(hfQ z!je7kvVt1p6x{zE8@OtcSzSptvw)?oUDuYbWgY>F`aF6cwM=HUT?%%ULQak9 z8zgr7y)sk~rzk||e3>SMbUyeWf@EwZyE0n4w@7bP6_J-hHj)7qeF zVn}i?t|Ya2kIZ#fC3rU-72)Ev0d=6-L{MnmnI_4VtR;j0U!oaM1jPU*x-O zsxp8fifG0vX$%?*UV4KNJrXJ;jkBtUdctRy59E!Pbe&OTii%UfeMa<6n_yb+l4kZR zNkG7{HVdmt;Tq#W?<7Bd2xCC+AvF>YMShJ@=ux7HM&LU>mvMdfpj-B7Y-;)nq<%bj zp!g%&$M@ZT_;vkc&olAo7qc+kB--Ke9d98SC9Of$W)`FC6}2zSjtlKeGj5Ca*R3Ub z+{=`iRM1X%Nev_=tw8EjF92AF){64aecl9tf=qyUQo;AW-vZVn^%G_nCT~<19t4Zq z_U^v6)lhWFEfH6XmB_93EwD8H=+afUzzcR)>d}gZ{*DJCUHb_Ftk_L z#X#E?6Gw6A6y4drmbljRO}~{^ei+!tEhTFEY8J$U{~HO=X>l9AY-cF&yfEr#$K?G;<2&B9xQ%xxD)~bsFqu~pf65hS;|GfTly~o1zEB3KYYZ-! zXoCZ1D^lrrkfs^c>6X{wUqTM?s7pDyS-a2*%QKBEBjkp1HyHX)8qDaLB4m;c^F z1$<35Dd;Ot>DK*pqBk+&_W2cvW@}tY{7EmR6+pvk`KgD1L9Z1&h_>-?dmU8HL~sIg zg$QTjNjV|=-Qbws;Amisl4PhaK-Qt^)S32gzko1xWXP`j98IPxQc251y#R<(V8@s6 z3cVgzUx(PUR#=ihA>ocduz2E4ig8~Q{ZQWLSU79cOOw4M1FE+tGkm7o79ynbTnKeN zw{*_!f*071-8BBR#Z4eqf5i*Cjp=5CGtU3)t9fMu{}n+ZWS~8zs4h?ax@7%maCEgs zJ4q6v+|1Pv{O~Sa7OqM6QtV4R!?gmu4c@GX7l{b?ekocy6IqUJ+b!PoD?*K<;$OFQ z%PK*if=H;xqC%M{PM-dtYdAw&l0Ztio-xgN6@ zXLgLdpC-JNDRCLzp?6hdyQ70>(TCB%d?m@;K}&@QW8QDrIGRQgw3XPjjW=>ua4zc|orlDqJUweNh`YSN||=MvUKyKiW#3UCnyF zq#SqCIQPM7V?Yp9~>@;ho z$g>t@DdPb;Q_YYS{rz2jYMM|0FY$DfyijLkn-izgQV5MxODyP%^(O0}8OPUO%M!Sm zCDjR)?`BdwOp8vsA=~P`wQYxvfSsYv_z~Rv%r@$h8k>db+J82y6L;*VKK*_QvwG)p zfCZWtkQq7cd`J1-AHC*k$uFB|4!vm%_kCh@3Bh_-oI7Y3J^C8l&r^k#W(wZ4!2Ls% zWL;TLIyb$uBFAAfz__@l0nH>cb!vJvcg&!WuqwjG=Wt%}+&uhS2sNu9qS<$x-vZH) zlMMNz6#n(@?s+uq0e369#T}`80@!_Y@d%clt?{o2c$sxOOazyDF&kuC0AnHqeBkIq znWfgu{fuc7GLkXz8_Xiq8YZ(-tUx0pU#v@9tloS3T@0CSYk_P#TFd#=o(L!TB<}T#3fc&|dx45XM-pk7@5Yh(mHe`@U?I!z@zG~ubsIwtusWm@0{U8Bq$++FR#w~jD`pmXVHM#qc{zu+Iv);Fa zPKeqrpkN-S_R!K$-^ZSUS`*uRab%R|Kj3AL>R{YI@S?~)OPIa}!xAPmVJT-fBi*mc zVGe%1Vh?9Da0V}N)P23xYK1LiiSpe*U)Qw}wG&_J&UDGt5qYwdPmHSy>>0v_%+#pz z`?TaDiNN8Tvm{>gJg^=pHa&qV zg6NQxnrU`*-$D+d_KctgIJ2EUVlT*nYE9EkBM|QQwTTS3E8LHiA_Mk03z1J->Upn9 z;#Hxc1Cjy%BOIaER;}HOPP^GQ_zt^JLB`;$#Bu(;`;v91Z?yD8dJ8dc$qcr3LfsYH3l|Kr zbVAR$p;v@iVV`K-x_r*RXtWc`*O-B|pX%4%YMo!WCi00myBc?o5wZRXY&~@80NZsR zO`kWp1`!M7TvcR4#N}s!Iv(t~E}3gsEjIAcYO1qDtl0JZ$_RnZ{4}WQ;vDcJ)C2c0 z#xH;D@;T~^G!8=eXeg+`Eul^k^xRy+MG;;Zti3O(+D+_iuL@OX*TBZ-aXCQ(BJ_-2 zM8i^F`frK&?pxLf|9;C>91_b0?$e1%Ewt=+6)P_D5mo)Ud4Yp*A1nMUzRtSkzP18Q z^qzB>?n45Qkb5(c5biK^2`eYGG>fVh<-h;e8LKtwBl>{%rkcw@gx&r6X|8N;^?jQC z8}V)El*UZ=$Av|d4kUKoXAABxk&x=&YNhu9>tsZV_DZX%l1*U_*v&FgeL zb=wOnjf_gG4ZllTl4TnP*&v#=^_!JHp7DJSF4znZMP%aqo0KhTBB#`-avRAYrm{}? zDSxcA^8%-qDi+Z;Ov8fSRWvLa74*?hq7dgm$WPxr{%KrmpW}qZ<_P1hFnaO-v~%rm zNoQ%?bjsPvaGG`2Y)4~;(TX&rN!NR$O-0_yTdAlx0Y-{6ULsLJH!m~0GpV>~jH&gg z_pX@Hv7^>DlL4zj@mtgj~PL2uKcCGSf~c7W4CL_oC|&}pg1 z(VOhdc9)1y_z}E|(GfIjik%pmOs~OXCPz9LF#A`3M-Wa@QUS!+?ggX~{}eNxe0W!P zQD;;l=+82uVu_!C(@Vz=LIA!XD9;K~>4%ENfv+4yd!sQ20l)B!ayQFID0dt$A8WfB zlWFD#Lkq%bB}NimiyGWj+1=L}_&X3`0h7dG?-P@p^k36cWk>Eag23?w5Q#`w%%IOx zKD7oa0(4(N;JYXE!xNxcAjs@Lp8u-D6eeX91QiX9+HF~`e!)V0l&Y0)p5v$T71SJQ z_xh{z)OV8rmZ18oM;ue@{+<{FFP-k?%4K>n{A6mEV)7}=fA)L1#lNTe`z;C|&D@2m zNL}SO0MH$TMYme6zJ+QIle2|3-ZN};cO_@tQasdz>z?FX zpwc`REp(5bz%j3yOUMzWIrY?81uXRW(5v4gKQNgXMhDdvQn=Kh%%8_ry8|+Y@gHyE z)n9A`@oQS7jGbj87EIPV7x~G0OCXQkrd`>2+w1T}-P5XJ7mA|a z?Q5z%va4*S7$vx{ExiAaOpxJ0(~xZ|gAw#;8<&z%i)*wUPSN9Jk2fn}CYov?z_97d zHRxVZehXu6B`XB5(8#+vt?{*u$^S@?W^B{#M))ey9ECkQD~uPVqSk*eBeonc@0NsP zjL-{n*o-6ChC@Ru8?rLCPq~VobFOFgEZ=2pp#dfZ(DKNY`w<7wQei!-0yaYuD!uLr zA}YqW+D)WC7ll8mSxyJRP0f2u1n0Y`s|-ln}?C<2wAi@aG=YvZE1 z+&>W|?Y{&F!68V2IH}zG_SlKJc$=43SvCkjv_3QCVo;Muc5nC~G>yedpy#&;xaIR* zjQxPtfnx-Buq1i_NGk9DQ1+VkVp!k>WUMTcS8|-v5m?_Ux0Z1^^AI*Qg?lG>RmA@E zOgyS;zV^JG2}tCYvz8;Cmwg$xv`B}xVr6l}+|56gjWw#iqOYra-drver4v|{Bd7{s zbAL{=k~~T$$sWG2JdByFzJ+7e2ET04pY#d$zV{Vb%w!=&#u9=^r~<#;*8u8?JTL9t zoCMkG3nw^+`q+Hdy-@767c}55F}*KtOK&#EccF&R?|5CM9WPl`v$34t`nga&bea02 zxvHFyMB2$%ASG-UTM*!8lV=yKvrz;9MpJ{n2T5(E`ZL?b%!qD7i0q5k~Ct?ET=;+ z0K+v`4N`*dRO!#VK)l~eXwAzyKrB+;*m!f9-sxb7Ca-N|@+qeb6w1LRs~?<(qjuyR zf(H^dq1rME|MWB8HJ)dJbSQ!@9l3eHqXr8|Nb#W$f#kbM{f3O(4SyN+;RCwiYuRp9 z#hlw_B7VeE5FZ@7MsaQXaB)B3^i6bg@$_|D`zNJYp|VA#s(gYL(4XT%tYFE#zmaFU zw2hDI*`IYd)Gx(RotL~{WJyhvr|c!mbII|BaX+5~NRPa&Tc08mNV5B0YgAM0>D3e5 zMfZ7+bKA6!QG3>S)#=po#*WU0_G&7aStuRGyZhB%6AP!(UVk0u+~IBQ@?iMp!g%cT z#l;JzWGC2&G33M~jWa>lsSGKz99g^dSzFa?h3oGsS-O=nc0=}v&MfB>;wj|`a1x19 z(5ni>L=-2gf1-keoSJ7VAC}-64*gQ8R&j0$b+_2j#zJ1ro(p#uEyXYo$9KNtc;OfW z@<1ZU>9qf@Hl!*`-wW{NlmW_h04{{K4_ZKH9e}GY)&!?Hqk#S5x;!Re*tI0b$9P<) zewvV7UE8{#hJz9Z73WF7}emFM>WqQJRzIuugr+)Q`VteK!7{cwGYG@gbdOX zyU^RG)*VB=JwW6r(+Qgc_Dz=45?ka^7^6ul%$Hu$=|*%vz#gbGP5!8GxGiPPr z&3v_e08U`h`!*pwLLU@H{5j267^$FJ?O}MSN0QXKGTtC3vU?(OTY6INQaB+n*`a@c zE)zIezRi7{%rT!;+U?RkYT(s?_l1wB9u5;ayJmFP<7j_SXG;rBN!=74(n|)4UZc$A zIueEQc6P&~C+cnMJ(Pa_dJ*l}Z|?dx_>aKF9UE4V9u^_{(58b!%dfRRddJn)qN=`( zUQQ?rz9#uCRvOtA{mWqM=W^NkTF5J@A!W;u`&jRnHD9!FWjXWyDdWZuD6g0qwlNGS zy8B81NSHXrj?FW&#es4ic|D(U(B2zM4UDQ-_9=CHnRV>J2tIU2FOEi-9B1?6cSSP@ z^X`lDG#ZrnkrGYEDd@rW$jv|;c`P#{A&#`(aNL>)hm*R!IRklF&TzOz#bI=OXm%YQ zgkL2%Eix??)8>zt`{;POq9L%Gp;iTAYWIYzbzG zBM_bl#0RHO(Eeipk%T4Sv;O-4jNO}FFkqkQAHqra402)`&g=^;=_}j;6frRg7lup3 WW_>NhnJ(rwLwy-?vfUr^=YImVNvL`N literal 0 HcmV?d00001 diff --git a/apps/dokploy/templates/macos/docker-compose.yml b/apps/dokploy/templates/macos/docker-compose.yml new file mode 100644 index 00000000..585c1bf9 --- /dev/null +++ b/apps/dokploy/templates/macos/docker-compose.yml @@ -0,0 +1,16 @@ +services: + macos: + image: dockurr/macos:1.14 + volumes: + - macos-storage:/storage + environment: + - VERSION + devices: + # If in .env string 'KVM=N' is not commented, you need to comment line below + - /dev/kvm + cap_add: + - NET_ADMIN + stop_grace_period: 2m + +volumes: + macos-storage: \ No newline at end of file diff --git a/apps/dokploy/templates/macos/index.ts b/apps/dokploy/templates/macos/index.ts new file mode 100644 index 00000000..ebda4106 --- /dev/null +++ b/apps/dokploy/templates/macos/index.ts @@ -0,0 +1,33 @@ +import { + type DomainSchema, + type Schema, + type Template, + generateRandomDomain, +} from "../utils"; + +export function generate(schema: Schema): Template { + const domains: DomainSchema[] = [ + { + host: generateRandomDomain(schema), + port: 8006, + serviceName: "macos", + }, + ]; + + const envs = [ + "# https://github.com/dockur/macos?tab=readme-ov-file#how-do-i-select-the-macos-version", + "VERSION=15", + "", + "# Uncomment this if your PC/VM or etc does not support virtualization technology", + "# KVM=N", + "", + "DISK_SIZE=64G", + "RAM_SIZE=4G", + "CPU_CORES=2", + ]; + + return { + domains, + envs, + }; +} diff --git a/apps/dokploy/templates/templates.ts b/apps/dokploy/templates/templates.ts index c4e5e095..ad42ccb1 100644 --- a/apps/dokploy/templates/templates.ts +++ b/apps/dokploy/templates/templates.ts @@ -635,7 +635,7 @@ export const templates: TemplateData[] = [ id: "windows", name: "Windows (dockerized)", version: "4.00", - description: "Windows inside a Docker container.", + description: "MacOS inside a Docker container.", logo: "windows.png", links: { github: "https://github.com/dockur/windows", @@ -645,4 +645,18 @@ export const templates: TemplateData[] = [ tags: ["self-hosted", "open-source", "os"], load: () => import("./windows/index").then((m) => m.generate), }, + { + id: "macos", + name: "MacOS (dockerized)", + version: "1.14", + description: "MacOS inside a Docker container.", + logo: "macos.png", + links: { + github: "https://github.com/dockur/macos", + website: "", + docs: "https://github.com/dockur/macos?tab=readme-ov-file#how-do-i-use-it", + }, + tags: ["self-hosted", "open-source", "os"], + load: () => import("./macos/index").then((m) => m.generate), + }, ]; diff --git a/apps/dokploy/templates/windows/docker-compose.yml b/apps/dokploy/templates/windows/docker-compose.yml index 6527163a..8a083370 100644 --- a/apps/dokploy/templates/windows/docker-compose.yml +++ b/apps/dokploy/templates/windows/docker-compose.yml @@ -1,8 +1,6 @@ services: windows: image: dockurr/windows:4.00 - ports: - - "8006:8006" volumes: - win-storage:/storage environment: diff --git a/apps/dokploy/templates/windows/index.ts b/apps/dokploy/templates/windows/index.ts index a67de748..5e2728cb 100644 --- a/apps/dokploy/templates/windows/index.ts +++ b/apps/dokploy/templates/windows/index.ts @@ -23,7 +23,7 @@ export function generate(schema: Schema): Template { "", "DISK_SIZE=64G", "RAM_SIZE=4G", - "CPU_CORES=4", + "CPU_CORES=2", "", "USERNAME=Dokploy", "PASSWORD=",