From deeea114281a12795eb60983d0c738db060c3667 Mon Sep 17 00:00:00 2001 From: DrMxrcy Date: Tue, 12 Nov 2024 16:37:51 -0500 Subject: [PATCH] Add: Discord Tickets --- .../public/templates/discordtickets.png | Bin 0 -> 15188 bytes .../discord-tickets/docker-compose.yml | 54 ++++++++++++++++++ .../templates/discord-tickets/index.ts | 46 +++++++++++++++ apps/dokploy/templates/templates.ts | 14 +++++ 4 files changed, 114 insertions(+) create mode 100644 apps/dokploy/public/templates/discordtickets.png create mode 100644 apps/dokploy/templates/discord-tickets/docker-compose.yml create mode 100644 apps/dokploy/templates/discord-tickets/index.ts diff --git a/apps/dokploy/public/templates/discordtickets.png b/apps/dokploy/public/templates/discordtickets.png new file mode 100644 index 0000000000000000000000000000000000000000..030c3a4ca194bd1eeb8fcce764b4decdf460f32b GIT binary patch literal 15188 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%0Autt5=9a&?ax0<_MN}TCwjq+3H7b}^< z1j$J}n^|HgL^K-R_Y$`UO^hYoq}8tq46DlFW7dr=xYVAc%znx|3_ULzw5a%a3kFD4Y|9bcssfk&hEnA+qE(9!>zoTo^`LJ z6@T{A(W}Ci?!^-M{CVhZZ5R#KtLOb`x5fc7@-6^GK6jQpDn?TU+a|e67b@^swyT&5 zKt8kVW4~Q~P+f3qHjF3YDe!v^Qg+urPU}Y!`6;fvC3Ty=qD(BCi8*y)d!(D(Q%`#0|fq34%lp?Xi6R*nID{$Gp? z%DK5455ZMU7TxaUnx}Kw?AuSaEM>3PK8K_ZWo**M$H7N|@b%Z#T4LlMNUISqk>dQ9 zY3ecLolBb787!GMI96QES3N3dk4BW@vNrGj#l*Qu(x6hXmNq#~TI|0vv1tIMV} z4jsD-xxg)hIV5t6fTDn>%=4)?4X+)`qC!s2P`fFH(Jf{D_v^W(l-zj&&(6F3RpASY zL>*3IKt z1H}1<$umQ!CljgJ3&`@Ew{wFB|5c|U_ymc`Sx8+sZI<+3_N5OEa_)&4!w)hpCnm5l#KaZs zd$ac>7yr)uNX3DlB5eX?|62Lq=mw~j)Pf`mQD}jVvECT>M z-A&#}U+R)fai?zB@qbe+yM-UyPX9#el>S#Lm5QF3xtuRPjN3LTuWfVRazK^GrJTJg zo4af5P&j3%9AkI)e0WL)P>&)-x>krzCUb1E@$wn2Tha-uw* zxD_A?bf6&b_Bp^eol*eir3gMzvs8!oGj1zYlOepFZ<8jI)Ym?EKH}}0{S;pId8tWe z=m;!PdELBe2ye=rMX^@jy~j4))9o&sdEneG8?WW#0#TSqL5WhV!iJ}L7{`)=updSb zH63I4aH~$?)!XIVptPHvKR zH)h?p^p2M`diT{&O~&%Ma~|j`OzDp!0bWP^FyECyFZ@F`cXDCt658b# z>I3~UTwVkBFBNf|e#+5nSWUH(em=Kz{Bk${VlZAOSP@;z2=8iTYP@M^t7B{17zwM1 zvs^m0`oexWHh3<|uciY~`rKD$)EX5Hg}!O#P%dB~Hr}Ld5B@%JBuUMln$gcKM7x^W z?_%zvPOu%c`O1l=wQ`oR2BNGz{|KdFc z!KIz;NlM>D3C}Xd1gn{}nFy~GzPhfch2814q(pGX-kjODE6jMq!2l8p{DQ4wAhN)Z z8?%~tY&g3=r>hq_dYpXQdDAim{&S@L+iwJa_H7nTBg~{~&Q?=5Li0!S+$fUf*Yy{? zIwK=tuTvl5h`u$dQ!O6+b%|UqR5|hK@9_|P7pXuvA8q(-uQnqY#F-4T^*np~vBVcd z)hheSdKd!N<5HaVTRdD(-x5K=LcY-f$O@cxU!ChKiO6(3I4eINpR`_7e$-!K&YGAU ztQx37+VtxYgZjVI=hK3oHLA^CJD@;feWmJ%BHen5plN0lc+5WtGC2|s@~SR1t$ z=Pyfwu8!DRD_5C3{C?K88v9-U&V<8T>2b1V= z_jJk8*N_bjx7+M?6pF`z{TaGxWOz%apFf2MLULU7TsLb$ZmE|sjkMHno_c?|_A&%+ zb=@+=1s>V>a*@Aogoi_hB6@%Kn!R=udQO``MNODKTTBb`pVg@u1XfrQXthyjqjOz6 z4pp|k)_k4E&dU&A*QT~xQF{w-eG>S(Qe1mzbq8_mqFn2(qI?tZ7>6;cjqf7*1RW9GQBBA5P#)$B8rG1zjTTo@VjN@ zd;&P=DgkAmnWnZB;U_ca1U_4u@*UEo94{pSXVk`bQ@uR6#_lxf0z>W)qvJg%c5foD zNrqT_r}jb#jV?X50gx#AqzT+nwcoHrE&_FSrtg~jwE`)jK512j;)L`aq-v#JQSQ8AG@^&Z zz4%|#J6o)hbW=Z_>>BfpHbhkG_!ln_^tCAA?v?VlT`k;gXLB&3u%hC#m8D#2t$igd z9^(?Dc}f#V6BW*UgaV|$Mk$*CCn6+`n4Xpd7>)gXwr_)a-S07omEv*{UEJ)oc{vOB zLmtj1a{wJ~;nDf@j}+s5t@BH8)BX3)8da({=Ob?C#!nS(@9$3TnS3<*cx*qi-R~~` zYe-m6Umh<(am=?&?QOIJ6EUNLK_@l-Jsy%(Z-GwjX#ndc04aEreV7l#4_#%|ZLub` z^CcoA9k@Fh*KnZXbrGlkJjK({+?!etuk`V@;(XVPel{;KI7ZyOlR_*Z8h`xdew&2K zc1`n6WK8A5<%@y=_}dFu3TYMgLzZ!xbs1jhi+Ne0fw^7EfKXx~d;N!>PfNaJgXdl1ov{?KN5}v=DI7oy%aha!S%d-Ops8*V+4B&YCZ1BZs zl^X^7Aqnny+#|P?`nuK!z=VR=o!HUQNa)IS_s^?dSfgC0m7L`GFOVTufp&;)?aZIrig$WuzHYI6JJG;dn zEc+vbf)mbMgOKgMp08WK_U7cXe&+huU4_|&Ys>(@B;h5md~Q*WYPu_J zRi@+qa1>QzWxDX%ud%=GU%#!ffT9`MISfEzL5Q4yV_JSF@fkXrc}aZnPp!@$J|1?h zC0kfFwIq6(ZT%v2k52~q?%(Jt{JofSB#4>2U+kE>6|CGOZ4kAnvL4{H)OG;|`-=n%uCi z_doG7W@Mg&W|N5&_Zh2K115p~i9*N!wX6`xrlgZL(J^Mw(b*B9&Yz0R(?qPav1=+V z6_HX%?X1M~Y=@MujQts4{#HQW#2-zkg&>>a8-=K0`!+D6A$&q<3%k8V$%2>~VQb65~6 zanW}A7qmGL-1UHj?vfj4KwW8|2tJYxT1fy(g^T+(PVN*eYYbuahvibyz9ao^*|Q0S zwsv>6%LO_}M;mIk0YfkHIYsg4)qUWnC~Lv^cT8Xw(^1Fm;}@5HlsGw;W=r!BdX|&B zy{D_#zsYroD(bi|Syc6a^24Y@3&^IkgtHZLSRPN6+L*EO>oJp!A9zhb?CmvvaVOQ^ z6sNjg=9>*8%B@(ib6D+zmO3EY*)I*{X^%)(egNU#ua#>*E+$;se(({}${zU#&;o9}z}{V7w4?S$ zCv}LvZqSBv^6#)vMWs+0F%Bw|`#5bd4yebHoFP5?s;hBGTiwPr3Wa05Hr9HzJD*7q zf2v2%S#>1Noeph(gb$<5c*UMkP;xSSY@e?7dw@3=R!3P1n6N-H8Q)v1sL>J{DpbN~*WVY5j6B9IloljZRgY|DCAOqn}56X5Y53dsTm| zD-O=%{SIf>{qaPj<#^fWwMGSgM@fEXU4CcPTZj++`5v*fII}H(OCC^yzj zMMmmh33Z)Aee81#)SPles-DcaGS=ZPoio&3dey506MG9B$1~*0|D)fz(uAlbGB}-VZS?-hcR~7NnnX#< zwlSsC3NH2vk0~tl?y1@<M;C89-A^F4ckUXoH~SYnXUfciBV7i zLJ44bnoj=UBitDm##d!Xuw;5z21~EC2iN=01O0+Gr`waX+-ao?^>m@+o$c3t&zeo{ zwVaOwI~M!HVtou)^Y$m$Ahk4Dujq1V{Z~`nWSF~I2kSQL#djKX;$gXZyKz8z(PWP zZd$uWuA5D)$L9~_-+U`Mjfgz#nj{wX4HJuUxbPPP!f{e9OQi>gj5#n(VSi}9bp(~N zk}T6i6g9cHN?Gu_8D@TUam<1?sO5<1c+6?Y-#W$QKg%tt_Vd12YjdQl;$CsTXXL@w zyl7Kxw3#xQc5V z3g{+cHpJsO6}Wq{$<%hJwaN^bx)LhZ7@&(@5j*cp>U1(JlA*l1nhWqJm9&{?ls8Vo zT2yD$Y*#Z5u{@PXKChgLuT>l?nS&FQpu3*8F8<~dAPuT;63n-b$h*qs5KX*=BpzI| zqoi7y?P52t?O+8Db_QkhIA`;4UiH<*ee-(75bUegYI(=LM9&h8K3K3l(5n5#K`7Uu zM#JZg@_fKRSuEn9iW>Q*|F|WgnOD0>NW*zs&22N~O0fz~1GE)e)5aQ7nr7F&v(7K6 zYb%K{I5J+r%y411Dnb#U*j3K`_|JDj#`0ZG43?MjF|OY_c|3Q4`d#TF^pm8RXIgiT^tU2 zZgAIYlR-t5_2CBK4Og)Q8!hK2-0n-#-8lWQrevnn7J)9f2&UP%e|tI{&1S7f-BC+T%LLhm$jPTx}B30nqL*{ zXBS18xJ*Bm7&)Ops^d>Bsv!`YgA(<4Mo8OMkH%UWP+*L0CpQhnM)kev=Qh3Yzb(go zq~_xcXfS!dV*TK*-Z#pSbgIK_Y8UZ~R`}@yL zCuJUu^H4w8!eS?P=B3*|s=6N9O!%L(*H8T*6bal7d{Vp5)oZNoC=dY{;(!Cm8vz4l zwY@bA)$WfR6?p2de~VsvVE`SBTr_Pc^hk)L-Y(U*l5E+6DOq1!C8*N}ZxS?u4g-Dr z_^3Y%7CCUN3XW7RDO)7+EA4(1=Djbpy`g20RGRgY>3AG)S`dQWbgs+0-aXknRk~9h zf1%RydYl^`Te&PkApn{M*#(_zM6LmgdZ=-?HJL-&}u;Y+Dz%>awiJ6I-0$5Bk8h|CXbb6RLOMYDQ;oT>n_BqZ|hwFx>3Pw%do z8ETNYZeyb9?wlDG7S2s5{pfI_He57`$WLHwtG1840QrY9ANBb3e>K zNlf8~MikK*mj9|u8f0TH-JC{s}6Hgry`u1}&9cosxLu7GiagGv`LHZ|wFHWC01S?e0c z848#lPNPU{)fE;{-TX@H5-U6EX~Kg;XoI7sk=u&cO(a@ub#MVqBygdF_s&ur<6R!S zCKJooSjw*(zvGDMy!kjG9Sq#W4+F>3&{=zEQ^@2t#(_d-_}eYJ8h3isiyptf+UR2{ zw2@_yn~n`{k=;kXhlfme!Rh$i`562o^~s0HP30oC2Rl7@?7ODAkaV1RxGeGmgF_C& zY-WGjxBcjT6o0P98U%qH(>IR6b0{?5M`nGeXVQ2jmOaqv5oW!jI-fBJ_|d;l0-<4Q z-3vO`bknKaD4#cRn ze7X8U0B=@bU$xbV{x7yH5b$h2*(w%*djBz+M6$@QUTL|57zt%BD4v5F z3N|7Oh}e;JwOVN?^FO!4PeDN6Cw!8b`F&R&ZTT-dFPq$5Y(!c>73*x1O){f@%P=$= z)#Kh3kAwb)rM@%Rz2JF7;RH^ZOo<8Szs#5auJ#j;gUv%y>@_p~$tGyK8;kp3F0Zlz zRK0tK4%H6xe6GyzX296C-lg&`^?O6bX3#)5%2SsHT^p#x*BU~%gjeP5px!_6`peZz z>ZKNxx!^uakJKWfsDF=d3}@tBbl}v^ua;5z0_=)!0R~D+@W^r?t=YV-;n&Qf?jJ;oxJ=1P zGEl&cl13Wo^sl3n8)TS@>-xKbK=e659l&>@Fvz5&SMer4XcpUnD0!a$O@)#=yx~A| z@B)Jq8sEq!W!!XD6fCJX4VMyAO$Kxa_&oLf9{PJgfGxCW)cX5x`SV1zmO-`E>_MF_ z#SpUlSfJeI=jN`XeM7=#(GeFGwK<%Qy}l%-TBP7gM#W)<0A^2+B%3#x;Nt;`)wR2> zry*|3{As}n-~Ea1ubqaTTlmL;qDInR{jtzwi9kc4c!vOhGK#qTnCNgd z?)}lVo+2$jyUuc5m~d|(8qn8RzJuEQq8IS)iI6t3$oa6j1`s?;;4 z_jS1wCo|nbcK*Hu z3c~vAc1{tzzCreu_Hv@zT9zi(3!@7+2j|!b*epX`z}-~xwjMY%_8C-bOHuN~TUhhp zf3n#K?x|N*1PE#>Icj1+kvY03Y%u=3U%pQ2+(eI{8eC`)(A~3Sm*9QiiYk + Math.floor(Math.random() * 16).toString(16)).join(''); + + const domains: DomainSchema[] = [ + { + host: mainDomain, + port: 8169, + serviceName: "bot", + }, + ]; + + const envs = [ + `TICKETS_HOST=${mainDomain}`, + `MYSQL_DATABASE=${mysqlDatabase}`, + `MYSQL_PASSWORD=${mysqlPassword}`, + `MYSQL_ROOT_PASSWORD=${mysqlRootPassword}`, + `MYSQL_USER=${mysqlUser}`, + `ENCRYPTION_KEY=${encryptionKey}`, + // These need to be set by the user through the UI + `# Follow the guide at: https://discordtickets.app/self-hosting/installation/docker/#creating-the-discord-application`, + `DISCORD_SECRET=`, + `DISCORD_TOKEN=`, + `SUPER_USERS=YOUR_DISCORD_USER_ID`, // Default super user + ]; + + return { + domains, + envs, + }; +} \ No newline at end of file diff --git a/apps/dokploy/templates/templates.ts b/apps/dokploy/templates/templates.ts index bae9a8f7..d3ba44e8 100644 --- a/apps/dokploy/templates/templates.ts +++ b/apps/dokploy/templates/templates.ts @@ -814,4 +814,18 @@ export const templates: TemplateData[] = [ tags: ["customer-support", "live-chat", "helpdesk"], load: () => import("./chatwoot/index").then((m) => m.generate), }, + { + id: "discord-tickets", + name: "Discord Tickets", + version: "4.0.21", + description: "An open-source Discord bot for creating and managing support ticket channels.", + logo: "discord-tickets.svg", + links: { + github: "https://github.com/discord-tickets/bot", + website: "https://discordtickets.app", + docs: "https://discordtickets.app/self-hosting/installation/docker/", + }, + tags: ["discord", "tickets", "support"], + load: () => import("./discord-tickets/index").then((m) => m.generate), + }, ];