From 798bb45edf7b8682b27b573ad709a0c567d00657 Mon Sep 17 00:00:00 2001 From: falkheiland Date: Tue, 16 Jan 2024 19:32:11 +0100 Subject: [PATCH] [APP] Wekan (#2051) * added wekan * set image version tiredofit/db-backup:4.0.34 * edited wekan logo * edited wekan app image * edited wekan logo * edited version, ROOT_URL * edited data/attachmant dir * edited data/attachmant dir * added mandatory email - here gmail * edited googlemail config * edited googlemail config * converted logo png to jpg * changed port * removed db-backup, chanded logo, outcommented network section for testing * uncommented network section for backend for testing * uncommented complete network section * uncommented network section for backend for testing * uncommented network section for backend for testing * only network section with backend remains * edited backend network name and definition according to discord discussion --- apps/wekan/config.json | 36 ++++++++++++ apps/wekan/data/wekan/attachments/.gitkeep | 0 apps/wekan/docker-compose.yml | 64 +++++++++++++++++++++ apps/wekan/metadata/description.md | 21 +++++++ apps/wekan/metadata/logo.jpg | Bin 0 -> 7143 bytes 5 files changed, 121 insertions(+) create mode 100644 apps/wekan/config.json create mode 100644 apps/wekan/data/wekan/attachments/.gitkeep create mode 100644 apps/wekan/docker-compose.yml create mode 100644 apps/wekan/metadata/description.md create mode 100644 apps/wekan/metadata/logo.jpg diff --git a/apps/wekan/config.json b/apps/wekan/config.json new file mode 100644 index 00000000..eff04254 --- /dev/null +++ b/apps/wekan/config.json @@ -0,0 +1,36 @@ +{ + "$schema": "../schema.json", + "name": "Wekan", + "port": 8678, + "available": true, + "exposable": true, + "id": "wekan", + "tipi_version": 1, + "version": "7.26", + "categories": [ + "development" + ], + "description": "Experience efficient task management with WeKan - the Open-Source, customizable, and privacy-focused kanban", + "short_desc": "Open-Source, customizable, and privacy-focused kanban", + "author": "Lauri Ojansivu", + "source": "https://github.com/wekan/wekan", + "form_fields": [ + { + "type": "string", + "label": "Email Address", + "max": 50, + "min": 3, + "required": true, + "env_variable": "MAIL_ADDRESS" + }, + { + "type": "password", + "label": "Email Password", + "required": true, + "env_variable": "MAIL_PASSWORD" + } + ], + "supported_architectures": [ + "amd64" + ] +} \ No newline at end of file diff --git a/apps/wekan/data/wekan/attachments/.gitkeep b/apps/wekan/data/wekan/attachments/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/apps/wekan/docker-compose.yml b/apps/wekan/docker-compose.yml new file mode 100644 index 00000000..d84991f4 --- /dev/null +++ b/apps/wekan/docker-compose.yml @@ -0,0 +1,64 @@ +version: "3.7" + +services: + wekan: + image: ghcr.io/wekan/wekan:v7.26 + container_name: wekan + environment: + # https://github.com/wekan/wekan/blob/main/docker-compose.yml + - MONGO_URL=mongodb://wekan-db:27017/wekan + - ROOT_URL=https://${APP_DOMAIN} + # https://github.com/wekan/wekan/wiki/Troubleshooting-Mail + - MAIL_URL=smtp://${MAIL_ADDRESS}:${MAIL_PASSWORD}@smtp.gmail.com:587 + - MAIL_FROM=Wekan Notifications + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime:ro + - ${APP_DATA_DIR}/data/wekan:/data + ports: + - ${APP_PORT}:8080 + depends_on: + - wekan-db + networks: + - tipi_main_network + - backend_network + labels: + # Main + traefik.enable: true + traefik.http.middlewares.wekan-web-redirect.redirectscheme.scheme: https + traefik.http.services.wekan.loadbalancer.server.port: 8080 + # Web + traefik.http.routers.wekan-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.wekan-insecure.entrypoints: web + traefik.http.routers.wekan-insecure.service: wekan + traefik.http.routers.wekan-insecure.middlewares: wekan-web-redirect + # Websecure + traefik.http.routers.wekan.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.wekan.entrypoints: websecure + traefik.http.routers.wekan.service: wekan + traefik.http.routers.wekan.tls.certresolver: myresolver + # Local domain + traefik.http.routers.wekan-local-insecure.rule: Host(`wekan.${LOCAL_DOMAIN}`) + traefik.http.routers.wekan-local-insecure.entrypoints: web + traefik.http.routers.wekan-local-insecure.service: wekan + traefik.http.routers.wekan-local-insecure.middlewares: wekan-web-redirect + # Local domain secure + traefik.http.routers.wekan-local.rule: Host(`wekan.${LOCAL_DOMAIN}`) + traefik.http.routers.wekan-local.entrypoints: websecure + traefik.http.routers.wekan-local.service: wekan + traefik.http.routers.wekan-local.tls: true + + wekan-db: + container_name: wekan-db + image: mongo:6 + restart: unless-stopped + command: mongod --logpath /dev/null --oplogSize 128 --quiet + volumes: + - /etc/localtime:/etc/localtime:ro + - ${APP_DATA_DIR}/data/mongo:/data/db + - ${APP_DATA_DIR}/data/dump:/dump + networks: + - backend_network + +networks: + backend_network: \ No newline at end of file diff --git a/apps/wekan/metadata/description.md b/apps/wekan/metadata/description.md new file mode 100644 index 00000000..c804a959 --- /dev/null +++ b/apps/wekan/metadata/description.md @@ -0,0 +1,21 @@ +# Wekan + +Open-Source Kanban + +Experience efficient task management with WeKan - the Open-Source, customizable, and privacy-focused kanban + +## App Links + + + + + +## Mail + +Wekan requires a working email to register a user. This app is configured to use a google mail account with an app-password. + + + +For the use with other email providers use a user-config and configure env via: + + \ No newline at end of file diff --git a/apps/wekan/metadata/logo.jpg b/apps/wekan/metadata/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0350c00e4a8ccd6f19d9b3547d915903c1ea863e GIT binary patch literal 7143 zcmb_=2UL^Kw(l26XaWME2}-X~dJ~9rDWL^I7nC9(K}4E#1f?SonxP{?LJ_1$QHml+ zZ_<^HbOb~JDGJ2}c`E)W1&>+;c)Bz9(06>Hf zaB>W=tGc?}cenTOu)ob=>&t<@Z|^ANZg2OOc`^Zn0^ol&5)udr2^lG&kx`PLHcBWZ zH6`H-rKP7iPeV`3#>BwD#Kv`r^%571mlq}}E~%zw3HsN3@c*BIlV*UH?9^dm5Enp1 z3nHckoqPZ;5g0^7#HWAep9Ucz0)t4&$cazJ0kS`W?ODAKdSd`!HZLAa+3e2eUI!4h zvL@eghbBm*d;}N;Ci7H9Gomuef`Rh3#fuk1Cyl0j07$ruz-$NK7yOG^;0o<$4H9K3 z25A6v;B=;8x&Qz(OK@@W)OtJsD6(uC%ysCrP6{dk!qwS!EgWf2Y6pV>D`$9nxUvM3 zD=t`3=L7(GmMpSe0QXqEeagEL=qG)gx?h0T#yJXXb?|Wu4Y!t!7-k*J3fFy`5u4jt z?hP^*_Il|_hbP7I>`hTtq9%+OG!ib;v9K{WxE zmwoRUz&;KhX`)VjYzoNPQaPtmr$!D2N5*Or8&YY~6?6Lr z1UXi~%TzZC2XdHhkK;-Z&QyGb*vD zn-I0CGs-KR06n)f2EDv!vR}kEtQ_~3wQP;slpMV~ztUi3TC^Rc@Ksnk->>YkRZiN0 z7q^f&vG0?r;LBI4m7rIu-*Q}h-7WMrl2nGx+% zB#fjC97JSLdL`YK^O|P8j!D?u|V&ol&4QeH!wLA z7gCQEe z=p*sq-N(fMsBH!{;bc@U>&9Ph8G=qn{2rU^Wm*+-KPDbb)w)bL zc*+FR`el~~RR{52KaRkBo&meS6p=M{X10aTFkr$q=PE`5VU{`_QUrvS0`!)c$T3J-= z-C|Y41Cd=U>=r<|1A|Aa`gm|zN3ckkf{DN+ zl;_9@C(P-b)0_psB(%JhbjCLB9-f@se4=88M#&Yg1_o)M^c-AD$_8EuDWnWMDsCZ( zNsJQWD7)O|zo|s52yDCjEVZuK58DY}jqR>=-ex+tCZC<>J5<}v_`;zkb}Pna%<|^` zw+GuMADe~9u&{w+q7pbHm`q`ZTgXC<2SKR#zbX9mfO@*m{TISv2hDz@ z7P81(MC_Ss5B1b?Wxb-mi*IhhGfN7GLwg?#+)yKJZ)g&RbBU(Y97+G;A|g_W#vxeJp!!Ob#A#C?-=lLqgJ!=h1! zFK9jW*ppY|Xw@$ijWFHL@xGIsrtYUqp2Smk-3Z5^NkT&@;;Ho!as7%Aj~Gj4qFf=5 zO^KnLoxxD=XV7^Gw_)yUL#0qFZ;00N*;h`*+_lWvq41C z#SA$5l#~!oQQzAGP}!JfqsN2DxpX9Lge;N3oGM=|JWRzcF_i|=BKivg7l|+J$}f2Zq*dT`Qa~sUnp_M{ggkbeIRGDFRbAdyD`vv`omUF+@|IuQxrDu=Yk5M= zIy}G2Us0?q{u~01UrVWzYj7wHBCIsowzfJY#Ro>lU_lkoZ|Sy1bKOH+v+@5Fu$7a_~KKF zSLRHGk~&%RbxsP1;5j647XXx<>}CAD)b`!OOgnL&0)7A|rp3IWw;h?er%+XX+gSJZ zPfFF~#Uq4Ni$r337AZTAfgSnqb+tIZI5-yy`bqR}xC+>DM-)F*^%S)a8P>xygRnc7 zKU1AW`IXNkw@fSkuu?51_UiLNJq{G2_)Fx)g3p3$EKQFwEfr*4-Nkil43dVNak)KG zAOx~R%^j?dTCQdw&XV@EORW??P~5oc);s$HySF@q9Y{*zsgPKrx~0rqhs?lh6I(Ji11qP_xi3VS=|~2=mD}{ z@#}}l`Zm^?gBnDDls`y>x_Www!4OI=g^o5g$I$Y*;5L8-CRkd!V zA!`zggmZAwzE*dQ(cQfrW{*{Ouu|o#)PO~0<{3o0$69kJY%#m!KXjA~%UWm=)YKa< zhR|Wr=};_DrE$~UZ1(y>3e>WYhI{5sM`3d5#L0MGTU#5!HTe2xJpDj7w(7f(j3!gQ z9_5XqBm-}>Yh*5g+RqqgMn8SY6jETO?riGBk zc<5_x*o<((c2h{G;_If@sCiAAk%Ss8FpOF*rC6p}u_>r;yin8cynguQjCU7!RF5>% z6*ixHqScGTNZzQm@4}RbiK=<5oy%;E8@?WIQy5*d1f4(j*-51pEoE#jsxXgVx!`(C zKI?%?UJCzMGf18+SxC6HBJrTOyP@Fck%4LATD84>$wo=ZTI5djq31>2@s@P!{=@<; zd*d7OP)w*EIuH?U@xkyZR`XikCTEZxc~_rqH@CP}=zzIeN1ay)gCG_1V)ZYoW;Uu0 zWCI~nEADhS3*IEFn)Jez#qHgdaf)Gef3vh2+x+Uch3gCcG-U9vaMmKba~|CmAH=nJ zEX9G*+sVH>GX$+m>DQ8va)**3d};i=My^khO7w1)j}3Wr8kCAFm~-;`CBDU>ZFG8z z`K2r&)I^v!6s#bss+#E9Uc?ps%gW$^4ApI(3YA>Y`TJW>Y5WU@c50sL=kcm7;BZ@g zUP_d2fxDQixTpv$Uz(gKHlbXim!qnfgP9Hfqm7uRUEn?qY)6aIvp0>DFDjA!qez^R z#@*|BTp{#XaegX^6}mmz2wg2k6&K%I$|^puQWrqTw+V=VtJz*@vIbl+FVTG-WMfEw zJr7oE;%S@k;!7I*X?NB;bl=wDzF1~PGVlsV)L58l+#Wgh*!SjC*`7QcY|Y~=!TE3v z-XDERIPA-(@K;>AmI;SFW$$%%P-D<5a1PDn`a9C_~Qf+hq~%{ zNW2I(LJ2?10bgq^3l=90=}o`$s#F+C=fS~1RJnFR!g#afZAZQl#*k?&t>~lvF~nS% zj!A$in6zoBS5j*V+fZH~E~qT7Rj?r_Kb5(2sn zCSxi4-3d34(D3q<*%+-BbCa!a59)(bD{3#F-azCPTOAGwSEGeH4*poe)riL{v%6y8H9|ho``S0Od7bRTX2XWU0`dv+57|onzfS&L zNMJ6oYsv4OU;!B*OY&SL{@gQbte%C56^FWox!i{+K2|9cIG4gee0#@Nazc_6?54O< z?>TG!O_H!BBQS1IE`q%aSzja`sn8~mMPqNxBu@7z$gVXSo}Sn z$HI}}B5&Vyl0bzEc~-|kAyB9+23es93Nz{Z5w~-TW8ynG&)kpmSCv$Aw%UY@8uMQ*Z5xQelo3PSS44uA( z$%<#`e=B#KJs0eD|qeJ z1S`sQiXeQPu`!$FT-i1}v4^twCT6LJqB~S@;N1!6(Ox-7#SUzXiR3NW-qPs#@HRdz zDv(`*Ve|YhZMF1rT{_msHwWTHHIH`rRaEL7k@oGTNZt2`=ryaq9GdNGPh-5Ydy^VB zRxNulaD>bv%LJySw4Z8GP;N1V{vYV&cEA-^`zWONiSSmxCzIFOyd$` zhGnWJe=!+uaue*kov-2J{Q05Po99xd$!C)|3VL^85uqz^S*H+-*R4j&IfHKMQl&-8 zL0A#g)huO|wkl`_&+L^&YecolS)fS?e+;M z%`aQKhX$!L!?yK|K!t37QObH%DM?zPgsKmBW#{jHD7paS@bDfg>fINP7dwv4IbYuG zbPHXt*cvJJl3F+~ZXcOmQ@*)?c9faI^xa>3`q;4A;z@IF8uPnhk}XP>P~owh9^W3< zH3`U%T{V+&l`j&pjukO_YcHcln?r$Om3xSI}zvCO;<|OQ4hkht*bIiK1qVD+@ z6?xM>yxIO)}4i#0Kxih#Dimr-43e2d;5Qq5ZM}Pr7{NLzgY8!p2zZ$Zkh?Hx2sfPJ}f^5+m z&l6VuHNYeIB_?1<*--sCryeekQ~h+G@ZvMW5wsl4hB)F>wWU*1^1F;N%s39}|1b;Y zreAs>WwE{+=4KJ&8jDyb(k4BpWxN41Xb8k`eq)dU2QA(-n=*roFD2al0e}CoGzmN0 zkUx7#vm*Zyk4_0Xg@rj~L=GS!rHtUvGz>Xgxb&O#jp?S^JkbG|N$=c)y}*sBVcFy? zP(<>FPP0Dv;ieZZVRIv+MX00xSSZW7s@eIbqR^M+EEdN80h!l%FV~iswRhca+`5Uj zxN#`euPA#3^rWRc!&+5}I)wl1aOe>ZY8K$vr42w*4Aw`u<{jaP482w~i>-PHj z#$4*8aAab6CK`Xq%cNR8y|i@6F}ry0g7eIc9r|8c<6paMI*n}(iXV+1#D(of)zrIK z7(cs?Fkgb+gAi@2CGHW)w^KGLL?hw4`+9J_5k&SVoAes}(zoV6jIl$fYyur6TX;!X zOG!rCHxDejhjI`9m;R0e;t<;JmyEA0tW@ZJIt54wsMB46qv#Gg*;S0wE7ge vI^SO*Gmfn&{z6#6P7?hvYP<+Fq2J^9gFK@5n13rrEL}{oZA0Jn