From 0c4db2f5d831081a27f71ce321fecc462188a799 Mon Sep 17 00:00:00 2001 From: Alexandre Date: Tue, 14 Mar 2023 21:19:17 +0100 Subject: [PATCH] First version https://github.com/alexbelgium/hassio-addons/issues/756 --- sponsorblockcast/CHANGELOG.md | 3 + sponsorblockcast/Dockerfile | 113 +++ sponsorblockcast/README.md | 58 ++ sponsorblockcast/apparmor.txt | 58 ++ sponsorblockcast/build.json | 10 + sponsorblockcast/config.json | 30 + sponsorblockcast/icon.png | Bin 0 -> 35415 bytes sponsorblockcast/logo.png | Bin 0 -> 35415 bytes sponsorblockcast/rootfs/entrypoint.sh | 16 + .../rootfs/etc/cont-init.d/99-run.sh | 16 + sponsorblockcast/translations/en.yaml | 659 ++++++++++++++++++ 11 files changed, 963 insertions(+) create mode 100644 sponsorblockcast/CHANGELOG.md create mode 100644 sponsorblockcast/Dockerfile create mode 100644 sponsorblockcast/README.md create mode 100644 sponsorblockcast/apparmor.txt create mode 100644 sponsorblockcast/build.json create mode 100644 sponsorblockcast/config.json create mode 100644 sponsorblockcast/icon.png create mode 100644 sponsorblockcast/logo.png create mode 100644 sponsorblockcast/rootfs/entrypoint.sh create mode 100644 sponsorblockcast/rootfs/etc/cont-init.d/99-run.sh create mode 100644 sponsorblockcast/translations/en.yaml diff --git a/sponsorblockcast/CHANGELOG.md b/sponsorblockcast/CHANGELOG.md new file mode 100644 index 000000000..a4f80f63c --- /dev/null +++ b/sponsorblockcast/CHANGELOG.md @@ -0,0 +1,3 @@ +## 1.0 + +- Initial build diff --git a/sponsorblockcast/Dockerfile b/sponsorblockcast/Dockerfile new file mode 100644 index 000000000..e4119c2e1 --- /dev/null +++ b/sponsorblockcast/Dockerfile @@ -0,0 +1,113 @@ +#============================# +# ALEXBELGIUM'S DOCKERFILE # +#============================# +# _.------. +# _.-` ('>.-`"""-. +# '.--'` _'` _ .--.) +# -' '-.-';` ` +# ' - _.' ``'--. +# '---` .-'""` +# /` +#=== Home Assistant Addon ===# + +################# +# 1 Build Image # +################# + +ARG BUILD_FROM +FROM $BUILD_FROM +VOLUME [ "/data" ] + +################## +# 2 Modify Image # +################## + +RUN apk --no-cache add jq bc grep curl \ + && GC_URL=`wget https://api.github.com/repos/vishen/go-chromecast/releases/latest -O - | jq -r '.assets[].browser_download_url' | grep ${TARGETOS}_${TARGETARCH}${TARGETVARIANT}` \ + && wget $GC_URL -O /root/go-chromecast.tgz \ + && tar xzf /root/go-chromecast.tgz -C /usr/bin \ + && rm -rf /root/* \ + && chmod +x /usr/bin/go-chromecast + +ADD sponsorblockcast.sh /usr/bin/sponsorblockcast + +################## +# 3 Install apps # +################## + +# Add rootfs +COPY rootfs/ / + +# Corrects permissions for s6 v3 +RUN if [ -d /etc/cont-init.d ]; then chmod -R 755 /etc/cont-init.d; fi && \ + if [ -d /etc/services.d ]; then chmod -R 755 /etc/services.d; fi && \ + if [ -f /entrypoint.sh ]; then chmod 755 /entrypoint.sh; fi + +# Modules +ARG MODULES="00-banner.sh 01-custom_script.sh" + +# Automatic modules download +RUN if ! command -v bash >/dev/null 2>/dev/null; then (apt-get update && apt-get install -yqq --no-install-recommends bash || apk add --no-cache bash) >/dev/null; fi \ + && if ! command -v curl >/dev/null 2>/dev/null; then (apt-get update && apt-get install -yqq --no-install-recommends curl || apk add --no-cache curl) >/dev/null; fi \ + && apt-get update && apt-get install -yqq --no-install-recommends ca-certificates || apk add --no-cache ca-certificates >/dev/null || true \ + && mkdir -p /etc/cont-init.d \ + && for scripts in $MODULES; do echo "$scripts" && curl -f -L -s -S "https://raw.githubusercontent.com/alexbelgium/hassio-addons/master/.templates/$scripts" -o /etc/cont-init.d/"$scripts" && [ "$(sed -n '/\/bin/p;q' /etc/cont-init.d/"$scripts")" != "" ] || (echo "script failed to install $scripts" && exit 1); done \ + && chmod -R 755 /etc/cont-init.d + +# Manual apps +ENV PACKAGES="" + +# Automatic apps & bashio +# hadolint ignore=SC2015 +RUN if ! command -v bash >/dev/null 2>/dev/null; then (apt-get update && apt-get install -yqq --no-install-recommends bash || apk add --no-cache bash) >/dev/null; fi \ + && if ! command -v curl >/dev/null 2>/dev/null; then (apt-get update && apt-get install -yqq --no-install-recommends curl || apk add --no-cache curl) >/dev/null; fi \ + && curl -f -L -s -S "https://raw.githubusercontent.com/alexbelgium/hassio-addons/master/.templates/automatic_packages.sh" --output /automatic_packages.sh \ + && chmod 777 /automatic_packages.sh \ + && eval /./automatic_packages.sh "${PACKAGES:-}" \ + && rm /automatic_packages.sh + +################ +# 4 Entrypoint # +################ + +# Entrypoint logic +RUN chmod 777 /entrypoint.sh +#WORKDIR / +ENTRYPOINT [ "/usr/bin/env" ] +CMD [ "/entrypoint.sh" ] +# Set shell +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +############ +# 5 Labels # +############ + +ARG BUILD_ARCH +ARG BUILD_DATE +ARG BUILD_DESCRIPTION +ARG BUILD_NAME +ARG BUILD_REF +ARG BUILD_REPOSITORY +ARG BUILD_VERSION +LABEL \ + io.hass.name="${BUILD_NAME}" \ + io.hass.description="${BUILD_DESCRIPTION}" \ + io.hass.arch="${BUILD_ARCH}" \ + io.hass.type="addon" \ + io.hass.version=${BUILD_VERSION} \ + maintainer="alexbelgium (https://github.com/alexbelgium)" \ + org.opencontainers.image.title="${BUILD_NAME}" \ + org.opencontainers.image.description="${BUILD_DESCRIPTION}" \ + org.opencontainers.image.vendor="Home Assistant Add-ons" \ + org.opencontainers.image.authors="alexbelgium (https://github.com/alexbelgium)" \ + org.opencontainers.image.licenses="MIT" \ + org.opencontainers.image.url="https://github.com/alexbelgium" \ + org.opencontainers.image.source="https://github.com/${BUILD_REPOSITORY}" \ + org.opencontainers.image.documentation="https://github.com/${BUILD_REPOSITORY}/blob/main/README.md" \ + org.opencontainers.image.created=${BUILD_DATE} \ + org.opencontainers.image.revision=${BUILD_REF} \ + org.opencontainers.image.version=${BUILD_VERSION} + +#################### +# 6 HealthcheckNOT # +#################### diff --git a/sponsorblockcast/README.md b/sponsorblockcast/README.md new file mode 100644 index 000000000..e9df4c4cf --- /dev/null +++ b/sponsorblockcast/README.md @@ -0,0 +1,58 @@ +# Home assistant add-on: Sponsorblockcast + +[![Donate][donation-badge]](https://www.buymeacoffee.com/alexbelgium) + +![Version](https://img.shields.io/badge/dynamic/json?label=Version&query=%24.version&url=https%3A%2F%2Fraw.githubusercontent.com%2Falexbelgium%2Fhassio-addons%2Fmaster%2Femby%2Fconfig.json) +![Ingress](https://img.shields.io/badge/dynamic/json?label=Ingress&query=%24.ingress&url=https%3A%2F%2Fraw.githubusercontent.com%2Falexbelgium%2Fhassio-addons%2Fmaster%2Femby%2Fconfig.json) +![Arch](https://img.shields.io/badge/dynamic/json?color=success&label=Arch&query=%24.arch&url=https%3A%2F%2Fraw.githubusercontent.com%2Falexbelgium%2Fhassio-addons%2Fmaster%2Femby%2Fconfig.json) + +[![Codacy Badge](https://app.codacy.com/project/badge/Grade/9c6cf10bdbba45ecb202d7f579b5be0e)](https://www.codacy.com/gh/alexbelgium/hassio-addons/dashboard?utm_source=github.com&utm_medium=referral&utm_content=alexbelgium/hassio-addons&utm_campaign=Badge_Grade) +[![GitHub Super-Linter](https://github.com/alexbelgium/hassio-addons/workflows/Lint%20Code%20Base/badge.svg)](https://github.com/marketplace/actions/super-linter) +[![Builder](https://github.com/alexbelgium/hassio-addons/workflows/Builder/badge.svg)](https://github.com/alexbelgium/hassio-addons/actions/workflows/builder.yaml) + +[donation-badge]: https://img.shields.io/badge/Buy%20me%20a%20coffee-%23d32f2f?logo=buy-me-a-coffee&style=flat&logoColor=white + +_Thanks to everyone having starred my repo! To star it click on the image below, then it will be on top right. Thanks!_ + +[![Stargazers repo roster for @alexbelgium/hassio-addons](https://git-lister.onrender.com/api/stars/alexbelgium/hassio-addons?limit=30)](https://github.com/alexbelgium/hassio-addons/stargazers) + +## About + +[Sponsorblockcast](https://github.com/nichobi/sponsorblockcast) is a POSIX shell script that skips sponsored YouTube content and skippable ads on all local Chromecasts, using the SponsorBlock API. It was inspired by CastBlock but written from scratch to avoid some of its pitfalls (see Differences from CastBlock). + +This app is developed by @nichobi here : https://github.com/nichobi/sponsorblockcast + +## Configuration + +Webui can be found at `:8096`, or within Home Assistant through Ingress. + +```yaml +PGID: user +GPID: user +TZ: timezone +localdisks: sda1 #put the hardware name of your drive to mount separated by commas, or its label. ex. sda1, sdb1, MYNAS... +networkdisks: "//SERVER/SHARE" # optional, list of smb servers to mount, separated by commas +cifsusername: "username" # optional, smb username, same for all smb shares +cifspassword: "password" # optional, smb password +cifsdomain: "domain" # optional, allow setting the domain for the smb share +silent: true #suppresses debug messages +``` + +## Installation + +The installation of this add-on is pretty straightforward and not different in +comparison to installing any other Hass.io add-on. + +1. [Add my Hass.io add-ons repository][repository] to your Hass.io instance. +1. Install this add-on. +1. Click the `Save` button to store your configuration. +1. Start the add-on. +1. Check the logs of the add-on to see if everything went well. +1. Carefully configure the add-on to your preferences, see the official documentation for for that. + +## Support and issues + +Addon : here +App : https://github.com/nichobi/sponsorblockcast + +[repository]: https://github.com/alexbelgium/hassio-addons diff --git a/sponsorblockcast/apparmor.txt b/sponsorblockcast/apparmor.txt new file mode 100644 index 000000000..7d7a544e0 --- /dev/null +++ b/sponsorblockcast/apparmor.txt @@ -0,0 +1,58 @@ +#include + +profile addon_updater flags=(attach_disconnected,mediate_deleted) { + #include + + # Capabilities + file, + signal, + network udp, + network tcp, + network dgram, + network stream, + network inet, + network inet6, + network netlink raw, + network unix dgram, + + # S6-Overlay + /init ix, + /run/{s6,s6-rc*,service}/** ix, + /package/** ix, + /command/** ix, + /run/{,**} rwk, + /dev/tty rw, + /init rix, + /bin/** ix, + /usr/bin/** ix, + /etc/s6/** rix, + /run/s6/** rwix, + /etc/services.d/** rwix, + /etc/cont-init.d/** rwix, + /etc/cont-finish.d/** rwix, + /run/** rwk, + /dev/fuse mrwkl, + /dev/sda1 mrwkl, + /dev/sdb1 mrwkl, + /dev/nvme0 mrwkl, + /dev/nvme1 mrwkl, + /dev/mmcblk0p1 mrwkl, + + # bashio + /usr/lib/bashio/** ix, + /tmp/** rw, + + # Access to Options.json and other files within your addon + /data/** rw, + + # Start new profile for service + /usr/bin/myprogram cx, + + profile usr/bin/myprogram flags=(attach_disconnected,mediate_deleted) { + #include + + # Receive signals from S6-Overlay + signal receive, + } +} + diff --git a/sponsorblockcast/build.json b/sponsorblockcast/build.json new file mode 100644 index 000000000..b5eeb24a0 --- /dev/null +++ b/sponsorblockcast/build.json @@ -0,0 +1,10 @@ +{ + "build_from": { + "aarch64": "ghcr.io/hassio-addons/base/aarch64:stable", + "amd64": "ghcr.io/hassio-addons/base/amd64:stable", + "armv7": "ghcr.io/hassio-addons/base/armv7:stable" + }, + "codenotary": { + "signer": "alexandrep.github@gmail.com" + } +} \ No newline at end of file diff --git a/sponsorblockcast/config.json b/sponsorblockcast/config.json new file mode 100644 index 000000000..80eab636e --- /dev/null +++ b/sponsorblockcast/config.json @@ -0,0 +1,30 @@ +{ + "arch": [ + "aarch64", + "amd64", + "armv7" + ], + "codenotary": "alexandrep.github@gmail.com", + "description": "skips sponsored YouTube content on all local Chromecasts", + "environment": { + "SBCDIR": "/tmp/sponsorblockcast" + }, + "host_network": true, + "image": "ghcr.io/alexbelgium/sponsorblockcast-{arch}", + "init": false, + "name": "Sponsorblockcast", + "options": { + "SBCPOLLINTERVAL": "1", + "SBCSCANINTERVAL": "300", + "SBCCATEGORIES": "sponsor" + }, + "schema": { + "SBCPOLLINTERVAL": "int", + "SBCSCANINTERVAL": "int", + "SBCCATEGORIES": "str", + "SBCYOUTUBEAPIKEY": "str?" + }, + "slug": "sponsorblockcast", + "url": "https://github.com/alexbelgium/hassio-addons/tree/master/sponsorblockcast", + "version": "1.0" +} \ No newline at end of file diff --git a/sponsorblockcast/icon.png b/sponsorblockcast/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..483d3cd9b05db0995238135acfa0bba72d0ec567 GIT binary patch literal 35415 zcmZs?cQ{;c*ET$(*ATr+QG*afXNcZ|=!p_U4?>g?MoEZh3DG;zdnYnRNeF@&y(C5w zqKCu`qs+{={qE;^-}}Db?=OyH_Opa)F67HJl($jF!fIuL6eLXF65Qqf$ zmjpyb0sO&)&YXfkulV$}H135i?G;dl@_afWx(V2Bw7y3D-rcM2iuUbWEwu>fcVf;B zK<#}g?2D?tdO$j*AN~BJJ^`G@ct?bqkt+K6YxPY*Oxp96#QqA7ua;k*b_#PYPr-h* zc{jRkJ+}0FbOhg69Hv4?tmlPo;6F^S$O}_C9K^66Hy#Npp4~1okFiUD>ZN(;+Ej4) z-a;wrmlFDIH1Vzu%v#m*D1q70JWt*5r2G5ku2-%wC7c_Ds$DiHSuagzLwUpau zARUcrNYV9lCQ4#MFsi$7jLg`A`_^Qmj6}sq+v0xHODH$~L|)$l?@X)VSPtPHQS!B_ zE#X<>q4nN-s@RQmIf%((a2V!OcBhIs3RKlpXTYdW_Bfoyq&ayT9r$*>4^4{*rMM$$Lab-Q%MUmI6~&*hp6(+goolS^wN8}q ze6&9v{c+w^j)h0@ZT=~rpLQ%>Bqma$I zGfSnh#~7MnOQ?ygTQ`L?i>PT{PB4?EXkk>k%rv3f`UXZ!4 zHh_py1J7F^hb2j&#lvvEyv5G!(LXFlkWMM6P;^G9^}&*k^X$nMEuDsBE8kusS;S;u zn;*fE#5+)ao;4K|PN9n2f#Cp$zF^5tac;mFbwx}j!cMUz^A+1vbiA`J z37G$BupjH;X~`4cn*%y2&q88Vna>th)ish-G z94IwwzxJ1pl9b%cKD{oJbQih)p4Refw+*JJv344_?k$_K=#%SS~K zC(XVA<3Nx%Ax{;t&r_f3&GA?dR*W5A_Z-Ba?k+QO9O=@cnZyzJ(v~*q%!;96y zEoO9K1}51&Zvd;A?@e~!Zc+w)W)Y>^X*&ib(?joXx6js`S*%K$Fs;8K(^&=s`@jgD z>F71e9d#MWenQd1M)Q*$Lx!S#|CqiBbVYKSPoodGef$uG>I!CwZD-K-8pn1UzaDEV zI5c|Y%C?|U`E7k<>~4)mc!3oauvB3-kmENQ=wvICaJWm=PYsGeE))+ZI-KQ{k@}bx zO&k%md7H=&NL2YSHg4KhA4EB)x0fES4?3O4@CieI+mjAX3DLJOkgxTSM1f@GHvbf} zr@jy}qYUS*eMJc@o4|H_G~SDwFLim;ha-oJ@33~0M5$M3!hVB_CAVlw4%Hhcp^oBQ z?Xa4ah?<9deH0in74?@`d5B;+x~nAk3CB5j(@kR%aLhC8F-&CssV?Ix1Jo83&Yh}s z!=x=wBB=xHqi#w8?@Gu`uXxhxR%5x!pzg}~Wt4=9VXEa7TaEHOhAaK0^x;qSxT2`d!-AXUf?>bPCdcpb%NQ9w!{ z$F$T_CX+%*OXnT3(wB|ew2if3w5uR!@w^-7PkF1?Q>~L~B|2at2^8>=*&$U>zgg-u zxV1VG4A?@B)y=D8W*xN*CE;QH-vw74)fs>XAK0>O_o~)LHZH(DqDX=G(1_`<5jwri zZTLSIeBBW&`*eLVLs(cCq7VqY#JyYPUW|DZP7Fzki*=a8=DIkKOQZah|Cao70e8|8DYXSWH(B+-x_F+lf+2bc z40qV_Reh>;i=4xg65XT> znc4&rP*(oGfUwK6$ywrCo17+Qt78lp-2fB93Q0iLs^719_`r6W%|8H1=PEf-$iMgE z;%&~;U$=EaM_Md|$oh%V4)O;f+xUNdvU`iL%d#CXta#lgrixQ?1xF;QDgnD-p!7yBO_{EJfN~7Xg;!V`1~KgKw*#w1U;=W1WV5-(X-5yo z_pinC)~aJ#Fvm`jXCRz=6hu~T1G=xHTYyx*Q`^@KERJ@7ZQV968hA$gub<^v6L z4FliNvRtPo{*MVWE~5F&6)iD@BQob5+OOC4&!LdRcBhdIyG+^^59FKjHYy z4LXP)`lYwuO-^ZC9(zdd|5$o^%bvUWC{mRg(!v%`?4sC#EbFu#N?2SS;mGBcPh>Eh z@pKMJIgai?94#t_{dsXUA~E5TBbP)`kGLIl$-N7cSDSP&Ip>0pBSZbJj2^a^^;n?8 zi@B_TFkXozykrEB-Ji&O&slF}IA<#hv> zP3(={oRqy>&$p{x`~hqO@2TC1S>5lR3p6K&n=sv@N*+&LiSIi9C{)@=>i)5j&+xsL z2GLq>$M@E(%MTldXw~rPo@IrgUAd%`b|7SK8u%y&nld|1ana4Uxq;2AiX{xPxHJ3a12FUZi(}s3=H}U&#Y6)@A`NPv_l`3S~GF@ zQl9K*^O}tDDM~zd*@HxgBM*iXBQzX6$%W!Vm z=%4k51O`QoE2V37zx@{U(xr`lSMdz$V_59ltj4pOV~As4n2kJ~t{`-xd79jbFB+Bx zkPEiRWgdFoDc8-hK2A5Y)T(`p1LFG^Rl0}|HWHxlUxxePw3Ro+Ib5u{xf71S3xRA{ zDZA6Z1Gg?Wxi?@)j#~dcXf2|a4H#FPp6B*+(m%Nwq*P|~ttho5P@?W_tZHJpHA3p% z%EQvYw2D*7r6PN$XLJpG1x>P&GNUHs;lJ)kdK`YG2K|-ZyG(W;+~@DH+duE^nAYmp zTK%9q`uS2HCw+W<?~0rY>~>0fC1CM`14)@Bn})TmO+Cfg zVSJ%w{0&d318y%`G3RG=afPQJ=WO1P9LaA&C${0tAeMKrum)aUx~F^W>Mjf|eB|cu za+HMp`ABOzQ?y908qiirt>H1VshJZpUSl{uzs6LY4eC*8d$r0%pscNS~&_o^S%BQkl z4T9hE`}KQ>kHv5}5rvlW77F5Tl!>Lg5;MdNN}u2KVDVg66iLIhr;#<7v| z0|YoRGkhsNm5T1Pn@Q(${>hK=)g-nyi7_yV4oGl=;KyKH;DPGQG{qIy=d4X_qvn6E;m zaN3`pS*CY!4_MurugbJhrDW{S+OTR(!`}m#+_|KM|Q(y+U(vd@ts>{Gzms zWd>@}V<6-pR;b`KguX$|8T^r1dl9l;lraNp-q&V_{6dicv;u4*bAXwcDKG?ScPBZm>@K+4uf@9-%MHFdX{3~b1_S0OQqb7< z5mT8wi16(#PN<|3E&YnrNwN?dBR5&_Z&;{5Cvpn$BmHn^y5esOK{Hhyx>Uf2{k%Wt(d(Ndiwu{}pVqtQ zY&I?@;VqlkfkI|w=YoR~kNHhTY-!~4X5R<~Ef{9~KS8Q*)rh%d&=L`G5q`8|JcOez z2n}q}N{ff0v*jU(P{6HG10DF;IpBIC%#K-`Oy| zX`eVKf19)90f-1sBY!}8G*w>63?iHU`;~CFVJGEEA7q?%>MVHb`u3TXQ8oBtA$KTz zoTFJY#t=;S&8@RdBn@BGZTvjVsb&p&O?faWbr?UO*2AyFyvQftUer;PmCkUnNAjUi zpD)eNxavMAtkEyPnGQ6Yvf!8x-&TP77(@(`fyMNaA9Q{<#iYu=xhuFp3shG}7!MF* zvy|PX12mk;|MG$%0~Sgf={SDwGRj$fiUARiunOlJrUx2>{SE*b(b72ITP*PT(xAo) zXojy+?KIH*$;}1Yw^YC7;cRu0FC^MecnQXF9p7EbFs>X%7jPhxM{ZVRjh?Dqp6fK& z%7=QFd=>2u@3MVn!&Fuu84puM6-6p2Me@)I0bn2!yQx+FQ5t2@>sbBqG}GE!*E$*w zIuD0rZ?{R^uFHtzGfIw|`>S{pUvkTRj_RK~obO2FJPG~nRko&^tmTb8o^{0@D$Hp* zNrH%cJI!ai`Y|gQnRD)!M_YzN3puOLfVc7Eba;92m&^2V9RujCm*8>uAcB>_j! zW=z^lDBsc3SqY{{j45hxwErK>Q5$kmYXM;=yD^>Oa!^s$+kOztBY!55YaFYlrrzq! zdhQ z4l%`HvWyG6^Y1j+%z7^!wODV%CiP=zBEYaZr_AYZqKGKNmZJ)ullthN(TjvE($QCK+Y+M5XTLOVUeJ(I!kMs|DoIGbqK@s=&{n!f> za9HG!R=h7{ZmELLkbOx3F1jg?eaJt6=xaF2E0V(^@V}x|&m@Cp*)kgf7PjtsX_?{} z2)Wo2vq)(LL*P(}+fRMMZ|EaV5IS|LkNJa+65(XK?jfMpqUIdGXh1Y>zWI-s@l$?7 zh-eRN<7|o=&A(6z-1{x8Ji)^_vS<4PP1gP2%;D5aDgem(U=&UUwgySvpBq|yWfnwA z-F`w#IE_!$Wl-Vy*Gfg`q}H(MV}aA*NCU2q4Jwj@ZWU|z9jS|AX<7omv3NNK_yB?X zjw=Km=v;3bH$CvXa(W26@4u<%pZR2`xqSSBCYnh^HCxCJ-uq#vd_M?BgiXQj$7 zUw{Gt;u}yGjd0k#71$Qkk9lmAy+leMcVr%0BI$0}9VFCQhS*Ex74)O){ z`i5*xF=yvw#P+VWtktg{Q7$Ig4-Acm-pYvh!wh)=kadvz>QfIMb>*r)v3|_M|F2(W zgoMc*cZ8+#_UEybJiZtLtL~)qtmCPuOYsX7T42`^C><--yYVIW=Xo_ezfab1j(In(c9)=XvPZHSQ1)|TezMRm-&I4&h`DRt3mFmv-I zX`cgb)-ZSb`26jyrXHhcl4HL&l`_wOCop}4gQ@HAO=jxiL9k4ezu-+cV?MVd)bu7# zIIdD>s~bQMnL?!zNFVgzkxL1ivOJy=*uzpVa%=18VLzdz%>6PprooHqbGH1IXjB%P zRfXXUV&(CEHwnn|J8Wz~bCjDdB3W|P)cv)X-qzyk*RIb}oR7vaW-~}!<1Or>`vH*@=HCr-!mcEzC`HdQ zz4=C%OGg?e{u&pdz|nfuT@X$9rd`C02n3wJ+_%-Pg}rqI-+T)4UctVlNGx`2|JWAb zG)Y?7NnhsTxjK8T2VXxRhydYeJ?i|p-G-ZchFkb?_K)9k0d8Em&Q+k_5^EaNL3FjA zF9yx!XFV&AV3S83iurFTzJBiEgz?~(bfP46>p%!y$E-in%%eD9|7_!zA08SOd)ZF( z%o3uohbBU?w3_Rg2@UULMs%WTWubXiKM&}S3U4N*M$YUgoWI|ARh)E`1rS3QJg!?T zVq+Or%DJP&M5x@=k6bN;5x3!NyfW8K+7L&sI;8%rhN6>+g$})yVOE`CKtkFgP zL4~N&d`@)jgam_Zm~b0mG@$#~=ZRWUR#w}Y!K=`m0`9e={T@Cs-!p1a^b8#Q5nnj;X883YmOpCMPOld+k`YYcMHp}t{#P*&*O~flb^>s6-L
Sppn&UJBINW^WUAIznvw)z0aj!n0{jbyN2#OXW6611IwDEWl3(P~4Dl$B z^k^4>w6xE*cXJH?Vqzo^!SsNMvo%1{V2McE;xh|Je3du9pOUYrY_V z9o5k0vr&My<#nQhs-nCI${+L z3$w}KDA+s{NMCQHGORfF%K3I0102MP|C4)ko9&uOTz?MpnAg==ycUHRP9L_ZH+i`3 zdtoVUg_6z(1oMOL2EVA=YJ;R^;-h{N{7Ism>VF<&N%vtDK(B=+$0x!0|XpFq_`-bagRsq2h$VJBj4q{Sg~K0as6RI#HB~Ojdnt(V!*<#(P<6L+3!NwXN4$OE^Ck7Q{ue= zLF&EoPxm&cmJx7rm|U;X*>1i{FoT7X`*Wg5=|61Km)mGw66q#cMPtRH%{~rz zC|<0ZGRz)zg#f9L#f<#XC#HQAlb%GdHvj_^R!s+$eMr?9mi-ckqp1Afp&`OWd7-y|oW z(lEob@`N1Ma|U(R>omfM1GjcX8Zu&GRz{+vxc&N&`2kG^uPdi^IlC{6ZS3e}!K>&= zC<~S8*qRC#eZ-kq=oj%QSY_><<{zAG^>Y{PotvuV&4>B{T}le>AJ2xWe&(tg?S5=w zUpI?_!3Owi+glV-%rd)_B!> zOdiJ+XO$alm|)f~=;9|!{QnbCTix!n(4jNGg!!Bve~1+Vohv&?m_;O|5A&}gm#2q! zA0_=|8`B%AnQM-9_qqLI-3k4u^yf+yuWI^wc4$z)2D5ETu00!{Ie}WuLm}|PZj+mR z-7^kl_*bCG&So_V_}oV}S8>6Y-y;enR0doAoDU!BwrWpCNvdNmdKK_EJ#$3v=R#yjjW z8u%1DpSivrCxtnkkyYvJpgWq#+x9G>!1!BUjB?XIuom#p)>dPBiiB(zh zF4%IR>ut4kTEITgJb*&RG z)Ubl5Fwfw`Xl6|28}7|F2OE;Q-xE)9BMuABRtcveWm!v%q%-`N1_5RS@@)!M$a_@* zX#5yjq9a9(of(-WcD4xhKCuOgvYGVbsRxxXM4A#7Ewyx?5hj4@!tggy6gTP|KtgCNTgG5bZnHG;?! za!|BUJmD)?J$gf21Ap$e>4Y%gQeebTLX-o4^<`f_q(27`toGZ+)>xy+l|f!A)wzny zYKON{86o&5>Te_GO>@0a9+2fRC7xdUOoE%(a_ra0f9Gv&qhX~cw1zBOja#0^{yF(! z(sn9oic*W;(PqU4c=j<*P!k^yywhte^+76@5{OfkyPcE^(zrmNsj+Px-VO94e6ATc zFgDYWiw1NIsJ`5@UfZH85(CNsw)28m{=YM%y0qupU+f>A+H@RCJcWnU32YY4x6(ZV z?d)#C8C5;Z^N*sxu}`h=d0ex@8`A2|<7OQ^qTn_c-hPc;hMO1` z5~dp`^2^hVLqZL41UJtR>eD|LJbBYEP06R;pS2*{dI{nid*IVL^h?8`6TlSXK^M!i zl1&24u2%FuR@bi|T{N`%^^85zHe0C#pf@7F9hzp34x0}YJuobn%e{%c*{5{YX>1<( zE>Y|w&?~k=IDtF(&*b$laqPL3>pmwuaCx4kp5Qc}Xc_CGNOW6Z?s&L;5*gI%qmwVN zeb&;C7(p_PlRZFvqjre84TIJ-?&gyOY)#}NLCf8|tDOYnEG~z41h?BHk^Vne=vVi7 z2r{VoH3j;H4`Vg8Cr^I8Kygd=BT&eY*>t3@cT$T~pQVwi)wkCvBYCz~iq((vkm}0Q zY;TkBV}GlgTO(MTo39WyI zre9f!H8ScqBJBb1GkA}^j`VS(_C3us8D9QVK0@`nQcS72)-SSe8_GCIpa_aQj(3fQ z0i}EQR}l#B>Wxai9s9ZAsjp(gn5Yvf-&WPz;*L>PQ=isu0S45|@Z(F-)m`E%tN-+av2y&%Ws^H_n0nNqgq=#*?EM z8Zs#|INXYK`$=3&%Q&@Fzr_scqqyD^L_4MNks+~VR+$U;?8a%d$)k{1Dp=);=_#l$ zG7t$+&sg`3=0Pj&re1B#bQfmd1e4h6dPzC~RZB8?KL3nGB98&E9MpKhGA^CiIWuHm zUN5*{xDgmX0OV3TioC4i&W7=l{r`0A@Ka$$T;&_I46wT1HDUJ=rkar%r#&s$pM@YX$g3lItL9VY@;s7zs0Acq7g=V-u z#*JIf;vlir2T<}ooU_pN9Tz(7zF;Jy01cIvAL;|=r&@p9e6p4wb3n_(%j-LlTaJJ> z>3c2Nk~Ils75+b2@BPV%@b=)KjDv7F4%K~jch4LzOA;{&l8N(9pZ=vg7dEy16mKdg zETP#@=awX8lIdE?0}S}F3Fl_n-8zNn{{B%es5>@`~3n=}i;^U$9=&4o#+mR;G&ZeGKRdU3R zsrP-+@_%a@Vj}lGbSC`(DIZ)3rnrfvMkp9=tMjq?NmZNH+1f~xtdc|V)x$InK)cMK zFQ|VqsJB|65pk!H_JJT0$#tqIssBa{MCGc4*|-FvQE{i<*4Pkq@p!YjCGYvpb}zo) zHD_CUfL^Hdd~2}`TLO|qa#N{hD!fcdwEvXnS%W^*BnrI@j@f(>lc{ZJx-)zf_-`nL zN1Cx<L z>=|LT-_VjbFAL)rBDD)A4uCWM5FGHsU^M5GYF%6L9D)T z%SctJ)*-(|HDHQd(&fc#*L_EKR`nT`OX9Y+Ee)afAniq+%i#?mr_bt73jz6$Rvc{L z9^ohDhK}>8a=>b1TgxB>Ff$fc_<-4^N2JL%eh>!iz0k|kUZf?7G1fhHDH2YOn0H(; z3o1KfX}R-tT44LmVu3xaRm#o>gTY(p5=Z;wq0tU<*pAo8gu14;B26bEcEPW9@jX)_ zJ?d*WqA>{TRx;g14+MDY1KHd!n!AT{ns{CwvJ_~-)peo z>?@?{fg@Mhg1aTDJR+t3q#c#~Viq#C!ha!gATyOG>WZ!w-ME&1HJuF|?qTrrLJ_pC zhI}_})HEneB7QclzAgfw!#`D>vok5bw~y#jn@VK9xVZjKUH)avv6z(6)uq4jR%dkL ze#!SDJAyolmVdial7_|8^O_cgRdb0v zfe9F6kFRYMcwQZCzB34EKTk!WKi2a%3hd{?kQ_M$d2Tfj_U|?P_z;~7ky%Wk+l}WG zVCArQ|fB zOHJa1fi#DydlPGjcZy4%vn2*OXV-x$o#hCmq?5Nm|2{hAf)aw82pithT>JV(lDn)@ zzd&~I9$^p$bqwOX0DLnp$KBn>FfzDMU_HpH%Xsrfv`wBeXm8^k;TRBRHHCENWWZk1 z5TVyGH8c7~yIf26(Y<}!MHlyO0bVoSuV;|b!kd9GKw_r1AmbtQJ_58_v>^)epJl$e zy(Q`Ac$dk@N${$dbKFJdZBdf%xScLFE7=u?NGOaMP%9RG?{F5Tcw$1&k}|yfzT?xW ze}cFCGwZJz9uZ<=-pJJdL<^~nnV;H}oNJ{yPdjQ&szlz*b}xQ1!tF66Wj5HesDYeF zq0*ba2`LIu>pwP5`&tujX0=0dO+_^d{2smhSeBa9qKzl}e~F@nLrGJBa4fZQvr8Q8 z{Jfo1XV>1wDMp?09r0A=5-(j7STzUZP|y2d-IaC?MZC>vH#U7ZY?{_(unN&$M*#(6 z5C4*+6QqYU%IM92lr`w?Lb~I`jnVS74l28ht>h(?jN4P4fKq(MGO47H*YYbfmJ3g} zCFDm6PzN0f%o1bi~oueT-p#vhgZceD<35gSfiT97q>8CtowjZj(oUMZ1F z$+`-ozHkmZmv(SlsC#oplxgb#* zkFt%iTxL7B{BE}&x<1uO)(TJiNeKPXb~4QX0+8(&D8pQ4vu3pE;WqI{#Zi78z8R1l zF?VW7y>DUP+o)Rs%xNg$HkMHRcjqHD_A_&C+1eZxi_w)#!7`3vC&Ya0UP9ZF@Bxl{ BO&{rR2sIPx>Xmk9p2#r~?v4<8{jfwA0 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 B%1QtL literal 0 HcmV?d00001 diff --git a/sponsorblockcast/logo.png b/sponsorblockcast/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..483d3cd9b05db0995238135acfa0bba72d0ec567 GIT binary patch literal 35415 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 BO&{rR2sIPx>Xmk9p2#r~?v4<8{jfwA0 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 B%1QtL literal 0 HcmV?d00001 diff --git a/sponsorblockcast/rootfs/entrypoint.sh b/sponsorblockcast/rootfs/entrypoint.sh new file mode 100644 index 000000000..68c3fec4d --- /dev/null +++ b/sponsorblockcast/rootfs/entrypoint.sh @@ -0,0 +1,16 @@ +#!/bin/bash +echo "Starting..." + +#################### +# Starting scripts # +#################### + +for SCRIPTS in /etc/cont-init.d/*; do + [ -e "$SCRIPTS" ] || continue + echo "$SCRIPTS: executing" + chown "$(id -u)":"$(id -g)" "$SCRIPTS" + chmod a+x "$SCRIPTS" + # Change shebang if no s6 supervision + sed -i 's|/usr/bin/with-contenv bashio|/usr/bin/env bashio|g' "$SCRIPTS" + /."$SCRIPTS" || echo "$SCRIPTS: exiting $?" +done diff --git a/sponsorblockcast/rootfs/etc/cont-init.d/99-run.sh b/sponsorblockcast/rootfs/etc/cont-init.d/99-run.sh new file mode 100644 index 000000000..e9d8f96ab --- /dev/null +++ b/sponsorblockcast/rootfs/etc/cont-init.d/99-run.sh @@ -0,0 +1,16 @@ +#!/usr/bin/with-contenv bashio +# shellcheck shell=bash + +# make directory +mkdir -p /tmp/sponsorblockcast + +# Export options as env variables +for var in SBCPOLLINTERVAL SBCSCANINTERVAL SBCCATEGORIES SBCYOUTUBEAPIKEY; do + if bashio::config.has_value "$var"; then + export "$var"="$(bashio::config "$var")" + fi +done + +# Starting app +bashio::log.info "Starting app" +/./usr/bin/sponsorblockcast &>/proc/1/fd/1 diff --git a/sponsorblockcast/translations/en.yaml b/sponsorblockcast/translations/en.yaml new file mode 100644 index 000000000..18cd11c17 --- /dev/null +++ b/sponsorblockcast/translations/en.yaml @@ -0,0 +1,659 @@ +--- +configuration: + additional_apps: + name: additional_apps + description: Additional apps to install at boot + allow_ipv6: + name: allow_ipv6 + description: Enables ipv6 in the addon + ALLOW_SIGNUP: + name: ALLOW_SIGNUP + description: See upstream app documentation + ALLOWED_HOSTS: + name: ALLOWED_HOSTS + description: See upstream app documentation + APP_BASE_URL: + name: APP_BASE_URL + description: See upstream app documentation + APP_KEY: + name: APP_KEY + description: See upstream app documentation + APP_NAME: + name: APP_NAME + description: See upstream app documentation + append_myip: + name: append_myip + description: See upstream app documentation + auto_restart: + name: auto_restart + description: See upstream app documentation + BACKUP_PATH: + name: BACKUP_PATH + description: See upstream app documentation + base_folder: + name: base_folder + description: See upstream app documentation + BASE_URL: + name: BASE_URL + description: See upstream app documentation + base_url_portless: + name: base_url_portless + description: See upstream app documentation + certfile: + name: certfile + description: "fullchain.pem #ssl certificate, must be located in /ssl" + checkip_command: + name: checkip_command + description: See upstream app documentation + checkip_path: + name: checkip_path + description: See upstream app documentation + checkip_server: + name: checkip_server + description: See upstream app documentation + checkip_ssl: + name: checkip_ssl + description: See upstream app documentation + cifsdomain: + name: cifsdomain + description: Allow setting the domain for the smb share + cifspassword: + name: cifspassword + description: Your password to access your SMB share, same for all smb shares + cifsusername: + name: cifsusername + description: Your username to access your SMB share, same for all smb shares + claim: + name: claim + description: See upstream app documentation + CLI_ARGS: + name: CLI_ARGS + description: See upstream app documentation + COLLECTOR_API_ENDPOINT: + name: COLLECTOR_API_ENDPOINT + description: See upstream app documentation + COLLECTOR_HOST_ID: + name: COLLECTOR_HOST_ID + description: See upstream app documentation + CONFIG_LOCATION: + name: CONFIG_LOCATION + description: See upstream app documentation + CUSTOM_OPTIONS: + name: CUSTOM_OPTIONS + description: See upstream app documentation + custom_provider: + name: custom_provider + description: See upstream app documentation + customUI: + name: customUI + description: selection from list # alternative webUI can be set here + data_directory: + name: data_directory + description: See upstream app documentation + data_location: + name: data_location + description: Where do you want your data stored + database: + name: database + description: Type of database to use + DB_CLIENT: + name: DB_CLIENT + description: See upstream app documentation + DB_CONNECTION: + name: DB_CONNECTION + description: See upstream app documentation + DB_DATABASE: + name: DB_DATABASE + description: See upstream app documentation + DB_DATABASE_NAME: + name: DB_DATABASE_NAME + description: If using external postgresql + DB_HOST: + name: DB_HOST + description: See upstream app documentation + DB_HOSTNAME: + name: DB_HOSTNAME + description: If using external database + DB_PASSWORD: + name: DB_PASSWORD + description: If using external database + DB_PORT: + name: DB_PORT + description: If using external database + DB_TYPE: + name: DB_TYPE + description: See upstream app documentation + DB_USERNAME: + name: DB_USERNAME + description: If using external database + ddns_path: + name: ddns_path + description: See upstream app documentation + ddns_server: + name: ddns_server + description: See upstream app documentation + DEBUG: + name: DEBUG + description: See upstream app documentation + DISABLE_MACHINE_LEARNING: + name: DISABLE_MACHINE_LEARNING + description: See upstream app documentation + DNS_server: + name: DNS_server + description: See upstream app documentation + DOCKER_MODS: + name: DOCKER_MODS + description: See upstream app documentation + DOMAIN: + name: DOMAIN + description: See upstream app documentation + download_dir: + name: download_dir + description: See upstream app documentation + downloads_location: + name: downloads_location + description: See upstream app documentation + DROPBOX_TOKEN: + name: DROPBOX_TOKEN + description: See upstream app documentation + edge_repositories: + name: edge_repositories + description: See upstream app documentation + elasticsearch_server: + name: elasticsearch_server + description: See upstream app documentation + expose_collector: + name: expose_collector + description: See upstream app documentation + EXTENSIONS: + name: EXTENSIONS + description: See upstream app documentation + extraction_path: + name: extraction_path + description: See upstream app documentation + fake_address: + name: fake_address + description: See upstream app documentation + FG_LOG_LEVEL: + name: FG_LOG_LEVEL + description: See upstream app documentation + FG_PLUGINS: + name: FG_PLUGINS + description: See upstream app documentation + FIREFLY_III_ACCESS_TOKEN: + name: FIREFLY_III_ACCESS_TOKEN + description: See upstream app documentation + FIREFLY_III_CLIENT_ID: + name: FIREFLY_III_CLIENT_ID + description: See upstream app documentation + FIREFLY_III_URL: + name: FIREFLY_III_URL + description: See upstream app documentation + forced_update: + name: forced_update + description: See upstream app documentation + Full_Text_Search: + name: Full_Text_Search + description: See upstream app documentation + gitapi: + name: gitapi + description: See upstream app documentation + gitmail: + name: gitmail + description: See upstream app documentation + gitpass: + name: gitpass + description: See upstream app documentation + gituser: + name: gituser + description: See upstream app documentation + graphic_drivers: + name: graphic_drivers + description: See upstream app documentation + hostname: + name: hostname + description: See upstream app documentation + HTTPS_ONLY: + name: HTTPS_ONLY + description: See upstream app documentation + iface: + name: iface + description: See upstream app documentation + Images_location: + name: Images_location + description: See upstream app documentation + imaphost: + name: imaphost + description: See upstream app documentation + imappassword: + name: imappassword + description: See upstream app documentation + imapusername: + name: imapusername + description: See upstream app documentation + import_dir: + name: import_dir + description: See upstream app documentation + IMPORT_PATH: + name: IMPORT_PATH + description: See upstream app documentation + incomplete_dir: + name: incomplete_dir + description: See upstream app documentation + ingress_disabled: + name: ingress_disabled + description: See upstream app documentation + ingress_user: + name: ingress_user + description: See upstream app documentation + INTERFACE_NAME: + name: INTERFACE_NAME + description: See upstream app documentation + iterations: + name: iterations + description: See upstream app documentation + JWT_SECRET: + name: JWT_SECRET + description: Used to sign the authentication keys for user login + KEYBOARD: + name: KEYBOARD + description: See upstream app documentation + keyfile: + name: keyfile + description: privkey.pem #sslkeyfile, must be located in /ssl + LOCAL_NETWORK: + name: LOCAL_NETWORK + description: See upstream app documentation + localdisks: + name: localdisks + description: Physical name of the partition (ex. sda1) or the share (ex. SharedFiles) to mount separated by commas (ex. sda1,sdb1,MYNAS) + log_level: + name: log_level + description: See upstream app documentation + MAILER_AUTH_PASSWORD: + name: MAILER_AUTH_PASSWORD + description: See upstream app documentation + MAILER_AUTH_USER: + name: MAILER_AUTH_USER + description: See upstream app documentation + MAILER_ENABLED: + name: MAILER_ENABLED + description: See upstream app documentation + OPENVPN_PROVIDER: + name: OPENVPN_PROVIDER + description: See upstream app documentation + OPENVPN_USERNAME: + name: OPENVPN_USERNAME + description: See upstream app documentation + ORIGINALS_PATH: + name: ORIGINALS_PATH + description: See upstream app documentation + PAPERLESS_OCR_MODE: + name: PAPERLESS_OCR_MODE + description: See upstream app documentation + PAPERLESS_URL: + name: PAPERLESS_URL + description: See upstream app documentation + pass: + name: pass + description: See upstream app documentation + password: + name: password + description: See upstream app documentation + period: + name: period + description: See upstream app documentation + PGID: + name: PGID + description: The user group ID, as described in https://docs.linuxserver.io/general/understanding-puid-and-pgid + PMM_CONFIG: + name: PMM_CONFIG + description: See upstream app documentation + PMM_NO_MISSING: + name: PMM_NO_MISSING + description: See upstream app documentation + PMM_RUN: + name: PMM_RUN + description: See upstream app documentation + PMM_TEST: + name: PMM_TEST + description: See upstream app documentation + PMM_TIME: + name: PMM_TIME + description: See upstream app documentation + POSTGRES_DATABASE: + name: POSTGRES_DATABASE + description: See upstream app documentation + POSTGRES_DB: + name: POSTGRES_DB + description: See upstream app documentation + POSTGRES_HOST: + name: POSTGRES_HOST + description: See upstream app documentation + POSTGRES_PASSWORD: + name: POSTGRES_PASSWORD + description: See upstream app documentation + POSTGRES_PORT: + name: POSTGRES_PORT + description: See upstream app documentation + POSTGRES_USER: + name: POSTGRES_USER + description: See upstream app documentation + provider: + name: provider + description: See upstream app documentation + providers: + name: providers + description: See upstream app documentation + proxied: + name: proxied + description: See upstream app documentation + PUID: + name: PUID + description: The user group ID, as described in https://docs.linuxserver.io/general/understanding-puid-and-pgid + remote_mysql_database: + name: remote_mysql_database + description: See upstream app documentation + remote_mysql_host: + name: remote_mysql_host + description: See upstream app documentation + remote_mysql_password: + name: remote_mysql_password + description: See upstream app documentation + remote_mysql_port: + name: remote_mysql_port + description: See upstream app documentation + remote_mysql_username: + name: remote_mysql_username + description: See upstream app documentation + repository: + name: repository + description: See upstream app documentation + request_size_limit: + name: request_size_limit + description: See upstream app documentation + ROOT_URL: + name: ROOT_URL + description: See upstream app documentation + ROUTER_IP: + name: ROUTER_IP + description: See upstream app documentation + rpi_video_drivers: + name: rpi_video_drivers + description: See upstream app documentation + run_duration: + name: run_duration + description: 12h #for how long should the addon run. Must be formatted as number + time unit (ex : 5s, or 2m, or 12h, or 5d...) + SavePath: + name: SavePath + description: See upstream app documentation + SEAFILE_ADMIN_EMAIL: + name: SEAFILE_ADMIN_EMAIL + description: See upstream app documentation + SEAFILE_ADMIN_PASSWORD: + name: SEAFILE_ADMIN_PASSWORD + description: See upstream app documentation + SECRET_KEY: + name: SECRET_KEY + description: See upstream app documentation + secret_token: + name: secret_token + description: See upstream app documentation + secure_ssl: + name: secure_ssl + description: See upstream app documentation + silent: + name: silent + description: "true #suppresses debug messages" + SMARTCTL_COMMAND_DEVICE_TYPE: + name: SMARTCTL_COMMAND_DEVICE_TYPE + description: See upstream app documentation + SMARTCTL_MEGARAID_DISK_NUM: + name: SMARTCTL_MEGARAID_DISK_NUM + description: See upstream app documentation + smbv1: + name: smbv1 + description: See upstream app documentation + SPECTRE_APP_ID: + name: SPECTRE_APP_ID + description: See upstream app documentation + SPECTRE_SECRET: + name: SPECTRE_SECRET + description: See upstream app documentation + ssl: + name: ssl + description: true/false. enables ssl. Need certfile and keyfile filled' + storage_dir: + name: storage_dir + description: See upstream app documentation + STORAGE_PATH: + name: STORAGE_PATH + description: See upstream app documentation + theme: + name: theme + description: See upstream app documentation + TRANSMISSION_DOWNLOAD_DIR: + name: TRANSMISSION_DOWNLOAD_DIR + description: See upstream app documentation + TRANSMISSION_HOME: + name: TRANSMISSION_HOME + description: See upstream app documentation + TRANSMISSION_INCOMPLETE_DIR: + name: TRANSMISSION_INCOMPLETE_DIR + description: See upstream app documentation + TRANSMISSION_V3_UPDATE: + name: TRANSMISSION_V3_UPDATE + description: See upstream app documentation + TRANSMISSION_WATCH_DIR: + name: TRANSMISSION_WATCH_DIR + description: See upstream app documentation + TRANSMISSION_WEB_UI: + name: TRANSMISSION_WEB_UI + description: See upstream app documentation + trusted_domains: + name: trusted_domains + description: See upstream app documentation + trusted_headers: + name: trusted_headers + description: See upstream app documentation + ttl: + name: ttl + description: See upstream app documentation + TZ: + name: TZ + description: The timezone, as described in https://en.wikipedia.org/wiki/List_of_tz_database_time_zones + ui_path: + name: ui_path + description: See upstream app documentation + Updates: + name: Updates + description: See upstream app documentation + UPLOAD_NSFW: + name: UPLOAD_NSFW + description: See upstream app documentation + URL: + name: URL + description: See upstream app documentation + use_own_certs: + name: use_own_certs + description: See upstream app documentation + user: + name: user + description: See upstream app documentation + user_agent: + name: user_agent + description: See upstream app documentation + username: + name: username + description: See upstream app documentation + verbose: + name: verbose + description: See upstream app documentation + verify_address: + name: verify_address + description: See upstream app documentation + watch_dir: + name: watch_dir + description: See upstream app documentation + watch_path: + name: watch_path + description: See upstream app documentation + WebuiPass: + name: WebuiPass + description: See upstream app documentation + whitelist: + name: whitelist + description: '"localhost,192.168.0.0/16" # list ip subnets that that can access the webui' + WHOOGLE_ALT_IG: + name: WHOOGLE_ALT_IG + description: See upstream app documentation + WHOOGLE_ALT_MD: + name: WHOOGLE_ALT_MD + description: See upstream app documentation + WHOOGLE_ALT_RD: + name: WHOOGLE_ALT_RD + description: See upstream app documentation + WHOOGLE_ALT_TL: + name: WHOOGLE_ALT_TL + description: See upstream app documentation + WHOOGLE_ALT_TW: + name: WHOOGLE_ALT_TW + description: See upstream app documentation + WHOOGLE_ALT_YT: + name: WHOOGLE_ALT_YT + description: See upstream app documentation + WHOOGLE_AUTOCOMPLETE: + name: WHOOGLE_AUTOCOMPLETE + description: See upstream app documentation + WHOOGLE_CONFIG_ALTS: + name: WHOOGLE_CONFIG_ALTS + description: See upstream app documentation + WHOOGLE_CONFIG_BLOCK: + name: WHOOGLE_CONFIG_BLOCK + description: See upstream app documentation + WHOOGLE_CONFIG_COUNTRY: + name: WHOOGLE_CONFIG_COUNTRY + description: See upstream app documentation + WHOOGLE_CONFIG_DISABLE: + name: WHOOGLE_CONFIG_DISABLE + description: See upstream app documentation + WHOOGLE_CONFIG_GET_ONLY: + name: WHOOGLE_CONFIG_GET_ONLY + description: See upstream app documentation + WHOOGLE_CONFIG_LANGUAGE: + name: WHOOGLE_CONFIG_LANGUAGE + description: See upstream app documentation + WHOOGLE_CONFIG_NEAR: + name: WHOOGLE_CONFIG_NEAR + description: See upstream app documentation + WHOOGLE_CONFIG_NEW_TAB: + name: WHOOGLE_CONFIG_NEW_TAB + description: See upstream app documentation + WHOOGLE_CONFIG_SAFE: + name: WHOOGLE_CONFIG_SAFE + description: See upstream app documentation + WHOOGLE_CONFIG_SEARCH_LANGUAGE: + name: WHOOGLE_CONFIG_SEARCH_LANGUAGE + description: See upstream app documentation + WHOOGLE_CONFIG_THEME: + name: WHOOGLE_CONFIG_THEME + description: See upstream app documentation + WHOOGLE_CONFIG_URL: + name: WHOOGLE_CONFIG_URL + description: See upstream app documentation + WHOOGLE_CONFIG_VIEW_IMAGE: + name: WHOOGLE_CONFIG_VIEW_IMAGE + description: See upstream app documentation + WHOOGLE_CSP: + name: WHOOGLE_CSP + description: See upstream app documentation + WHOOGLE_MINIMAL: + name: WHOOGLE_MINIMAL + description: See upstream app documentation + WHOOGLE_PASS: + name: WHOOGLE_PASS + description: See upstream app documentation + WHOOGLE_PROXY_LOC: + name: WHOOGLE_PROXY_LOC + description: See upstream app documentation + WHOOGLE_PROXY_PASS: + name: WHOOGLE_PROXY_PASS + description: See upstream app documentation + WHOOGLE_PROXY_TYPE: + name: WHOOGLE_PROXY_TYPE + description: See upstream app documentation + WHOOGLE_PROXY_USER: + name: WHOOGLE_PROXY_USER + description: See upstream app documentation + WHOOGLE_RESULTS_PER_PAGE: + name: WHOOGLE_RESULTS_PER_PAGE + description: See upstream app documentation + WHOOGLE_USER: + name: WHOOGLE_USER + description: See upstream app documentation + wildcard: + name: wildcard + description: See upstream app documentation" + MAILER_HOST: + name: MAILER_HOST + description: See upstream app documentation + MAILER_NOREPLY_EMAIL: + name: MAILER_NOREPLY_EMAIL + description: See upstream app documentation + MAILER_NOREPLY_NAME: + name: MAILER_NOREPLY_NAME + description: See upstream app documentation + MAILER_PORT: + name: MAILER_PORT + description: See upstream app documentation + MAILER_SECURITY: + name: MAILER_SECURITY + description: See upstream app documentation + maxmem: + name: maxmem + description: See upstream app documentation + Mode: + name: Mode + description: See upstream app documentation + mqtt_autodiscover: + name: mqtt_autodiscover + description: See upstream app documentation + networkdisks: + name: networkdisks + description: list of smb servers to mount, separated by commas (//xxx.xx.xx.xx/share) + NoAuth: + name: NoAuth + description: See upstream app documentation + NORDIGEN_ID: + name: NORDIGEN_ID + description: See upstream app documentation + NORDIGEN_KEY: + name: NORDIGEN_KEY + description: See upstream app documentation + OAUTHLIB_RELAX_TOKEN_SCOPE: + name: OAUTHLIB_RELAX_TOKEN_SCOPE + description: See upstream app documentation + OCR: + name: OCR + description: See upstream app documentation + ocrlang: + name: ocrlang + description: See upstream app documentation + openvpn_alt_mode: + name: openvpn_alt_mode + description: bind at container level and not app level + openvpn_config: + name: openvpn_config + description: for example ""config.ovpn"" # name of the file located in /config/openvpn + OPENVPN_CUSTOM_PROVIDER: + name: OPENVPN_CUSTOM_PROVIDER + description: See upstream app documentation + OPENVPN_CUSTOM_PROVIDER_OVPN_LOCATION: + name: OPENVPN_CUSTOM_PROVIDER_OVPN_LOCATION + description: See upstream app documentation + openvpn_enabled: + name: openvpn_enabled + description: See upstream app documentation + OPENVPN_PASSWORD: + name: OPENVPN_PASSWORD + description: See upstream app documentation