From 5056fbe45783fc6fb09bf9d2cbd1c44cbeb2fd4a Mon Sep 17 00:00:00 2001 From: TrueCharts-Bot Date: Sat, 8 Oct 2022 23:48:46 +0000 Subject: [PATCH] Commit new Chart releases for TrueCharts Signed-off-by: TrueCharts-Bot --- incubator/docspell/0.0.1/CHANGELOG.md | 11 + incubator/docspell/0.0.1/Chart.lock | 12 + incubator/docspell/0.0.1/Chart.yaml | 36 + incubator/docspell/0.0.1/README.md | 110 + incubator/docspell/0.0.1/app-readme.md | 8 + .../docspell/0.0.1/charts/common-10.6.11.tgz | Bin 0 -> 48424 bytes .../0.0.1/charts/postgresql-8.0.88.tgz | Bin 0 -> 52595 bytes .../docspell/0.0.1/charts/solr-0.0.59.tgz | Bin 0 -> 54362 bytes incubator/docspell/0.0.1/ix_values.yaml | 539 +++ incubator/docspell/0.0.1/questions.yaml | 3364 +++++++++++++++++ incubator/docspell/0.0.1/templates/_dsc.tpl | 41 + incubator/docspell/0.0.1/templates/_joex.tpl | 46 + .../docspell/0.0.1/templates/_secret.tpl | 616 +++ .../docspell/0.0.1/templates/common.yaml | 13 + incubator/docspell/0.0.1/values.yaml | 0 incubator/docspell/item.yaml | 4 + .../0.0.1/CHANGELOG.md | 6 + .../fireflyiii-data-importer/0.0.1/Chart.lock | 6 + .../fireflyiii-data-importer/0.0.1/Chart.yaml | 34 + .../fireflyiii-data-importer/0.0.1/README.md | 108 + .../0.0.1/app-readme.md | 8 + .../0.0.1/charts/common-10.6.11.tgz | Bin 0 -> 48424 bytes .../0.0.1/ix_values.yaml | 36 + .../0.0.1/questions.yaml | 2445 ++++++++++++ .../0.0.1/templates/common.yaml | 1 + .../0.0.1/values.yaml | 0 incubator/fireflyiii-data-importer/item.yaml | 6 + 27 files changed, 7450 insertions(+) create mode 100644 incubator/docspell/0.0.1/CHANGELOG.md create mode 100644 incubator/docspell/0.0.1/Chart.lock create mode 100644 incubator/docspell/0.0.1/Chart.yaml create mode 100644 incubator/docspell/0.0.1/README.md create mode 100644 incubator/docspell/0.0.1/app-readme.md create mode 100644 incubator/docspell/0.0.1/charts/common-10.6.11.tgz create mode 100644 incubator/docspell/0.0.1/charts/postgresql-8.0.88.tgz create mode 100644 incubator/docspell/0.0.1/charts/solr-0.0.59.tgz create mode 100644 incubator/docspell/0.0.1/ix_values.yaml create mode 100644 incubator/docspell/0.0.1/questions.yaml create mode 100644 incubator/docspell/0.0.1/templates/_dsc.tpl create mode 100644 incubator/docspell/0.0.1/templates/_joex.tpl create mode 100644 incubator/docspell/0.0.1/templates/_secret.tpl create mode 100644 incubator/docspell/0.0.1/templates/common.yaml create mode 100644 incubator/docspell/0.0.1/values.yaml create mode 100644 incubator/docspell/item.yaml create mode 100644 incubator/fireflyiii-data-importer/0.0.1/CHANGELOG.md create mode 100644 incubator/fireflyiii-data-importer/0.0.1/Chart.lock create mode 100644 incubator/fireflyiii-data-importer/0.0.1/Chart.yaml create mode 100644 incubator/fireflyiii-data-importer/0.0.1/README.md create mode 100644 incubator/fireflyiii-data-importer/0.0.1/app-readme.md create mode 100644 incubator/fireflyiii-data-importer/0.0.1/charts/common-10.6.11.tgz create mode 100644 incubator/fireflyiii-data-importer/0.0.1/ix_values.yaml create mode 100644 incubator/fireflyiii-data-importer/0.0.1/questions.yaml create mode 100644 incubator/fireflyiii-data-importer/0.0.1/templates/common.yaml create mode 100644 incubator/fireflyiii-data-importer/0.0.1/values.yaml create mode 100644 incubator/fireflyiii-data-importer/item.yaml diff --git a/incubator/docspell/0.0.1/CHANGELOG.md b/incubator/docspell/0.0.1/CHANGELOG.md new file mode 100644 index 00000000000..cc1f27955f7 --- /dev/null +++ b/incubator/docspell/0.0.1/CHANGELOG.md @@ -0,0 +1,11 @@ +# Changelog + + + +## [docspell-0.0.1]docspell-0.0.1 (2022-10-08) + +### Feat + +- add docspell ([#3999](https://github.com/truecharts/charts/issues/3999)) + + \ No newline at end of file diff --git a/incubator/docspell/0.0.1/Chart.lock b/incubator/docspell/0.0.1/Chart.lock new file mode 100644 index 00000000000..c38131cfc03 --- /dev/null +++ b/incubator/docspell/0.0.1/Chart.lock @@ -0,0 +1,12 @@ +dependencies: +- name: common + repository: https://library-charts.truecharts.org + version: 10.6.11 +- name: postgresql + repository: https://charts.truecharts.org/ + version: 8.0.88 +- name: solr + repository: https://charts.truecharts.org/ + version: 0.0.59 +digest: sha256:9b1c35e1dc3de9b02f7e706340458fa08c5a8b6846b2ff07f68ac91382febeed +generated: "2022-10-08T23:47:00.352656045Z" diff --git a/incubator/docspell/0.0.1/Chart.yaml b/incubator/docspell/0.0.1/Chart.yaml new file mode 100644 index 00000000000..9de7885140d --- /dev/null +++ b/incubator/docspell/0.0.1/Chart.yaml @@ -0,0 +1,36 @@ +apiVersion: v2 +appVersion: "0.38.0" +dependencies: + - name: common + repository: https://library-charts.truecharts.org + version: 10.6.11 + - condition: postgresql.enabled + name: postgresql + repository: https://charts.truecharts.org/ + version: 8.0.88 + - condition: solr.enabled + name: solr + repository: https://charts.truecharts.org/ + version: 0.0.59 +description: Docspell is a personal document organizer. +home: https://truecharts.org/docs/charts/incubator/docspell +icon: https://truecharts.org/img/hotlink-ok/chart-icons/docspell.png +keywords: + - docs +kubeVersion: ">=1.16.0-0" +maintainers: + - email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +name: docspell +sources: + - https://github.com/truecharts/charts/tree/master/charts/incubator/docspell + - https://github.com/eikek/docspell + - https://docspell.org/docs/install/docker/ + - https://docspell.org/docs/configure/defaults/ +version: 0.0.1 +annotations: + truecharts.org/catagories: | + - productivity + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/incubator/docspell/0.0.1/README.md b/incubator/docspell/0.0.1/README.md new file mode 100644 index 00000000000..ee15515f298 --- /dev/null +++ b/incubator/docspell/0.0.1/README.md @@ -0,0 +1,110 @@ +# docspell + +Docspell is a personal document organizer. + +TrueCharts can be installed as both *normal* Helm Charts or as Apps on TrueNAS SCALE. + +This readme is just an automatically generated general guide on installing our Helm Charts and Apps. +For more information, please click here: [docspell](https://truecharts.org/docs/charts/incubator/docspell) + +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** + +## Source Code + +* +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://charts.truecharts.org/ | postgresql | 8.0.88 | +| https://charts.truecharts.org/ | solr | 0.0.59 | +| https://library-charts.truecharts.org | common | 10.6.11 | + +## Installing the Chart + +### TrueNAS SCALE + +To install this Chart on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Installing-an-App). + +### Helm + +To install the chart with the release name `docspell` + +```console +helm repo add TrueCharts https://charts.truecharts.org +helm repo update +helm install docspell TrueCharts/docspell +``` + +## Uninstall + +### TrueNAS SCALE + +**Upgrading, Rolling Back and Uninstalling the Chart** + +To upgrade, rollback or delete this Chart from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Upgrade-rollback-delete-an-App). + +### Helm + +To uninstall the `docspell` deployment + +```console +helm uninstall docspell +``` + +## Configuration + +### Helm + +#### Available Settings + +Read through the values.yaml file. It has several commented out suggested values. +Other values may be used from the [values.yaml](https://github.com/truecharts/library-charts/tree/main/charts/stable/common/values.yaml) from the [common library](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common). + +#### Configure using the command line + +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. + +```console +helm install docspell \ + --set env.TZ="America/New York" \ + TrueCharts/docspell +``` + +#### Configure using a yaml file + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. + +```console +helm install docspell TrueCharts/docspell -f values.yaml +``` + +#### Connecting to other charts + +If you need to connect this Chart to other Charts on TrueNAS SCALE, please refer to our [Linking Charts Internally](https://truecharts.org/docs/manual/SCALE%20Apps/linking-apps) quick-start guide. + +## Support + +- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/docs/manual/SCALE%20Apps/Important-MUST-READ). +- See the [Website](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) + +--- + +## Sponsor TrueCharts + +TrueCharts can only exist due to the incredible effort of our staff. +Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can! + +--- + +All Rights Reserved - The TrueCharts Project diff --git a/incubator/docspell/0.0.1/app-readme.md b/incubator/docspell/0.0.1/app-readme.md new file mode 100644 index 00000000000..a8f9f267d86 --- /dev/null +++ b/incubator/docspell/0.0.1/app-readme.md @@ -0,0 +1,8 @@ +Docspell is a personal document organizer. + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/docs/charts/incubator/docspell](https://truecharts.org/docs/charts/incubator/docspell) + +--- + +TrueCharts can only exist due to the incredible effort of our staff. +Please consider making a [donation](https://truecharts.org/docs/about/sponsor) or contributing back to the project any way you can! diff --git a/incubator/docspell/0.0.1/charts/common-10.6.11.tgz b/incubator/docspell/0.0.1/charts/common-10.6.11.tgz new file mode 100644 index 0000000000000000000000000000000000000000..4fa62b15b1dba0e3664cbcb09cd42980672ef73c GIT binary patch literal 48424 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Ⓢn~%JVNdtphwgiVRwd{kfl@nrtMwdjwVv&* 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%0DnxMDxZKj;UJC`S<#~+09UFRc^X}N zf@38wa@J3Jvfxj8USn5EV`nyFMy^vC_l$c+CVjE7tP{}@kY{!hlK^bDZv&62DldV!K9=IQWL@K16ha)9C# zB&%rW2F*y49gmZa9^rhfD@QUfVSdZZoJa8~(I^$Met9LP-d{kv5IgkwX12jvr5xd{ z(lDST#VJLRkMuKbJmiHJ&-t(XnIf%Ust#!GiZ`DDC0CsLGVN7BDIIfEWSG$;0aeoO zJ`JXb2idjSp^B`<%T-7*vm?&<@rVS)B*l~@%)~fym!mMhOu@1-l}D`}fu3`F-w_L- zSe;E=^;xL3=@DAO1jFFQ%x|4_%`eB7XUETfdiV3|tLsu6S*|CDpqam*wHES{1-(cV zeu9Ej`FM-gM<5O%j@STNv0lD@ef{p@`0DD{*O$+~2739elMq5XF-+4BBne!WzS3(6 z3UKP`v&+-xXIJ;?F%G^#e+i8D?I<@^{zdN}1NG}mGf;OjoE~~Lx^hXPIjNX{ug_n; zzV8GSD4I+_iS_yM_3=-~SEokX)O9b(=l?&46y89tpwwx)A7cM@K~^bpwf^MQ*~wpi ze*Na^^xehT`OCH)P$07R0gmQ1$YpAgi%{?C^{Y!hNM2ha8TbZ6#1WpnzAVLCD}%!+ zX8)X!g!50Y4C3_s_@`H=?~dPG|9pCWeRgtuefIji2FO$15yvaKKoP}0m*sX0$IpK` zJAe1)>h$vb_?L>Ql!IoHLHabE;O@KFoxROIRIozr#9s$^`!_h+PZt@TUdPY={462! z5;rhifIt8FPp7Y6{7Jq?{(=DSctyz)vJMQxHSkH2AfGbP9~VkPx7+n}m$BIIQry<8 z)Lk6Oz{(dmES8kK^TSeDo{YySFX(M7Ng)n-h@Wy#OOtkRZSgLSWQZu3F*1v`;Tec# z>F8sSyqhCBgMJA9<3CETK7)CJV$gYi2fP;$ha!8)98qxo;_7Y$j!#~B|HX9DC?8ot zVg5M<0iwvKD0m7)R(gixT`Cb!!qqB!{{y{j2ZH0Hqw(b6=+=XH&&~0b-r%xPYSJ*=0 z1mf>}dS7O9khM*8{g*F%GD?Sq(O{;9r&$>H_cBE_;_pLv-ASB$`1sZOr+RWL+Dc4P zI!{pgJ}lqeBmA0kHt*R2Fz$EIGwgT;Amy0ODxx^d+aAx~;WR-oScA?R)p}HjDE?H$ zJLoLL1ww)r#q}BxkcJ4wV6cO*dIZCqk_6{>@{`;NQGG4}2DS zbGiVX4yW$PCsi5$0y-V;R2)ou{i*UX)0tU;_bZI(e_0y!UoBc?w^YqmE!XM$5C%&e zfzFEAb)d8Go_tab*)JaG#L7F(%>3eUeHi>Lhxi}=@en{$3h63+puVu$p8)*!8|Xy9 zd!pNe9{Bs;StEqUU07@a$rqehl~b@ul3*$jp$`Y*M+f%k-c@e11Wh9xMC zNtB{zPj(gE5&(*qh^#2+q+kdJO8<&V%)<0TY`h0-g=92x^P*fJE?WHh(o!HdZ^W~g z|BYwhH{d6UXTZC7eg4t|e`n08{PET6@?Xu%O! zq9sYz9{9T=esG{2X3%`@%A|{-Dmx&4MNskS0qe8^^CI*gEU!SY|bGo|GKgt&cfKrL7 z4dn08_Ro6jE{+85a$jlIoY|;t?9KQ2G~E9sH!ZS2Z_5ANEARjId!z0C?_)e7{)dmN zybc(X2!v#g{rbDL;>2>k?;0m~36ph}>|O>to54P|0MHQMbXOFIS)r~3mEUxt!oQG_ zKc04fmWf>rMpEj@0BpUmj3KH=8IOg_>Dv|Oq?P-C?HMsETPU(*q@GFF-kvq6;|cG1 zexWhz1|Eyj$xc5?QOJv&%TOuyx3_w1|4U3Tpxe8(>wVDoXSDTcE75BO4C`#A0>tEOhJDJ{s()cB!N1koa z%+i_jDdzeDzh6|ejJ>d>+H(O&{RLv$NCAQq>xAI!Y~BXy$5+I^t!_nSmuAgSE_1iG zn+L8jqIYFfgIZCK1p#|CnxpW$3**B7T4cB?Z^Yajdb}B~Z5C%x`KfdmK1U&3=f@J2 z8N?V!*HQ>nk7x#-8AYoET`v-pE=U-ZVVfmt0+ya2C&~Kvnm}XybfyVY`)r3;Gkn$l z=eO2bw$H;ojr4!j=x$&IY|#G){o&Bi|A)iD_Wt)rd3b#KTXC$a;sikDg@CSfNoKfz zew-3hv~-19s>&!oEyoIXBf^1dN@wAdIeJ#ar|)xa$T97i2MW-8;APGruei{|i|>3- zB2p9UTQEJ7#WE<4>nN1aMp3?iPyxDp@q5`DB*10r`EG<%5MIaI6TzOk3ybegsymY$ zu6ABP^q87y&S-(=z*5~?MqXuyS66|Q<f&|9QMU@FS8!}o*sGw0%oiUtuhyNPB@nA~xy_T3zM(hZBTgxf=A6yzjFn%( z{Q<615GQEHx3_^_9MAF-HYuW6w#E{r&#F*vxPxo|NAQ|1Q1St%2naIxRdEPhygd;| z_YAaV3nSa@WI#`Tu*=;`u1Z{iDLd?x_U#(iX4M=RC(6BY0^`U$a9Z*lJrGTXlIlWl zcJquR!oyre)5aP$g|$evnpLK63)MvUbba=xmbfj)`ouW8m^o36r3O5-jOqG0PW0uL zz10qC>6)JkYKa28D!G%3qf$9IPn7g5`gJvi6#omo!b@zP`?Vs;3)}FBV@a~CEhlvj z$9=j<_9#ipYe@8Jo@m$Ga}^PB^4^}-@8Y)JoYUo*%=2lj6yWE5kvI#eGHq_rvALg3 zY7Kb-z=>JryH?&j0VU(DveEe=Vewnc)?$lafo$DU5M3i`iNDV`)z#JE^8Aq^=NA&> z^^{jO)1($y*4KFy1OIWPOwP*Fauc`yUb$ckqnTI8ehR#CW;ql&@N@H6&KE=A=ASFu znU&(MeOZ!`lXsl6=QcMenx(QW(JajdJ-I`P(Gc;{(G2-fQef$Z*xdzj-u%tPij6bR zc_vb;A~dk882J_XP;BYbtrrrOh!HmuTGXd{uH&s2`8#_y+J6Cx5t~3hM(O^$A~^9Z z`X|q5RKpnD82`~T^FNO!)2;vaQ68C0Ue5rKWspw+WCmP7mLNMN$DNQUN>>T97iq>I z((LO0RUGiCg91#`%z)tYtIC2@Cz%=mi{&KKB0Q=CWo7E;T!Qn^2;)$wR}>6xE?}C< zFcOJF?o^`(=1M{?t6IlEGUgAu!+-kdFR%_kS(${&>eov`nPp&-~;{ z*84j4%DT$gXhGvYgB!oxW{8#l0>;DZu{mh3vr58J6<&wUGkX<2jJ7I#*ll%obThI%nZ$x9 zeqUs~0_+yu%fapCldJ+NP zALX&+fBLrCUv~7dtoqeH#VSD*T3+?Z%Ey+dT9O{A-^B^K!(=5=CDv3tJrz){yjnHd zCkY``e=S;+`Ii+6Y$_~}(E&vqdMD9Wq?D#u?3n3kc)0?|auwT@;qYH&1s zHG!3AY_7SNyT)3`+S+Oz%iXX7o2{niMB|DO?~6R@_I;=-)e_6maM+u0ZPi?3^8cEe zv{5V9p|kO~X=)Kk(`Houf6_Euk^nuE$DtmbYD1URNayT~Q|jhvm2h1!n}ZWNtp$@*H@WUSha9{3N=K2=U<&2#~;SB*;%+kqF`IejUU2E96iHC8T^j6*B=C zb^@r-DNQh!l1b#C6s}Phm}YY9Hk*(wa0osB>*EndN(oPmMcWdYqhSw@u&_yXzYmt* zjC^4R?LGp#Qs{CSRo_~vZ}2p=|3tc#hqeDk{gVH`Ki!`He3a+=v;Sm5pZnN<0)*ZE zE9VP(bo)_0)m1KEEP*hc%$K)T6fv(Tu)X=MMoX#9HipRKhU>_2D2 z?q&Z;u$n?3U-86Px<;TTi>TTo2H^xIJEvISM5 zZ8PCvus1YpGv43c{^l)c3b>B3CLrXX+8S#HnEM%Pax@wmYieJ#z){;+yC)u(u~uV* zTViurYY&dmZmxZ64&AH`4x8=a*~-6{$@ZX6L;Ekw?Agcw++hDrn6YQrf1|;6|L;+r z@6P^H(#YP!1T+%anpU7aVeVraf)8N>)-(U&`PVT1ieB7k|49PsLX&@1fwdstV7fWT zEkQGpHvns+yR~7M_nEbbtNk0IuQs(a!`i|;EMTkphw^qj8V)oKq&j7EwH{)vTg&?D zM5MH>l!5rZDYtER*6nro#^*O^%SI!tlA%A0rC0}|%knik-9A+wuES~=mjy7jWi3ri z8?aafl{1M3pc>kk=J2$`RM*mc7;G+klg){*h|*wEu_0o_YWGa5Cv_?f=JkzB~J0T=#Jg)1L#dTK%P) zL>}AVS8koWkIi3z*<^?IJsAN*hS#L~k!2lRV1Ee5<^V1toehStWc zwxFysmp9nE9Ga>Uh!>OL^ib0Vly2Uj1LOm?(ZXSEC|Nlw8Ew$F-!kJDpgI=f!&qyT zz-rh>yuJj}(kc=i+02Sj$Zib3uI+Lk94?Dx(}1=@fgrv zuY++Z|Lb_T)&Cyl`R?>Te&>@#{i~<^vD#MM&%8?Nu~om~4q}m?fP_ga-7kkzXnE{a z)%K2tt5B8lYKj)87L}Tpc1N;BjnlsCT3j7yb~R3+&8okFpGVOGy32>Bl%h;?m}$JpX0~+#;F8{1(aF=GjAHrcjaO2%M?+ql%Uu zm2OfIIdi+>vkr;j;d#h+^(VFW1DDRXt6^?Di8wbE~UX3<1zUEQE0LKLN4O!o6iM^YL}ar85!YHG-jByd>N?}hFBWJP7g_2gV7?R$NJ^CLkI>TW+`UM zF>V>i%_&s3$QUtb_!Dv3C-JrSF9|m?q;Sw zj{aO^bCsSiy#4FzhzsjEmUhKyVou2w+g%r5&8}pAc{UDLbsx1ww^%S}TJOcetBqET!RvMKi zN+mEKj1t6CVqmKH7bKG5T&O98wU!!I*6S#8V`~A+-ZuwYVv1s36bsU7;+@v?jZyT;7hlR&8z zY_UMUF*(RsWgO_qVyydo%ZQ1zge66mSB=YjZO!1uG@8B51W}Uzh~WMCbJ^jtVlre6 z$!qT}QAA62Cnxegu0sumx1L9uj-2#!{q4i;zByhY3lZ^J!_Vh;6%`<{^)ry@Z0}q@ zu1|-Ql9e{*H5ZcWR8S{K%>~mr%&y(K-?_nqOsKT@2^}}si7Fy@vGrQcA&1E*JCGXJ zR}C_$X7W2WYo}&m%=4D#4RjJ6J^9SL|D_eqBL%RR)F@0zA!n*?=etU~* z>W%v7F*^pHDo}5H#DKgTHcWk5tAa8i`els25pop%!rRVt+Z{g;RP-Oe+9ixQsk-2H z_P!^jdWly@S4LFa20o_pt~AEl4_KCmh##YRY5OE1+8ShsY~GZ4xv_e}nv{6;p5@L=?GGDpVV%(0 zxVP7jjR(MyZUuGJD%x)xw?H8-puSz>BWMIS1OO)jY)QZ6W|CzT1^m#|rZHhl`YrM_ zL`qh#xuK|h_~4@(kjFM5CWv?&CsZdHXY3=|-NrPQ(Ue5Hb5%A5Ji_ny#V%Ui@R)_AZ@Jzg6jeklQIIHeTRORjK=K2?MZ%BH%v6H|Jt)5GYaf z?)Tm`w+y_eQMi9mU{^htmi=yz*1w49nj}YEkq{lcHygpQF6LNkB_Udz2vehJ_`w0r=Wv&BCI;1%N`XpC&Zbp_$Q(Uigp$ljVe?x}*E zoDXBa4T+)&)dUOf)?DWM_gJE7Xb&5icUH!k(HhgjMIUFg(N3zUvmrGwt~t=Dbuq>- zpQ^cbtgZc&{(@l`;Pbk?CL55NdIW+~p++BHlKFF<`E||p>Hvc-KN(~0*?s|gBDlbI z5jB-O%qd9?N0DoKUqga(W=J%T@TTdbfjVfyoRtprf@)g_BLY(m#5qEN$EOG137~t= zDg55GZ*mm)OTGhe6ry>j)qVN8c?Ed@PJ?)F~u zf;aMAjo(W~KvVHoiJku=dT)=2HaKb~OAD3=<}P8ccr}4x;M>ST+BaU3Dhej%1|Xe7 z6Km|a&jF;P*5hl?w4%g%aXSaRysXVDu_$9_mB{CCtlP5PKue}xzS`o4bNyO zmy9`g(rImSB)mB8{75C9cV3x7I04oPkd}}@;^<i4| zzUZD6=IR5l68HW-Yln4l1|3af&((V-mWLmE^%8oKEpb$zGPRnuLseUi36|ie?=pm7 zHd!tl9JrN#!5(|~tWay|XvgM~w+%mUg>DTve?iq7Md_fqjgha7M&LC=;fl|=p7^1WQK^Ul5Ua=m2Vu>|f^5jYkl3mzbbM_ToHoImeNG&_Qc{3zE*Er4i3kOoIct{gIM#cAp4s^PE?Q7x+ zW$V&(-%o6=z+In2BJN^Q6k*3Q@Mg_o%zaP%Q76eryBrM}tGBqJ+ERFKf}u)AJL;Tl zM+FT;Y}*HBm+%7>ZU~X)2%wRDzG^tL)1L(pJQFUzW(s&SfjM_5_=*V3qm6~uJNp9= zVkCl-dLBcIzcK^WA_CJ9b{5;S#_w=jh0jTu z<*~Bna0U z1ZV0Qado~gPpe6K-x)&>kr&j?P-Y~)~Q$s%?0m-3&M>)ChfM3Aj! zgr(MrLOn3w_?U3`46IVWh3e^bmMtZB+BYO)EJ!z-ut9uoH|CMAb{kkN zby>Yk@-HcyAC{h;qMr$rRz8Z0dezF~UWbo_(oj9@rOI;_xvCilHp!*@CE^2(ClPUe zI?2EMKHnRoE`g!kAXTl!rvlXm2#~u|T?g7pwQA-64*_=Nxqy6wxEkMGh>8Z+E*jay zedD}GUepE3D#(Fm6-7QAoJb;p1Ztjlqe}6lhC{I2xgR&njGt^sP}L`p23a4d!vKD= z8i<_AaFKI940Y_%QCqtCJ3;z8YUBQ>E$!}zD1lC2bZ--`Vn7LfbRhkRkaVP8*_6FQ zQh=KQJG0s^`pSxYv>OcbbiF+E#ud>N^R6$k>T@}n90B}CV4cU8aVH<}Rx-xr6WiE| z!6!|l>$dzPe7<7218md2EEGCxsX`}U+d3fhrr6QvJ3K+@W(A(RX1Uin9nzj$ftYtp z$=+KEZYe%2ko%-Z`UE(Vu+0HnDc~J{Yl*4a1v|21_Yh33-z0rXsx>2kK0Q#mfl_H~ zEb^R*xM#b@_<2vjxE4zNn@r|IbZEq2H4!=}5|Eqx5;iUlfNlRf^jqv(K3ZQpR^NGB z?fR+l=aDKR28NedN`>>+mrd&B!k5Je5TC}+<)SA%4d}*pWq0q#H?DFFEWRu0vK@WA zwA6Z&aH zyytivduI4ifDLqU4V<|GPn3uz-Z(XU7ufCaJOJq$HItV7y=QZ-nq(e`hql?cVS5)J zab_uKyNl$&*EzzoIklnL*k7R5zuL7bsEtoiTfa4B--#9>C{2FiIgbCaBI%qc1obT{82NJIKv;gi^jv%&s(RD@wblw88 zj;A7o38@{SFNQ6HEQpdzTh_ubp<3DDQu54q+hgSGe0&8IyuS2zzHMFrSzm$f8Nh=$ zA|4>8P49dOmQGL7Pj_Trpdd#c;r{2PFm&}0N29Tg3GqMJ<`3`p)oiaD;5t7@%H5L* z^kc)Zc?Ov-9BzP__xiOdfxu>i*J64SaVdHYf2sB7OQcaP%_F4J72BiQ!4Rs*_#Kae zNKM73fYNw=81*BVIkd2I$Ll(d86aYIF-Ukl_4EZ)r2Z;t1PY`-mHa0Oi5UmV7}F>D zUHa%U3kLpE6d<(B>Lvc}qaNIa&>G!Ll+a5wWyZGittVd2V#r0FQqfn%cFFsbbL0I} zr0RqC_>EXT1oZBwMC9|Ca`APc7Nm9!`#2%QXZ<$^srgvA27jppvIe)%igk!<{92jb zqVo%V-Tt{{_)Ed#^O;Kf6-X1){B^WyY9&y{zf)564qEk2%rQD|AFdkXaBM_FhMV<9 zNEwKAjHiC%E`P&1$_;U0Up3J~OkdUTfT6)!&P~3alO(1WOyZ5^@@`3qOJN4!_uN;n zx3s#j`SvJ?d@-(E1PucpynI-{>;MEd2Ouy<>7|FISs20upoLiI7a#tBuBf_xZYkAwlRl!qv5Z-?BEa zQt6VbH{?;^AL7(Y&bC44fBNX)~)0*!%;jv<7#%kLK7$Z&%@Xnvc2KTPVV8jF4~ zBplApN<_rNhM1v>jUl|f;Wg{gUJRhPOgyf(L*@t#E_Q|mW_P##PBzYgDjj$r8}10q z6(K8rqCEYCr{>+s;L|`wfIutKRo7N+F3Z8v^582V@EY_2`?y_QI&miYnfvwX;r87 z?O)kj6FoZCGK}$dfMQRvZ;K`5-(=@WxlX=2GA_FLjxxw3ClE^^ z8N3u27|(61*7nB==AQ5vK^6+lRr+ZpDJE~Zv|x@Uj>}2;~;a! z%NHZQ+11EN3#uZSt3^Yw5+PI}oRMuFmrd*xs6l{O`t#or$$_Prh*+bM?#0vU@te5} zwTUIUD?y313XlkK*6r>5Sqqh19X}~swUB{M`z^27MfdZ*V|A$vsCoxXg#yuUo5)M* z5Y~-A>F1tDsxFY^03`1No_Gc5yKnOt|@F-@n=in|E_cW5+_I zlI&8$Dq~!D_c{lVPY^jCb=O?sUpjO1Fb&(`&XCQa`a5J^?L4~KI$#iBie7-oD)7P^ za~OYEhPgQ7s0KR=w`O>erQ#j2p zWStPN`6}9OLWe{)q*vX?3!c+JK0VU=!6Zhua*2|3u|lLeEe4dReYv3yVoApdlb)_3 z=`r;wIpf2ITiIDc(*hu?JgwAn%?+9ge|Pfm#yEU0Eqoi9)1dAI2u}@$Jr^i{3XZ(} zXS$?6mZ#=Zj2=L$&4U)iLcUh;B+f3bjqIjrcKQq1`GhA2EBZj%L#Wn+0HIb|R-50A z-QcqQqPK920+_$mo7Gyz12 z8~3d2Y=d$k6!2ejWQmuBfCOuFU` zCk(G-izFX(;dt=9t_M-OXfgGQ&k{6SDBMwg!RrdGb{Vu;ISt-LAIv_UFcEijEO2nV zK=R11TvfUo#=Q~FAur|^%<@1aCB=gNb|X7W!MaRX8c(l^zqUzp*Alo@c|clHp-YTj zx!azD?l$1gwcRH$=Du+jSbgaI0#8Kp^G!C{(=ladGL6t`yqkhXlu7L5Zc^h}`Qs{k zVnK5WzHmOe>Ra0q39(GjB1X=8XE-a$Jx}% zHpDC~Vm;YlJ;wy(%pEM7mFKojlM5KAH_+nkJ6tS_DuNW!-?`{R8-dHDXfbHyci!EuW86`Rs7P5Rm zF^2^9V{_-n&H?BE4Y{i|Xh3EhdFeMG#}{aoH@ycUTB)wdDi6QZs3D|BGAf|_fBdn$ z2VRtmuK3hJ&&(WG23=3gz+cbouD7n$H{S=x)SYp0JG;C<7f z(!1?V=<1@Q&1*3#C_HUM2gwuuy;w&6&F7z0!slniqdNdKqWpZnuiu8**ZF{xrdfsT z*p=d7|8r3MA3~-{Kf{Pc3rysn9js3lxB(IW0^1(F1$n1nd;I5#f;3LH38gK2Kk^QL zRgl;gj)qy&M7hpwHHWK+y_zndQa+fWeWSU>;9a(LqU16lxjUp#&>GRUc8MP^$^J;u zBxi764jb0$rFyqp>pt!ptv~vBJ5+Qwr zc~qgQV)JQEV>ePGJ!L8oB)%gy$w}gW>W`%^Dtf3dHZ?&T4_nJk)x0hq0B^H^n4f+@ zLTf^+(hPKPwu;cDCv^N=4eYO6Tcq zw>huc3_DyW#}~IakH0;u3B?38PpBmr5>DH`30`F@6?FLls4I0WcgnBp)}4RHO!oVs zYVkegT3fpxb^En5f+DMzlp|f5Wj{K+|J{P{=xq@&>to>2M^C{|pkLxi#T772=dT)_ z0KJmN!pU#U=@~zKPrjT|B$sR-m0#>N+u|N4n1tM3dk8;jo9?0Rk{4Yd>Ezy};k$99 zp_Ob5Nvv#}Uas#z7f>+%75x$LG{&nKSi*@5!sUsNXm5e^{ENuFAFL}j5&|BIIwk}B zIpS{Z_|H;b-3Cj6kkGMr2whQ{8doA5f-A=cA?R-^XIR(uIunleD;PHUt-g<_e#T*( zZAgR=^4@BqnNaiMqhl6|N9oFQOB|+bcs=ozEZ;tS3qI`_>i*sN#oeA)TmYY8irxj@ zyKFwL4|uV@7#VQ9V8KaL3N&!R>J=g7X-6A2$+h;AjHbEMD1ns@6Z`!0#TP6U9dkcs zXPX-k>O+>;ksgwL*|X_kv?W&j&rKhJ8ns*3#}^A%kcUOKL}jUa$3gF4m_`2KIG{mc~F++yv~Jl#T@@gEHi&V{2LM zsJg99+HF!$%%l7b{2w`Jad1O=&UMhA-ONpI^F5#lJ4LU0L!MO&>h-`e{~M%N0}6HB#-Vr zF#p1!p!tKbLy98OuDCrwv-%1yYCb)a7_jZ#NpUJyLpYa1VVtW?4UN!1xfKz%uj^8hGF3dc! zFR}e?bNxCZ`Vc~CwqENpe8b#)FSdI(vWPpJ$G)iGvadg0fEOQN+x<`pYVgz9ImJ9% zpxVKvOJ@iF-ENxfSidXhYvmj$bKrBY*^hJJ;mN^$N=c1g&jmveOrKKQ*L#+;R-FX(L48;q+;9{Y7meR-Lgoy_c0EU+rbhE5x{>|Dll0>AG0Kd!TgeP6&o zihW+*uL9=*eCsaUmj&R{Oqz9MtEmQ}GiZr$Mu2cJ%z@szb=(?6O+x5{md23BR0> z!*bgYX&i=O9Hxr)8b1-aGI64g2PyD^DyxAq)2U1I_*j47H_b>n5%bV5M7rVfYfFb7 zmq;)1$al4$#pkJD1V_&>lr&WJX^%8C>1#FSrZY>EdK;!hcvTl$R^kydW_FRp#FM3N_DR(4YN@0qd@_%{J&=HZaT0 zO~$KCu)TC}Z48p?7@f#zw>j~Y5KPfRf{Np5?qPPQquf@j_AUtY>LY`5nvcT+^P0w8 z4OG%*k0nLZ>2ZUcS5q>vvUVqA9v38S**Fccyz^2-8VNdP?9a&Oa?RFZZ=oJ5Lk ztg9Z7>6as9dMv88an_^CHy=hW-|F*x=WFH_bpA=vU;fEYbPd_c8~X@Bo;}qYfLk<1 zmn89&|6n`#DX>TJ0!J0*fJt*jG0aI{{Kov{)sXIF-4*1S&or>ib9#x(%O@n`7}_f! zd53H$o-kP&JmyWQ%+la0hbO-+HFW4=VSS0o;X|P2QneC|`XD~FzJagSxKdWrWK&aC zRdzY`GY%V8nLn#P)*DPFp2Yt4_~P{|qv3>iiqtK)@O%^-DJtb+W1`_C|8>ArOU};y z)V5nD#;R=iadPiUjRR=f^ta88J7iIRROy{)3M>TrW zF{`JjZo1W@TvmYj0K7BN21X#CKeSZY z7`J-|^&>`g=T?G}SceUPu($czm6S!Lmt}_pr5-LCaC!Y#GnQz%^_S+2vgtRLC8&Ma zF%KpSll|Je>95q*gZ!DGfHmR~i}B>AM}6?g7Rfd%2{zYN`=Di1W6mmK(gbk5ED26GT{ zZmQE{OYq^anJy5mnv&vQ_+)lKNH}+_G{D8iz1hIBA10%LAmUFh42n9v#Gb30f|}`D z{pl{Q-jew;+ivXA$EwWh1Sy7Zw_G<6f?#oKDoLKQi`#_7OD=Nr7o%_C8sR-^*F(BbRp;&tt|qs2_aOrVR~=lSE| za&7Ev3H9a*7K!&PE&|rwbqVXD6|e#Um%4sh!bwtS=)K!ImLvHXRcQ zqD00_-qb+IF-@q;yXC23@(pE3=Cz)R5B(-XWckBmHk0z6BPIj4b)jyfm#}^Hrj{L_ z2+!KRv~KUqu!AE8uh~O&$rPr5u-UXxBxnwaU3{Z?D#*0|H#dOIO}!Nl##HicTSXM4 zYL@=<@|R*wyEdXPqasJp|7DNN?1T&ORLed>gh$|2>Tu!OQTln7J4b~>ug`2qpyRWe zUV$tfDSGtJhhD?)_4sd0O15+qXLFiWX3_~3#@i^N760EoL?q@R;V))U0_&PRsEf9y zi~y@SL@mblfV$IfZ~63(hMBQAlzZuNFKP(066w82vd13w)z;1f;R{X*nE_UH2wIHE z0d>E=y&2)+AdrxBuL>4@hx&zY2pgfzo$6cb?`;P@$Rvf@!w@#btQ6ulT4;)*y-b?W zy|Kk%UsWh{p0vp5A~~~7IxgMb{gqR)`|s^_jq5tFArjj@d~I;{SZIKK$;pm-^_h4m zGC z5Men{Pic*aVt1IY4NoYi;vTfDY5H}EYt&Q{zNE)f(r2<*J5^B5!BYs@u6l_pTv#Ht zlzi1M)$l_2zxxz!p4;`HmM0a@CK>Hdc+B+fEERwid`uPU1+>y3bE_lbb9H-@i zmDG1lai|TWpA^HBPcLmJulE|d&2p~u)Hb(lp?)hS4zC`)tacc<$*SY=4n@8G7n7Xc z588wEt)S*ff=AA9^FsC8e>1qF7<3F9C*Z7kLpklkhR4;&rzzfE>-8e2A~u?1WizLt z=~d7U^!>UiR~+k57>vm`_u&CH+7~nXgCI4uFWRFDexAyZ0zb#2(KUh%W{TTAJu}2& z@dTtrDlSfPY5acg7rcl!hnhgSXI(noo+jxPPSy7A^7%(u4!H#OU$+1r5D*plK-cEV zqcBQ$42hGABL*Jv!JZ2@7}p@g;8V4urGJk9rsZd36YF)eS{j9v{FS28Aa23b_Iz&fteL+tXCI6BstIH2jLULq*7V=rs7rgeN^ZIIx>s=R zT>u49I?_PxDn96inihP8nmQ$LJ%qu3PBPOq zl~E^7^nZN1&?JH?tS!^jv}xGWU4bN9-#wRfJ=n(uZ=MxwdX|*Yky_*k*fNv76&rUY z#IkG+K~xB4FCN}aL0=>MFOl(Yc)uMh*}kUC4E^^Lsi_PXY`brUxSGPePq|MzW%#V! zBKY(-L&9e@)I=xnJbTj~NxJrxNj3;QXS{}(DBjA^#&oS+9d*iet)`|GFOcL|9{Mb% zeY^Q(yaliJPMuRA)}?_an21X%OT1p}Y%@;;Q*(kT!)sc5Y*3zgwog1FCC?|Mt(64< z3`dnswx*?~#zg^;PCJkx#Jk){sL8Pw^Y-C~h8!M$LMQ!W(ALN5eG_QTG3GF*II<+J zScyWTvuX#L@eMBTj7J6&zyw(j`tVjhtk&=lY(NFky?E453I^@mArX6+)A+_#qnUa{Y9ZDx8W ze3^5hF;p%3SIPWb^J9oac}?^7StfI6i)Q1%tdINMY@M3Rs%y!=UV`oHrhqm6r8O2L z)EJMw=~N8H0~FBHK;?AIsX@RHua6Q-&aU-<*ZCSi3>bdOy<85fmqEa$97qE&6{V&X1^$#MHrp=?_w~IPj1~(VHo@~yqK>| z1qBz;+MUhzlppVe+iB-*w98@NH{W5eo99+I!o1myzS-{TWvkj3_LgPlnQ^{-^VKi@ zN6DVYN8USc_c_4#eBs4-3pU3*^Vb%fdd z^}Y_!Hv$vYbih-~J{y?ZTpDtv-Qg|^j$1IQl=Aq^$-c6$(!W+BtN$mNlLnkw>Wo(i zWbvfpWS}{v1H#??=bi^_)?cYBb#&WUR zj&M3~6Yg2WKj0M!;@MfVaxA%nj&a7$_%M8&I}R%yPz25pp2gu zT#9*&5C$Rqs&0}~V_R$ur6g^%N2V6-k3==KnBO;O(Tb$2q%^Rsq$EO4XIUyP_DE+d z+KT$M^C?WpwI5FIsTrp2e?n7K8A`RV=gg5Fwr$=D$u(Jd(MT{)lGMuCSO4wc~hRL@S9qMylK7c_1Sba?@<=;NMG zhYABB8v>^{^;+(xF?!O~OyJ|f2y+|z)1u*VIY)hv=@H)+<6%fVU`m8hoL*41xP%f_ zlD5#i8GZmm>BM{$^UH9;O4xm>n;8$%g>ACy6eQ*V{~9HvP>#D!eiEVu|AGh&kSx2t zAxGA&QyECEQ|T;jyLo#WmfZRa$HtGA)zjTNj+GQ^S0v7CqxLsl_Cyrh8=n%|$vc#+ zE@{!OHEQ0?t^h$-Np&DuNwxAgZ;p?z$*Xwy7tl|G7TQ7h%HF>hCiUiM2p?qNrT}9N z8*;_dQ9>&)313K*@!Li}FvXJdyJ$2Ii3Y1S+yH%66b+DZmqbb>SPTJ|~O-(}$sbdYreiS$se!C@#Ta$Cs=_R;Xzj-&#<+%FcJxP%+Z* z@VZphJ4-n|PnW5g^}_uLBd>K4VO3MLzrKLEqLSDBC5BY-G|}38&#(n0yv@=fOR1fxBEVG$gU!fSUDJh>ztW zzSzZ*l)OQ)CYEi_lRmbw<^`2)<=;$R>I$hVt9-?;08RNU)f7 z&MZvYd|H7`+G+CyWK@CnvcW52B98hQBxJ(lwM9zTlB%JrMU)N|m5X-9?{l(^1E%jY zq1BfsWipux+L8BVq|+tEfNP#;Gw)uw^cn-S8?WA%EdwXfqfde5Sk!=VF`tT~39BcB ze@oCh^QXKM3HdTwV zE=8u6bnHb~b#J8kG&*M3aaH*sC0nP+y7oaNC0dOU7Jl9bT$&RB|5HAM-0(ufV)VM5A_R zG0#$AqkO$GKM!E;DZety4LS!w8$yIwl=U)dIN|G9oX zE=K63Z=&`F3!f?MitL+8JlrJjTI?@VS``Fk0+Jkd;lC0EH?blsV(KcPQLHvr2eK~s zW|pgfqv=E3ku;Lu=_rSWNgyTT9q&)!?rHll_gvOMaDgA$GG^PjQ-D5q^Qow~%KU?e zOwp7-H+3}bvA9>#4M9n~j%zrnrr$!&$tueR{$(^by-^MS2B-||)7N8GEIgnUv1z`l zQgrPmWbOD2xEG<3XgjMhCqZUPb(x;DA?c2^QB~u+P*vG2rro?#CJqTGRWCBPQ(`Mo zDWoY9 zJ4M4n?FpS?i6Ll5i;;xLs4K*zwgse7${WWw)!G+M~B@}rQzfyQZz%*Mzj}v0W zAvHK<5ITkQL3nrX>$l3^6G=^JSkEY-G+F*Rv2bwGlj)k$C$e|?=m|0|3<9qoJ&%E( zw;+(|%Y2ns0p|0|{3cWnBwApde7bSUwb*IKnz9)SacK- zX(cp1XyDs2_fNF(OSZ(@MH%O}_ZZl1th zu^jq&W3v<1R?+|YQ}DdM@&397>15GN5&dU)a(Kq?HQ!@Che)%JM)ur!+&M2VbQ-36 zY5jN2Fc|vi*M9ChpHA0|r2H335!3rPW2UhS!s#ch>|LR!_4R}F^>3NTdP#-giv>5=jLtqM1-(EWFoFhvc$?R;*--bBSUpaw^{WShkB(?Cey7pLb%{e;{LnOPDEhCE) zJ@vEZ%u?Xd00|T?WL%ZQ9|;Q9%Me!sJ(}2#;cB~sit!RyB}~F%$xv6cluj4l%VHlV z&2F#aWTjIt!^A`YvgW`-rueZ(+uljZ*Fnz;1?3CD@9yvvOl{z}k3os3_lV>-PDI>AegVAqq%|pNz$$12!&3z_b0I8Nr~`Ia!o&4lQY=+X z$|dAs4j~W(d;MJ~*n}|L%3k=TRhR}yjabu`Np7H}{@|lau->s@cVK)Bo096f_M46YMft}0&;}HRQLmY@3{$E^S@u0VaLIG z_|2FW&c`9(>yrb7!Kj?Nc^4Qm8flRf9k9(x8l;ux;YfnBz^FSLA`Y4{{)is3qRS}x zuW)lgQglX_6~Ohs;`q<(hM;hy0#o~##Qxr?oTcc9DS5y~mPL_!G#TuQI+$sj@pARz z<(?u@Q|#;fL!wIElRZNG1I^uioVlwX4n8^(;Kr-M1Mh!#XN&=>NNkT&??E-`B3-z_ zOiXpQqmrIRtBosznZ@YhQdE3%b$1@ue^EU2_h=oTX=JgfTYn@l0hX&*)wfQM#66r= z629xzbSi;%bkHDnjOa?HyZtS#3Xk)+8gR$h+R(4a#o6_T81M%{OHNXt4?|8I%Y9!2 zMy%4*An+Jo$)A<@6j(;0PT9e|0`@lyQhNe)saDt$_fSO^QBAPq zB;V<~9TRHWXGagtvDjqeH0ln^ATr2b1>>~|rg9EMuMd3`Fsl)Yf4~8p4sKB$<>GO~ zXkw|8R71quOkFr2QSq|{NP_QF~F6wVg)#9_f}4IZfL_2X_p*= zO1p>5Mu;+SMG|aTB}2n4c+T*oeH>N%q!=@FQ|xZHp}6 zD_GMN+Wk&I<|FRu2<x6yE|+adF>O_SYtnhJ%X5dwsq zTkQGc5Ed?mFKo11dd-&bv>~_YVDb308*BK^F2Hqr#==y~o=aa9>P*;+OTZ^|j>+1l z5j!jTv-r5~mcPqh{1+HB@in5D21~1#S@#zkAnXG*2r=>-Ompn2_uG(PqEBt+D!N> zC2c%z6~NTCD%C#;8DW?@4i*z;m~{EOw7RgqV`2rqXRrYBx%ZrAvKngQZV@~a0wZq8 z+Yrr2JW`cKf~tk(Fd~x1$^kApIwCn)7R&XQavd&&dgu4;eiWEB*%J;m^)uR0@jn#O zlk5`Q8GEn`O}{aDC0GfV&wtSGC(s;W=PSilwz8hI?4Yr|d(}DEXVmmDP-Ti-zf;^P z$u4{@>gO6@?wfB5x%F2y&rGg)EQU+XhD-WC`HkAU7+^RXh&oVvk*7K19KdGXmYt^R z=1U$O()l|dsNv|vqP&OLcysVjKM1FK7V!&U(F{fypa}jD!kI;PS&<3g*MEUKCv|ZP z)~FEw9av&tJ{6zA_PYAl1A~OUuiokOJo0oUK$Xbro|B9|8gjt2$P1&&9&jX)K8pmc4|LPQ|E$|DFffbWcs z;Mt`FMx8K+kSF5KdW-z-!qQZ#+6N~q8LS+DS;(faMb}7*vUknt5{$V|u>W#~Md@pQHL=+a(}hc1$IM;sCDaYq zYt-MF`j|blC`VcW)?=wGSI$D;_oPr_xXhvqxW~+HV)zFfy7$Aw#t@)rh9<}VO2sDA z@9beDoSJ2_$iKrgwngee;5n|e`uhzb!-mfrkVXV4CUP2}5#`*4z^J$yrz-w13Gde@ zCom<39pgJZf zatYDJf0KJHJyv(WqyUo>Yk%(WrBVn?amuWNNhR()X)=p+4>g<;)CS%Bw{<=fN1o{J zvaWAC#5!IoC7s#XS?qKYBTR90Cok0V?hErPjwC%LdctG2<3<{qJQeu(UpvWbu6*wq1<4AnwhDo|J-@7sO~h~b0B-J5QIzy83PmJZ;%3L5dX`XS@VSoAB@8u z@`)#Fk2tzO%wNpE9dCN$jfBmEa;M&-E28lTNJ#Vqn`sp|;obQF(;?oSkfeX3FOJL+ zlhXc4wFpHiTqz~;g&A$D(o$c?h>7T6u2c9k;R>OJysg!tJWi9|%H@zBIr{j09(*pK z4uCNf(oX*U3P|$tIf+#KJ+W&$!KSgTz&8L;zpw?pLiujiNvl#4u8N^QKzT>h_UbM9ksnO#x61_*q6eD)(?F4($u(bCuPv<>6RPm z=jCYkojd!R?wOWNWXNLg@;Dz?3dC8{3Uxj+{?=_cY`vGtu-#?Q9z}0<#TM+jvWB zGpFm#GgT6}_0~MtpF-Ac@_j*ECOUH znK~h1a#@z0V^ijg%OI2@EH$}B{ICp%rgyb?q}W&WkcczFdo%u&`OZ#cq!JJD!5V4+ zvVyyeDc3Td4M%3>ip)0mfUN7$Ouz`g_jNvvBZVh*i9ve5$0-=}G~t-tt^y2PyF&D1 z23_$I%QW%$AGC(wnm0x=-<8_5oi;MHDv&tZ=4tSc6}dFbq=c^%nQ^R-U)-j{CG}iY z@A_ijKff6KKa8@z4!Go|jViBkt zTKH(bs{cF?!biq|6HAW)V$1mHM>JDBuEi0fs}?f5y1$J(7cvz&I&0Vsqa@$50uRy) z+dt-zE;TyR*Vz|%>>(WXNO$jH>VQi4@nj_*g0|XkW@7T_Uz0dEeOYQBa5`0D4c;XA zfxR5a*su3$bha3#rq@^ygKN*^uY?kIQW%t}PHxNjcvf}(bXpnT+ZwJm5)QFG zA~k8;m90|dxOzC-B=OwfMidx*!6Xn1zZ9u?BsDyD&2;tPx0-~`flQQmF;l*hLft1aW2Cn^o-mmaSm36?Dbnx$Jy-Bc} z&=4iSNH~*KhfCcACU+@_3vC-gqXX}}`lBsKY6))3M*-h-uP)(87Hkn#dBg?ll;##c z3{}?658qq9>yI68A4Dpytn0*4l7m?JYHLGlUFbn_L&Ah#`2ehtn!7hvXuUU9`K2r( z-Xm<8ZACnr3ZU0WG?S9KQp{AWAW3S`q@mLm*TSG>+kJWSx}D7^Ayz^CikVE~m3K+9 z6@P+|g^HNVusde7fk-5OY+KHmw_LJ=-avPBhXCKWLrLlUMTyBBYtv9LTn1$D3C$857pbUM&dQ$37HzIT2|t?`b;kV@(XL$V?rz|{((3WRPkfb`S!noCTC zPj{~Hz>*V~6B6Ta8`fi`KCK#ZaoJK$E?F0g`{0w ztH3|N%`E%vz}CRf^ey|IJ99_MxjY@s#-qUZP&kZq5;&!N_(%Kc3fB2#eo+Ny+u5ld!y-O=;I(7`O_#K zqFFSZ2jk%+ScKzwF!J`JN^Sp&4{g`xHyb}pLfkVF`vRlrLq>A^OBxEp=ULfOo8-$3Qjrnh3WY={3{>t=P|buSv!)T&+K-Il z7sIusMW!!QlG)(de;u}+Memc6Do2)#Rjx3H<7da6W6>WB#Z}L0K-BUd=ek)t$a^qy zb2dRln=acPN!LTcAK*YN?J^$a@Y-?Nqu}^mG1t6;qLM?6nXS z(=5ad%Z4}@;F*f6g95++9ngN@%0Vjf+CURho}NtU%N+i(5*@s?dzQdk-^f;w z!}tL-u}Ut0On;Gfi>hwnR-DzVlfUtI{Ef!HcTKG3_IuGkxde6S9f5`Fp40uy=8eTwoGF4r5br17Kh=KN?r>VM*gTRsl{UP6VYi! zNK6ckHUCgAli`0BnC1G7S~*r1R`cS`HdCF%B^p$VO={S$WAL`|h2X3PRtzIr__AF9x@#4sO zVW2*SEh&JeMUo7xls4~1YeT-5My-&h|F0@xfxT~4 zVTmhOu0bxxB8wG)1BO`wwGl)HxU$_w<(AeJLP^d+=}fTu znX(+1s;G`YNov$K)-jNr-V+WbrU_)>QtclX)x#Yw6jG+CzYp=xZzL_p*3~bsez9aU zEr>A`Wa9Bc7h^&yB9am!y@Q;oQdnAsB01;eES%aU}ESnZ2f2Qhg&J_ST3J?m9%k1<&~^4 zMIhlImZ*_1oG*?0nL6Trz#9ybsd<@`h=U7n=v^vqm4S<@TTuzgYwyK>3C%y_9w_P4 z3sutaBpady-Iu*D41&Le?O~Af|2I-(L_u1({##I^&E zFy0$Zu|MsPcx#{9stSZXus5Re%6jWS-TssH*3nNt{aO>uC0YTuU+1fl@)uB>YH!r7 zM2m*K3bY)^y|m{V-X~Vr*bU0Srr+*E(urcqfTNJ))Pk#D_?J7X1%yLd+P)UcqBNMwk*f%W7BR1b0>|X z3givSE#6DIs%g|>ca?N9@&{HqvTZI64q$aj{=kC9mq3e9gW1Z8F@mdRuK5%|ffZSo zWJ?S1WiS*mZf&^RW>8Jk7c`AP z>K8kSwK~i|{)lPY8ycPM zEECdFvqP1#toFZW0T2V&oBeBZG2( zlznRd0@v)lC2WoI@Wvk4aQmLw4}N&ha3;T-7jQwlGS|HtKCFnd6m@DnJ zV}CImg^OW48hPPjH1y`fcsiYous8BCjw3$|{h>b`p(yZ&UhIX<0&NYdbd+62DD3RM zJg0Nvy;5zhPzO7JInCa>PEu=`40Wgna6Q-S|Br zw>ZU&Ib0(o@D~&hFE);#LHW(#i>sPlmmN?8SU3CP>f?JVdn5-ch&(FUiUkZ7OSLJmOI&sSGV*;7RvsS-D^2Ke(6 z{?DbZl5lKf)~P;iSXs?+TEE`}p2q}>``P(iv(n<#EFD-GE>}g=iLgc-St~I&r%*g( zB`-`9&~IoGF$GH%OOWik2DR-y>cJ)U)%lW-AJd^FFnrJqYTKtYm)2YDsc+1UUcg-= zbb%v8_F0@7(&Mg94Ysj7ON4u^&+<*X2jTOs&=TzhF<0O+fdQJ*##78Cz9J=GOBCtR6u{V#xDDtCe=q-XcUW^yv zXcppeJf2Oa!2)B?9}VMqG#^h#{$f6j5gHChlj#t(q;}K@QsQP7pw4xxtU8vgZ*xHt zkx6WPe@W6vRj1*w+^~GMTUD>>w{EN}dEVL{*up$#pW5@Ei2Z3`%V>O~rC)6~ z@!k^qQ^j(kaH>##W}S$NsH`KkTac<%#V!T3S-46c0HvC#>x(H@a$}fvak!jX8@eeH z!Ea=HU4%j&l5hqJjIQ-k)`k-{)*LeCjdGy;WWs5fZ8tJON}j9(5tjkpN+{g`fi<^; z5m{~srQ3i;TY+57qT$w;7YD>7k!PqXwpp9i<@?vKq~YxS+q296woiwZnOVvj4DT7v ztk;LUAIqP;0tK6k3 z+?a$uZRM^Cl3kK0l)X5cZ}53D8RoV+SfB7czOd-N|&S{}D(PX+WNr;ByY znYgWKuYGZ87FQx^OtZB(@)|os0KMAf%x ztat=)ca%Hotac=c=&E)kR$^zVqwZIrISqk$gL!b}Toh*GP*oe(x)jOKrUU_C^>0Z5mwOqND(DeBaQs>{GyVOF~)%mhg_3#?!QoiCt6iJ4oq_Z-8UGqOMVRWsEs=u_I0UDfq2On(W zIB>_X%0*T8s1def*C_aVZXDKK>_ZFuA08P_H)$e!-b* zAerm&pu%ehmWDSdd9FdmnbPliEfOutV733f?`6@uz8kbGWZxMY$pxpo8_eh2ES@R> zmeQ2cY+F!t+@5yTi14h!7TTw)F6Ctq3lXWx`?5y+z(N8DVTx(tNE-2SvoN%-c4-iJ z;2!Li(E)58K?rn;r8vy~P*}cwCh?h7c5IRBA z$h?chTWODH-$AdlosEYM+K>}|*e4W4j@Ix`HZ*c>{gdaqlG^dF4Vu=NF?5Z)B9@<+ zAjj_^sk6BBXCsOx@;Gg|6<5i3NF+s+EgxFE2q40Zb|qBlozCfoCiHrHx#3Fjxh|O0 zBv0MO*VW@bSMsT`gCP^+rocN4;5%gvC*@Gj^VR_FgSXbz)&EvEmb~WW$x9ew6y8`k zB5+$uA?|Wf+2Nd#2x>&!8k8)!(q$K0s@QkbJgD9Ja%x`7vNA3%A!$TzNmQVOt12H= z$#N(q$#SIcyw|rj_PRYjkPQC>cRTj@J*uGY=lCcQwR=8lI1X@q=$<=qw%}=rw{bmp z=nZ{u;g5BFs~N)Mc<%Z0(R?z;(R4Ih1k-pP&!+Jl$K%)!#hl|BxCuPD5a&(p?)&;q~$(eN_u78Ov2aemTtib2+zSc6Md?JsYefxY_A4Zex zq;ie)i87bE>*#TCc%J7?$7A^4^St{1-gr8D=8s4IWH$8u@$i}FPyE^JndLnW`uac)~DKO7xBe-5>O z9bgyy>+|Q&t;-OloTn5?&W?_bj{ar6qt;u(D$JgrB}E#kyL&jlJau+`{skDzGgx8d n$2$ZGn2*}1`A<*Vx6ilFx6ilFgFpWc00960ZpPRt0Ez_wZmU9; literal 0 HcmV?d00001 diff --git a/incubator/docspell/0.0.1/ix_values.yaml b/incubator/docspell/0.0.1/ix_values.yaml new file mode 100644 index 00000000000..f1a8eee382b --- /dev/null +++ b/incubator/docspell/0.0.1/ix_values.yaml @@ -0,0 +1,539 @@ +image: + repository: tccr.io/truecharts/docspell-server + tag: v0.38.0@sha256:bcd3f651f83fc482a0bd8bb2606870146376656a438e7b8fe051f3496d405f3d + pullPolicy: IfNotPresent + +joexImage: + repository: tccr.io/truecharts/docspell-joex + tag: v0.38.0@sha256:16f2c2e32d8b20f8cdd1b62ae458ded2bbb16ed7bdc2727dc4a7624298ef7021 + pullPolicy: IfNotPresent + +dscImage: + repository: tccr.io/truecharts/docspell-dsc + tag: v0.38.0@sha256:86c8100df78f47f00291de0c2395917427f6caacbf896691559296c0a805a7a9 + pullPolicy: IfNotPresent + +args: + - /opt/server.conf + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +securityContext: + runAsNonRoot: false + readOnlyRootFilesystem: false + +dsc: + # -- You need to enable integration endpoint with HTTP Header in rest server + # -- If you enable allowed IPs you also need 127.0.0.1 as an entry there + enabled: false + # move | delete + imported_action: move + not_match_glob: "**/.*" + match_glob: "" + language: "" + tag: "" + +rest_server: + # -- App name, shows on the top right corner + app_name: Docspell + base_url: "" + logging: + # -- The format for the log messages. Can be one of: + # -- Json | Logfmt | Fancy | Plain + format: Fancy + # -- The minimum level to log. From lowest to highest: + # -- Trace | Debug | Info | Warn | Error + minimum_level: Warn + levels: + # -- Override the log level of specific loggers + docspell: Info + flywaydb: Info + binny: Info + http4s: Info + server_opts: + # -- Enable HTTP2 + enable_http2: false + # -- Maximum allowed connections + max_connections: 1024 + # -- Timeout for waiting for the first output of the response + response_timeout: 45s + # -- This is a hard limit to restrict the size of a batch that is returned when searching for items. + max_item_page_size: 200 + # -- The number of characters to return for each item notes when searching. + max_note_length: 180 + # -- This defines whether the classification form in the collective settings is displayed or not. + show_classification_settings: true + auth: + # -- How long a authentication token is valid + session_valid: 5 minutes + remember_me: + enabled: true + # -- How long the remember me cookie/token is valid. + valid: 30 days + download_all: + # -- How many files to allow in a zip. + max_files: 500 + # -- The maximum (uncompressed) size of the zip file contents. + max_size: 1400M + openid: + - enabled: false + display: Keycloak + provider: + provider_id: keycloak + client_id: docspell + client_secret: example-secret-439e-bf06-911e4cdd56a6 + scope: profile + authorize_url: http://localhost:8080/auth/realms/home/protocol/openid-connect/auth + token_url: http://localhost:8080/auth/realms/home/protocol/openid-connect/token + user_url: "" + logout_url: http://localhost:8080/auth/realms/home/protocol/openid-connect/logout + sign_key: b64:anVzdC1hLXRlc3Q= + sig_algo: RS512 + collective_key: lookup:docspell_collective + user_key: preferred_username + - enabled: false + display: Github + provider: + provider_id: github + client_id: + client_secret: + scope: "" + authorize_url: https://github.com/login/oauth/authorize + token_url: https://github.com/login/oauth/access_token + user_url: https://api.github.com/user + logout_url: "" + sign_key: "" + sig_algo: RS256 + collective_key: fixed:demo + user_key: login + oidc_auto_redirect: true + integration_endpoint: + enabled: false + # -- The priority to use when submitting files through this endpoint. + # low | high + priority: low + # -- The name used for the item "source" property when uploaded through this endpoint. + source_name: integration + allowed_ips: + enabled: false + ips: + - "127.0.0.1" + http_basic_auth: + enabled: false + realm: Docspell Integration + user: docspell-int + password: docspell-int + http_header: + enabled: false + header_name: Docspell-Integration + header_value: some-secret + admin_endpoint: + # -- Disables endpoint if empty + secret: "" + full_text_search: + solr: + # -- Used to tell solr when to commit the data + commit_within: 1000 + # -- If true, logs request and response bodies + log_verbose: false + def_type: lucene + # -- The default combiner for tokens. One of AND | OR + q_op: OR + backend: + # -- Enable or disable debugging for e-mail related functionality + mail_debug: false + database_schema: + # -- Whether to run main database migrations. + run_main_migrations: true + # -- Whether to run the fixup migrations. + run_fixup_migrations: true + # -- Use with care. This repairs all migrations in the database by updating their checksums and removing failed migrations. + repair_schema: false + signup: + # -- The mode defines if new users can signup or not. + # open | invite | closed + mode: open + # -- This is the period an invitation token is considered valid. + invite_time: 3 days + files: + # -- Defines the chunk size (in bytes) used to store the files. + chunk_size: 524288 + # -- The file content types that are considered valid. + valid_mime_types: [] + # database | minio | filesystem + default_store: database + stores: + database: + enabled: true + minio: + enabled: false + endpoint: http://localhost:9000 + access_key: access_key + secret_key: secret_key + bucket: docspell + # -- Highly NOT recommended + filesystem: + enabled: false + directory: /documents + addons: + # TODO: Check how exactly addons work. There are mentions of docker daemon + enabled: false + # -- Whether installing addons requiring network should be allowed or not. + allow_impure: true + # -- Define patterns of urls that are allowed to install addons from. + allowed_urls: + - "*" + # -- Define patterns of urls that are denied to install addons from. + denied_urls: [] + +joex: + logging: + # -- The format for the log messages. Can be one of: + # -- Json | Logfmt | Fancy | Plain + format: Fancy + # -- The minimum level to log. From lowest to highest: + # -- Trace | Debug | Info | Warn | Error + minimum_level: Warn + levels: + # -- Override the log level of specific loggers + docspell: Info + flywaydb: Info + binny: Info + http4s: Info + database_schema: + # -- Whether to run main database migrations. + run_main_migrations: false + # -- Whether to run the fixup migrations. + run_fixup_migrations: true + # -- Use with care. This repairs all migrations in the database by updating their checksums and removing failed migrations. + repair_schema: false + # -- Enable or disable debugging for e-mail related functionality. This applies to both sending and receiving mails. + mail_debug: false + send_mail: + # -- This is used as the List-Id e-mail header when mails are sent from docspell to its users + list_id: "" + scheduler: + # -- Number of processing allowed in parallel. + pool_size: 1 + # -- A counting scheme determines the ratio of how high and low priority jobs are run. + counting_scheme: 4,1 + # -- How many times a failed job should be retried until it enters failed state. + retries: 2 + # -- The delay until the next try is performed for a failed job. + retry_delay: 1 minute + # -- The queue size of log statements from a job. + log_buffer_size: 500 + # -- If no job is left in the queue, the scheduler will wait until a notify is requested. + wakeup_period: 30 minutes + periodic_scheduler: + # -- A fallback to start looking for due periodic tasks regularly. + wakeup_period: 10 minutes + user_tasks: + scan_mailbox: + # -- A limit of how many folders to scan through. + max_folders: 50 + # -- How many mails (headers only) to retrieve in one chunk. + mail_chunk_size: 50 + # -- A limit on how many mails to process in one job run. + max_mails: 500 + house_keeping: + # -- When the house keeping tasks execute. + schedule: Sun *-*-* 00:00:00 UTC + # -- This task removes invitation keys that have been created but not used. + cleanup_invites: + # -- Whether this task is enabled. + enabled: true + # -- The minimum age of invites to be deleted. + older_than: 30 days + # -- This task removes expired remember-me tokens. + cleanup_remember_me: + # -- Whether this task is enabled. + enabled: true + # -- The minimum age of tokens to be deleted. + older_than: 30 days + # -- Jobs store their log output in the database. + cleanup_jobs: + # -- Whether this task is enabled. + enabled: true + # -- The minimum age of jobs to delete. + older_than: 30 days + # -- This defines how many jobs are deleted in one transaction. + delete_batch: 100 + # -- Zip files created for downloading multiple files are cached and can be cleared periodically. + cleanup_downloads: + # -- Whether this task is enabled. + enabled: true + # -- The minimum age of a download file to be deleted. + older_than: 14 days + # -- Removes node entries that are not reachable anymore. + check_nodes: + # -- Whether this task is enabled. + enabled: true + # -- How often the node must be unreachable, before it is removed. + min_not_found: 2 + # -- Checks all files against their checksum + integrity_check: + enabled: true + # -- A periodic task to check for new releases of docspell. + update_check: + # -- Whether to enable this task + enabled: false + # -- Sends the mail without checking the latest release. + test_run: false + # -- When the update check should execute. + schedule: "Sun *-*-* 00:00:00 UTC" + # -- An account id in form of `collective/user` + sender_account: "" + # -- The SMTP connection id that should be used for sending the mail. + smtp_id: "" + # -- A list of recipient e-mail addresses. + recipients: [] + # -- The subject of the mail. + subject: Docspell {{ latestVersion }} is available + # -- The body of the mail. + body: | + Hello, + + You are currently running Docspell {{ currentVersion }}. Version *{{ latestVersion }}* + is now available, which was released on {{ releasedAt }}. Check the release page at + + + + Have a nice day! + + Docspell Update Check + # -- Configuration of text extraction + extraction: + pdf: + min_text_length: 500 + preview: + # -- When rendering a pdf page, use this dpi. + dpi: 32 + ocr: + # -- Images greater than this size are skipped. + max_image_size: 14000000 + page_range: + # -- Defines what pages to process. + begin: 10 + # -- The ghostscript command. + ghostscript: + command: + program: gs + args: + - -dNOPAUSE + - -dBATCH + - -dSAFER + - -sDEVICE=tiffscaled8 + - "-sOutputFile={{outfile}}" + - "{{infile}}" + timeout: 5 minutes + working_dir: /tmp/docspell-extraction + # -- The unpaper command. + unpaper: + command: + program: unpaper + args: + - "{{infile}}" + - "{{outfile}}" + timeout: 5 minutes + # -- The tesseract command. + tesseract: + command: + program: tesseract + args: + - "{{file}}" + - stdout + - -l + - "{{lang}}" + timeout: 5 minutes + text_analysis: + # -- Maximum length of text to be analyzed. + max_length: 0 + working_dir: /tmp/docspell-analysis + nlp: + # -- The mode for configuring NLP models + # -- full | basic | regexonly | disabled + mode: full + clear_interval: 15 minutes + # -- Restricts proposals for due dates. + max_due_date_years: 10 + regex_ner: + # -- Whether to enable custom NER annotation. + max_entries: 1000 + file_cache_time: 1 minute + classification: + # -- Whether to enable classification globally. + enabled: true + # -- This limit and `text-analysis.max-length` define how much memory is required. + item_count: 600 + # -- Enclose regexps in triple quotes. + classifiers: + useSplitWords: true + splitWordsTokenizerRegexp: '"""[\p{L}][\p{L}0-9]*|(?:\$ ?)?[0-9]+(?:\.[0-9]{2})?%?|\s+|."""' + splitWordsIgnoreRegexp: '"""\s+"""' + useSplitPrefixSuffixNGrams: true + maxNGramLeng: 4 + minNGramLeng: 1 + splitWordShape: chris4 + intern: true + # -- Configuration for converting files into PDFs. + convert: + # -- The chunk size used when storing files. + chunk_size: 524288 + # -- A string used to change the filename of the converted pdf file. + converted_filename_part: converted + # -- When reading images, this is the maximum size. + max_image_size: 14000000 + markdown: + # -- The CSS that is used to style the resulting HTML. + internal_css: "body { padding: 2em 5em; }" + wkhtmlpdf: + command: + program: wkhtmltopdf + args: + - -s + - A4 + - --encoding + - "{{enconding}}" + - --load-error-handling + - ignore + - --load-media-error-handling + - ignore + - "-" + - "{{outfile}}" + timeout: 2 minutes + working_dir: /tmp/docspell-convert + tesseract: + command: + program: tesseract + args: + - "{{infile}}" + - out + - -l + - "{{lang}}" + - pdf + - txt + timeout: 5 minutes + working_dir: /tmp/docspell-convert + unoconv: + command: + program: unoconv + args: + - -f + - pdf + - -o + - "{{outfile}}" + - "{{infile}}" + timeout: 5 minutes + working_dir: /tmp/docspell-convert + ocrmypdf: + enabled: true + command: + program: ocrmypdf + args: + - -l + - "{{lang}}" + - --skip-text + - --deskew + - -j + - "1" + - "{{infile}}" + - "{{outfile}}" + timeout: 5 minutes + working_dir: /tmp/docspell-convert + decrypt_pdf: + enabled: true + passwords: [] + files: + # -- Defines the chunk size (in bytes) used to store the files. + chunk_size: 524288 + # -- The file content types that are considered valid. + valid_mime_types: [] + # database | minio | filesystem + default_store: database + stores: + database: + enabled: true + minio: + enabled: false + endpoint: http://localhost:9000 + access_key: access_key + secret_key: secret_key + bucket: docspell + # -- Highly NOT recommended + filesystem: + enabled: false + directory: /documents + full_text_search: + solr: + # -- Used to tell solr when to commit the data + commit_within: 1000 + # -- If true, logs request and response bodies + log_verbose: false + def_type: lucene + # -- The default combiner for tokens. One of AND | OR + q_op: OR + migration: + index_all_chunk: 10 + addons: + # TODO: Check TODO above for addons + working_dir: /tmp/docspell-addons + cache_dir: /tmp/docspell-addons-cache + executor_config: + runner: trivial + fail_fast: true + run_timeout: 15 minutes + +service: + main: + ports: + main: + port: 10320 + protocol: HTTP + joex: + enabled: true + type: ClusterIP + ports: + joex: + enabled: true + port: 10321 + protocol: HTTP + +persistence: + server: + enabled: true + type: secret + readOnly: true + defaultMode: "0600" + objectName: '{{ include "tc.common.names.fullname" . }}-server-secret' + mountPath: /opt/server.conf + subPath: server.conf + joex: + enabled: true + type: secret + noMount: true + readOnly: true + defaultMode: "0600" + objectName: '{{ include "tc.common.names.fullname" . }}-joex-secret' + mountPath: /opt/joex.conf + subPath: joex.conf + import: + enabled: true + noMount: true + mountPath: /import +postgresql: + enabled: true + existingSecret: dbcreds + postgresqlUsername: docspell + postgresqlDatabase: docspell + +solr: + enabled: true + existingSecret: solrcreds + solrCores: docspell + solrUsername: docspell + +portal: + enabled: true diff --git a/incubator/docspell/0.0.1/questions.yaml b/incubator/docspell/0.0.1/questions.yaml new file mode 100644 index 00000000000..d2b9eea192f --- /dev/null +++ b/incubator/docspell/0.0.1/questions.yaml @@ -0,0 +1,3364 @@ +groups: + - name: Container Image + description: Image to be used for container + - name: Controller + description: Configure Workload Deployment + - name: Container Configuration + description: Additional Container Configuration + - name: App Configuration + description: App Specific Config Options + - name: Networking and Services + description: Configure Network and Services for Container + - name: Storage and Persistence + description: Persist and Share Data that is Separate from the Container + - name: Ingress + description: Ingress Configuration + - name: Security and Permissions + description: Configure Security Context and Permissions + - name: Resources and Devices + description: "Specify Resources/Devices to be Allocated to Workload" + - name: Middlewares + description: Traefik Middlewares + - name: Metrics + description: Metrics + - name: Addons + description: Addon Configuration + - name: Advanced + description: Advanced Configuration + - name: Documentation + description: Documentation +portals: + open: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: global + label: Global Settings + group: Controller + schema: + type: dict + hidden: true + attrs: + - variable: isSCALE + label: Flag this is SCALE + schema: + type: boolean + default: true + hidden: true + - variable: controller + group: Controller + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: advanced + label: Show Advanced Controller Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: Please specify type of workload to deploy + label: (Advanced) Controller Type + schema: + type: string + required: true + enum: + - value: deployment + description: Deployment + - value: statefulset + description: Statefulset + - value: daemonset + description: Daemonset + default: deployment + - variable: replicas + description: Number of desired pod replicas + label: Desired Replicas + schema: + type: int + required: true + default: 1 + - variable: strategy + description: Please specify type of workload to deploy + label: (Advanced) Update Strategy + schema: + type: string + required: true + enum: + - value: Recreate + description: "Recreate: Kill existing pods before creating new ones" + - value: RollingUpdate + description: "RollingUpdate: Create new pods and then kill old ones" + - value: OnDelete + description: "(Legacy) OnDelete: ignore .spec.template changes" + default: Recreate + - variable: expert + label: Show Expert Configuration Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Controller Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Controller Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: customextraargs + group: Controller + label: "Extra Args" + description: "Do not click this unless you know what you are doing" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: extraArgs + label: Extra Args + schema: + type: list + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + - variable: dsc + group: Container Configuration + label: DSC Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable DSC (Document Importer) + description: You need to enable integration endpoint with HTTP header as well in Rest Server configuration + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: imported_action + label: Action to perform on imported documents + schema: + type: string + default: move + enum: + - value: move + description: move + - value: delete + description: delete + - variable: not_match_glob + label: Not match glob pattern + schema: + type: string + default: "**/.*" + - variable: match_glob + label: Match glob pattern + schema: + type: string + default: "" + - variable: language + label: Language + schema: + type: string + default: "" + - variable: tag + label: Tag + schema: + type: string + default: "" + - variable: rest_server + group: Container Configuration + label: Rest Server Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: app_name + label: App Name + description: App name, shows on the top right corner + schema: + type: string + default: Docspell + - variable: base_url + label: Base URL + description: This is the base URL this application is deployed to. + schema: + type: string + default: "" + - variable: server_opts + label: Server Options + schema: + additional_attrs: true + type: dict + attrs: + - variable: enable_http2 + label: Enable HTTP2 + schema: + type: boolean + default: false + - variable: max_connections + label: Max Connections + schema: + type: int + default: 1024 + - variable: response_timeout + label: Response Timeout + schema: + type: string + default: 45s + - variable: max_item_page_size + label: Max Item Page Size + description: This is a hard limit to restrict the size of a batch that is returned when searching for items. + schema: + type: int + default: 200 + - variable: max_note_length + label: Max Note Length + description: The number of characters to return for each item notes when searching. + schema: + type: int + default: 180 + - variable: show_classification_settings + label: Show Classification Settings + description: This defines whether the classification form in the collective settings is displayed or not. + schema: + type: boolean + default: true + - variable: auth + label: Auth + schema: + additional_attrs: true + type: dict + attrs: + - variable: session_valid + label: Session Valid + description: How long a authentication token is valid + schema: + type: string + default: 5 minutes + - variable: remember_me + label: Remember Me + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Remember Me + schema: + type: boolean + default: true + - variable: valid + label: Valid + description: How long the remember me cookie/token is valid. + schema: + type: string + default: 30 days + - variable: download_all + label: Download + schema: + additional_attrs: true + type: dict + attrs: + - variable: max_files + label: Max Files + description: How many files to allow in a zip + schema: + type: int + default: 500 + - variable: max_size + label: Max Size + description: The maximum (uncompressed) size of the zip file contents. + schema: + type: string + default: 1400M + - variable: integration_endpoint + label: Integration Endpoint + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Integration Endpoint + schema: + type: boolean + default: false + - variable: priority + label: Priority + description: The priority to use when submitting files through this endpoint. + schema: + type: string + default: low + enum: + - value: low + description: low + - value: high + description: high + - variable: source_name + label: Source Name + description: The name used for the item "source" property when uploaded through this endpoint. + schema: + type: string + default: integration + - variable: allowed_ips + label: Allowed IPS + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Allowed IPs + schema: + type: boolean + default: false + - variable: ips + label: IPs + schema: + type: list + # TODO: Check how it's rendered on GUI + default: ["127.0.0.1"] + items: + - variable: ipEntry + label: IP Entry + schema: + type: string + required: true + default: "" + - variable: http_basic_auth + label: HTTP Basic Auth + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable HTTP Basic Auth + schema: + type: boolean + default: false + - variable: realm + label: Realm + schema: + type: string + default: "" + - variable: user + label: User + schema: + type: string + default: "" + - variable: password + label: Password + schema: + type: string + private: true + default: "" + - variable: http_header + label: HTTP Header + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable HTTP Header + schema: + type: boolean + default: false + - variable: header_name + label: Header Name + schema: + type: string + default: Docspell-Integration + - variable: header_value + label: Header Value + schema: + type: string + private: true + default: some-secret + - variable: admin_endpoint + label: Admin Endpoint + schema: + additional_attrs: true + type: dict + attrs: + - variable: secret + label: Secret + description: Disables endpoint if empty + schema: + type: string + private: true + default: "" + - variable: backend + label: Backend + schema: + additional_attrs: true + type: dict + attrs: + - variable: mail_debug + label: Mail Debug + description: Enable or disable debugging for e-mail related functionality + schema: + type: boolean + default: false + - variable: database_schema + label: Database Schema + schema: + additional_attrs: true + type: dict + attrs: + - variable: run_main_migrations + label: Run Main Migrations + description: Whether to run main database migrations. + schema: + type: boolean + default: true + - variable: run_fixup_migrations + label: Run Fixup Migrations + description: Whether to run fixup database migrations. + schema: + type: boolean + default: true + - variable: repair_schema + label: Repair Schema + description: Use with care. This repairs all migrations in the database by updating their checksums and removing failed migrations. + schema: + type: boolean + default: false + - variable: signup + label: Signup + schema: + additional_attrs: true + type: dict + attrs: + - variable: mode + label: Mode + description: The mode defines if new users can signup or not. + schema: + type: string + default: open + enum: + - value: open + description: open + - value: invite + description: invite + - value: closed + description: closed + - variable: invite_time + label: Invite Time + description: This is the period an invitation token is considered valid. + schema: + type: string + default: 3 days + - variable: joex + group: Container Configuration + label: Job Executor Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: database_schema + label: Database Schema + schema: + additional_attrs: true + type: dict + attrs: + - variable: run_main_migrations + label: Run Main Migrations + description: Whether to run main database migrations. + schema: + type: boolean + default: true + - variable: run_fixup_migrations + label: Run Fixup Migrations + description: Whether to run fixup database migrations. + schema: + type: boolean + default: true + - variable: repair_schema + label: Repair Schema + description: Use with care. This repairs all migrations in the database by updating their checksums and removing failed migrations. + schema: + type: boolean + default: false + - variable: mail_debug + label: Mail Debug + description: Enable or disable debugging for e-mail related functionality. This applies to both sending and receiving mails. + schema: + type: boolean + default: false + - variable: send_mail + label: Send Mail + schema: + additional_attrs: true + type: dict + attrs: + - variable: list_id + label: List ID + description: Enable or disable debugging for e-mail related functionality. This applies to both sending and receiving mails. + schema: + type: string + default: "" + - variable: scheduler + label: Scheduler + schema: + additional_attrs: true + type: dict + attrs: + - variable: pool_size + label: Pool Size + description: Number of processing allowed in parallel. + schema: + type: int + default: 1 + - variable: counting_scheme + label: Counting Scheme + description: A counting scheme determines the ratio of how high and low priority jobs are run. + schema: + type: string + default: 4,1 + - variable: retries + label: Retries + description: How many times a failed job should be retried until it enters failed state. + schema: + type: int + default: 2 + - variable: retry_delay + label: Retry Delay + description: The delay until the next try is performed for a failed job. + schema: + type: string + default: 1 minute + - variable: log_buffer_size + label: Log Buffer Size + description: The queue size of log statements from a job. + schema: + type: int + default: 500 + - variable: wakeup_period + label: Wakeup Period + description: If no job is left in the queue, the scheduler will wait until a notify is requested. + schema: + type: string + default: 30 minutes + - variable: periodic_scheduler + label: Periodic Scheduler + schema: + additional_attrs: true + type: dict + attrs: + - variable: wakeup_period + label: Wakeup Period + description: A fallback to start looking for due periodic tasks regularly. + schema: + type: string + default: 10 minutes + - variable: user_tasks + label: User Tasks + schema: + additional_attrs: true + type: dict + attrs: + - variable: scan_mailbox + label: Scan Mailbox + schema: + additional_attrs: true + type: dict + attrs: + - variable: max_folders + label: Max Folders + description: A limit of how many folders to scan through. + schema: + type: int + default: 50 + - variable: mail_chunk_size + label: Mail Chunk Size + description: How many mails (headers only) to retrieve in one chunk. + schema: + type: int + default: 50 + - variable: max_mails + label: Max Mails + description: A limit on how many mails to process in one job run. + schema: + type: int + default: 500 + - variable: house_keeping + label: House Keeping + schema: + additional_attrs: true + type: dict + attrs: + - variable: schedule + label: Schedule + description: When the house keeping tasks execute. + schema: + type: string + default: Sun *-*-* 00:00:00 UTC + - variable: cleanup_invites + label: Cleanup Invites + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Invite Cleanup + schema: + type: boolean + default: true + - variable: older_than + label: Older Than + description: The minimum age of invites to be deleted. + schema: + type: string + default: 30 days + - variable: cleanup_remember_me + label: Cleanup Remember Me + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Remember Me Cleanup + schema: + type: boolean + default: true + - variable: older_than + label: Older Than + description: The minimum age of tokens to be deleted. + schema: + type: string + default: 30 days + - variable: cleanup_jobs + label: Cleanup Jobs + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Jobs Cleanup + schema: + type: boolean + default: true + - variable: older_than + label: Older Than + description: The minimum age of jobs to delete. + schema: + type: string + default: 30 days + - variable: delete_batch + label: Delete Batch + description: This defines how many jobs are deleted in one transaction. + schema: + type: int + default: 100 + - variable: cleanup_downloads + label: Cleanup Downloads + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Downloads Cleanup + schema: + type: boolean + default: true + - variable: older_than + label: Older Than + description: The minimum age of a download file to be deleted. + schema: + type: string + default: 14 days + - variable: check_nodes + label: Check Nodes + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Check Nodes + schema: + type: boolean + default: true + - variable: min_not_found + label: Min Not Found + description: How often the node must be unreachable, before it is removed. + schema: + type: int + default: 2 + - variable: integrity_check + label: Integrity Check + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Integrity Check + schema: + type: boolean + default: true + - variable: TZ + label: Timezone + group: Container Configuration + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: envList + label: Extra Environment Variables + description: "Please be aware that some variables are set in the background, adding duplicates here might cause issues or prevent the app from starting..." + group: Container Configuration + schema: + type: list + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: expertpodconf + group: Container Configuration + label: Show Expert Configuration + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: tty + label: Enable TTY + description: Determines whether containers in a pod runs with TTY enabled. By default pod has it disabled. + group: Workload Details + schema: + type: boolean + default: false + - variable: stdin + label: Enable STDIN + description: Determines whether containers in a pod runs with stdin enabled. By default pod has it disabled. + group: Workload Details + schema: + type: boolean + default: false + - variable: termination + group: Container Configuration + label: Termination settings + schema: + additional_attrs: true + type: dict + attrs: + - variable: gracePeriodSeconds + label: Grace Period Seconds + schema: + type: int + default: 10 + - variable: podLabelsList + group: Container Configuration + label: Pod Labels + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: podAnnotationsList + group: Container Configuration + label: Pod Annotations + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: service + group: Networking and Services + label: Configure Service(s) + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: Main Service + description: The Primary service on which the healthcheck runs, often the webUI + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Service + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: LoadBalancer + description: LoadBalancer (Expose Ports) + - value: ClusterIP + description: ClusterIP (Do Not Expose Ports) + - value: Simple + description: Deprecated CHANGE THIS + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: advancedsvcset + label: Show Advanced Service Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + type: list + default: [] + items: + - variable: externalIP + label: External IP + schema: + type: string + - variable: ipFamilyPolicy + label: IP Family Policy + description: Specify the IP Policy + schema: + type: string + default: SingleStack + enum: + - value: SingleStack + description: SingleStack + - value: PreferDualStack + description: PreferDualStack + - value: RequireDualStack + description: RequireDualStack + - variable: ipFamilies + label: IP Families + description: The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: Main Service Port Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + description: This port exposes the container port on the service + schema: + type: int + default: 10320 + required: true + - variable: advanced + label: Show Advanced Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: Enable the Port + schema: + type: boolean + hidden: true + default: true + - variable: protocol + label: Port Type + schema: + type: string + default: HTTP + enum: + - value: HTTP + description: HTTP + - value: HTTPS + description: HTTPS + - value: TCP + description: TCP + - value: UDP + description: UDP + - variable: nodePort + label: Node Port (Optional) + description: This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: Target Port + description: The internal(!) port on the container the Application runs on + schema: + type: int + default: 10320 + - variable: joex + label: Joex Service + description: Joex Service + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Service + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: ClusterIP + enum: + - value: LoadBalancer + description: LoadBalancer (Expose Ports) + - value: ClusterIP + description: ClusterIP (Do Not Expose Ports) + - value: Simple + description: Deprecated CHANGE THIS + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: advancedsvcset + label: Show Advanced Service Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + type: list + default: [] + items: + - variable: externalIP + label: External IP + schema: + type: string + - variable: ipFamilyPolicy + label: IP Family Policy + description: Specify the IP Policy + schema: + type: string + default: SingleStack + enum: + - value: SingleStack + description: SingleStack + - value: PreferDualStack + description: PreferDualStack + - value: RequireDualStack + description: RequireDualStack + - variable: ipFamilies + label: IP Families + description: The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: joex + label: Joex Service Port Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + description: This port exposes the container port on the service + schema: + type: int + default: 10321 + required: true + - variable: advanced + label: Show Advanced Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: Enable the Port + schema: + type: boolean + hidden: true + default: true + - variable: protocol + label: Port Type + schema: + type: string + default: HTTP + enum: + - value: HTTP + description: HTTP + - value: HTTPS + description: HTTPS + - value: TCP + description: TCP + - value: UDP + description: UDP + - variable: nodePort + label: Node Port (Optional) + description: This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: Target Port + description: The internal(!) port on the container the Application runs on + schema: + type: int + default: 10321 + - variable: serviceexpert + group: Networking and Services + label: Show Expert Config + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: Networking and Services + label: Host-Networking (Complicated) + schema: + type: boolean + default: false + - variable: externalInterfaces + description: Add External Interfaces + label: Add external Interfaces + group: Networking + schema: + type: list + items: + - variable: interfaceConfiguration + description: Interface Configuration + label: Interface Configuration + schema: + type: dict + $ref: + - "normalize/interfaceConfiguration" + attrs: + - variable: hostInterface + description: Please Specify Host Interface + label: Host Interface + schema: + type: string + required: true + $ref: + - "definitions/interface" + - variable: ipam + description: Define how IP Address will be managed + label: IP Address Management + schema: + type: dict + required: true + attrs: + - variable: type + description: Specify type for IPAM + label: IPAM Type + schema: + type: string + required: true + enum: + - value: dhcp + description: Use DHCP + - value: static + description: Use Static IP + show_subquestions_if: static + subquestions: + - variable: staticIPConfigurations + label: Static IP Addresses + schema: + type: list + items: + - variable: staticIP + label: Static IP + schema: + type: ipaddr + cidr: true + - variable: staticRoutes + label: Static Routes + schema: + type: list + items: + - variable: staticRouteConfiguration + label: Static Route Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: destination + label: Destination + schema: + type: ipaddr + cidr: true + required: true + - variable: gateway + label: Gateway + schema: + type: ipaddr + cidr: false + required: true + - variable: dnsPolicy + group: Networking and Services + label: dnsPolicy + schema: + type: string + default: "" + enum: + - value: "" + description: Default + - value: ClusterFirst + description: ClusterFirst + - value: ClusterFirstWithHostNet + description: ClusterFirstWithHostNet + - value: None + description: None + - variable: dnsConfig + label: DNS Configuration + group: Networking and Services + description: Specify custom DNS configuration which will be applied to the pod + schema: + additional_attrs: true + type: dict + attrs: + - variable: nameservers + label: Name Servers + schema: + default: [] + type: list + items: + - variable: nameserver + label: Name Server + schema: + type: string + - variable: options + label: Options + schema: + default: [] + type: list + items: + - variable: option + label: Option Entry + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: searches + label: Searches + schema: + default: [] + type: list + items: + - variable: search + label: Search Entry + schema: + type: string + - variable: serviceList + label: Add Manual Custom Services + group: Networking and Services + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: Custom Service + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the service + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Name + schema: + type: string + default: "" + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: LoadBalancer + description: LoadBalancer (Expose Ports) + - value: ClusterIP + description: ClusterIP (Do Not Expose Ports) + - value: Simple + description: Deprecated CHANGE THIS + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: advancedsvcset + label: Show Advanced Service Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + type: list + default: [] + items: + - variable: externalIP + label: External IP + schema: + type: string + - variable: ipFamilyPolicy + label: IP Family Policy + description: Specify the IP Policy + schema: + type: string + default: SingleStack + enum: + - value: SingleStack + description: SingleStack + - value: PreferDualStack + description: PreferDualStack + - value: RequireDualStack + description: RequireDualStack + - variable: ipFamilies + label: IP Families + description: (Advanced) The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - variable: portsList + label: Additional Service Ports + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: Custom ports + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Port + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Port Name + schema: + type: string + default: "" + - variable: protocol + label: Port Type + schema: + type: string + default: TCP + enum: + - value: HTTP + description: HTTP + - value: HTTPS + description: HTTPS + - value: TCP + description: TCP + - value: UDP + description: UDP + - variable: targetPort + label: Target Port + description: This port exposes the container port on the service + schema: + type: int + required: true + - variable: port + label: Container Port + schema: + type: int + required: true + - variable: size + label: Size quotum of Storage + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: hostPathType + label: (Advanced) hostPath Type + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: DirectoryOrCreate + description: DirectoryOrCreate + - value: Directory + description: Directory + - value: FileOrCreate + description: FileOrCreate + - value: File + description: File + - value: Socket + description: Socket + - value: CharDevice + description: CharDevice + - value: BlockDevice + description: BlockDevice + - variable: storageClass + label: (Advanced) storageClass + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: SCALE-ZFS + - variable: accessMode + label: (Advanced) Access Mode + description: Allow or disallow multiple PVC's writhing to the same PV + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: ReadWriteOnce + enum: + - value: ReadWriteOnce + description: ReadWriteOnce + - value: ReadOnlyMany + description: ReadOnlyMany + - value: ReadWriteMany + description: ReadWriteMany + - variable: advanced + label: Show Advanced Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: import + label: Import Storage + description: Mounted to DSC container at /import + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: simplePVC + enum: + - value: simplePVC + description: PVC (simple) + - value: simpleHP + description: Host Path (simple) + - value: emptyDir + description: emptyDir + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: nfs + description: NFS Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: setPermissionsSimple + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "simpleHP"]] + type: boolean + default: false + - variable: setPermissions + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPathSimple + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size quotum of Storage + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: hostPathType + label: (Advanced) hostPath Type + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: DirectoryOrCreate + description: DirectoryOrCreate + - value: Directory + description: Directory + - value: FileOrCreate + description: FileOrCreate + - value: File + description: File + - value: Socket + description: Socket + - value: CharDevice + description: CharDevice + - value: BlockDevice + description: BlockDevice + - variable: storageClass + label: (Advanced) storageClass + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: SCALE-ZFS + - variable: accessMode + label: (Advanced) Access Mode + description: Allow or disallow multiple PVC's writhing to the same PV + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: ReadWriteOnce + enum: + - value: ReadWriteOnce + description: ReadWriteOnce + - value: ReadOnlyMany + description: ReadOnlyMany + - value: ReadWriteMany + description: ReadWriteMany + - variable: advanced + label: Show Advanced Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: persistenceList + label: Additional App Storage + group: Storage and Persistence + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: Custom Storage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the storage + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Name (Optional) + description: "Not required, please set to config when mounting /config or temp when mounting /tmp" + schema: + type: string + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: simpleHP + enum: + - value: simplePVC + description: PVC (Simple) + - value: simpleHP + description: Host Path (Simple) + - value: emptyDir + description: emptyDir + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: nfs + description: NFS Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: setPermissionsSimple + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "simpleHP"]] + type: boolean + default: false + - variable: setPermissions + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPathSimple + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: Mount Path + description: Path inside the container the storage is mounted + schema: + type: string + default: "" + required: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size Quotum of Storage + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: hostPathType + label: (Advanced) Host Path Type + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: DirectoryOrCreate + description: DirectoryOrCreate + - value: Directory + description: Directory + - value: FileOrCreate + description: FileOrCreate + - value: File + description: File + - value: Socket + description: Socket + - value: CharDevice + description: CharDevice + - value: BlockDevice + description: BlockDevice + - variable: storageClass + label: (Advanced) StorageClass + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: SCALE-ZFS + - variable: accessMode + label: (Advanced) Access Mode + description: Allow or disallow multiple PVC's writhing to the same PV + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: ReadWriteOnce + enum: + - value: ReadWriteOnce + description: ReadWriteOnce + - value: ReadOnlyMany + description: ReadOnlyMany + - value: ReadWriteMany + description: ReadWriteMany + - variable: advanced + label: Show Advanced Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: ingress + label: "" + group: Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: Main Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: tls + label: TLS-Settings + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: Select TrueNAS SCALE Certificate + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: (Advanced) Traefik Entrypoint + description: Entrypoint used by Traefik when using Traefik as Ingress Provider + schema: + type: string + default: websecure + required: true + - variable: middlewares + label: Traefik Middlewares + description: Add previously created Traefik Middlewares to this Ingress + schema: + type: list + default: [] + items: + - variable: name + label: Name + schema: + type: string + default: "" + required: true + - variable: expert + label: Show Expert Configuration Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enableFixedMiddlewares + description: These middlewares enforce a number of best practices. + label: Enable Default Middlewares + schema: + type: boolean + default: true + - variable: ingressClassName + label: IngressClass Name + schema: + type: string + default: "" + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: ingressList + label: Add Manual Custom Ingresses + group: Ingress + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: Custom Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Name + schema: + type: string + default: "" + - variable: ingressClassName + label: IngressClass Name + schema: + type: string + default: "" + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: service + label: Linked Service + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Service Name + schema: + type: string + default: "" + - variable: port + label: Service Port + schema: + type: int + - variable: tls + label: TLS-Settings + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: Select TrueNAS SCALE Certificate + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: Traefik Entrypoint + description: Entrypoint used by Traefik when using Traefik as Ingress Provider + schema: + type: string + default: websecure + required: true + - variable: middlewares + label: Traefik Middlewares + description: Add previously created Traefik Middlewares to this Ingress + schema: + type: list + default: [] + items: + - variable: name + label: Name + schema: + type: string + default: "" + required: true + - variable: security + label: Container Security Settings + group: Security and Permissions + schema: + type: dict + additional_attrs: true + attrs: + - variable: editsecurity + label: Change PUID / UMASK values + description: By enabling this you override default set values. + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: PUID + label: Process User ID - PUID + description: When supported by the container, this sets the User ID running the Application Process. Not supported by all Apps + schema: + type: int + default: 568 + - variable: UMASK + label: UMASK + description: When supported by the container, this sets the UMASK for the App. Not supported by all Apps + schema: + type: string + default: "002" + - variable: advancedSecurity + label: Show Advanced Security Settings + group: Security and Permissions + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: Security Context + schema: + additional_attrs: true + type: dict + attrs: + - variable: privileged + label: Privileged mode + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: ReadOnly Root Filesystem + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: Allow Privilege Escalation + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: runAsNonRoot + schema: + type: boolean + default: false + - variable: capabilities + label: Capabilities + schema: + additional_attrs: true + type: dict + attrs: + - variable: drop + label: Drop Capability + schema: + type: list + default: [] + items: + - variable: dropEntry + label: "" + schema: + type: string + - variable: add + label: Add Capability + schema: + type: list + default: [] + items: + - variable: addEntry + label: "" + schema: + type: string + - variable: podSecurityContext + group: Security and Permissions + label: Pod Security Context + schema: + additional_attrs: true + type: dict + attrs: + - variable: runAsUser + label: runAsUser + description: The UserID of the user running the application + schema: + type: int + default: 0 + - variable: runAsGroup + label: runAsGroup + description: The groupID this App of the user running the application + schema: + type: int + default: 0 + - variable: fsGroup + label: fsGroup + description: The group that should own ALL storage. + schema: + type: int + default: 568 + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: OnRootMismatch + enum: + - value: OnRootMismatch + description: OnRootMismatch + - value: Always + description: Always + - variable: supplementalGroups + label: Supplemental Groups + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: Supplemental Group + schema: + type: int + + - variable: advancedresources + label: Set Custom Resource Limits/Requests (Advanced) + group: Resources and Devices + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: resources + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: limits + label: Advanced Limit Resource Consumption + schema: + additional_attrs: true + type: dict + attrs: + - variable: cpu + label: CPU + description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/docs/manual/SCALE%20Apps/indepth/validation" + schema: + type: string + default: 4000m + valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$' + - variable: memory + label: RAM + description: "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/docs/manual/SCALE%20Apps/indepth/validation" + schema: + type: string + default: 8Gi + valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' + - variable: requests + label: "Minimum Resources Required (request)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: cpu + label: CPU + description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/docs/manual/SCALE%20Apps/indepth/validation" + schema: + type: string + default: 10m + valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$' + - variable: memory + label: "RAM" + description: "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/docs/manual/SCALE%20Apps/indepth/validation" + schema: + type: string + default: 50Mi + valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' + - variable: deviceList + label: Mount USB Devices + group: Resources and Devices + schema: + type: list + default: [] + items: + - variable: deviceListEntry + label: Device + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Storage + schema: + type: boolean + default: true + - variable: type + label: (Advanced) Type of Storage + description: Sets the persistence type + schema: + type: string + default: hostPath + hidden: true + - variable: readOnly + label: readOnly + schema: + type: boolean + default: false + - variable: hostPath + label: Host Device Path + description: Path to the device on the host system + schema: + type: path + - variable: mountPath + label: Container Device Path + description: Path inside the container the device is mounted + schema: + type: string + default: "/dev/ttyACM0" + # Specify GPU configuration + - variable: scaleGPU + label: GPU Configuration + group: Resources and Devices + schema: + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + - variable: horizontalPodAutoscaler + group: Advanced + label: (Advanced) Horizontal Pod Autoscaler + schema: + type: list + default: [] + items: + - variable: hpaEntry + label: HPA Entry + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + default: "" + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: Target + description: Deployment name, Defaults to Main Deployment + schema: + type: string + default: "" + - variable: minReplicas + label: Minimum Replicas + schema: + type: int + default: 1 + - variable: maxReplicas + label: Maximum Replicas + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: Target CPU Utilization Percentage + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: Target Memory Utilization Percentage + schema: + type: int + default: 80 + - variable: networkPolicy + group: Advanced + label: (Advanced) Network Policy + schema: + type: list + default: [] + items: + - variable: netPolicyEntry + label: Network Policy Entry + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + default: "" + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: policyType + label: Policy Type + schema: + type: string + default: "" + enum: + - value: "" + description: Default + - value: ingress + description: Ingress + - value: egress + description: Egress + - value: ingress-egress + description: Ingress and Egress + - variable: egress + label: Egress + schema: + type: list + default: [] + items: + - variable: egressEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: to + label: To + schema: + type: list + default: [] + items: + - variable: toEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: ipBlock + label: IP Block + schema: + additional_attrs: true + type: dict + attrs: + - variable: cidr + label: CIDR + schema: + type: string + default: "" + - variable: except + label: Except + schema: + type: list + default: [] + items: + - variable: exceptint + label: "" + schema: + type: string + - variable: namespaceSelector + label: Namespace Selector + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: podSelector + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: ports + label: Ports + schema: + type: list + default: [] + items: + - variable: portsEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + - variable: endPort + label: End Port + schema: + type: int + - variable: protocol + label: Protocol + schema: + type: string + default: TCP + enum: + - value: TCP + description: TCP + - value: UDP + description: UDP + - value: SCTP + description: SCTP + - variable: ingress + label: Ingress + schema: + type: list + default: [] + items: + - variable: ingressEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: from + label: From + schema: + type: list + default: [] + items: + - variable: fromEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: ipBlock + label: IP Block + schema: + additional_attrs: true + type: dict + attrs: + - variable: cidr + label: CIDR + schema: + type: string + default: "" + - variable: except + label: Except + schema: + type: list + default: [] + items: + - variable: exceptint + label: "" + schema: + type: string + - variable: namespaceSelector + label: Namespace Selector + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: podSelector + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: ports + label: Ports + schema: + type: list + default: [] + items: + - variable: portsEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + - variable: endPort + label: End Port + schema: + type: int + - variable: protocol + label: Protocol + schema: + type: string + default: TCP + enum: + - value: TCP + description: TCP + - value: UDP + description: UDP + - value: SCTP + description: SCTP + - variable: addons + group: Addons + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: codeserver + label: Codeserver + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: git + label: Git Settings + schema: + additional_attrs: true + type: dict + attrs: + - variable: deployKey + description: Raw SSH Private Key + label: Deploy Key + schema: + type: string + - variable: deployKeyBase64 + description: Base64-encoded SSH private key. When both variables are set, the raw SSH key takes precedence + label: Deploy Key Base64 + schema: + type: string + - variable: service + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: NodePort + description: Deprecated CHANGE THIS + - value: ClusterIP + description: ClusterIP + - value: LoadBalancer + description: LoadBalancer + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: advancedsvcset + label: Show Advanced Service Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + type: list + default: [] + items: + - variable: externalIP + label: External IP + schema: + type: string + - variable: ipFamilyPolicy + label: IP Family Policy + description: Specify the IP Policy + schema: + type: string + default: SingleStack + enum: + - value: SingleStack + description: SingleStack + - value: PreferDualStack + description: PreferDualStack + - value: RequireDualStack + description: RequireDualStack + - variable: ipFamilies + label: IP Families + description: (Advanced) The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - variable: ports + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: codeserver + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + default: 36107 + - variable: nodePort + description: Leave Empty to Disable + label: nodePort DEPRECATED + schema: + type: int + default: 36107 + - variable: envList + label: Codeserver Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: promtail + label: Promtail + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: loki + label: Loki URL + schema: + type: string + required: true + - variable: logs + label: Log Paths + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: path + label: Path + schema: + type: string + required: true + - variable: args + label: Promtail Command Line Arguments + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + required: true + - variable: envList + label: Promtail Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: netshoot + label: Netshoot + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: envList + label: Netshoot Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: vpn + label: VPN + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type + schema: + type: string + default: disabled + enum: + - value: disabled + description: disabled + - value: openvpn + description: OpenVPN + - value: wireguard + description: Wireguard + - value: tailscale + description: Tailscale + - variable: openvpn + label: OpenVPN Settings + schema: + type: dict + show_if: [["type", "=", "openvpn"]] + attrs: + - variable: username + label: Authentication Username (Optional) + description: Authentication Username, Optional + schema: + type: string + default: "" + - variable: password + label: Authentication Password + description: Authentication Credentials + schema: + type: string + default: "" + required: true + - variable: tailscale + label: Tailscale Settings + schema: + type: dict + show_if: [["type", "=", "tailscale"]] + attrs: + - variable: authkey + label: Authentication Key + description: Provide an auth key to automatically authenticate the node as your user account. + schema: + type: string + private: true + default: "" + - variable: accept_dns + label: Accept DNS + description: Accept DNS configuration from the admin console. + schema: + type: boolean + default: false + - variable: userspace + label: Userspace + description: Userspace Networking mode allows running Tailscale where you do not have access to create a VPN tunnel device. + schema: + type: boolean + default: false + - variable: routes + label: Routes + description: Expose physical subnet routes to your entire Tailscale network. + schema: + type: string + default: "" + - variable: dest_ip + label: Destination IP + description: Tells the DNAT mechanism which Destination IP to set in the IP header, and where to send packets that are matched. + schema: + type: string + default: "" + - variable: sock5_server + label: Sock5 Server + description: Sock5 Server + schema: + type: string + default: "" + - variable: extra_args + label: Extra Args + description: Extra Args + schema: + type: string + default: "" + - variable: daemon_extra_args + label: Tailscale Daemon Extra Args + description: Tailscale Daemon Extra Args + schema: + type: string + default: "" + - variable: killSwitch + label: Enable Killswitch + schema: + type: boolean + show_if: [["type", "!=", "disabled"]] + default: true + - variable: excludedNetworks_IPv4 + label: Killswitch Excluded IPv4 networks + description: List of Killswitch Excluded IPv4 Addresses + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: networkv4 + label: IPv4 Network + schema: + type: string + required: true + - variable: excludedNetworks_IPv6 + label: Killswitch Excluded IPv6 networks + description: "List of Killswitch Excluded IPv6 Addresses" + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: networkv6 + label: IPv6 Network + schema: + type: string + required: true + - variable: configFile + label: VPN Config File Location + schema: + type: dict + show_if: [["type", "!=", "disabled"]] + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Type + schema: + type: string + default: hostPath + hidden: true + - variable: hostPathType + label: hostPathType + schema: + type: string + default: File + hidden: true + - variable: noMount + label: noMount + schema: + type: boolean + default: true + hidden: true + - variable: hostPath + label: Full Path to File + description: "Path to your local VPN config file for example: /mnt/tank/vpn.conf or /mnt/tank/vpn.ovpn" + schema: + type: string + default: "" + - variable: envList + label: VPN Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: docs + group: Documentation + label: Please read the documentation at https://truecharts.org + description: Please read the documentation at +
https://truecharts.org + schema: + additional_attrs: true + type: dict + attrs: + - variable: confirmDocs + label: I have checked the documentation + schema: + type: boolean + default: true + - variable: donateNag + group: Documentation + label: Please consider supporting TrueCharts, see https://truecharts.org/sponsor + description: Please consider supporting TrueCharts, see +
https://truecharts.org/sponsor + schema: + additional_attrs: true + type: dict + attrs: + - variable: confirmDonate + label: I have considered donating + schema: + type: boolean + default: true + hidden: true diff --git a/incubator/docspell/0.0.1/templates/_dsc.tpl b/incubator/docspell/0.0.1/templates/_dsc.tpl new file mode 100644 index 00000000000..8fbfe5080f8 --- /dev/null +++ b/incubator/docspell/0.0.1/templates/_dsc.tpl @@ -0,0 +1,41 @@ +{{/* Define the dsc container */}} +{{- define "docspell.dsc" -}} +image: {{ .Values.dscImage.repository }}:{{ .Values.dscImage.tag }} +imagePullPolicy: {{ .Values.dscImage.pullPolicy }} +securityContext: + runAsUser: {{ .Values.podSecurityContext.runAsUser }} + runAsGroup: {{ .Values.podSecurityContext.runAsGroup }} + readOnlyRootFilesystem: {{ .Values.securityContext.readOnlyRootFilesystem }} + runAsNonRoot: {{ .Values.securityContext.runAsNonRoot }} +volumeMounts: + - name: import + mountPath: /import +command: + - dsc + - {{ printf "%v:%v" "http://localhost" .Values.service.main.ports.main.port | quote }} + - watch + - --recursive + - --integration + - --header + - {{ printf "%v:%v" .Values.rest_server.integration_endpoint.http_header.header_name .Values.rest_server.integration_endpoint.http_header.header_value | quote }} + {{- if .Values.dsc.language }} + - --language {{ .Values.dsc.language }} + {{- end }} + {{- if .Values.dsc.tag }} + - --tag {{ .Values.dsc.tag }} + {{- end }} + {{- if .Values.dsc.not_match_glob }} + - --not-matches + - {{ .Values.dsc.not_match_glob | quote }} + {{- end }} + {{- if .Values.dsc.match_glob }} + - --matches + - {{ .Values.dsc.match_glob | quote }} + {{- end }} + {{- if eq .Values.dsc.imported_action "delete" }} + - --delete + {{- else if eq .Values.dsc.imported_action "move" }} + - --move {{ .Values.persistence.import.mountPath }}/imported + {{- end }} + - {{ .Values.persistence.import.mountPath }}/docs +{{- end -}} diff --git a/incubator/docspell/0.0.1/templates/_joex.tpl b/incubator/docspell/0.0.1/templates/_joex.tpl new file mode 100644 index 00000000000..38ed233edad --- /dev/null +++ b/incubator/docspell/0.0.1/templates/_joex.tpl @@ -0,0 +1,46 @@ +{{/* Define the joex container */}} +{{- define "docspell.joex" -}} +image: {{ .Values.joexImage.repository }}:{{ .Values.joexImage.tag }} +imagePullPolicy: {{ .Values.joexImage.pullPolicy }} +securityContext: + runAsUser: {{ .Values.podSecurityContext.runAsUser }} + runAsGroup: {{ .Values.podSecurityContext.runAsGroup }} + readOnlyRootFilesystem: {{ .Values.securityContext.readOnlyRootFilesystem }} + runAsNonRoot: {{ .Values.securityContext.runAsNonRoot }} +args: + - /opt/joex.conf +volumeMounts: + - name: joex + mountPath: /opt/joex.conf + subPath: joex.conf + readOnly: true +ports: + - containerPort: {{ .Values.service.joex.ports.joex.port }} + name: joex +{{/* TODO: Find out a path for healthchecks and come back to enable probes +readinessProbe: + httpGet: + path: / + port: {{ .Values.service.joex.ports.joex.port }} + initialDelaySeconds: {{ .Values.probes.readiness.spec.initialDelaySeconds }} + timeoutSeconds: {{ .Values.probes.readiness.spec.timeoutSeconds }} + periodSeconds: {{ .Values.probes.readiness.spec.periodSeconds }} + failureThreshold: {{ .Values.probes.readiness.spec.failureThreshold }} +livenessProbe: + httpGet: + path: / + port: {{ .Values.service.joex.ports.joex.port }} + initialDelaySeconds: {{ .Values.probes.liveness.spec.initialDelaySeconds }} + timeoutSeconds: {{ .Values.probes.liveness.spec.timeoutSeconds }} + periodSeconds: {{ .Values.probes.liveness.spec.periodSeconds }} + failureThreshold: {{ .Values.probes.liveness.spec.failureThreshold }} +startupProbe: + httpGet: + path: / + port: {{ .Values.service.joex.ports.joex.port }} + initialDelaySeconds: {{ .Values.probes.startup.spec.initialDelaySeconds }} + timeoutSeconds: {{ .Values.probes.startup.spec.timeoutSeconds }} + periodSeconds: {{ .Values.probes.startup.spec.periodSeconds }} + failureThreshold: {{ .Values.probes.startup.spec.failureThreshold }} +*/}} +{{- end -}} diff --git a/incubator/docspell/0.0.1/templates/_secret.tpl b/incubator/docspell/0.0.1/templates/_secret.tpl new file mode 100644 index 00000000000..14be9d97e85 --- /dev/null +++ b/incubator/docspell/0.0.1/templates/_secret.tpl @@ -0,0 +1,616 @@ +{{/* Define the secret */}} +{{- define "docspell.secret" -}} + +{{- $serverSecretName := printf "%s-server-secret" (include "tc.common.names.fullname" .) }} +{{- $joexSecretName := printf "%s-joex-secret" (include "tc.common.names.fullname" .) }} +{{- $storeSecretName := printf "%s-store-secret" (include "tc.common.names.fullname" .) }} + +{{- $server := .Values.rest_server -}} +{{- $serverID := printf "server-%v" (randAlphaNum 10) -}} + +{{- $joex := .Values.joex -}} +{{- $joexID := printf "joex-%v" (randAlphaNum 10) -}} + +{{- $server_secret := "" }} +{{- with (lookup "v1" "Secret" .Release.Namespace $storeSecretName) }} +{{- $server_secret = (index .data "server_secret") }} +{{- else }} +{{- $server_secret = printf "b64:%v" (randAlphaNum 32 | b64enc) }} +{{- end }} + +{{- $new_invite_password := "" }} +{{- with (lookup "v1" "Secret" .Release.Namespace $storeSecretName) }} +{{- $new_invite_password = (index .data "new_invite_password") }} +{{- else }} +{{- $new_invite_password = randAlphaNum 32 | b64enc }} +{{- end }} + +--- + +apiVersion: v1 +kind: Secret +type: Opaque +metadata: + name: {{ $storeSecretName }} + labels: + {{- include "tc.common.labels" . | nindent 4 }} +stringData: + server_secret: {{ $server_secret }} + new_invite_password: {{ $new_invite_password }} +--- +apiVersion: v1 +kind: Secret +type: Opaque +metadata: + name: {{ $serverSecretName }} + labels: + {{- include "tc.common.labels" . | nindent 4 }} +stringData: + server.conf: | + docspell.server { + app-name = {{ $server.app_name | quote }} + app-id = {{ $serverID | quote }} + base-url = {{ $server.base_url | default (printf "%v:%v" "http://localhost" .Values.service.main.ports.main.port) | quote }} + internal-url = {{ printf "%v:%v" "http://localhost" .Values.service.main.ports.main.port | quote }} + {{- $logging := $server.logging }} + logging { + format = {{ $logging.format | quote }} + minimum-level = {{ $logging.minimum_level | quote }} + levels = { + "docspell" = {{ $logging.levels.docspell | quote }} + "org.flywaydb" = {{ $logging.levels.flywaydb | quote }} + "binny" = {{ $logging.levels.binny | quote }} + "org.http4s" = {{ $logging.levels.http4s | quote }} + } + } + bind { + address = "0.0.0.0" + port = {{ .Values.service.main.ports.main.port }} + } + {{- $server_opts := $server.server_opts }} + server-options { + enable-http-2 = {{ $server_opts.enable_http2 }} + max-connections = {{ $server_opts.max_connections }} + response-timeout = {{ $server_opts.response_timeout }} + } + max-item-page-size = {{ $server.max_item_page_size }} + max-note-length = {{ $server.max_note_length }} + show-classification-settings = {{ $server.show_classification_settings }} + {{- $auth := $server.auth }} + auth { + server-secret = {{ $server_secret | quote }} + session-valid = {{ $auth.session_valid | quote }} + remember-me { + enabled = {{ $auth.remember_me.enabled }} + valid = {{ $auth.remember_me.valid | quote }} + } + } + {{- $download_all := $server.download_all }} + download-all { + max-files = {{ $download_all.max_files }} + max-size = {{ $download_all.max_size }} + } + {{- $openid := $server.openid }} + openid = + [ + {{- range initial $openid }} + { + enabled = {{ .enabled }}, + display = {{ .display | quote }} + provider = { + provider-id = {{ .provider.provider_id | quote }}, + client-id = {{ .provider.client_id | quote }}, + client-secret = {{ .provider.client_secret | quote }}, + scope = {{ .provider.scope | quote }}, + authorize-url = {{ .provider.authorize_url | quote }}, + token-url = {{ .provider.token_url | quote }}, + {{- with .provider.user_url }} + user-url = {{ . | quote }}, + {{- end }} + {{- with .provider.logout_url }} + logout-url = {{ . | quote }}, + {{- end }} + sign-key = {{ .provider.sign_key | quote }}, + sig-algo = {{ .provider.sig_algo | quote }} + }, + collective-key = {{ .collective_key | quote }}, + user-key = {{ .user_key | quote }} + }, + {{- end }} + {{- with last $openid }} + { + enabled = {{ .enabled }}, + display = {{ .display | quote }} + provider = { + provider-id = {{ .provider.provider_id | quote }}, + client-id = {{ .provider.client_id | quote }}, + client-secret = {{ .provider.client_secret | quote }}, + scope = {{ .provider.scope | quote }}, + authorize-url = {{ .provider.authorize_url | quote }}, + token-url = {{ .provider.token_url | quote }}, + {{- with .provider.user_url }} + user-url = {{ . | quote }}, + {{- end }} + {{- with .provider.logout_url }} + logout-url = {{ . | quote }}, + {{- end }} + sign-key = {{ .provider.sign_key | quote }}, + sig-algo = {{ .provider.sig_algo | quote }} + }, + collective-key = {{ .collective_key | quote }}, + user-key = {{ .user_key | quote }} + } + {{- end }} + ] + oidc-auto-redirect = {{ $server.oidc_auto_redirect }} + {{- $integration_endpoint := $server.integration_endpoint }} + integration-endpoint { + enabled = {{ $integration_endpoint.enabled }} + priority = {{ $integration_endpoint.priority | quote }} + source-name = {{ $integration_endpoint.source_name | quote }} + allowed-ips { + enabled = {{ $integration_endpoint.allowed_ips.enabled }} + ips = [ + {{- range initial $integration_endpoint.allowed_ips.ips }} + {{ . | quote }}, + {{- end }} + {{ last $integration_endpoint.allowed_ips.ips | quote }} + ] + } + http-basic { + enabled = {{ $integration_endpoint.http_basic_auth.enabled }} + realm = {{ $integration_endpoint.http_basic_auth.realm | quote }} + user = {{ $integration_endpoint.http_basic_auth.user | quote }} + password = {{ $integration_endpoint.http_basic_auth.password | quote }} + } + http-header { + enabled = {{ $integration_endpoint.http_header.enabled }} + header-name = {{ $integration_endpoint.http_header.header_name | quote }} + header-value = {{ $integration_endpoint.http_header.header_value | quote }} + } + } + admin-endpoint { + secret = {{ $server.admin_endpoint.secret | quote }} + } + {{- $full_text_search := $server.full_text_search }} + full-text-search { + enabled = true + backend = "solr" + solr = { + url = {{ printf "http://%v:%v@%v-solr:8983/%v" .Values.solr.solrUsername (.Values.solr.solrPassword | trimAll "\"") .Release.Name .Values.solr.solrCores | quote }} + commit-within = {{ $full_text_search.solr.commit_within }} + log-verbose = {{ $full_text_search.solr.log_verbose }} + def-type = {{ $full_text_search.solr.def_type | quote }} + q-op = {{ $full_text_search.solr.q_op | quote }} + } + postgresql = { + use-default-connection = false + jdbc { + url = {{ printf "jdbc:postgresql://%v-%v:5432/%v" .Release.Name "postgresql" .Values.postgresql.postgresqlDatabase | quote }} + user = {{ .Values.postgresql.postgresqlUsername | quote }} + password = {{ .Values.postgresql.postgresqlPassword | trimAll "\"" | quote }} + } + pg-config = { + } + pg-query-parser = "websearch_to_tsquery" + pg-rank-normalization = [ 4 ] + } + } + {{- $backend := $server.backend }} + backend { + mail-debug = {{ $backend.mail_debug }} + jdbc { + url = {{ printf "jdbc:postgresql://%v-%v:5432/%v" .Release.Name "postgresql" .Values.postgresql.postgresqlDatabase | quote }} + user = {{ .Values.postgresql.postgresqlUsername | quote }} + password = {{ .Values.postgresql.postgresqlPassword | trimAll "\"" | quote }} + } + {{- $database_schema := $server.backend.database_schema }} + database-schema = { + run-main-migrations = {{ $database_schema.run_main_migrations }} + run-fixup-migrations = {{ $database_schema.run_fixup_migrations }} + repair-schema = {{ $database_schema.repair_schema }} + } + {{- $signup := $server.backend.signup }} + signup { + mode = {{ $signup.mode | quote }} + new-invite-password = {{ $new_invite_password | quote }} + invite-time = {{ $signup.invite_time | quote }} + } + + {{- $files := $server.backend.files }} + files { + chunk-size = {{ $files.chunk_size }} + valid-mime-types = [ + {{- range initial $files.valid_mime_types }} + {{ . | quote }}, + {{- end }} + {{ last $files.valid_mime_types | quote }} + ] + default-store = {{ $files.default_store | quote }} + stores = { + database = { + enabled = {{ $files.stores.database.enabled }} + type = "default-database" + } + filesystem = { + enabled = {{ $files.stores.filesystem.enabled }} + type = "file-system" + directory = {{ $files.stores.filesystem.directory | quote }} + } + minio = { + enabled = {{ $files.stores.minio.enabled }} + type = "s3" + endpoint = {{ $files.stores.minio.endpoint | quote }} + access-key = {{ $files.stores.minio.access_key | quote }} + secret-key = {{ $files.stores.minio.secret_key | quote }} + bucket = {{ $files.stores.minio.bucket | quote }} + } + } + } + {{- $addons := $server.addons }} + addons = { + enabled = {{ $addons.enabled }} + allow-impure = {{ $addons.allow_impure }} + allowed-urls = [ + {{- range initial $addons.allowed_urls }} + {{ . | quote }}, + {{- end }} + {{ last $addons.allowed_urls | quote }} + ] + denied-urls = [ + {{- range initial $addons.denied_urls }} + {{ . | quote }}, + {{- end }} + {{ last $addons.denied_urls | quote }} + ] + } + } + } +--- +apiVersion: v1 +kind: Secret +type: Opaque +metadata: + name: {{ $joexSecretName }} + labels: + {{- include "tc.common.labels" . | nindent 4 }} +stringData: + joex.conf: | + docspell.joex { + app-id = {{ $joexID | quote }} + base-url = {{ printf "%v:%v" "http://localhost" .Values.service.joex.ports.joex.port | quote }} + bind { + address = "0.0.0.0" + port = {{ .Values.service.joex.ports.joex.port }} + } + {{- $logging := $joex.logging }} + logging { + format = {{ $logging.format | quote }} + minimum-level = {{ $logging.minimum_level | quote }} + levels = { + "docspell" = {{ $logging.levels.docspell | quote }} + "org.flywaydb" = {{ $logging.levels.flywaydb | quote }} + "binny" = {{ $logging.levels.binny | quote }} + "org.http4s" = {{ $logging.levels.http4s | quote }} + } + } + jdbc { + url = {{ printf "jdbc:postgresql://%v-%v:5432/%v" .Release.Name "postgresql" .Values.postgresql.postgresqlDatabase | quote }} + user = {{ .Values.postgresql.postgresqlUsername | quote }} + password = {{ .Values.postgresql.postgresqlPassword | trimAll "\"" | quote }} + } + {{- $database_schema := $joex.database_schema }} + database-schema = { + run-main-migrations = {{ $database_schema.run_main_migrations }} + run-fixup-migrations = {{ $database_schema.run_fixup_migrations }} + repair-schema = {{ $database_schema.repair_schema }} + } + mail-debug = {{ $joex.mail_debug }} + send-mail { + list-id = {{ $joex.send_mail.list_id | quote }} + } + {{- $scheduler := $joex.scheduler }} + scheduler { + name = {{ $joexID | quote }} + pool-size = {{ $scheduler.pool_size }} + counting-scheme = {{ $scheduler.counting_scheme | quote }} + retries = {{ $scheduler.retries }} + retry-delay = {{ $scheduler.retry_delay | quote }} + log-buffer-size = {{ $scheduler.log_buffer_size }} + wakeup-period = {{ $scheduler.wakeup_period | quote }} + } + {{- $periodic_scheduler := $joex.periodic_scheduler }} + periodic-scheduler { + name = {{ $joexID | quote }} + wakeup-period = {{ $periodic_scheduler.wakeup_period | quote }} + } + {{- $user_tasks := $joex.user_tasks }} + user-tasks { + scan-mailbox { + max-folders = {{ $user_tasks.scan_mailbox.max_folders }} + mail-chunk-size = {{ $user_tasks.scan_mailbox.mail_chunk_size }} + max-mails = {{ $user_tasks.scan_mailbox.max_mails }} + } + } + {{- $house_keeping := $joex.house_keeping }} + house-keeping { + schedule = {{ $house_keeping.schedule | quote }} + cleanup-invites = { + enabled = {{ $house_keeping.cleanup_invites.enabled }} + older-than = {{ $house_keeping.cleanup_invites.older_than | quote }} + } + cleanup-remember-me = { + enabled = {{ $house_keeping.cleanup_remember_me.enabled }} + older-than = {{ $house_keeping.cleanup_remember_me.older_than | quote }} + } + cleanup-jobs = { + enabled = {{ $house_keeping.cleanup_jobs.enabled }} + older-than = {{ $house_keeping.cleanup_jobs.older_than | quote }} + delete-batch = {{ $house_keeping.cleanup_jobs.delete_batch | quote }} + } + cleanup-downloads = { + enabled = {{ $house_keeping.cleanup_downloads.enabled }} + older-than = {{ $house_keeping.cleanup_downloads.older_than | quote }} + } + check-nodes { + enabled = {{ $house_keeping.check_nodes.enabled }} + min-not-found = {{ $house_keeping.check_nodes.min_not_found }} + } + integrity-check { + enabled = {{ $house_keeping.integrity_check.enabled }} + } + } + update-check { + enabled = {{ $house_keeping.update_check.enabled }} + test-run = {{ $house_keeping.update_check.test_run }} + schedule = {{ $house_keeping.update_check.schedule | quote }} + sender-account = {{ $house_keeping.update_check.sender_account | quote }} + smtp-id = {{ $house_keeping.update_check.smtp_id | quote }} + recipients = [ + {{- range initial $house_keeping.update_check.recipients }} + {{ . | quote }}, + {{- end }} + {{ last $house_keeping.update_check.recipients | quote }} + ] + subject = {{ $house_keeping.update_check.subject | quote }} + body = {{ $house_keeping.update_check.body | quote }} + } + {{- $extraction := $joex.extraction }} + extraction { + pdf { + min-text-len = {{ $extraction.pdf.min_text_length }} + } + preview { + dpi = {{ $extraction.preview.dpi }} + } + ocr { + max-image-size = {{ $extraction.ocr.max_image_size }} + page-range { + begin = {{ $extraction.ocr.page_range.begin }} + } + ghostscript { + command { + program = {{ $extraction.ghostscript.command.program | quote }} + args = [ + {{- range initial $extraction.ghostscript.command.args }} + {{ . | quote }}, + {{- end }} + {{ last $extraction.ghostscript.command.args | quote }} + ] + timeout = {{ $extraction.ghostscript.command.timeout | quote }} + } + working-dir = {{ $extraction.ghostscript.working_dir | quote }} + } + unpaper { + command { + program = {{ $extraction.unpaper.command.program | quote }} + args = [ + {{- range initial $extraction.unpaper.command.args }} + {{ . | quote }}, + {{- end }} + {{ last $extraction.unpaper.command.args | quote }} + ] + timeout = {{ $extraction.unpaper.command.timeout | quote }} + } + } + tesseract { + command { + program = {{ $extraction.tesseract.command.program | quote }} + args = [ + {{- range initial $extraction.tesseract.command.args }} + {{ . | quote }}, + {{- end }} + {{ last $extraction.tesseract.command.args | quote }} + ] + timeout = {{ $extraction.tesseract.command.timeout | quote }} + } + } + } + } + {{- $text_analysis := $joex.text_analysis }} + text-analysis { + max-length = {{ $text_analysis.max_length }} + working-dir = {{ $text_analysis.working_dir | quote }} + nlp { + mode = {{ $text_analysis.nlp.mode }} + clear-interval = {{ $text_analysis.nlp.clear_interval | quote }} + max-due-date-years = {{ $text_analysis.nlp.max_due_date_years }} + regex-ner { + max-entries = {{ $text_analysis.nlp.regex_ner.max_entries }} + file-cache-time = {{ $text_analysis.nlp.regex_ner.file_cache_time }} + } + } + {{- $classification := $joex.classification }} + classification { + enabled = {{ $classification.enabled }} + item-count = {{ $classification.item_count }} + classifiers = [ + { + "useSplitWords" = "{{ $classification.classifiers.useSplitWords }}" + "splitWordsTokenizerRegexp" = {{ $classification.classifiers.splitWordsTokenizerRegexp }} + "splitWordsIgnoreRegexp" = {{ $classification.classifiers.splitWordsIgnoreRegexp }} + "useSplitPrefixSuffixNGrams" = "{{ $classification.classifiers.useSplitPrefixSuffixNGrams }}" + "maxNGramLeng" = "{{ $classification.classifiers.maxNGramLeng }}" + "minNGramLeng" = "{{ $classification.classifiers.minNGramLeng }}" + "splitWordShape" = "{{ $classification.classifiers.intern }}" + "intern" = "{{ $classification.classifiers.intern }}" + } + ] + } + } + {{- $convert := $joex.convert }} + convert { + chunk-size = {{ $convert.chunk_size }} + converted-filename-part = {{ $convert.converted_filename_part }} + max-image-size = {{ $convert.max_image_size }} + markdown { + internal-css = """ + {{ $convert.markdown.internal_css | quote }} + """ + } + wkhtmlpdf { + command = { + program = {{ $convert.wkhtmlpdf.command.program | quote }} + args = [ + {{- range initial $convert.wkhtmlpdf.command.args }} + {{ . | quote }}, + {{- end }} + {{ last $convert.wkhtmlpdf.command.args | quote }} + ] + timeout = {{ $convert.wkhtmlpdf.command.timeout | quote }} + } + working-dir = {{ $convert.wkhtmlpdf.working_dir | quote }} + } + tesseract = { + command = { + program = {{ $convert.tesseract.command.program | quote }} + args = [ + {{- range initial $convert.tesseract.command.args }} + {{ . | quote }}, + {{- end }} + {{ last $convert.tesseract.command.args | quote }} + ] + timeout = {{ $convert.tesseract.command.timeout | quote }} + } + working-dir = {{ $convert.tesseract.working_dir | quote }} + } + unoconv = { + command = { + program = {{ $convert.unoconv.command.program | quote }} + args = [ + {{- range initial $convert.unoconv.command.args }} + {{ . | quote }}, + {{- end }} + {{ last $convert.unoconv.command.args | quote }} + ] + timeout = {{ $convert.tesseract.command.timeout | quote }} + } + working-dir = {{ $convert.unoconv.working_dir | quote }} + } + ocrmypdf = { + enabled = {{ $convert.ocrmypdf.enabled }} + command = { + program = {{ $convert.ocrmypdf.command.program | quote }} + args = [ + {{- range initial $convert.ocrmypdf.command.args }} + {{ . | quote }}, + {{- end }} + {{ last $convert.ocrmypdf.command.args | quote }} + ] + timeout = {{ $convert.ocrmypdf.command.timeout | quote }} + } + working-dir = {{ $convert.ocrmypdf.working_dir | quote }} + } + decrypt-pdf = { + enabled = {{ $convert.decrypt_pdf.enabled }} + passwords = [ + {{- range initial $convert.decrypt_pdf.passwords }} + {{ . | quote }}, + {{- end }} + {{ last $convert.decrypt_pdf.passwords | quote }} + ] + } + } + {{ $files := $joex.files }} + files { + chunk-size = {{ $files.chunk_size }} + valid-mime-types = [ + {{- range initial $files.valid_mime_types }} + {{ . | quote }}, + {{- end }} + {{ last $files.valid_mime_types | quote }} + ] + default-store = {{ $files.default_store | quote }} + stores = { + database = { + enabled = {{ $files.stores.database.enabled }} + type = "default-database" + } + filesystem = { + enabled = {{ $files.stores.filesystem.enabled }} + type = "file-system" + directory = {{ $files.stores.filesystem.directory | quote }} + } + minio = { + enabled = {{ $files.stores.minio.enabled }} + type = "s3" + endpoint = {{ $files.stores.minio.endpoint | quote }} + access-key = {{ $files.stores.minio.access_key | quote }} + secret-key = {{ $files.stores.minio.secret_key | quote }} + bucket = {{ $files.stores.minio.bucket | quote }} + } + } + } + {{- $full_text_search := $joex.full_text_search }} + full-text-search { + enabled = true + backend = "solr" + solr = { + url = {{ printf "http://%v:%v@%v-solr:8983/%v" .Values.solr.solrUsername (.Values.solr.solrPassword | trimAll "\"") .Release.Name .Values.solr.solrCores | quote }} + commit-within = {{ $full_text_search.solr.commit_within }} + log-verbose = {{ $full_text_search.solr.log_verbose }} + def-type = {{ $full_text_search.solr.def_type | quote }} + q-op = {{ $full_text_search.solr.q_op | quote }} + } + postgresql = { + use-default-connection = false + jdbc { + url = {{ printf "jdbc:postgresql://%v-%v:5432/%v" .Release.Name "postgresql" .Values.postgresql.postgresqlDatabase | quote }} + user = {{ .Values.postgresql.postgresqlUsername | quote }} + password = {{ .Values.postgresql.postgresqlPassword | trimAll "\"" | quote }} + } + pg-config = { + } + pg-query-parser = "websearch_to_tsquery" + pg-rank-normalization = [ 4 ] + } + migration = { + index-all-chunk = {{ $full_text_search.migration.index_all_chunk }} + } + } + {{- $addons := $joex.addons }} + addons { + working-dir = {{ $addons.working_dir }} + cache-dir = {{ $addons.cache_dir }} + executor-config { + runner = {{ $addons.executor_config.runner }} + nspawn = { + enabled = false + sudo-binary = "sudo" + nspawn-binary = "systemd-nspawn" + container-wait = "100 millis" + } + fail-fast = {{ $addons.executor_config.fail_fast }} + run-timeout = {{ $addons.executor_config.run_timeout | quote }} + nix-runner { + nix-binary = "nix" + build-timeout = "15 minutes" + } + docker-runner { + docker-binary = "docker" + build-timeout = "15 minutes" + } + } + } + } +{{- end -}} diff --git a/incubator/docspell/0.0.1/templates/common.yaml b/incubator/docspell/0.0.1/templates/common.yaml new file mode 100644 index 00000000000..b04640b855d --- /dev/null +++ b/incubator/docspell/0.0.1/templates/common.yaml @@ -0,0 +1,13 @@ +{{/* Make sure all variables are set properly */}} +{{- include "tc.common.loader.init" . }} + +{{/* Render secret */}} +{{- include "docspell.secret" . }} + +{{- $_ := set .Values.additionalContainers "joex" (include "docspell.joex" . | fromYaml) -}} +{{- if and .Values.dsc.enabled .Values.rest_server.integration_endpoint.enabled -}} +{{- $_ := set .Values.additionalContainers "dsc" (include "docspell.dsc" . | fromYaml) -}} +{{- end -}} + +{{/* Render the templates */}} +{{ include "tc.common.loader.apply" . }} diff --git a/incubator/docspell/0.0.1/values.yaml b/incubator/docspell/0.0.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/incubator/docspell/item.yaml b/incubator/docspell/item.yaml new file mode 100644 index 00000000000..1ecb2862036 --- /dev/null +++ b/incubator/docspell/item.yaml @@ -0,0 +1,4 @@ +icon_url: https://truecharts.org/img/hotlink-ok/chart-icons/docspell.png +categories: +- productivity + diff --git a/incubator/fireflyiii-data-importer/0.0.1/CHANGELOG.md b/incubator/fireflyiii-data-importer/0.0.1/CHANGELOG.md new file mode 100644 index 00000000000..eada120c712 --- /dev/null +++ b/incubator/fireflyiii-data-importer/0.0.1/CHANGELOG.md @@ -0,0 +1,6 @@ +# Changelog + + + +## [fireflyiii-data-importer-0.0.1]fireflyiii-data-importer-0.0.1 (2022-10-08) + diff --git a/incubator/fireflyiii-data-importer/0.0.1/Chart.lock b/incubator/fireflyiii-data-importer/0.0.1/Chart.lock new file mode 100644 index 00000000000..f45803bd4d1 --- /dev/null +++ b/incubator/fireflyiii-data-importer/0.0.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://library-charts.truecharts.org + version: 10.6.11 +digest: sha256:b4a28b7604b153caed40b6ad96692b5ebcaac53d09ce9e190691162b59ce25c3 +generated: "2022-10-08T23:46:49.437496812Z" diff --git a/incubator/fireflyiii-data-importer/0.0.1/Chart.yaml b/incubator/fireflyiii-data-importer/0.0.1/Chart.yaml new file mode 100644 index 00000000000..7d2ad01ce74 --- /dev/null +++ b/incubator/fireflyiii-data-importer/0.0.1/Chart.yaml @@ -0,0 +1,34 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: fireflyiii-data-importer +version: 0.0.1 +appVersion: "0.9.16" +description: Firefly III Data Importer. +type: application +deprecated: false +home: https://truecharts.org/docs/charts/incubator/fireflyiii-data-importer +icon: https://truecharts.org/img/hotlink-ok/chart-icons/fireflyiii-data-importer.png +keywords: + - fireflyiii-data-importer + - data + - tool +sources: + - https://github.com/truecharts/charts/tree/master/charts/incubator/fireflyiii-data-importer + - https://docs.firefly-iii.org/data-importer/install/configure/ + - https://hub.docker.com/r/fireflyiii/data-importer + - https://github.com/firefly-iii/data-importer +dependencies: + - name: common + repository: https://library-charts.truecharts.org + version: 10.6.11 +maintainers: + - email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - financial + - tool + - data + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/incubator/fireflyiii-data-importer/0.0.1/README.md b/incubator/fireflyiii-data-importer/0.0.1/README.md new file mode 100644 index 00000000000..7e34c492b4f --- /dev/null +++ b/incubator/fireflyiii-data-importer/0.0.1/README.md @@ -0,0 +1,108 @@ +# fireflyiii-data-importer + +Firefly III Data Importer. + +TrueCharts can be installed as both *normal* Helm Charts or as Apps on TrueNAS SCALE. + +This readme is just an automatically generated general guide on installing our Helm Charts and Apps. +For more information, please click here: [fireflyiii-data-importer](https://truecharts.org/docs/charts/incubator/fireflyiii-data-importer) + +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** + +## Source Code + +* +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://library-charts.truecharts.org | common | 10.6.11 | + +## Installing the Chart + +### TrueNAS SCALE + +To install this Chart on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Installing-an-App). + +### Helm + +To install the chart with the release name `fireflyiii-data-importer` + +```console +helm repo add TrueCharts https://charts.truecharts.org +helm repo update +helm install fireflyiii-data-importer TrueCharts/fireflyiii-data-importer +``` + +## Uninstall + +### TrueNAS SCALE + +**Upgrading, Rolling Back and Uninstalling the Chart** + +To upgrade, rollback or delete this Chart from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Upgrade-rollback-delete-an-App). + +### Helm + +To uninstall the `fireflyiii-data-importer` deployment + +```console +helm uninstall fireflyiii-data-importer +``` + +## Configuration + +### Helm + +#### Available Settings + +Read through the values.yaml file. It has several commented out suggested values. +Other values may be used from the [values.yaml](https://github.com/truecharts/library-charts/tree/main/charts/stable/common/values.yaml) from the [common library](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common). + +#### Configure using the command line + +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. + +```console +helm install fireflyiii-data-importer \ + --set env.TZ="America/New York" \ + TrueCharts/fireflyiii-data-importer +``` + +#### Configure using a yaml file + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. + +```console +helm install fireflyiii-data-importer TrueCharts/fireflyiii-data-importer -f values.yaml +``` + +#### Connecting to other charts + +If you need to connect this Chart to other Charts on TrueNAS SCALE, please refer to our [Linking Charts Internally](https://truecharts.org/docs/manual/SCALE%20Apps/linking-apps) quick-start guide. + +## Support + +- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/docs/manual/SCALE%20Apps/Important-MUST-READ). +- See the [Website](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) + +--- + +## Sponsor TrueCharts + +TrueCharts can only exist due to the incredible effort of our staff. +Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can! + +--- + +All Rights Reserved - The TrueCharts Project diff --git a/incubator/fireflyiii-data-importer/0.0.1/app-readme.md b/incubator/fireflyiii-data-importer/0.0.1/app-readme.md new file mode 100644 index 00000000000..e99be46504c --- /dev/null +++ b/incubator/fireflyiii-data-importer/0.0.1/app-readme.md @@ -0,0 +1,8 @@ +Firefly III Data Importer. + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/docs/charts/incubator/fireflyiii-data-importer](https://truecharts.org/docs/charts/incubator/fireflyiii-data-importer) + +--- + +TrueCharts can only exist due to the incredible effort of our staff. +Please consider making a [donation](https://truecharts.org/docs/about/sponsor) or contributing back to the project any way you can! diff --git a/incubator/fireflyiii-data-importer/0.0.1/charts/common-10.6.11.tgz b/incubator/fireflyiii-data-importer/0.0.1/charts/common-10.6.11.tgz new file mode 100644 index 0000000000000000000000000000000000000000..4fa62b15b1dba0e3664cbcb09cd42980672ef73c GIT binary patch literal 48424 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://truecharts.org + schema: + additional_attrs: true + type: dict + attrs: + - variable: confirmDocs + label: I have checked the documentation + schema: + type: boolean + default: true + - variable: donateNag + group: Documentation + label: Please consider supporting TrueCharts, see https://truecharts.org/sponsor + description: Please consider supporting TrueCharts, see +
https://truecharts.org/sponsor + schema: + additional_attrs: true + type: dict + attrs: + - variable: confirmDonate + label: I have considered donating + schema: + type: boolean + default: true + hidden: true diff --git a/incubator/fireflyiii-data-importer/0.0.1/templates/common.yaml b/incubator/fireflyiii-data-importer/0.0.1/templates/common.yaml new file mode 100644 index 00000000000..c1a366e1cf0 --- /dev/null +++ b/incubator/fireflyiii-data-importer/0.0.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "tc.common.loader.all" . }} diff --git a/incubator/fireflyiii-data-importer/0.0.1/values.yaml b/incubator/fireflyiii-data-importer/0.0.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/incubator/fireflyiii-data-importer/item.yaml b/incubator/fireflyiii-data-importer/item.yaml new file mode 100644 index 00000000000..c991e775a8f --- /dev/null +++ b/incubator/fireflyiii-data-importer/item.yaml @@ -0,0 +1,6 @@ +icon_url: https://truecharts.org/img/hotlink-ok/chart-icons/fireflyiii-data-importer.png +categories: +- financial +- tool +- data +