Testing, BugFixes and Review Improvements
- Fix SabNZBD hostname whitelist issues - Add transmission settings to GUI - Fix some qbittorrent connection issues - Remove Torrent Ingress - Fix some device mounting gui issues - Change repo url references - Cleaning up the homepage - Drop Deluge (App is not safe due to being mostly abandoned) - Move Emby to own Non-Root container - Create new trains and move charts->stable - Add Plex app - update emby and plex intel hardware support - Implement new parallel CI for Apps - Move PGID, PUID, TZ and UMASK settings to "Container Image" configuration - Stop running some workflows on staging - Add branch security trigger to matrix workflows Co-authored-by: Troy Prelog <35702532+tprelog@users.noreply.github.com>
This commit is contained in:
co-authored by
Troy Prelog
parent
c9a3f01580
commit
56211222bf
@@ -1 +1 @@
|
|||||||
0.9.2
|
0.9.3
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
---
|
||||||
|
process:
|
||||||
|
python3:
|
||||||
|
running: true
|
||||||
|
|
||||||
|
port:
|
||||||
|
tcp:6767:
|
||||||
|
listening: true
|
||||||
|
|
||||||
|
# # TODO fix this test
|
||||||
|
# http:
|
||||||
|
# http://localhost:6767:
|
||||||
|
# status: 200
|
||||||
|
# body:
|
||||||
|
# - '<title>Bazarr</title>'
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
focal-20210217
|
||||||
@@ -0,0 +1,104 @@
|
|||||||
|
# hadolint ignore=DL3007
|
||||||
|
FROM ghcr.io/truecharts/ubuntu:latest as builder
|
||||||
|
|
||||||
|
ARG TARGETPLATFORM
|
||||||
|
ARG VERSION
|
||||||
|
|
||||||
|
# hadolint ignore=DL3002
|
||||||
|
USER root
|
||||||
|
|
||||||
|
WORKDIR /tmp
|
||||||
|
|
||||||
|
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
||||||
|
|
||||||
|
# Install system dependencies
|
||||||
|
|
||||||
|
WORKDIR /tmp
|
||||||
|
|
||||||
|
# hadolint ignore=DL3003,DL3008,DL3013,DL3015,SC2086
|
||||||
|
RUN \
|
||||||
|
echo "**** install packages ****" && \
|
||||||
|
apt-get update && \
|
||||||
|
apt-get install -y \
|
||||||
|
aria2 \
|
||||||
|
unrar \
|
||||||
|
uuid-runtime \
|
||||||
|
cpio \
|
||||||
|
jq \
|
||||||
|
rpm2cpio \
|
||||||
|
beignet-opencl-icd \
|
||||||
|
ocl-icd-libopencl1 \
|
||||||
|
&& echo "**** install emby ****" && \
|
||||||
|
mkdir -p \
|
||||||
|
/app && \
|
||||||
|
curl -o \
|
||||||
|
/tmp/emby.rpm -L \
|
||||||
|
"https://github.com/MediaBrowser/Emby.Releases/releases/download/${VERSION}/emby-server-rpm_${VERSION}_x86_64.rpm" && \
|
||||||
|
cd /tmp && \
|
||||||
|
rpm2cpio emby.rpm \
|
||||||
|
| cpio -i --make-directories \
|
||||||
|
&& \
|
||||||
|
printf "UpdateMethod=docker\nPackageVersion=%s\nPackageAuthor=[TrueCharts Project](https://truecharts.org)" "${VERSION}" > /app/package_info \
|
||||||
|
&& \
|
||||||
|
mv -t \
|
||||||
|
/app \
|
||||||
|
/tmp/opt/emby-server/system/* \
|
||||||
|
/tmp/opt/emby-server/lib/* \
|
||||||
|
/tmp/opt/emby-server/bin/ff* \
|
||||||
|
/tmp/opt/emby-server/etc
|
||||||
|
|
||||||
|
|
||||||
|
# hadolint ignore=DL3007
|
||||||
|
FROM ghcr.io/truecharts/ubuntu:latest
|
||||||
|
|
||||||
|
|
||||||
|
ARG TARGETPLATFORM
|
||||||
|
ARG VERSION
|
||||||
|
|
||||||
|
USER root
|
||||||
|
|
||||||
|
ENV NVIDIA_DRIVER_CAPABILITIES="compute,video,utility" \
|
||||||
|
INTEL_NEO_VERSION=21.11.19310 \
|
||||||
|
INTEL_IGC_VERSION=1.0.6646 \
|
||||||
|
INTEL_GMMLIB_VERSION=20.3.2 \
|
||||||
|
APP_DIR="/app"
|
||||||
|
|
||||||
|
# hadolint ignore=DL3008,DL3013,DL3015,SC2086,SC2039
|
||||||
|
RUN \
|
||||||
|
apt-get update && \
|
||||||
|
apt-get install -y --no-install-recommends \
|
||||||
|
mesa-va-drivers \
|
||||||
|
uuid-runtime && \
|
||||||
|
case "${ARCH}" in \
|
||||||
|
'amd64') \
|
||||||
|
curl -J -L -o /tmp/gmmlib.deb https://github.com/intel/compute-runtime/releases/download/${INTEL_NEO_VERSION}/intel-gmmlib_${INTEL_GMMLIB_VERSION}_amd64.deb \
|
||||||
|
&& apt-get install -y /tmp/gmmlib.deb \
|
||||||
|
&& curl -J -L -o /tmp/#1.deb https://github.com/intel/intel-graphics-compiler/releases/download/igc-${INTEL_IGC_VERSION}/{intel-igc-core,intel-igc-opencl}_${INTEL_IGC_VERSION}_amd64.deb \
|
||||||
|
&& apt-get install -y /tmp/intel-igc-core.deb /tmp/intel-igc-opencl.deb \
|
||||||
|
&& curl -J -L -o /tmp/intel-opencl.deb https://github.com/intel/compute-runtime/releases/download/${INTEL_NEO_VERSION}/intel-opencl_${INTEL_NEO_VERSION}_amd64.deb \
|
||||||
|
&& apt-get install -y /tmp/intel-opencl.deb \
|
||||||
|
;; \
|
||||||
|
esac \
|
||||||
|
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||||
|
&& apt-get autoremove -y \
|
||||||
|
&& apt-get clean \
|
||||||
|
&& \
|
||||||
|
rm -rf \
|
||||||
|
/tmp/* \
|
||||||
|
/var/lib/apt/lists/* \
|
||||||
|
/var/tmp/ \
|
||||||
|
&& chmod -R u=rwX,go=rX /app \
|
||||||
|
&& printf "umask %d" "${UMASK}" >> /etc/bash.bashrc \
|
||||||
|
&& update-ca-certificates
|
||||||
|
|
||||||
|
COPY --from=builder /app /app
|
||||||
|
|
||||||
|
USER apps
|
||||||
|
|
||||||
|
EXPOSE 8096 8920
|
||||||
|
|
||||||
|
COPY ./.containers/apps/emby/entrypoint.sh /entrypoint.sh
|
||||||
|
CMD ["/entrypoint.sh"]
|
||||||
|
|
||||||
|
LABEL "maintainer"="TrueCharts <info@truecharts.org>"
|
||||||
|
LABEL "org.opencontainers.image.source"="https://github.com/truecharts/apps"
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
linux/amd64
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
4.5.4.0
|
||||||
Executable
+19
@@ -0,0 +1,19 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
#shellcheck disable=SC1091
|
||||||
|
source "/shim/umask.sh"
|
||||||
|
source "/shim/vpn.sh"
|
||||||
|
|
||||||
|
export LD_LIBRARY_PATH="${APP_DIR}"
|
||||||
|
export FONTCONFIG_PATH="${APP_DIR}"/etc/fonts
|
||||||
|
if [ -d "/lib/x86_64-linux-gnu" ]; then
|
||||||
|
export LIBVA_DRIVERS_PATH=/usr/lib/x86_64-linux-gnu/dri:"${APP_DIR}"/dri
|
||||||
|
fi
|
||||||
|
export SSL_CERT_FILE="${APP_DIR}"/etc/ssl/certs/ca-certificates.crt
|
||||||
|
|
||||||
|
exec /app/EmbyServer \
|
||||||
|
-programdata /config \
|
||||||
|
-ffdetect /app/ffdetect \
|
||||||
|
-ffmpeg /app/ffmpeg \
|
||||||
|
-ffprobe /app/ffprobe \
|
||||||
|
-restartexitcode 3
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
---
|
||||||
|
process:
|
||||||
|
EmbyServer:
|
||||||
|
running: true
|
||||||
|
|
||||||
|
# # TODO fix this test
|
||||||
|
# port:
|
||||||
|
# tcp:8096:
|
||||||
|
# listening: true
|
||||||
|
|
||||||
|
http:
|
||||||
|
http://localhost:8096/web:
|
||||||
|
status: 200
|
||||||
|
body:
|
||||||
|
- '<title>Emby</title>'
|
||||||
Executable
+6
@@ -0,0 +1,6 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
version=$(curl -sX GET https://api.github.com/repos/MediaBrowser/Emby.Releases/releases/latest | jq --raw-output '. | .tag_name')
|
||||||
|
version="${version#*v}"
|
||||||
|
version="${version#*release-}"
|
||||||
|
printf "%s" "${version}"
|
||||||
@@ -1 +1 @@
|
|||||||
0.17.728
|
0.17.790
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
---
|
||||||
process:
|
process:
|
||||||
jackett:
|
jackett:
|
||||||
running: true
|
running: true
|
||||||
|
|||||||
@@ -11,8 +11,8 @@ RUN \
|
|||||||
apt-get -qq update \
|
apt-get -qq update \
|
||||||
&& \
|
&& \
|
||||||
apt-get -qq install -y \
|
apt-get -qq install -y \
|
||||||
|
libchromaprint-tools \
|
||||||
libicu66 \
|
libicu66 \
|
||||||
mediainfo \
|
|
||||||
&& \
|
&& \
|
||||||
case "${TARGETPLATFORM}" in \
|
case "${TARGETPLATFORM}" in \
|
||||||
'linux/amd64') export ARCH='x64' ;; \
|
'linux/amd64') export ARCH='x64' ;; \
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
0.8.0.2086
|
0.8.0.2096
|
||||||
|
|||||||
@@ -4,4 +4,4 @@
|
|||||||
source "/shim/umask.sh"
|
source "/shim/umask.sh"
|
||||||
source "/shim/vpn.sh"
|
source "/shim/vpn.sh"
|
||||||
|
|
||||||
exec /app/Lidarr -nobrowser -data=/config ${EXTRA_ARGS}
|
exec /app/Lidarr --nobrowser --data=/config ${EXTRA_ARGS}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
---
|
||||||
process:
|
process:
|
||||||
Lidarr:
|
Lidarr:
|
||||||
running: true
|
running: true
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
process:
|
||||||
|
nzbget:
|
||||||
|
running: true
|
||||||
|
|
||||||
|
port:
|
||||||
|
tcp:6789:
|
||||||
|
listening: true
|
||||||
|
|
||||||
|
http:
|
||||||
|
http://localhost:6789:
|
||||||
|
status: 200
|
||||||
|
body:
|
||||||
|
- '<title>NZBGet</title>'
|
||||||
@@ -1 +1 @@
|
|||||||
3.13.1
|
3.13.2
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
---
|
||||||
|
process:
|
||||||
|
python3:
|
||||||
|
running: true
|
||||||
|
|
||||||
|
port:
|
||||||
|
tcp:5076:
|
||||||
|
listening: true
|
||||||
|
|
||||||
|
# # TODO fix this test
|
||||||
|
# http:
|
||||||
|
# http://localhost:5076:
|
||||||
|
# status: 200
|
||||||
|
# body:
|
||||||
|
# - '<title>NZBHydra2</title>'
|
||||||
@@ -1 +1 @@
|
|||||||
4.0.1222
|
4.0.1275
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ ARG VERSION
|
|||||||
USER root
|
USER root
|
||||||
|
|
||||||
ENV NVIDIA_DRIVER_CAPABILITIES="compute,video,utility" \
|
ENV NVIDIA_DRIVER_CAPABILITIES="compute,video,utility" \
|
||||||
INTEL_NEO_VERSION=20.48.18558 \
|
INTEL_NEO_VERSION=21.11.19310 \
|
||||||
INTEL_IGC_VERSION=1.0.5699 \
|
INTEL_IGC_VERSION=1.0.6646 \
|
||||||
INTEL_GMMLIB_VERSION=20.3.2 \
|
INTEL_GMMLIB_VERSION=20.3.2 \
|
||||||
PLEX_DOWNLOAD="https://downloads.plex.tv/plex-media-server-new" \
|
PLEX_DOWNLOAD="https://downloads.plex.tv/plex-media-server-new" \
|
||||||
PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR="/config/Library/Application Support" \
|
PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR="/config/Library/Application Support" \
|
||||||
@@ -25,6 +25,14 @@ RUN \
|
|||||||
export ARCH='amd64'; \
|
export ARCH='amd64'; \
|
||||||
export EXTRA_INSTALL_ARG='beignet-opencl-icd ocl-icd-libopencl1'; \
|
export EXTRA_INSTALL_ARG='beignet-opencl-icd ocl-icd-libopencl1'; \
|
||||||
;; \
|
;; \
|
||||||
|
'linux/arm64') \
|
||||||
|
export ARCH='arm64'; \
|
||||||
|
export EXTRA_INSTALL_ARG=''; \
|
||||||
|
unset NVIDIA_DRIVER_CAPABILITIES; \
|
||||||
|
unset INTEL_NEO_VERSION; \
|
||||||
|
unset INTEL_IGC_VERSION; \
|
||||||
|
unset INTEL_GMMLIB_VERSION; \
|
||||||
|
;; \
|
||||||
esac \
|
esac \
|
||||||
&& \
|
&& \
|
||||||
apt-get -qq update \
|
apt-get -qq update \
|
||||||
@@ -38,11 +46,12 @@ RUN \
|
|||||||
&& \
|
&& \
|
||||||
case "${ARCH}" in \
|
case "${ARCH}" in \
|
||||||
'amd64') \
|
'amd64') \
|
||||||
curl -J -L -o /tmp/gmmlib.deb https://github.com/intel/compute-runtime/releases/download/${INTEL_NEO_VERSION}/intel-gmmlib_${INTEL_GMMLIB_VERSION}_amd64.deb \
|
aria2c -d /tmp -o gmmlib.deb https://github.com/intel/compute-runtime/releases/download/${INTEL_NEO_VERSION}/intel-gmmlib_${INTEL_GMMLIB_VERSION}_amd64.deb \
|
||||||
&& apt-get install -y /tmp/gmmlib.deb \
|
&& apt-get install -y /tmp/gmmlib.deb \
|
||||||
&& curl -J -L -o /tmp/#1.deb https://github.com/intel/intel-graphics-compiler/releases/download/igc-${INTEL_IGC_VERSION}/{intel-igc-core,intel-igc-opencl}_${INTEL_IGC_VERSION}_amd64.deb \
|
&& aria2c -d /tmp -o intel-igc-core.deb https://github.com/intel/intel-graphics-compiler/releases/download/igc-${INTEL_IGC_VERSION}/intel-igc-core_${INTEL_IGC_VERSION}_amd64.deb \
|
||||||
|
&& aria2c -d /tmp -o intel-igc-opencl.deb https://github.com/intel/intel-graphics-compiler/releases/download/igc-${INTEL_IGC_VERSION}/intel-igc-opencl_${INTEL_IGC_VERSION}_amd64.deb \
|
||||||
&& apt-get install -y /tmp/intel-igc-core.deb /tmp/intel-igc-opencl.deb \
|
&& apt-get install -y /tmp/intel-igc-core.deb /tmp/intel-igc-opencl.deb \
|
||||||
&& curl -J -L -o /tmp/intel-opencl.deb https://github.com/intel/compute-runtime/releases/download/${INTEL_NEO_VERSION}/intel-opencl_${INTEL_NEO_VERSION}_amd64.deb \
|
&& aria2c -d /tmp -o intel-opencl.deb https://github.com/intel/compute-runtime/releases/download/${INTEL_NEO_VERSION}/intel-opencl_${INTEL_NEO_VERSION}_amd64.deb \
|
||||||
&& apt-get install -y /tmp/intel-opencl.deb \
|
&& apt-get install -y /tmp/intel-opencl.deb \
|
||||||
;; \
|
;; \
|
||||||
esac \
|
esac \
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
1.22.0.4163-d8c4875dd
|
1.22.1.4228-724c56e62
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
---
|
||||||
|
process:
|
||||||
|
Plex Media Serv:
|
||||||
|
running: true
|
||||||
|
|
||||||
|
port:
|
||||||
|
tcp6:32400:
|
||||||
|
listening: true
|
||||||
|
|
||||||
|
# # TODO fix this test
|
||||||
|
# http:
|
||||||
|
# http://localhost:32400:
|
||||||
|
# status: 200
|
||||||
|
# body:
|
||||||
|
# - '<title>Plex</title>'
|
||||||
@@ -1 +1 @@
|
|||||||
4.3.3
|
4.3.4.1
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
process:
|
||||||
|
qbittorrent-nox:
|
||||||
|
running: true
|
||||||
|
|
||||||
|
port:
|
||||||
|
tcp6:8080:
|
||||||
|
listening: true
|
||||||
|
|
||||||
|
http:
|
||||||
|
http://localhost:8080:
|
||||||
|
status: 200
|
||||||
|
body:
|
||||||
|
- '<title>qBittorrent Web UI</title>'
|
||||||
@@ -8,8 +8,9 @@ Accepted=true
|
|||||||
[Preferences]
|
[Preferences]
|
||||||
Connection\UPnP=false
|
Connection\UPnP=false
|
||||||
Connection\PortRangeMin=6881
|
Connection\PortRangeMin=6881
|
||||||
Downloads\SavePath=/tmp/downloads
|
Downloads\SavePath=/downloads/downloads
|
||||||
Downloads\ScanDirsV2=@Variant(\0\0\0\x1c\0\0\0\0)
|
Downloads\ScanDirsV2=@Variant(\0\0\0\x1c\0\0\0\0)
|
||||||
Downloads\TempPath=/tmp/incomplete
|
Downloads\TempPath=/downloads/incomplete
|
||||||
WebUI\Address=*
|
WebUI\Address=*
|
||||||
WebUI\ServerDomains=*
|
WebUI\ServerDomains=*
|
||||||
|
WebUI\HostHeaderValidation=false
|
||||||
|
|||||||
@@ -12,20 +12,20 @@ RUN \
|
|||||||
&& \
|
&& \
|
||||||
apt-get -qq install -y \
|
apt-get -qq install -y \
|
||||||
libicu66 \
|
libicu66 \
|
||||||
mediainfo \
|
libmediainfo0v5 \
|
||||||
&& \
|
&& \
|
||||||
case "${TARGETPLATFORM}" in \
|
case "${TARGETPLATFORM}" in \
|
||||||
'linux/amd64') export ARCH='x64' ;; \
|
'linux/amd64') export ARCH='x64' ;; \
|
||||||
esac \
|
esac \
|
||||||
&& \
|
&& \
|
||||||
curl -fsSL -o /tmp/radarr.tar.gz \
|
curl -fsSL -o /tmp/radarr.tar.gz \
|
||||||
"https://radarr.servarr.com/v1/update/develop/updatefile?version=${VERSION}&os=linux&runtime=netcore&arch=${ARCH}" \
|
"https://radarr.servarr.com/v1/update/master/updatefile?version=${VERSION}&os=linux&runtime=netcore&arch=${ARCH}" \
|
||||||
&& tar ixzf /tmp/radarr.tar.gz -C /app --strip-components 1 \
|
&& tar ixzf /tmp/radarr.tar.gz -C /app --strip-components 1 \
|
||||||
&& \
|
&& \
|
||||||
rm -rf \
|
rm -rf \
|
||||||
/app/Radarr.Update* \
|
/app/Radarr.Update* \
|
||||||
&& \
|
&& \
|
||||||
printf "UpdateMethod=docker\nBranch=develop\nPackageVersion=%s\nPackageAuthor=[TrueCharts Project](https://truecharts.org)" "${VERSION}" > /app/package_info \
|
printf "UpdateMethod=docker\nBranch=master\nPackageVersion=%s\nPackageAuthor=[TrueCharts Project](https://truecharts.org)" "${VERSION}" > /app/package_info \
|
||||||
&& \
|
&& \
|
||||||
apt-get autoremove -y \
|
apt-get autoremove -y \
|
||||||
&& apt-get clean \
|
&& apt-get clean \
|
||||||
|
|||||||
@@ -4,4 +4,4 @@
|
|||||||
source "/shim/umask.sh"
|
source "/shim/umask.sh"
|
||||||
source "/shim/vpn.sh"
|
source "/shim/vpn.sh"
|
||||||
|
|
||||||
exec /app/Radarr -nobrowser -data=/config ${EXTRA_ARGS}
|
exec /app/Radarr --nobrowser --data=/config ${EXTRA_ARGS}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
---
|
||||||
process:
|
process:
|
||||||
Radarr:
|
Radarr:
|
||||||
running: true
|
running: true
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
version=$(curl -sX GET "https://radarr.servarr.com/v1/update/develop/changes?os=linux" | jq --raw-output '.[0].version')
|
version=$(curl -sX GET "https://radarr.servarr.com/v1/update/master/changes?os=linux" | jq --raw-output '.[0].version')
|
||||||
version="${version#*v}"
|
version="${version#*v}"
|
||||||
version="${version#*release-}"
|
version="${version#*release-}"
|
||||||
printf "%s" "${version}"
|
printf "%s" "${version}"
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
0.1.0.536
|
0.1.0.545
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
process:
|
||||||
|
Readarr:
|
||||||
|
running: true
|
||||||
|
|
||||||
|
port:
|
||||||
|
tcp6:8787:
|
||||||
|
listening: true
|
||||||
|
|
||||||
|
http:
|
||||||
|
http://localhost:8787:
|
||||||
|
status: 200
|
||||||
|
body:
|
||||||
|
- '<title>Readarr</title>'
|
||||||
@@ -4,4 +4,21 @@
|
|||||||
source "/shim/umask.sh"
|
source "/shim/umask.sh"
|
||||||
source "/shim/vpn.sh"
|
source "/shim/vpn.sh"
|
||||||
|
|
||||||
|
if [[ ! -f "/config/sabnzbd.ini" ]]; then
|
||||||
|
printf "Copying over default configuration ... "
|
||||||
|
mkdir -p /config/sabnzbd
|
||||||
|
cp /app/sabnzbd.ini /config/sabnzbd.ini
|
||||||
|
|
||||||
|
printf "Creating api keys ... "
|
||||||
|
api_key=$(cat /dev/urandom | tr -dc 'a-z0-9' | fold -w 32 | head -n 1)
|
||||||
|
nzb_key=$(cat /dev/urandom | tr -dc 'a-z0-9' | fold -w 32 | head -n 1)
|
||||||
|
sed -i -e "s/^api_key *=.*$/api_key = ${api_key}/g" /config/sabnzbd.ini
|
||||||
|
sed -i -e "s/^nzb_key *=.*$/nzb_key = ${nzb_key}/g" /config/sabnzbd.ini
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n ${HOST_WHITELIST_ENTRIES} ]]; then
|
||||||
|
printf "Updating host_whitelist setting ... "
|
||||||
|
sed -i -e "s/^host_whitelist *=.*$/host_whitelist = ${HOSTNAME}, ${HOST_WHITELIST_ENTRIES}/g" /config/sabnzbd.ini
|
||||||
|
fi
|
||||||
|
|
||||||
exec /usr/bin/python3 /app/SABnzbd.py --browser 0 --server 0.0.0.0:8080 --config-file /config/sabnzbd.ini ${EXTRA_ARGS}
|
exec /usr/bin/python3 /app/SABnzbd.py --browser 0 --server 0.0.0.0:8080 --config-file /config/sabnzbd.ini ${EXTRA_ARGS}
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
process:
|
||||||
|
python3:
|
||||||
|
running: true
|
||||||
|
|
||||||
|
port:
|
||||||
|
tcp:8080:
|
||||||
|
listening: true
|
||||||
|
|
||||||
|
http:
|
||||||
|
http://localhost:8080/sabnzbd:
|
||||||
|
status: 200
|
||||||
|
body:
|
||||||
|
- '<title>SABnzbd Quick-Start Wizard</title>'
|
||||||
@@ -0,0 +1,304 @@
|
|||||||
|
__version__ = 19
|
||||||
|
__encoding__ = utf-8
|
||||||
|
[misc]
|
||||||
|
pre_script = None
|
||||||
|
queue_complete = ""
|
||||||
|
queue_complete_pers = 0
|
||||||
|
bandwidth_perc = 100
|
||||||
|
refresh_rate = 0
|
||||||
|
interface_settings = ""
|
||||||
|
queue_limit = 20
|
||||||
|
config_lock = 0
|
||||||
|
sched_converted = 0
|
||||||
|
notified_new_skin = 0
|
||||||
|
direct_unpack_tested = 0
|
||||||
|
check_new_rel = 1
|
||||||
|
auto_browser = 0
|
||||||
|
language = en
|
||||||
|
enable_https_verification = 1
|
||||||
|
host = 0.0.0.0
|
||||||
|
port = 8080
|
||||||
|
https_port = ""
|
||||||
|
username = ""
|
||||||
|
password = ""
|
||||||
|
bandwidth_max = ""
|
||||||
|
cache_limit = ""
|
||||||
|
web_dir = Glitter
|
||||||
|
web_color = ""
|
||||||
|
https_cert = server.cert
|
||||||
|
https_key = server.key
|
||||||
|
https_chain = ""
|
||||||
|
enable_https = 0
|
||||||
|
inet_exposure = 0
|
||||||
|
local_ranges = ,
|
||||||
|
api_key = ""
|
||||||
|
nzb_key = ""
|
||||||
|
permissions = ""
|
||||||
|
download_dir = Downloads/incomplete
|
||||||
|
download_free = ""
|
||||||
|
complete_dir = Downloads/complete
|
||||||
|
complete_free = ""
|
||||||
|
fulldisk_autoresume = 0
|
||||||
|
script_dir = ""
|
||||||
|
nzb_backup_dir = ""
|
||||||
|
admin_dir = admin
|
||||||
|
dirscan_dir = ""
|
||||||
|
dirscan_speed = 5
|
||||||
|
password_file = ""
|
||||||
|
log_dir = logs
|
||||||
|
max_art_tries = 3
|
||||||
|
load_balancing = 2
|
||||||
|
top_only = 0
|
||||||
|
sfv_check = 1
|
||||||
|
quick_check_ext_ignore = nfo, sfv, srr
|
||||||
|
script_can_fail = 0
|
||||||
|
enable_recursive = 1
|
||||||
|
flat_unpack = 0
|
||||||
|
par_option = ""
|
||||||
|
pre_check = 0
|
||||||
|
nice = ""
|
||||||
|
win_process_prio = 3
|
||||||
|
ionice = ""
|
||||||
|
fail_hopeless_jobs = 1
|
||||||
|
fast_fail = 1
|
||||||
|
auto_disconnect = 1
|
||||||
|
no_dupes = 0
|
||||||
|
no_series_dupes = 0
|
||||||
|
series_propercheck = 1
|
||||||
|
pause_on_pwrar = 1
|
||||||
|
ignore_samples = 0
|
||||||
|
deobfuscate_final_filenames = 0
|
||||||
|
auto_sort = ""
|
||||||
|
direct_unpack = 0
|
||||||
|
direct_unpack_threads = 3
|
||||||
|
propagation_delay = 0
|
||||||
|
folder_rename = 1
|
||||||
|
replace_spaces = 0
|
||||||
|
replace_dots = 0
|
||||||
|
safe_postproc = 1
|
||||||
|
pause_on_post_processing = 0
|
||||||
|
sanitize_safe = 0
|
||||||
|
cleanup_list = ,
|
||||||
|
unwanted_extensions = ,
|
||||||
|
action_on_unwanted_extensions = 0
|
||||||
|
new_nzb_on_failure = 0
|
||||||
|
history_retention = 0
|
||||||
|
enable_meta = 1
|
||||||
|
quota_size = ""
|
||||||
|
quota_day = ""
|
||||||
|
quota_resume = 0
|
||||||
|
quota_period = m
|
||||||
|
rating_enable = 0
|
||||||
|
rating_host = ""
|
||||||
|
rating_api_key = ""
|
||||||
|
rating_filter_enable = 0
|
||||||
|
rating_filter_abort_audio = 0
|
||||||
|
rating_filter_abort_video = 0
|
||||||
|
rating_filter_abort_encrypted = 0
|
||||||
|
rating_filter_abort_encrypted_confirm = 0
|
||||||
|
rating_filter_abort_spam = 0
|
||||||
|
rating_filter_abort_spam_confirm = 0
|
||||||
|
rating_filter_abort_downvoted = 0
|
||||||
|
rating_filter_abort_keywords = ""
|
||||||
|
rating_filter_pause_audio = 0
|
||||||
|
rating_filter_pause_video = 0
|
||||||
|
rating_filter_pause_encrypted = 0
|
||||||
|
rating_filter_pause_encrypted_confirm = 0
|
||||||
|
rating_filter_pause_spam = 0
|
||||||
|
rating_filter_pause_spam_confirm = 0
|
||||||
|
rating_filter_pause_downvoted = 0
|
||||||
|
rating_filter_pause_keywords = ""
|
||||||
|
enable_tv_sorting = 0
|
||||||
|
tv_sort_string = ""
|
||||||
|
tv_sort_countries = 1
|
||||||
|
tv_categories = ""
|
||||||
|
enable_movie_sorting = 0
|
||||||
|
movie_sort_string = ""
|
||||||
|
movie_sort_extra = -cd%1
|
||||||
|
movie_extra_folder = 0
|
||||||
|
movie_categories = movies,
|
||||||
|
enable_date_sorting = 0
|
||||||
|
date_sort_string = ""
|
||||||
|
date_categories = tv,
|
||||||
|
schedlines = ,
|
||||||
|
rss_rate = 60
|
||||||
|
ampm = 0
|
||||||
|
replace_illegal = 1
|
||||||
|
start_paused = 0
|
||||||
|
enable_all_par = 0
|
||||||
|
enable_par_cleanup = 1
|
||||||
|
enable_unrar = 1
|
||||||
|
enable_unzip = 1
|
||||||
|
enable_7zip = 1
|
||||||
|
enable_filejoin = 1
|
||||||
|
enable_tsjoin = 1
|
||||||
|
overwrite_files = 0
|
||||||
|
ignore_unrar_dates = 0
|
||||||
|
backup_for_duplicates = 1
|
||||||
|
empty_postproc = 0
|
||||||
|
wait_for_dfolder = 0
|
||||||
|
rss_filenames = 0
|
||||||
|
api_logging = 1
|
||||||
|
html_login = 1
|
||||||
|
osx_menu = 1
|
||||||
|
osx_speed = 1
|
||||||
|
warn_dupl_jobs = 1
|
||||||
|
helpfull_warnings = 1
|
||||||
|
keep_awake = 1
|
||||||
|
win_menu = 1
|
||||||
|
allow_incomplete_nzb = 0
|
||||||
|
enable_broadcast = 1
|
||||||
|
max_art_opt = 0
|
||||||
|
ipv6_hosting = 0
|
||||||
|
fixed_ports = 1
|
||||||
|
api_warnings = 1
|
||||||
|
disable_api_key = 0
|
||||||
|
no_penalties = 0
|
||||||
|
x_frame_options = 1
|
||||||
|
require_modern_tls = 0
|
||||||
|
num_decoders = 3
|
||||||
|
rss_odd_titles = nzbindex.nl/, nzbindex.com/, nzbclub.com/
|
||||||
|
req_completion_rate = 100.2
|
||||||
|
selftest_host = self-test.sabnzbd.org
|
||||||
|
movie_rename_limit = 100M
|
||||||
|
size_limit = 0
|
||||||
|
show_sysload = 2
|
||||||
|
history_limit = 10
|
||||||
|
wait_ext_drive = 5
|
||||||
|
max_foldername_length = 246
|
||||||
|
nomedia_marker = ""
|
||||||
|
ipv6_servers = 1
|
||||||
|
url_base = /sabnzbd
|
||||||
|
host_whitelist = 2b4152ea8457,
|
||||||
|
max_url_retries = 10
|
||||||
|
downloader_sleep_time = 10
|
||||||
|
ssdp_broadcast_interval = 15
|
||||||
|
email_server = ""
|
||||||
|
email_to = ,
|
||||||
|
email_from = ""
|
||||||
|
email_account = ""
|
||||||
|
email_pwd = ""
|
||||||
|
email_endjob = 0
|
||||||
|
email_full = 0
|
||||||
|
email_dir = ""
|
||||||
|
email_rss = 0
|
||||||
|
email_cats = *,
|
||||||
|
[logging]
|
||||||
|
log_level = 1
|
||||||
|
max_log_size = 5242880
|
||||||
|
log_backups = 5
|
||||||
|
[ncenter]
|
||||||
|
ncenter_enable = 0
|
||||||
|
ncenter_cats = *,
|
||||||
|
ncenter_prio_startup = 1
|
||||||
|
ncenter_prio_download = 0
|
||||||
|
ncenter_prio_pause_resume = 0
|
||||||
|
ncenter_prio_pp = 0
|
||||||
|
ncenter_prio_complete = 1
|
||||||
|
ncenter_prio_failed = 1
|
||||||
|
ncenter_prio_disk_full = 1
|
||||||
|
ncenter_prio_new_login = 0
|
||||||
|
ncenter_prio_warning = 0
|
||||||
|
ncenter_prio_error = 0
|
||||||
|
ncenter_prio_queue_done = 1
|
||||||
|
ncenter_prio_other = 1
|
||||||
|
[acenter]
|
||||||
|
acenter_enable = 0
|
||||||
|
acenter_cats = *,
|
||||||
|
acenter_prio_startup = 0
|
||||||
|
acenter_prio_download = 0
|
||||||
|
acenter_prio_pause_resume = 0
|
||||||
|
acenter_prio_pp = 0
|
||||||
|
acenter_prio_complete = 1
|
||||||
|
acenter_prio_failed = 1
|
||||||
|
acenter_prio_disk_full = 1
|
||||||
|
acenter_prio_new_login = 0
|
||||||
|
acenter_prio_warning = 0
|
||||||
|
acenter_prio_error = 0
|
||||||
|
acenter_prio_queue_done = 1
|
||||||
|
acenter_prio_other = 1
|
||||||
|
[ntfosd]
|
||||||
|
ntfosd_enable = 1
|
||||||
|
ntfosd_cats = *,
|
||||||
|
ntfosd_prio_startup = 1
|
||||||
|
ntfosd_prio_download = 0
|
||||||
|
ntfosd_prio_pause_resume = 0
|
||||||
|
ntfosd_prio_pp = 0
|
||||||
|
ntfosd_prio_complete = 1
|
||||||
|
ntfosd_prio_failed = 1
|
||||||
|
ntfosd_prio_disk_full = 1
|
||||||
|
ntfosd_prio_new_login = 0
|
||||||
|
ntfosd_prio_warning = 0
|
||||||
|
ntfosd_prio_error = 0
|
||||||
|
ntfosd_prio_queue_done = 1
|
||||||
|
ntfosd_prio_other = 1
|
||||||
|
[prowl]
|
||||||
|
prowl_enable = 0
|
||||||
|
prowl_cats = *,
|
||||||
|
prowl_apikey = ""
|
||||||
|
prowl_prio_startup = -3
|
||||||
|
prowl_prio_download = -3
|
||||||
|
prowl_prio_pause_resume = -3
|
||||||
|
prowl_prio_pp = -3
|
||||||
|
prowl_prio_complete = 0
|
||||||
|
prowl_prio_failed = 1
|
||||||
|
prowl_prio_disk_full = 1
|
||||||
|
prowl_prio_new_login = -3
|
||||||
|
prowl_prio_warning = -3
|
||||||
|
prowl_prio_error = -3
|
||||||
|
prowl_prio_queue_done = 0
|
||||||
|
prowl_prio_other = 0
|
||||||
|
[pushover]
|
||||||
|
pushover_token = ""
|
||||||
|
pushover_userkey = ""
|
||||||
|
pushover_device = ""
|
||||||
|
pushover_emergency_expire = 3600
|
||||||
|
pushover_emergency_retry = 60
|
||||||
|
pushover_enable = 0
|
||||||
|
pushover_cats = *,
|
||||||
|
pushover_prio_startup = -3
|
||||||
|
pushover_prio_download = -2
|
||||||
|
pushover_prio_pause_resume = -2
|
||||||
|
pushover_prio_pp = -3
|
||||||
|
pushover_prio_complete = -1
|
||||||
|
pushover_prio_failed = -1
|
||||||
|
pushover_prio_disk_full = 1
|
||||||
|
pushover_prio_new_login = -3
|
||||||
|
pushover_prio_warning = 1
|
||||||
|
pushover_prio_error = 1
|
||||||
|
pushover_prio_queue_done = -1
|
||||||
|
pushover_prio_other = -1
|
||||||
|
[pushbullet]
|
||||||
|
pushbullet_enable = 0
|
||||||
|
pushbullet_cats = *,
|
||||||
|
pushbullet_apikey = ""
|
||||||
|
pushbullet_device = ""
|
||||||
|
pushbullet_prio_startup = 0
|
||||||
|
pushbullet_prio_download = 0
|
||||||
|
pushbullet_prio_pause_resume = 0
|
||||||
|
pushbullet_prio_pp = 0
|
||||||
|
pushbullet_prio_complete = 1
|
||||||
|
pushbullet_prio_failed = 1
|
||||||
|
pushbullet_prio_disk_full = 1
|
||||||
|
pushbullet_prio_new_login = 0
|
||||||
|
pushbullet_prio_warning = 0
|
||||||
|
pushbullet_prio_error = 0
|
||||||
|
pushbullet_prio_queue_done = 0
|
||||||
|
pushbullet_prio_other = 1
|
||||||
|
[nscript]
|
||||||
|
nscript_enable = 0
|
||||||
|
nscript_cats = *,
|
||||||
|
nscript_script = ""
|
||||||
|
nscript_parameters = ""
|
||||||
|
nscript_prio_startup = 1
|
||||||
|
nscript_prio_download = 0
|
||||||
|
nscript_prio_pause_resume = 0
|
||||||
|
nscript_prio_pp = 0
|
||||||
|
nscript_prio_complete = 1
|
||||||
|
nscript_prio_failed = 1
|
||||||
|
nscript_prio_disk_full = 1
|
||||||
|
nscript_prio_new_login = 0
|
||||||
|
nscript_prio_warning = 0
|
||||||
|
nscript_prio_error = 0
|
||||||
|
nscript_prio_queue_done = 1
|
||||||
|
nscript_prio_other = 1
|
||||||
@@ -20,19 +20,17 @@ RUN \
|
|||||||
&& apt-get -qq update \
|
&& apt-get -qq update \
|
||||||
&& \
|
&& \
|
||||||
apt-get -qq install -y \
|
apt-get -qq install -y \
|
||||||
libicu66 \
|
mono-complete=${MONO_VERSION}\* \
|
||||||
mediainfo \
|
libmediainfo0v5 \
|
||||||
mono-devel \
|
|
||||||
ca-certificates-mono \
|
|
||||||
&& \
|
&& \
|
||||||
curl -fsSL -o /tmp/sonarr.tar.gz \
|
curl -fsSL -o /tmp/sonarr.tar.gz \
|
||||||
"https://download.sonarr.tv/v3/phantom-develop/${VERSION}/Sonarr.phantom-develop.${VERSION}.linux.tar.gz" \
|
"https://download.sonarr.tv/v3/main/${VERSION}/Sonarr.main.${VERSION}.linux.tar.gz" \
|
||||||
&& tar ixzf /tmp/sonarr.tar.gz -C /app --strip-components 1 \
|
&& tar ixzf /tmp/sonarr.tar.gz -C /app --strip-components 1 \
|
||||||
&& \
|
&& \
|
||||||
rm -rf \
|
rm -rf \
|
||||||
/app/Sonarr.Update* \
|
/app/Sonarr.Update* \
|
||||||
&& \
|
&& \
|
||||||
printf "UpdateMethod=docker\nBranch=phantom-develop\nPackageVersion=%s\nPackageAuthor=[TrueCharts Project](https://truecharts.org)" "${VERSION}" > /app/package_info \
|
printf "UpdateMethod=docker\nBranch=main\nPackageVersion=%s\nPackageAuthor=[TrueCharts Project](https://truecharts.org)" "${VERSION}" > /app/package_info \
|
||||||
&& \
|
&& \
|
||||||
gpgconf --kill all \
|
gpgconf --kill all \
|
||||||
&& apt-get remove -y gnupg2 \
|
&& apt-get remove -y gnupg2 \
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
3.0.5.1143
|
3.0.5.1144
|
||||||
|
|||||||
@@ -4,4 +4,4 @@
|
|||||||
source "/shim/umask.sh"
|
source "/shim/umask.sh"
|
||||||
source "/shim/vpn.sh"
|
source "/shim/vpn.sh"
|
||||||
|
|
||||||
exec /usr/bin/mono --debug /app/Sonarr.exe -nobrowser -data=/config ${EXTRA_ARGS}
|
exec /usr/bin/mono --debug /app/Sonarr.exe --nobrowser --data=/config ${EXTRA_ARGS}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
---
|
||||||
process:
|
process:
|
||||||
mono:
|
mono:
|
||||||
running: true
|
running: true
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
version=$(curl -sX GET "https://services.sonarr.tv/v1/download/phantom-develop?version=3" | jq --raw-output '.version')
|
version=$(curl -sX GET "https://services.sonarr.tv/v1/download/main?version=3" | jq --raw-output '.version')
|
||||||
version="${version#*v}"
|
version="${version#*v}"
|
||||||
version="${version#*release-}"
|
version="${version#*release-}"
|
||||||
printf "%s" "${version}"
|
printf "%s" "${version}"
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
2.6.8
|
2.6.10
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
---
|
||||||
|
process:
|
||||||
|
python3:
|
||||||
|
running: true
|
||||||
|
|
||||||
|
port:
|
||||||
|
tcp:8181:
|
||||||
|
listening: true
|
||||||
|
|
||||||
|
# # TODO fix this test
|
||||||
|
# http:
|
||||||
|
# http://localhost:8181:
|
||||||
|
# status: 200
|
||||||
|
# body:
|
||||||
|
# - '<title>Tautulli</title>'
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
process:
|
||||||
|
transmission-da:
|
||||||
|
running: true
|
||||||
|
|
||||||
|
port:
|
||||||
|
tcp:9091:
|
||||||
|
listening: true
|
||||||
|
|
||||||
|
http:
|
||||||
|
http://localhost:9091:
|
||||||
|
status: 200
|
||||||
|
body:
|
||||||
|
- '<title>Transmission Web Interface</title>'
|
||||||
@@ -1 +1 @@
|
|||||||
3.12
|
3.13.3
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
version=$(curl -s "https://registry.hub.docker.com/v1/repositories/library/alpine/tags" | jq --raw-output '.[] | select(.name | contains(".")) | .name' | sort -t "." -k1,1n -k2,2n -k3,3n | tail -n1)
|
||||||
|
version="${version#*v}"
|
||||||
|
version="${version#*release-}"
|
||||||
|
printf "%s" "${version}"
|
||||||
@@ -4,11 +4,20 @@ FROM ubuntu:${VERSION}
|
|||||||
|
|
||||||
ARG TARGETPLATFORM
|
ARG TARGETPLATFORM
|
||||||
|
|
||||||
|
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
||||||
|
|
||||||
|
# DEBIAN_FRONTEND: https://askubuntu.com/questions/972516/debian-frontend-environment-variable
|
||||||
|
# APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE: http://stackoverflow.com/questions/48162574/ddg#49462622
|
||||||
ENV \
|
ENV \
|
||||||
DEBCONF_NONINTERACTIVE_SEEN=true \
|
DEBCONF_NONINTERACTIVE_SEEN=true \
|
||||||
DEBIAN_FRONTEND=noninteractive \
|
DEBIAN_FRONTEND="noninteractive" \
|
||||||
|
APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=DontWarn \
|
||||||
TINI_VERSION=0.19.0 \
|
TINI_VERSION=0.19.0 \
|
||||||
UMASK=0002
|
UMASK=0002 \
|
||||||
|
LANG=en_US.UTF-8 \
|
||||||
|
LANGUAGE=en_US:en \
|
||||||
|
LC_ALL=en_US.UTF-8 \
|
||||||
|
MICRO_CONFIG_HOME=/tmp
|
||||||
|
|
||||||
RUN \
|
RUN \
|
||||||
adduser apps \
|
adduser apps \
|
||||||
@@ -26,12 +35,7 @@ WORKDIR /app
|
|||||||
# hadolint ignore=DL3008,DL3015
|
# hadolint ignore=DL3008,DL3015
|
||||||
RUN \
|
RUN \
|
||||||
set -eux \
|
set -eux \
|
||||||
&& \
|
&& echo 'APT::Install-Recommends "false";' >/etc/apt/apt.conf.d/00recommends \
|
||||||
case "${TARGETPLATFORM}" in \
|
|
||||||
'linux/amd64') export ARCH='amd64' ;; \
|
|
||||||
esac \
|
|
||||||
&& \
|
|
||||||
echo 'APT::Install-Recommends "false";' >/etc/apt/apt.conf.d/00recommends \
|
|
||||||
&& echo 'APT::Install-Suggests "false";' >>/etc/apt/apt.conf.d/00recommends \
|
&& echo 'APT::Install-Suggests "false";' >>/etc/apt/apt.conf.d/00recommends \
|
||||||
&& echo 'APT::Get::Install-Recommends "false";' >>/etc/apt/apt.conf.d/00recommends \
|
&& echo 'APT::Get::Install-Recommends "false";' >>/etc/apt/apt.conf.d/00recommends \
|
||||||
&& echo 'APT::Get::Install-Suggests "false";' >>/etc/apt/apt.conf.d/00recommends \
|
&& echo 'APT::Get::Install-Suggests "false";' >>/etc/apt/apt.conf.d/00recommends \
|
||||||
@@ -39,22 +43,30 @@ RUN \
|
|||||||
apt-get -qq update \
|
apt-get -qq update \
|
||||||
&& \
|
&& \
|
||||||
apt-get install -y \
|
apt-get install -y \
|
||||||
|
bash \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
curl \
|
curl \
|
||||||
gnupg2 \
|
jq \
|
||||||
locales \
|
locales \
|
||||||
|
tini \
|
||||||
tzdata \
|
tzdata \
|
||||||
vim \
|
|
||||||
&& locale-gen en_US.UTF-8 \
|
&& locale-gen en_US.UTF-8 \
|
||||||
&& curl -fsSL -o /sbin/tini "https://github.com/krallin/tini/releases/download/v${TINI_VERSION}/tini-${ARCH}" \
|
&& update-locale \
|
||||||
&& curl -fsSL -o /tini.asc "https://github.com/krallin/tini/releases/download/v${TINI_VERSION}/tini-${ARCH}.asc" \
|
&& dpkg-reconfigure -f noninteractive locales \
|
||||||
&& gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 595E85A6B1B4779EA4DAAEC70B588DFF0527A9B7 \
|
&& MICRO_VERSION=$(curl -s "https://api.github.com/repos/zyedidia/micro/releases" | jq --raw-output '.[0].tag_name') \
|
||||||
&& gpg --batch --verify /tini.asc /sbin/tini \
|
&& MICRO_VERSION="${MICRO_VERSION#?}" \
|
||||||
&& chmod +x /sbin/tini \
|
&& curl -fsSL "https://github.com/zyedidia/micro/releases/download/v${MICRO_VERSION}/micro-${MICRO_VERSION}-linux64.tar.gz" | tar xzf - -C /tmp --strip-components=1 \
|
||||||
&& gpgconf --kill all \
|
&& mv /tmp/micro /usr/local/bin/micro \
|
||||||
|
&& ln -s /usr/local/bin/micro /usr/local/bin/vi \
|
||||||
|
&& ln -s /usr/local/bin/micro /usr/local/bin/vim \
|
||||||
|
&& ln -s /usr/local/bin/micro /usr/local/bin/nano \
|
||||||
|
&& ln -s /usr/local/bin/micro /usr/local/bin/emacs \
|
||||||
|
&& unset MICRO_ARCH \
|
||||||
|
&& unset MICRO_VERSION \
|
||||||
&& \
|
&& \
|
||||||
apt-get remove -y \
|
printf "/bin/bash /shim/greeting.sh" >> /etc/bash.bashrc \
|
||||||
gnupg2 \
|
&& \
|
||||||
|
apt-get remove -y jq \
|
||||||
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||||
&& apt-get autoremove -y \
|
&& apt-get autoremove -y \
|
||||||
&& apt-get clean \
|
&& apt-get clean \
|
||||||
@@ -71,7 +83,7 @@ USER apps
|
|||||||
VOLUME [ "/config" ]
|
VOLUME [ "/config" ]
|
||||||
|
|
||||||
COPY ./.containers/base/ubuntu/shim /shim
|
COPY ./.containers/base/ubuntu/shim /shim
|
||||||
ENTRYPOINT [ "/sbin/tini", "--" ]
|
ENTRYPOINT [ "/usr/bin/tini", "--" ]
|
||||||
|
|
||||||
LABEL "maintainer"="TrueCharts <info@truecharts.org>"
|
LABEL "maintainer"="TrueCharts <info@truecharts.org>"
|
||||||
LABEL "org.opencontainers.image.source"="https://github.com/truecharts/apps"
|
LABEL "org.opencontainers.image.source"="https://github.com/truecharts/apps"
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
focal-20210217
|
focal-20210325
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
echo "
|
||||||
|
Welcome to a TrueCharts App Container,
|
||||||
|
|
||||||
|
* Repository: https://github.com/truecharts/apps
|
||||||
|
* Docs: https://truecharts.org
|
||||||
|
* This container uses the micro CLI text editor
|
||||||
|
* Bugs or feature requests should be opened in an GH issue
|
||||||
|
* Questions should be discussed on GH discussions
|
||||||
|
"
|
||||||
+3
-3
@@ -1,7 +1,7 @@
|
|||||||
# About TrueCharts<br>
|
# About TrueCharts<br>
|
||||||
**Community App Catalog for TrueNAS SCALE**
|
**Community App Catalog for TrueNAS SCALE**
|
||||||
|
|
||||||
[](https://github.com/truecharts/truecharts/commits) [](https://github.com/truecharts/charts/actions/workflows/charts-release.yaml) [](https://github.com/pre-commit/pre-commit) [](https://app.fossa.com/projects/git%2Bgithub.com%2Ftruecharts%2Ftruecharts?ref=badge_shield) [](https://github.com/truecharts/truecharts/blob/master/docs/LICENSE.BSD3)
|
[](https://github.com/truecharts/apps/commits) [](https://github.com/truecharts/apps/actions/workflows/charts-release.yaml) [](https://github.com/pre-commit/pre-commit) [](https://app.fossa.com/projects/git%2Bgithub.com%2Ftruecharts%2Ftruecharts?ref=badge_shield) [](https://github.com/truecharts/apps/blob/master/docs/LICENSE.BSD3)
|
||||||
---
|
---
|
||||||
Truecharts is an innitiative to provide high quality Apps to use with the TrueNAS SCALE App Ecosystem.
|
Truecharts is an innitiative to provide high quality Apps to use with the TrueNAS SCALE App Ecosystem.
|
||||||
Our primary goals are:
|
Our primary goals are:
|
||||||
@@ -16,14 +16,14 @@ All our apps are supposed to work together, be easy to setup using the TrueNAS U
|
|||||||
Installing TrueCharts within TrueNAS SCALE, still requires the CLI. However it's not hard:
|
Installing TrueCharts within TrueNAS SCALE, still requires the CLI. However it's not hard:
|
||||||
- Go to you shell of choice (either SSH or the TrueNAS webui shell)
|
- Go to you shell of choice (either SSH or the TrueNAS webui shell)
|
||||||
- enter `cli`
|
- enter `cli`
|
||||||
- enter `app catalog create repository="https://github.com/truecharts/truecharts" label="TrueCharts"`
|
- enter `app catalog create repository="https://github.com/truecharts/apps" label="TrueCharts"`
|
||||||
|
|
||||||
For more information, please visit our website:
|
For more information, please visit our website:
|
||||||
https://truecharts.org
|
https://truecharts.org
|
||||||
|
|
||||||
## FAQ
|
## FAQ
|
||||||
|
|
||||||
Please refer to our [FAQ](https://truecharts.org/about/FAQ/) and [Issue tracker](https://github.com/truecharts/charts/issues) before creating an issue.
|
Please refer to our [FAQ](https://truecharts.org/about/FAQ/) and [Issue tracker](https://github.com/truecharts/apps/issues) before creating an issue.
|
||||||
There is a significant chance your issue has been reported before!
|
There is a significant chance your issue has been reported before!
|
||||||
|
|
||||||
## Getting into creating Apps
|
## Getting into creating Apps
|
||||||
|
|||||||
@@ -0,0 +1,38 @@
|
|||||||
|
apiVersion: str()
|
||||||
|
kubeVersion: str()
|
||||||
|
name: str()
|
||||||
|
version: str(required=True)
|
||||||
|
upstream_version: any(str(), num(), required=False)
|
||||||
|
appVersion: any(str(), num())
|
||||||
|
description: str()
|
||||||
|
type: str(required=True)
|
||||||
|
deprecated: bool(required=False)
|
||||||
|
home: str()
|
||||||
|
icon: str()
|
||||||
|
engine: str(required=False)
|
||||||
|
condition: str(required=False)
|
||||||
|
keywords: list(str(), required=False)
|
||||||
|
tags: str(required=False)
|
||||||
|
sources: list(str(), required=False)
|
||||||
|
dependencies: list(include('dependency'), required=False)
|
||||||
|
maintainers: list(include('maintainer'))
|
||||||
|
annotations: map(str(), str(), required=False)
|
||||||
|
---
|
||||||
|
maintainer:
|
||||||
|
name: str()
|
||||||
|
email: str(required=False)
|
||||||
|
url: str(required=True)
|
||||||
|
---
|
||||||
|
dependency:
|
||||||
|
name: str()
|
||||||
|
repository: str()
|
||||||
|
version: str()
|
||||||
|
condition: str(required=False)
|
||||||
|
tags: list(str(), required=False)
|
||||||
|
import-values: any(list(str()), list(include('import-value')), required=False)
|
||||||
|
enabled: bool(required=False)
|
||||||
|
alias: str(required=False)
|
||||||
|
---
|
||||||
|
import-value:
|
||||||
|
child: str()
|
||||||
|
parent: str()
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
remote: origin
|
||||||
|
target-branch: master
|
||||||
|
helm-extra-args: --timeout 600s
|
||||||
|
excluded-charts: common
|
||||||
|
chart-yaml-schema: .github/chart_schema.yaml
|
||||||
|
chart-repos:
|
||||||
|
- truecharts=https://truecharts.org
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
remote: origin
|
remote: origin
|
||||||
target-branch: master
|
target-branch: master
|
||||||
helm-extra-args: --timeout 600s
|
helm-extra-args: --timeout 600s
|
||||||
|
chart-yaml-schema: .github/chart_schema.yaml
|
||||||
@@ -0,0 +1,301 @@
|
|||||||
|
name: "Apps: test"
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- '**'
|
||||||
|
tags-ignore:
|
||||||
|
- '**'
|
||||||
|
paths:
|
||||||
|
- 'stable/**'
|
||||||
|
- '!stable/**/*.md'
|
||||||
|
- '!stable/**/README.md'
|
||||||
|
- '!stable/**/README.md.gotmpl'
|
||||||
|
- '!stable/**/app-readme.md'
|
||||||
|
- '!stable/**/app-readme.md.gotmpl'
|
||||||
|
- '!stable/**/docs/*'
|
||||||
|
- 'beta/**'
|
||||||
|
- '!beta/**/*.md'
|
||||||
|
- '!beta/**/README.md'
|
||||||
|
- '!beta/**/README.md.gotmpl'
|
||||||
|
- '!beta/**/app-readme.md'
|
||||||
|
- '!beta/**/app-readme.md.gotmpl'
|
||||||
|
- '!beta/**/docs/*'
|
||||||
|
- '.github/workflows/apps.test.yaml'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
catalog-test:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container:
|
||||||
|
image: ixsystems/catalog_validation:latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
name: Checkout
|
||||||
|
- name: Validate catalog format
|
||||||
|
run: |
|
||||||
|
/bin/bash -c "PWD=${pwd}; /usr/local/bin/catalog_validate validate --path $PWD"
|
||||||
|
|
||||||
|
common-lint:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
outputs:
|
||||||
|
changed: ${{ steps.list-changed.outputs.changed }}
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Install Helm
|
||||||
|
uses: azure/setup-helm@v1
|
||||||
|
with:
|
||||||
|
version: v3.5.3
|
||||||
|
|
||||||
|
- uses: actions/setup-python@v2
|
||||||
|
with:
|
||||||
|
python-version: 3.7
|
||||||
|
|
||||||
|
- name: Set up chart-testing
|
||||||
|
uses: helm/chart-testing-action@v2.0.1
|
||||||
|
|
||||||
|
- name: Run chart-testing (list-changed)
|
||||||
|
id: list-changed
|
||||||
|
run: |
|
||||||
|
changed=$(ct list-changed --config .github/ct-lint.yaml --chart-dirs 'library')
|
||||||
|
if [[ -n "$changed" ]]; then
|
||||||
|
echo "::set-output name=changed::true"
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Run chart-testing (lint)
|
||||||
|
id: lint
|
||||||
|
if: steps.list-changed.outputs.changed == 'true'
|
||||||
|
run: ct lint --config .github/ct-lint.yaml --chart-dirs 'library'
|
||||||
|
|
||||||
|
|
||||||
|
common-test:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: common-lint
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
if: needs.common-lint.outputs.changed == 'true'
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: prep
|
||||||
|
if: needs.common-lint.outputs.changed == 'true'
|
||||||
|
run: |
|
||||||
|
rm -Rf library/common-test/values.yaml
|
||||||
|
touch library/common-test/values.yaml
|
||||||
|
|
||||||
|
- name: Install Helm
|
||||||
|
uses: azure/setup-helm@v1
|
||||||
|
if: needs.common-lint.outputs.changed == 'true'
|
||||||
|
with:
|
||||||
|
version: v3.5.3
|
||||||
|
|
||||||
|
- uses: actions/setup-python@v2
|
||||||
|
if: needs.common-lint.outputs.changed == 'true'
|
||||||
|
with:
|
||||||
|
python-version: 3.7
|
||||||
|
|
||||||
|
- name: Set up chart-testing
|
||||||
|
uses: helm/chart-testing-action@v2.0.1
|
||||||
|
if: needs.common-lint.outputs.changed == 'true'
|
||||||
|
|
||||||
|
- name: Create k3d cluster
|
||||||
|
uses: nolar/setup-k3d-k3s@v1
|
||||||
|
if: needs.common-lint.outputs.changed == 'true'
|
||||||
|
with:
|
||||||
|
version: v1.19
|
||||||
|
|
||||||
|
- name: Run chart-testing (install)
|
||||||
|
if: needs.common-lint.outputs.changed == 'true'
|
||||||
|
run: ct install --config .github/ct-install.yaml --charts 'library/common-test'
|
||||||
|
|
||||||
|
common-unittest:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: common-lint
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Install Dev tools
|
||||||
|
run: sudo apt-get update && sudo apt-get install -y jq libjq-dev
|
||||||
|
|
||||||
|
- name: Install Helm
|
||||||
|
uses: azure/setup-helm@v1
|
||||||
|
with:
|
||||||
|
version: v3.5.3
|
||||||
|
|
||||||
|
- name: Install Ruby
|
||||||
|
uses: ruby/setup-ruby@v1
|
||||||
|
with:
|
||||||
|
ruby-version: 2.7
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
export RUBYJQ_USE_SYSTEM_LIBRARIES=1
|
||||||
|
bundle install
|
||||||
|
- name: Run tests
|
||||||
|
run: |
|
||||||
|
bundle exec m -r .tools/tests/charts
|
||||||
|
|
||||||
|
pre-release:
|
||||||
|
if: needs.common-lint.outputs.changed == 'true'
|
||||||
|
needs: [common-test, common-unittest, catalog-test]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
outputs:
|
||||||
|
release: ${{ steps.prep.outputs.release }}
|
||||||
|
timeout-minutes: 5
|
||||||
|
steps:
|
||||||
|
- name: Prepare
|
||||||
|
id: prep
|
||||||
|
run: |
|
||||||
|
if [ "${{github.event_name}}" == "pull_request" ]; then
|
||||||
|
echo ::set-output name=release::false
|
||||||
|
else
|
||||||
|
echo ::set-output name=release::true
|
||||||
|
fi
|
||||||
|
- name: Block concurrent jobs
|
||||||
|
uses: softprops/turnstyle@v1
|
||||||
|
if: steps.prep.outputs.release == 'true'
|
||||||
|
with:
|
||||||
|
continue-after-seconds: 180
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.BOT_TOKEN }}
|
||||||
|
|
||||||
|
common-release:
|
||||||
|
needs: pre-release
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: needs.pre-release.outputs.release == 'true'
|
||||||
|
steps:
|
||||||
|
- name: Block concurrent jobs
|
||||||
|
uses: softprops/turnstyle@v1
|
||||||
|
with:
|
||||||
|
continue-after-seconds: 180
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.BOT_TOKEN }}
|
||||||
|
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
token: ${{ secrets.BOT_TOKEN }}
|
||||||
|
|
||||||
|
- name: Configure Git
|
||||||
|
run: |
|
||||||
|
git config user.name "TrueCharts-Bot"
|
||||||
|
git config user.email "bot@truecharts.org"
|
||||||
|
|
||||||
|
- name: Install Helm
|
||||||
|
uses: azure/setup-helm@v1
|
||||||
|
with:
|
||||||
|
version: v3.5.3
|
||||||
|
|
||||||
|
- name: Run chart-releaser
|
||||||
|
uses: helm/chart-releaser-action@v1.2.0
|
||||||
|
with:
|
||||||
|
charts_dir: library
|
||||||
|
charts_repo_url: ""
|
||||||
|
config: .github/cr.yaml
|
||||||
|
env:
|
||||||
|
CR_TOKEN: "${{ secrets.BOT_TOKEN }}"
|
||||||
|
|
||||||
|
- name: Commit and Push new index
|
||||||
|
run: |
|
||||||
|
git config user.name "TrueCharts-Bot"
|
||||||
|
git config user.email "bot@truecharts.org"
|
||||||
|
git add --all
|
||||||
|
git commit -sm "Commit chart-index updates" || exit 0
|
||||||
|
git push
|
||||||
|
|
||||||
|
changes:
|
||||||
|
name: Get changed Apps
|
||||||
|
runs-on: ubuntu-20.04
|
||||||
|
outputs:
|
||||||
|
matrix: "{\"app\": ${{ steps.reduce.outputs.apps }} }"
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
- uses: dorny/paths-filter@v2
|
||||||
|
id: filter
|
||||||
|
with:
|
||||||
|
list-files: json
|
||||||
|
filters: |
|
||||||
|
changed:
|
||||||
|
- 'stable/**'
|
||||||
|
- 'beta/**'
|
||||||
|
- run: echo '${{ toJson(steps.filter.outputs) }}' > changes.json
|
||||||
|
- id: reduce
|
||||||
|
run: |
|
||||||
|
APPS=$(jq --raw-output '.changed_files | fromjson | .[] |= sub("(?<filepath>(?<first_directory>(?<root1>[\/]?)[^\/]+\/)(?<second_directory>(?<root2>[\/]?)[^\/]+)(?<extra_paths>.+))"; "\(.second_directory)") | unique' changes.json)
|
||||||
|
echo ::set-output name=apps::${APPS}
|
||||||
|
|
||||||
|
app-tests:
|
||||||
|
needs: [catalog-test, changes]
|
||||||
|
name: App Tests
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix: ${{ fromJson(needs.changes.outputs.matrix) }}
|
||||||
|
fail-fast: false
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Prepare-Lint
|
||||||
|
id: prep-lint
|
||||||
|
run: |
|
||||||
|
if test -f "./stable/${{ matrix.app }}/item.yaml"; then
|
||||||
|
train="stable"
|
||||||
|
else
|
||||||
|
train="beta"
|
||||||
|
fi
|
||||||
|
echo ::set-output name=train::${train}
|
||||||
|
maxfolderversion=$(ls -l ${train}/${{ matrix.app }} | grep ^d | awk '{print $9}' | tail -n 1)
|
||||||
|
echo "Detected folder version: ${maxfolderversion}"
|
||||||
|
mkdir ${train}/${{ matrix.app }}/${maxfolderversion}/ci || exit 0
|
||||||
|
cp ${train}/${{ matrix.app }}/${maxfolderversion}/test_values.yaml ${train}/${{ matrix.app }}/${maxfolderversion}/ci/test-values.yaml
|
||||||
|
echo ::set-output name=maxfolderversion::${maxfolderversion}
|
||||||
|
|
||||||
|
- name: Install Helm
|
||||||
|
uses: azure/setup-helm@v1
|
||||||
|
with:
|
||||||
|
version: v3.5.3
|
||||||
|
|
||||||
|
- uses: actions/setup-python@v2
|
||||||
|
with:
|
||||||
|
python-version: 3.7
|
||||||
|
|
||||||
|
- name: Set up chart-testing
|
||||||
|
uses: helm/chart-testing-action@v2.0.1
|
||||||
|
|
||||||
|
|
||||||
|
- name: Run chart-testing (lint)
|
||||||
|
id: lint
|
||||||
|
run: ct lint --config .github/ct-lint.yaml --charts '${{ steps.prep-lint.outputs.train }}/${{ matrix.app }}/${{ steps.prep-lint.outputs.maxfolderversion }}'
|
||||||
|
|
||||||
|
- name: Prepare-Test
|
||||||
|
run: |
|
||||||
|
mv -f ${{ steps.prep-lint.outputs.train }}/${{ matrix.app }}/${{ steps.prep-lint.outputs.maxfolderversion }}/* ${{ steps.prep-lint.outputs.train }}/${{ matrix.app }}/
|
||||||
|
rm -Rf ${{ steps.prep-lint.outputs.train }}/${{ matrix.app }}/${{ steps.prep-lint.outputs.maxfolderversion }}
|
||||||
|
|
||||||
|
- name: Create k3d cluster
|
||||||
|
uses: nolar/setup-k3d-k3s@v1
|
||||||
|
with:
|
||||||
|
version: v1.19
|
||||||
|
|
||||||
|
- name: Run chart-testing (install)
|
||||||
|
run: ct install --config .github/ct-install.yaml --charts '${{ steps.prep-lint.outputs.train }}/${{ matrix.app }}'
|
||||||
|
|
||||||
|
app-tests-complete:
|
||||||
|
needs: [app-tests, common-unittest, common-test]
|
||||||
|
name: Apps Test Complete
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: complete message
|
||||||
|
run: echo "App Tests Completed Successfully"
|
||||||
@@ -1,111 +0,0 @@
|
|||||||
name: "Charts: Release"
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
- staging
|
|
||||||
tags-ignore:
|
|
||||||
- '**'
|
|
||||||
paths:
|
|
||||||
- 'library/**'
|
|
||||||
- '!library/**/*.md'
|
|
||||||
- '!library/**/README.md'
|
|
||||||
- '!library/**/README.md.gotmpl'
|
|
||||||
- '!library/**/app-readme.md'
|
|
||||||
- '!library/**/app-readme.md.gotmpl'
|
|
||||||
- '!library/**/docs/*'
|
|
||||||
- '.github/workflows/charts.release.yaml'
|
|
||||||
- '.github/cr.yaml'
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
pre-release:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
timeout-minutes: 5
|
|
||||||
steps:
|
|
||||||
- name: Block concurrent jobs
|
|
||||||
uses: softprops/turnstyle@v1
|
|
||||||
with:
|
|
||||||
continue-after-seconds: 180
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.BOT_TOKEN }}
|
|
||||||
|
|
||||||
release:
|
|
||||||
needs: pre-release
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Block concurrent jobs
|
|
||||||
uses: softprops/turnstyle@v1
|
|
||||||
with:
|
|
||||||
continue-after-seconds: 180
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.BOT_TOKEN }}
|
|
||||||
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
token: ${{ secrets.BOT_TOKEN }}
|
|
||||||
|
|
||||||
- name: Configure Git
|
|
||||||
run: |
|
|
||||||
git config user.name "TrueCharts-Bot"
|
|
||||||
git config user.email "bot@truecharts.org"
|
|
||||||
|
|
||||||
- name: Install Helm
|
|
||||||
uses: azure/setup-helm@v1
|
|
||||||
with:
|
|
||||||
version: v3.5.2
|
|
||||||
|
|
||||||
- name: Run chart-releaser
|
|
||||||
uses: helm/chart-releaser-action@v1.2.0
|
|
||||||
with:
|
|
||||||
charts_dir: library
|
|
||||||
charts_repo_url: ""
|
|
||||||
config: .github/cr.yaml
|
|
||||||
env:
|
|
||||||
CR_TOKEN: "${{ secrets.BOT_TOKEN }}"
|
|
||||||
|
|
||||||
- name: Commit and Push new index
|
|
||||||
run: |
|
|
||||||
git config user.name "TrueCharts-Bot"
|
|
||||||
git config user.email "bot@truecharts.org"
|
|
||||||
git add --all
|
|
||||||
git commit -sm "Commit chart-index updates" || exit 0
|
|
||||||
git push
|
|
||||||
|
|
||||||
# Update the generated timestamp in the index.yaml
|
|
||||||
# needed until https://github.com/helm/chart-releaser/issues/90
|
|
||||||
# or helm/chart-releaser-action supports this
|
|
||||||
# post-release:
|
|
||||||
# needs: release
|
|
||||||
# runs-on: ubuntu-latest
|
|
||||||
# steps:
|
|
||||||
# - name: Block concurrent jobs
|
|
||||||
# uses: softprops/turnstyle@v1
|
|
||||||
# with:
|
|
||||||
# continue-after-seconds: 180
|
|
||||||
# env:
|
|
||||||
# GITHUB_TOKEN: ${{ secrets.BOT_TOKEN }}
|
|
||||||
#
|
|
||||||
# - name: Checkout
|
|
||||||
# uses: actions/checkout@v2
|
|
||||||
# with:
|
|
||||||
# ref: "gh-pages"
|
|
||||||
# fetch-depth: 0
|
|
||||||
#
|
|
||||||
# - name: Configure Git
|
|
||||||
# run: |
|
|
||||||
# git config user.name "TrueCharts-Bot"
|
|
||||||
# git config user.email "bot@truecharts.org"
|
|
||||||
#
|
|
||||||
# - name: Commit and push timestamp updates
|
|
||||||
# run: |
|
|
||||||
# if [[ -f index.yaml ]]; then
|
|
||||||
# git pull
|
|
||||||
# export generated_date=$(date --utc +%FT%T.%9NZ)
|
|
||||||
# sed -i -e "s/^generated:.*/generated: \"$generated_date\"/" index.yaml
|
|
||||||
# git add index.yaml
|
|
||||||
# git commit -sm "Update generated timestamp [ci-skip]" || exit 0
|
|
||||||
# git push
|
|
||||||
# fi
|
|
||||||
@@ -27,9 +27,24 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
version: v3.5.2
|
version: v3.5.2
|
||||||
|
|
||||||
- name: update folder names and dependencies
|
- name: update folder names and dependencies for stable
|
||||||
run: |
|
run: |
|
||||||
for chart in charts/*; do
|
for chart in stable/*; do
|
||||||
|
if [ -d "${chart}" ]; then
|
||||||
|
maxfolderversion=$(ls -l ${chart} | grep ^d | awk '{print $9}' | tail -n 1)
|
||||||
|
maxchartversion=$(cat ${chart}/${maxfolderversion}/Chart.yaml | grep "^version: " | awk -F" " '{ print $2 }')
|
||||||
|
chartname=$(basename ${chart})
|
||||||
|
echo "Processing: ${chart} - folder: ${maxfolderversion} - version: ${maxchartversion}"
|
||||||
|
helm dependency update ${chart}/${maxfolderversion}
|
||||||
|
if [ "${maxfolderversion}" != "${maxchartversion}" ]; then
|
||||||
|
mv -f ${chart}/${maxfolderversion} ${chart}/${maxchartversion}
|
||||||
|
echo "renamed ${chart}/${maxfolderversion} to ${chart}/${maxchartversion}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
- name: update folder names and dependencies for beta
|
||||||
|
run: |
|
||||||
|
for chart in beta/*; do
|
||||||
if [ -d "${chart}" ]; then
|
if [ -d "${chart}" ]; then
|
||||||
maxfolderversion=$(ls -l ${chart} | grep ^d | awk '{print $9}' | tail -n 1)
|
maxfolderversion=$(ls -l ${chart} | grep ^d | awk '{print $9}' | tail -n 1)
|
||||||
maxchartversion=$(cat ${chart}/${maxfolderversion}/Chart.yaml | grep "^version: " | awk -F" " '{ print $2 }')
|
maxchartversion=$(cat ${chart}/${maxfolderversion}/Chart.yaml | grep "^version: " | awk -F" " '{ print $2 }')
|
||||||
@@ -43,6 +58,7 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
||||||
- name: Commit and push updated charts
|
- name: Commit and push updated charts
|
||||||
run: |
|
run: |
|
||||||
git add --all
|
git add --all
|
||||||
|
|||||||
@@ -1,119 +0,0 @@
|
|||||||
name: "Charts: Test"
|
|
||||||
|
|
||||||
on:
|
|
||||||
pull_request:
|
|
||||||
branches:
|
|
||||||
- '**'
|
|
||||||
tags-ignore:
|
|
||||||
- '**'
|
|
||||||
paths:
|
|
||||||
- 'library/**'
|
|
||||||
- '!library/**/*.md'
|
|
||||||
- '!library/**/README.md'
|
|
||||||
- '!library/**/README.md.gotmpl'
|
|
||||||
- '!library/**/app-readme.md'
|
|
||||||
- '!library/**/app-readme.md.gotmpl'
|
|
||||||
- '!library/**/docs/*'
|
|
||||||
- 'charts/**'
|
|
||||||
- '!charts/**/*.md'
|
|
||||||
- '!charts/**/README.md'
|
|
||||||
- '!charts/**/README.md.gotmpl'
|
|
||||||
- '!charts/**/app-readme.md'
|
|
||||||
- '!charts/**/app-readme.md.gotmpl'
|
|
||||||
- '!charts/**/docs/*'
|
|
||||||
- '.github/workflows/charts.test.yaml'
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
catalog-tests:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
container:
|
|
||||||
image: ixsystems/catalog_validation:latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
name: Checkout
|
|
||||||
- name: Validate catalog format
|
|
||||||
run: |
|
|
||||||
/bin/bash -c "PWD=${pwd}; /usr/local/bin/catalog_validate validate --path $PWD"
|
|
||||||
|
|
||||||
|
|
||||||
common-lint:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
- name: Install Helm
|
|
||||||
uses: azure/setup-helm@v1
|
|
||||||
with:
|
|
||||||
version: v3.4.0
|
|
||||||
- uses: actions/setup-python@v2
|
|
||||||
with:
|
|
||||||
python-version: 3.7
|
|
||||||
- name: Set up chart-testing
|
|
||||||
uses: helm/chart-testing-action@v2.0.1
|
|
||||||
- name: Run chart-testing (lint)
|
|
||||||
id: lint
|
|
||||||
run: ct lint --config .github/ct.yaml --charts 'library/common'
|
|
||||||
- name: Create kind cluster
|
|
||||||
uses: helm/kind-action@v1.1.0
|
|
||||||
|
|
||||||
common-unittest:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
needs: common-lint
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
|
|
||||||
- name: Install Dev tools
|
|
||||||
run: sudo apt-get update && sudo apt-get install -y jq libjq-dev
|
|
||||||
|
|
||||||
- name: Install Helm
|
|
||||||
uses: azure/setup-helm@v1
|
|
||||||
with:
|
|
||||||
version: v3.4.0
|
|
||||||
|
|
||||||
- name: Install Ruby
|
|
||||||
uses: ruby/setup-ruby@v1
|
|
||||||
with:
|
|
||||||
ruby-version: 2.7
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: |
|
|
||||||
export RUBYJQ_USE_SYSTEM_LIBRARIES=1
|
|
||||||
bundle install
|
|
||||||
- name: Run tests
|
|
||||||
run: |
|
|
||||||
bundle exec m -r .tools/tests/charts
|
|
||||||
|
|
||||||
|
|
||||||
chart-tests:
|
|
||||||
needs: [common-lint, common-unittest, catalog-tests]
|
|
||||||
runs-on: ubuntu-20.04
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Install Helm
|
|
||||||
run: /bin/bash -c "curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash"
|
|
||||||
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
|
|
||||||
- name: Fetch base branch history
|
|
||||||
run: git fetch origin master:master
|
|
||||||
|
|
||||||
- name: Setup catalog validation
|
|
||||||
run: |
|
|
||||||
sudo apt update > /dev/null 2>&1
|
|
||||||
sudo apt install -y python3-all-dev python3-pip python3-setuptools > /dev/null 2>&1
|
|
||||||
git clone https://github.com/truenas/catalog_validation
|
|
||||||
sudo pip3 install --disable-pip-version-check --exists-action w -r catalog_validation/requirements.txt > /dev/null 2>&1
|
|
||||||
sudo pip3 install -U catalog_validation/.
|
|
||||||
|
|
||||||
- name: Validate changed charts
|
|
||||||
run: /bin/bash -c "PWD=${pwd}; sudo /usr/local/bin/charts_validate deploy --path $PWD"
|
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
name: "Containers: Test-and-Build"
|
name: "Containers: Test-and-Build"
|
||||||
|
|
||||||
on:
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
- staging
|
|
||||||
paths:
|
paths:
|
||||||
- '.containers/apps/**'
|
- '.containers/apps/**'
|
||||||
- '.containers/base/**'
|
- '.containers/base/**'
|
||||||
@@ -50,7 +50,7 @@ jobs:
|
|||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
- name: hadolint
|
- name: hadolint
|
||||||
uses: reviewdog/action-hadolint@v1
|
uses: reviewdog/action-hadolint@v1.17.1
|
||||||
with:
|
with:
|
||||||
github_token: ${{ secrets.BOT_TOKEN }}
|
github_token: ${{ secrets.BOT_TOKEN }}
|
||||||
reporter: github-pr-review
|
reporter: github-pr-review
|
||||||
@@ -102,7 +102,6 @@ jobs:
|
|||||||
platforms: all
|
platforms: all
|
||||||
|
|
||||||
- name: Login to GHCR
|
- name: Login to GHCR
|
||||||
if: github.event_name != 'pull_request'
|
|
||||||
uses: docker/login-action@v1
|
uses: docker/login-action@v1
|
||||||
with:
|
with:
|
||||||
registry: ghcr.io
|
registry: ghcr.io
|
||||||
@@ -118,15 +117,6 @@ jobs:
|
|||||||
version: latest
|
version: latest
|
||||||
driver-opts: image=moby/buildkit:master
|
driver-opts: image=moby/buildkit:master
|
||||||
|
|
||||||
# Make sure we can store buildx cache in-between builds
|
|
||||||
- name: Cache Docker layers
|
|
||||||
uses: actions/cache@v2
|
|
||||||
with:
|
|
||||||
path: /tmp/.buildx-cache
|
|
||||||
key: ${{ runner.os }}-buildx-${{ github.sha }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-buildx-
|
|
||||||
|
|
||||||
# Install the GOSS testing framework
|
# Install the GOSS testing framework
|
||||||
- name: Set up goss/dgoss
|
- name: Set up goss/dgoss
|
||||||
uses: e1himself/goss-installation-action@v1.0.3
|
uses: e1himself/goss-installation-action@v1.0.3
|
||||||
@@ -145,17 +135,8 @@ jobs:
|
|||||||
load: true
|
load: true
|
||||||
tags: |
|
tags: |
|
||||||
ghcr.io/${{ github.repository_owner }}/${{ matrix.container }}:test
|
ghcr.io/${{ github.repository_owner }}/${{ matrix.container }}:test
|
||||||
cache-from: type=local,src=/tmp/.buildx-cache
|
cache-from: type=registry,ref=ghcr.io/${{ github.repository_owner }}/${{ matrix.container }}:buildcache
|
||||||
cache-to: type=local,dest=/tmp/.buildx-cache-new
|
cache-to: type=registry,ref=ghcr.io/${{ github.repository_owner }}/${{ matrix.container }}:buildcache,mode=max
|
||||||
|
|
||||||
# Temporary fix
|
|
||||||
# https://github.com/docker/build-push-action/issues/252
|
|
||||||
# https://github.com/moby/buildkit/issues/1896
|
|
||||||
- name: Move cache
|
|
||||||
if: ${{ steps.prep.outputs.goss == 'true' }}
|
|
||||||
run: |
|
|
||||||
rm -rf /tmp/.buildx-cache
|
|
||||||
mv /tmp/.buildx-cache-new /tmp/.buildx-cache | exit 0
|
|
||||||
|
|
||||||
# Run GOSS tests if included with the container
|
# Run GOSS tests if included with the container
|
||||||
- name: Run GOSS tests
|
- name: Run GOSS tests
|
||||||
@@ -177,13 +158,13 @@ jobs:
|
|||||||
tags: |
|
tags: |
|
||||||
ghcr.io/${{ github.repository_owner }}/${{ matrix.container }}:latest
|
ghcr.io/${{ github.repository_owner }}/${{ matrix.container }}:latest
|
||||||
ghcr.io/${{ github.repository_owner }}/${{ matrix.container }}:v${{ steps.prep.outputs.version }}
|
ghcr.io/${{ github.repository_owner }}/${{ matrix.container }}:v${{ steps.prep.outputs.version }}
|
||||||
cache-from: type=local,src=/tmp/.buildx-cache
|
cache-from: type=registry,ref=ghcr.io/${{ github.repository_owner }}/${{ matrix.container }}:buildcache
|
||||||
cache-to: type=local,dest=/tmp/.buildx-cache-new
|
cache-to: type=registry,ref=ghcr.io/${{ github.repository_owner }}/${{ matrix.container }}:buildcache,mode=max
|
||||||
|
|
||||||
# Temporary fix
|
container-build-complete:
|
||||||
# https://github.com/docker/build-push-action/issues/252
|
needs: [build]
|
||||||
# https://github.com/moby/buildkit/issues/1896
|
name: Container Build Completed
|
||||||
- name: Move cache
|
runs-on: ubuntu-latest
|
||||||
run: |
|
steps:
|
||||||
rm -rf /tmp/.buildx-cache
|
- name: complete message
|
||||||
mv /tmp/.buildx-cache-new /tmp/.buildx-cache
|
run: echo "Container Build and Tests Completed Successfully"
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ on:
|
|||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
- staging
|
|
||||||
paths:
|
paths:
|
||||||
- ".github/workflows/containers.update.yaml"
|
- ".github/workflows/containers.update.yaml"
|
||||||
schedule:
|
schedule:
|
||||||
@@ -55,6 +54,6 @@ jobs:
|
|||||||
git config user.name "TrueCharts Bot"
|
git config user.name "TrueCharts Bot"
|
||||||
git config user.email "bot@truecharts.org"
|
git config user.email "bot@truecharts.org"
|
||||||
git add -A
|
git add -A
|
||||||
git commit -sam "Adding new release versions" || exit 0
|
git commit -sam "chore: added new container release versions" || exit 0
|
||||||
git push
|
git push
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
name: "Docs: Copy"
|
name: "Docs: Copy"
|
||||||
|
|
||||||
on:
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
@@ -9,26 +10,24 @@ on:
|
|||||||
- '**'
|
- '**'
|
||||||
paths:
|
paths:
|
||||||
- 'library/**/Chart.yaml'
|
- 'library/**/Chart.yaml'
|
||||||
- 'library/**/README.md'
|
- '.tools/gen-helm-docs.sh'
|
||||||
- 'library/**/LICENSE'
|
- '**.gotmpl'
|
||||||
- 'library/**/**/CONFIG.md'
|
- '**/LICENSE'
|
||||||
- 'library/**/app-readme.md'
|
- '**LICENSE'
|
||||||
- 'charts/**/Chart.yaml'
|
- '**.md'
|
||||||
- 'charts/**/**/README.md'
|
|
||||||
- 'charts/**/**/CONFIG.md'
|
|
||||||
- 'charts/**/**/LICENSE'
|
|
||||||
- 'charts/**/**/app-readme.md'
|
|
||||||
- '.github/README.md'
|
- '.github/README.md'
|
||||||
- '.github/CODE_OF_CONDUCT.md'
|
- '.github/CODE_OF_CONDUCT'
|
||||||
|
- '.github/CONTRIBUTING'
|
||||||
- './LICENSE'
|
- './LICENSE'
|
||||||
- './NOTICE'
|
- './NOTICE'
|
||||||
- '.github/workflows/docs.copy.yaml'
|
- '.github/workflows/docs.copy.yaml'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
publish-app-docs:
|
copy:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
name: "Copy"
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout-Master
|
- name: Checkout
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.BOT_TOKEN }}
|
token: ${{ secrets.BOT_TOKEN }}
|
||||||
@@ -43,25 +42,40 @@ jobs:
|
|||||||
|
|
||||||
- name: Copy general readme to website
|
- name: Copy general readme to website
|
||||||
run: |
|
run: |
|
||||||
cp .github/README.md docs/about/index.md || echo "readme copy failed, continuing..."
|
yes | cp -rf .github/README.md docs/about/index.md || echo "readme copy failed, continuing..."
|
||||||
cp .github/CODE_OF_CONDUCT docs/about/code_of_conduct.md || echo "CODE_OF_CONDUCT copy failed, continuing..."
|
yes | cp -rf .github/CODE_OF_CONDUCT docs/about/code_of_conduct.md || echo "CODE_OF_CONDUCT copy failed, continuing..."
|
||||||
cp .github/CONTRIBUTING docs/development/contributing.md || echo "CONTRIBUTING copy failed, continuing..."
|
yes | cp -rf .github/CONTRIBUTING docs/development/contributing.md || echo "CONTRIBUTING copy failed, continuing..."
|
||||||
cp LICENSE docs/about/LICENSE.md || echo "license copy failed, continuing..."
|
yes | cp -rf LICENSE docs/about/LICENSE.md || echo "license copy failed, continuing..."
|
||||||
sed -i '1s/^/# License<br>\n\n/' docs/about/LICENSE.md
|
sed -i '1s/^/# License<br>\n\n/' docs/about/LICENSE.md
|
||||||
cp NOTICE docs/about/NOTICE.md || echo "license copy failed, continuing..."
|
yes | cp -rf NOTICE docs/about/NOTICE.md || echo "license copy failed, continuing..."
|
||||||
sed -i '1s/^/# NOTICE<br>\n\n/' docs/about/NOTICE.md
|
sed -i '1s/^/# NOTICE<br>\n\n/' docs/about/NOTICE.md
|
||||||
ls docs/
|
ls docs/
|
||||||
|
|
||||||
- name: Copy Apps readme to website
|
- name: Copy stable Apps readme to website
|
||||||
run: |
|
run: |
|
||||||
for chart in charts/*; do
|
for chart in stable/*; do
|
||||||
if [ -d "${chart}" ]; then
|
if [ -d "${chart}" ]; then
|
||||||
maxfolderversion=$(ls -l ${chart} | grep ^d | awk '{print $9}' | tail -n 1)
|
maxfolderversion=$(ls -l ${chart} | grep ^d | awk '{print $9}' | tail -n 1)
|
||||||
chartname=$(basename ${chart})
|
chartname=$(basename ${chart})
|
||||||
echo "Processing: ${chart} - folder: ${maxfolderversion}"
|
echo "Processing: ${chart} - folder: ${maxfolderversion}"
|
||||||
mkdir -p docs/apps/${chartname} || echo "app path already exists, continuing..."
|
mkdir -p docs/apps/${chartname} || echo "app path already exists, continuing..."
|
||||||
cp ${chart}/${maxfolderversion}/README.md docs/apps/${chartname}/index.md || echo "readme copy failed, continuing..."
|
yes | cp -rf ${chart}/${maxfolderversion}/README.md docs/apps/${chartname}/index.md || echo "readme copy failed, continuing..."
|
||||||
cp ${chart}/${maxfolderversion}/LICENSE docs/apps/${chartname}/LICENSE.md || echo "license copy failed, continuing..."
|
yes | cp -rf ${chart}/${maxfolderversion}/LICENSE docs/apps/${chartname}/LICENSE.md || echo "license copy failed, continuing..."
|
||||||
|
sed -i '1s/^/# License<br>\n\n/' docs/apps/${chartname}/LICENSE.md || echo "license edit failed, continuing..."
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
ls docs/apps/
|
||||||
|
|
||||||
|
- name: Copy beta Apps readme to website
|
||||||
|
run: |
|
||||||
|
for chart in beta/*; do
|
||||||
|
if [ -d "${chart}" ]; then
|
||||||
|
maxfolderversion=$(ls -l ${chart} | grep ^d | awk '{print $9}' | tail -n 1)
|
||||||
|
chartname=$(basename ${chart})
|
||||||
|
echo "Processing: ${chart} - folder: ${maxfolderversion}"
|
||||||
|
mkdir -p docs/apps/${chartname} || echo "app path already exists, continuing..."
|
||||||
|
yes | cp -rf ${chart}/${maxfolderversion}/README.md docs/apps/${chartname}/index.md || echo "readme copy failed, continuing..."
|
||||||
|
yes | cp -rf ${chart}/${maxfolderversion}/LICENSE docs/apps/${chartname}/LICENSE.md || echo "license copy failed, continuing..."
|
||||||
sed -i '1s/^/# License<br>\n\n/' docs/apps/${chartname}/LICENSE.md || echo "license edit failed, continuing..."
|
sed -i '1s/^/# License<br>\n\n/' docs/apps/${chartname}/LICENSE.md || echo "license edit failed, continuing..."
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
name: "Docs: Deploy"
|
name: "Docs: Deploy"
|
||||||
on:
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
|
|||||||
@@ -9,3 +9,8 @@ repos:
|
|||||||
- id: mixed-line-ending
|
- id: mixed-line-ending
|
||||||
- id: check-merge-conflict
|
- id: check-merge-conflict
|
||||||
- id: check-case-conflict
|
- id: check-case-conflict
|
||||||
|
- id: check-executables-have-shebangs
|
||||||
|
- id: check-docstring-first
|
||||||
|
- id: check-symlinks
|
||||||
|
- id: destroyed-symlinks
|
||||||
|
- id: fix-byte-order-marker
|
||||||
|
|||||||
+27
-1
@@ -1,4 +1,30 @@
|
|||||||
for chart in charts/*; do
|
#!/bin/sh
|
||||||
|
for chart in stable/*; do
|
||||||
|
if [ -d "${chart}" ]; then
|
||||||
|
maxfolderversion=$(ls -l ${chart} | grep ^d | awk '{print $9}' | tail -n 1)
|
||||||
|
chartname=$(basename ${chart})
|
||||||
|
echo "Processing: ${chart} - folder: ${maxfolderversion} - version: ${maxchartversion}"
|
||||||
|
|
||||||
|
rm -Rf ${chart}/${maxfolderversion}/charts/*.tgz
|
||||||
|
cp -f library/common-test/charts/* ${chart}/${maxfolderversion}/charts/
|
||||||
|
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
for chart in beta/*; do
|
||||||
|
if [ -d "${chart}" ]; then
|
||||||
|
maxfolderversion=$(ls -l ${chart} | grep ^d | awk '{print $9}' | tail -n 1)
|
||||||
|
chartname=$(basename ${chart})
|
||||||
|
echo "Processing: ${chart} - folder: ${maxfolderversion} - version: ${maxchartversion}"
|
||||||
|
|
||||||
|
rm -Rf ${chart}/${maxfolderversion}/charts/*.tgz
|
||||||
|
cp -f library/common-test/charts/* ${chart}/${maxfolderversion}/charts/
|
||||||
|
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
for chart in staging/*; do
|
||||||
if [ -d "${chart}" ]; then
|
if [ -d "${chart}" ]; then
|
||||||
maxfolderversion=$(ls -l ${chart} | grep ^d | awk '{print $9}' | tail -n 1)
|
maxfolderversion=$(ls -l ${chart} | grep ^d | awk '{print $9}' | tail -n 1)
|
||||||
chartname=$(basename ${chart})
|
chartname=$(basename ${chart})
|
||||||
|
|||||||
+32
-1
@@ -1,4 +1,35 @@
|
|||||||
for chart in charts/*; do
|
#!/bin/sh
|
||||||
|
for chart in staging/*; do
|
||||||
|
if [ -d "${chart}" ]; then
|
||||||
|
maxfolderversion=$(ls -l ${chart} | grep ^d | awk '{print $9}' | tail -n 1)
|
||||||
|
maxchartversion=$(cat ${chart}/${maxfolderversion}/Chart.yaml | grep "^version: " | awk -F" " '{ print $2 }')
|
||||||
|
chartname=$(basename ${chart})
|
||||||
|
echo "Processing: ${chart} - folder: ${maxfolderversion} - version: ${maxchartversion}"
|
||||||
|
helm dependency update --skip-refresh ${chart}/${maxfolderversion}
|
||||||
|
if [ "${maxfolderversion}" != "${maxchartversion}" ]; then
|
||||||
|
mv -f ${chart}/${maxfolderversion} ${chart}/${maxchartversion}
|
||||||
|
echo "renamed ${chart}/${maxfolderversion} to ${chart}/${maxchartversion}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
for chart in stable/*; do
|
||||||
|
if [ -d "${chart}" ]; then
|
||||||
|
maxfolderversion=$(ls -l ${chart} | grep ^d | awk '{print $9}' | tail -n 1)
|
||||||
|
maxchartversion=$(cat ${chart}/${maxfolderversion}/Chart.yaml | grep "^version: " | awk -F" " '{ print $2 }')
|
||||||
|
chartname=$(basename ${chart})
|
||||||
|
echo "Processing: ${chart} - folder: ${maxfolderversion} - version: ${maxchartversion}"
|
||||||
|
helm dependency update --skip-refresh ${chart}/${maxfolderversion}
|
||||||
|
if [ "${maxfolderversion}" != "${maxchartversion}" ]; then
|
||||||
|
mv -f ${chart}/${maxfolderversion} ${chart}/${maxchartversion}
|
||||||
|
echo "renamed ${chart}/${maxfolderversion} to ${chart}/${maxchartversion}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
for chart in beta/*; do
|
||||||
if [ -d "${chart}" ]; then
|
if [ -d "${chart}" ]; then
|
||||||
maxfolderversion=$(ls -l ${chart} | grep ^d | awk '{print $9}' | tail -n 1)
|
maxfolderversion=$(ls -l ${chart} | grep ^d | awk '{print $9}' | tail -n 1)
|
||||||
maxchartversion=$(cat ${chart}/${maxfolderversion}/Chart.yaml | grep "^version: " | awk -F" " '{ print $2 }')
|
maxchartversion=$(cat ${chart}/${maxfolderversion}/Chart.yaml | grep "^version: " | awk -F" " '{ print $2 }')
|
||||||
|
|||||||
+60
-6
@@ -18,11 +18,9 @@ readme_template="${repository}/.tools/templates/chart/README.md.gotmpl"
|
|||||||
config_template="${repository}/.tools/templates/chart/CONFIG.md.gotmpl"
|
config_template="${repository}/.tools/templates/chart/CONFIG.md.gotmpl"
|
||||||
app_readme_template="${repository}/.tools/templates/chart/app-readme.md.gotmpl"
|
app_readme_template="${repository}/.tools/templates/chart/app-readme.md.gotmpl"
|
||||||
|
|
||||||
# Gather all charts using the common library, excluding common-test
|
|
||||||
charts=$(find "${repository}" -name "Chart.yaml" -exec grep --exclude="*common-test*" -l "\- name\: common" {} \;)
|
|
||||||
root="${repository}"
|
root="${repository}"
|
||||||
|
|
||||||
for chart in charts/*; do
|
for chart in stable/*; do
|
||||||
if [ -d "${chart}" ]; then
|
if [ -d "${chart}" ]; then
|
||||||
maxfolderversion=$(ls -l ${chart} | grep ^d | awk '{print $9}' | tail -n 1)
|
maxfolderversion=$(ls -l ${chart} | grep ^d | awk '{print $9}' | tail -n 1)
|
||||||
maxchartversion=$(cat ${chart}/${maxfolderversion}/Chart.yaml | grep "^version: " | awk -F" " '{ print $2 }')
|
maxchartversion=$(cat ${chart}/${maxfolderversion}/Chart.yaml | grep "^version: " | awk -F" " '{ print $2 }')
|
||||||
@@ -31,17 +29,73 @@ for chart in charts/*; do
|
|||||||
# Copy CONFIG template to each Chart directory, do not overwrite if exists
|
# Copy CONFIG template to each Chart directory, do not overwrite if exists
|
||||||
cp -n "${config_template}" "${chart}/${maxfolderversion}/CONFIG.md.gotmpl" || true
|
cp -n "${config_template}" "${chart}/${maxfolderversion}/CONFIG.md.gotmpl" || true
|
||||||
helm-docs \
|
helm-docs \
|
||||||
--ignore-file="${repository}/.helmdocsignore" \
|
--ignore-file=".helmdocsignore" \
|
||||||
--output-file="README.md" \
|
--output-file="README.md" \
|
||||||
--template-files="${repository}/.tools/templates/chart/README.md.gotmpl" \
|
--template-files="${repository}/.tools/templates/chart/README.md.gotmpl" \
|
||||||
--chart-search-root="${chart}/${maxfolderversion}"
|
--chart-search-root="${chart}/${maxfolderversion}"
|
||||||
helm-docs \
|
helm-docs \
|
||||||
--ignore-file="${repository}/.helmdocsignore" \
|
--ignore-file=".helmdocsignore" \
|
||||||
--output-file="CONFIG.md" \
|
--output-file="CONFIG.md" \
|
||||||
--template-files="${chart}/${maxfolderversion}/CONFIG.md.gotmpl" \
|
--template-files="${chart}/${maxfolderversion}/CONFIG.md.gotmpl" \
|
||||||
--chart-search-root="${chart}/${maxfolderversion}"
|
--chart-search-root="${chart}/${maxfolderversion}"
|
||||||
helm-docs \
|
helm-docs \
|
||||||
--ignore-file="${repository}/.helmdocsignore" \
|
--ignore-file=".helmdocsignore" \
|
||||||
|
--output-file="app-readme.md" \
|
||||||
|
--template-files="${repository}/.tools/templates/chart/app-readme.md.gotmpl" \
|
||||||
|
--chart-search-root="${chart}/${maxfolderversion}"
|
||||||
|
|
||||||
|
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
for chart in stable/*; do
|
||||||
|
if [ -d "${chart}" ]; then
|
||||||
|
maxfolderversion=$(ls -l ${chart} | grep ^d | awk '{print $9}' | tail -n 1)
|
||||||
|
maxchartversion=$(cat ${chart}/${maxfolderversion}/Chart.yaml | grep "^version: " | awk -F" " '{ print $2 }')
|
||||||
|
chartname=$(basename ${chart})
|
||||||
|
echo "-] Copying templates to ${repository}/${chart}/${maxfolderversion}"
|
||||||
|
# Copy CONFIG template to each Chart directory, do not overwrite if exists
|
||||||
|
cp -n "${config_template}" "${chart}/${maxfolderversion}/CONFIG.md.gotmpl" || true
|
||||||
|
helm-docs \
|
||||||
|
--ignore-file=".helmdocsignore" \
|
||||||
|
--output-file="README.md" \
|
||||||
|
--template-files="${repository}/.tools/templates/chart/README.md.gotmpl" \
|
||||||
|
--chart-search-root="${chart}/${maxfolderversion}"
|
||||||
|
helm-docs \
|
||||||
|
--ignore-file=".helmdocsignore" \
|
||||||
|
--output-file="CONFIG.md" \
|
||||||
|
--template-files="${chart}/${maxfolderversion}/CONFIG.md.gotmpl" \
|
||||||
|
--chart-search-root="${chart}/${maxfolderversion}"
|
||||||
|
helm-docs \
|
||||||
|
--ignore-file=".helmdocsignore" \
|
||||||
|
--output-file="app-readme.md" \
|
||||||
|
--template-files="${repository}/.tools/templates/chart/app-readme.md.gotmpl" \
|
||||||
|
--chart-search-root="${chart}/${maxfolderversion}"
|
||||||
|
|
||||||
|
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
for chart in beta/*; do
|
||||||
|
if [ -d "${chart}" ]; then
|
||||||
|
maxfolderversion=$(ls -l ${chart} | grep ^d | awk '{print $9}' | tail -n 1)
|
||||||
|
maxchartversion=$(cat ${chart}/${maxfolderversion}/Chart.yaml | grep "^version: " | awk -F" " '{ print $2 }')
|
||||||
|
chartname=$(basename ${chart})
|
||||||
|
echo "-] Copying templates to ${repository}/${chart}/${maxfolderversion}"
|
||||||
|
# Copy CONFIG template to each Chart directory, do not overwrite if exists
|
||||||
|
cp -n "${config_template}" "${chart}/${maxfolderversion}/CONFIG.md.gotmpl" || true
|
||||||
|
helm-docs \
|
||||||
|
--ignore-file=".helmdocsignore" \
|
||||||
|
--output-file="README.md" \
|
||||||
|
--template-files="${repository}/.tools/templates/chart/README.md.gotmpl" \
|
||||||
|
--chart-search-root="${chart}/${maxfolderversion}"
|
||||||
|
helm-docs \
|
||||||
|
--ignore-file=".helmdocsignore" \
|
||||||
|
--output-file="CONFIG.md" \
|
||||||
|
--template-files="${chart}/${maxfolderversion}/CONFIG.md.gotmpl" \
|
||||||
|
--chart-search-root="${chart}/${maxfolderversion}"
|
||||||
|
helm-docs \
|
||||||
|
--ignore-file=".helmdocsignore" \
|
||||||
--output-file="app-readme.md" \
|
--output-file="app-readme.md" \
|
||||||
--template-files="${repository}/.tools/templates/chart/app-readme.md.gotmpl" \
|
--template-files="${repository}/.tools/templates/chart/app-readme.md.gotmpl" \
|
||||||
--chart-search-root="${chart}/${maxfolderversion}"
|
--chart-search-root="${chart}/${maxfolderversion}"
|
||||||
|
|||||||
@@ -7,20 +7,17 @@ appVersion: 1.0.0
|
|||||||
description: ${CHARTNAME} App for TrueNAS SCALE
|
description: ${CHARTNAME} App for TrueNAS SCALE
|
||||||
type: application
|
type: application
|
||||||
deprecated: false
|
deprecated: false
|
||||||
home: https://github.com/truecharts/charts/tree/master/charts/${CHARTNAME}
|
home: https://github.com/truecharts/apps/tree/master/charts/${CHARTNAME}
|
||||||
icon: https://raw.githubusercontent.com/truecharts/charts/master/charts/${CHARTNAME}/icon.png?raw=true
|
icon: https://raw.githubusercontent.com/truecharts/apps/master/charts/${CHARTNAME}/icon.png?raw=true
|
||||||
keywords:
|
keywords:
|
||||||
- ${CHARTNAME}
|
- ${CHARTNAME}
|
||||||
sources:
|
sources:
|
||||||
- https://github.com/truecharts/charts/tree/master/charts/${CHARTNAME}
|
- https://github.com/truecharts/apps/tree/master/charts/${CHARTNAME}
|
||||||
dependencies:
|
dependencies:
|
||||||
- name: common
|
- name: common
|
||||||
repository: https://charts.truecharts.com/
|
repository: https://charts.truecharts.com/
|
||||||
version: 1.3.0
|
version: 1.3.0
|
||||||
# condition:
|
# condition:
|
||||||
# tags:
|
|
||||||
# import-values:
|
|
||||||
# alias:
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- name: TrueCharts
|
- name: TrueCharts
|
||||||
email: info@truecharts.org
|
email: info@truecharts.org
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ Kubernetes: `>=1.16.0-0`
|
|||||||
|
|
||||||
| Repository | Name | Version |
|
| Repository | Name | Version |
|
||||||
|------------|------|---------|
|
|------------|------|---------|
|
||||||
| https://k8s-at-home.com/charts/ | common | 3.0.1 |
|
| https://truecharts.org/ | common | 3.0.1 |
|
||||||
|
|
||||||
## TL;DR
|
## TL;DR
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ TrueCharts
|
|||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- define "custom.repository.url" -}}
|
{{- define "custom.repository.url" -}}
|
||||||
https://github.com/truecharts/charts
|
https://github.com/truecharts/apps
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- define "custom.helm.url" -}}
|
{{- define "custom.helm.url" -}}
|
||||||
@@ -20,7 +20,7 @@ https://charts.truecharts.org
|
|||||||
|
|
||||||
{{- define "custom.notes" -}}
|
{{- define "custom.notes" -}}
|
||||||
TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation.
|
TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation.
|
||||||
**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)**
|
**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)**
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- define "custom.requirements" -}}
|
{{- define "custom.requirements" -}}
|
||||||
@@ -68,8 +68,12 @@ The command removes all the Kubernetes components associated with the chart **in
|
|||||||
## Support
|
## Support
|
||||||
|
|
||||||
- See the [Wiki](https://wiki.truecharts.org)
|
- See the [Wiki](https://wiki.truecharts.org)
|
||||||
- Open a [issue](https://github.com/truecharts/charts/issues/new/choose)
|
- Open a [issue](https://github.com/truecharts/apps/issues/new/choose)
|
||||||
- Ask a [question](https://github.com/truecharts/charts/discussions)
|
- Ask a [question](https://github.com/truecharts/apps/discussions)
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "custom.copyright" -}}
|
||||||
|
All Rights Reserved - The TrueCharts Project
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{ template "custom.introheader" . }}
|
{{ template "custom.introheader" . }}
|
||||||
@@ -93,3 +97,4 @@ The command removes all the Kubernetes components associated with the chart **in
|
|||||||
{{ template "custom.support" . }}
|
{{ template "custom.support" . }}
|
||||||
|
|
||||||
{{ template "helm-docs.versionFooter" . }}
|
{{ template "helm-docs.versionFooter" . }}
|
||||||
|
{{ template "custom.copyright" . }}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{{- define "custom.notes" -}}
|
{{- define "custom.notes" -}}
|
||||||
|
This App is supplied by TrueCharts, for more information please visit https://truecharts.org
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{ template "chart.description" . }}
|
{{ template "chart.description" . }}
|
||||||
{{ template "custom.notes" . }}
|
{{ template "custom.notes" . }}
|
||||||
|
|||||||
+24
-1
@@ -1,4 +1,27 @@
|
|||||||
for chart in charts/*; do
|
#!/bin/sh
|
||||||
|
for chart in stable/*; do
|
||||||
|
if [ -d "${chart}" ]; then
|
||||||
|
maxfolderversion=$(ls -l ${chart} | grep ^d | awk '{print $9}' | tail -n 1)
|
||||||
|
chartname=$(basename ${chart})
|
||||||
|
echo "Processing: ${chart} - folder: ${maxfolderversion} - version: ${maxchartversion}"
|
||||||
|
|
||||||
|
mv -f ${chart}/${maxfolderversion}/values.yaml ${chart}/${maxfolderversion}/ix_values.yaml
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
for chart in staging/*; do
|
||||||
|
if [ -d "${chart}" ]; then
|
||||||
|
maxfolderversion=$(ls -l ${chart} | grep ^d | awk '{print $9}' | tail -n 1)
|
||||||
|
chartname=$(basename ${chart})
|
||||||
|
echo "Processing: ${chart} - folder: ${maxfolderversion} - version: ${maxchartversion}"
|
||||||
|
|
||||||
|
mv -f ${chart}/${maxfolderversion}/values.yaml ${chart}/${maxfolderversion}/ix_values.yaml
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
for chart in beta/*; do
|
||||||
if [ -d "${chart}" ]; then
|
if [ -d "${chart}" ]; then
|
||||||
maxfolderversion=$(ls -l ${chart} | grep ^d | awk '{print $9}' | tail -n 1)
|
maxfolderversion=$(ls -l ${chart} | grep ^d | awk '{print $9}' | tail -n 1)
|
||||||
chartname=$(basename ${chart})
|
chartname=$(basename ${chart})
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,31 +0,0 @@
|
|||||||
apiVersion: v2
|
|
||||||
kubeVersion: ">=1.16.0-0"
|
|
||||||
name: deluge
|
|
||||||
version: 2.0.0
|
|
||||||
upstream_version: 1.1.1
|
|
||||||
appVersion: "latest"
|
|
||||||
description: Deluge is a torrent download client
|
|
||||||
type: application
|
|
||||||
deprecated: false
|
|
||||||
home: https://github.com/truecharts/charts/tree/master/charts/deluge
|
|
||||||
icon: https://avatars2.githubusercontent.com/u/6733935?v=3&s=200
|
|
||||||
keywords:
|
|
||||||
- deluge
|
|
||||||
sources:
|
|
||||||
- https://github.com/truecharts/charts/tree/master/charts/deluge
|
|
||||||
- https://github.com/k8s-at-home/charts/tree/master/charts/deluge
|
|
||||||
- https://hub.docker.com/r/linuxserver/deluge/
|
|
||||||
- https://deluge-torrent.org/
|
|
||||||
dependencies:
|
|
||||||
- name: common
|
|
||||||
repository: https://charts.truecharts.org/
|
|
||||||
version: 2.0.0
|
|
||||||
# condition:
|
|
||||||
# tags:
|
|
||||||
# import-values:
|
|
||||||
# alias:
|
|
||||||
maintainers:
|
|
||||||
- name: TrueCharts
|
|
||||||
email: info@truecharts.org
|
|
||||||
url: truecharts.org
|
|
||||||
# annotations:
|
|
||||||
@@ -1,55 +0,0 @@
|
|||||||
# Introduction
|
|
||||||
|
|
||||||
  
|
|
||||||
|
|
||||||
Deluge is a torrent download client
|
|
||||||
|
|
||||||
TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation.
|
|
||||||
**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
|
|
||||||
|
|
||||||
* <https://github.com/truecharts/charts/tree/master/charts/deluge>
|
|
||||||
* <https://github.com/k8s-at-home/charts/tree/master/charts/deluge>
|
|
||||||
* <https://hub.docker.com/r/linuxserver/deluge/>
|
|
||||||
* <https://deluge-torrent.org/>
|
|
||||||
|
|
||||||
## Requirements
|
|
||||||
|
|
||||||
Kubernetes: `>=1.16.0-0`
|
|
||||||
|
|
||||||
## Dependencies
|
|
||||||
|
|
||||||
| Repository | Name | Version |
|
|
||||||
|------------|------|---------|
|
|
||||||
| https://charts.truecharts.org/ | common | 2.0.0 |
|
|
||||||
|
|
||||||
## Installing the Chart
|
|
||||||
|
|
||||||
To install the chart with the release name `deluge`
|
|
||||||
|
|
||||||
- Open TrueNAS SCALE
|
|
||||||
- Go to Apps
|
|
||||||
- Click "Install" for this specific Apps
|
|
||||||
- Fill out the configuration form
|
|
||||||
|
|
||||||
## Uninstalling the Chart
|
|
||||||
|
|
||||||
To uninstall the `deluge` deployment
|
|
||||||
|
|
||||||
- Open TrueNAS SCALE
|
|
||||||
- Go to Apps
|
|
||||||
- Go to "Installed Apps"
|
|
||||||
- Expand the menu in the top-right corner of this App
|
|
||||||
- Click "Remove" for this specific Apps
|
|
||||||
|
|
||||||
The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release.
|
|
||||||
|
|
||||||
## Support
|
|
||||||
|
|
||||||
- See the [Wiki](https://wiki.truecharts.org)
|
|
||||||
- Open a [issue](https://github.com/truecharts/charts/issues/new/choose)
|
|
||||||
- Ask a [question](https://github.com/truecharts/charts/discussions)
|
|
||||||
|
|
||||||
----------------------------------------------
|
|
||||||
Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0)
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
Deluge is a torrent download client
|
|
||||||
|
|
||||||
Binary file not shown.
@@ -1,17 +0,0 @@
|
|||||||
##
|
|
||||||
# This file contains Values.yaml content that gets added to the output of questions.yaml
|
|
||||||
# It's ONLY meant for content that the user is NOT expected to change.
|
|
||||||
# Example: Everything under "image" is not included in questions.yaml but is included here.
|
|
||||||
##
|
|
||||||
|
|
||||||
image:
|
|
||||||
repository: linuxserver/deluge
|
|
||||||
pullPolicy: IfNotPresent
|
|
||||||
tag: latest
|
|
||||||
|
|
||||||
startAsRoot: true
|
|
||||||
|
|
||||||
##
|
|
||||||
# Most other defaults are set in questions.yaml
|
|
||||||
# For other options please refer to the wiki, default_values.yaml or the common library chart
|
|
||||||
##
|
|
||||||
@@ -1,681 +0,0 @@
|
|||||||
groups:
|
|
||||||
- name: "Container Image"
|
|
||||||
description: "Image to be used for container"
|
|
||||||
- name: "Workload Configuration"
|
|
||||||
description: "Configure workload deployment"
|
|
||||||
- name: "Configuration"
|
|
||||||
description: "additional container configuration"
|
|
||||||
- name: "Networking"
|
|
||||||
description: "Configure / service for container"
|
|
||||||
- name: "Storage and Devices"
|
|
||||||
description: "Persist and share data that is separate from the lifecycle of the container"
|
|
||||||
- name: "Resource Reservation"
|
|
||||||
description: "Specify resources to be allocated to workload"
|
|
||||||
- name: "Reverse Proxy Configuration"
|
|
||||||
description: "Reverse Proxy configuration"
|
|
||||||
- name: "Advanced"
|
|
||||||
description: "Advanced Configuration"
|
|
||||||
- name: "WARNING"
|
|
||||||
description: "WARNING"
|
|
||||||
|
|
||||||
portals:
|
|
||||||
web_portal:
|
|
||||||
protocols:
|
|
||||||
- "$kubernetes-resource_configmap_portal_protocol"
|
|
||||||
host:
|
|
||||||
- "$kubernetes-resource_configmap_portal_host"
|
|
||||||
ports:
|
|
||||||
- "$kubernetes-resource_configmap_portal_port"
|
|
||||||
|
|
||||||
questions:
|
|
||||||
|
|
||||||
- variable: portal
|
|
||||||
group: "Container Image"
|
|
||||||
label: "Configure Portal Button"
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
hidden: true
|
|
||||||
attrs:
|
|
||||||
- variable: enabled
|
|
||||||
label: "Enable"
|
|
||||||
description: "enable the portal button"
|
|
||||||
schema:
|
|
||||||
hidden: true
|
|
||||||
editable: false
|
|
||||||
type: boolean
|
|
||||||
default: true
|
|
||||||
|
|
||||||
|
|
||||||
# Update Policy
|
|
||||||
- variable: strategyType
|
|
||||||
group: "Container Image"
|
|
||||||
label: "Update Strategy"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "Recreate"
|
|
||||||
enum:
|
|
||||||
- value: "RollingUpdate"
|
|
||||||
description: "Create new pods and then kill old ones"
|
|
||||||
- value: "Recreate"
|
|
||||||
description: "Kill existing pods before creating new ones"
|
|
||||||
|
|
||||||
# Configure Time Zone
|
|
||||||
- variable: timezone
|
|
||||||
group: "Configuration"
|
|
||||||
label: "Timezone"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "Etc/UTC"
|
|
||||||
$ref:
|
|
||||||
- "definitions/timezone"
|
|
||||||
|
|
||||||
- variable: PUID
|
|
||||||
group: "Configuration"
|
|
||||||
label: "PUID"
|
|
||||||
description: "The UserID of the user running the application and owning the files"
|
|
||||||
schema:
|
|
||||||
type: int
|
|
||||||
default: 568
|
|
||||||
|
|
||||||
- variable: PGID
|
|
||||||
group: "Configuration"
|
|
||||||
label: "PGID"
|
|
||||||
description: "The groupID of the user/group running the application and owning the files"
|
|
||||||
schema:
|
|
||||||
type: int
|
|
||||||
default: 568
|
|
||||||
|
|
||||||
- variable: UMASK
|
|
||||||
group: "Configuration"
|
|
||||||
label: "UMASK (advanced)"
|
|
||||||
description: "The UMASK used if supported by the application"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "002"
|
|
||||||
|
|
||||||
# Configure Enviroment Variables
|
|
||||||
- variable: environmentVariables
|
|
||||||
label: "Image environment"
|
|
||||||
group: "Configuration"
|
|
||||||
schema:
|
|
||||||
type: list
|
|
||||||
default: []
|
|
||||||
items:
|
|
||||||
- variable: environmentVariable
|
|
||||||
label: "Environment Variable"
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
attrs:
|
|
||||||
- variable: name
|
|
||||||
label: "Name"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
- variable: value
|
|
||||||
label: "Value"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
|
|
||||||
# Enable Host Networking
|
|
||||||
- variable: hostNetwork
|
|
||||||
group: "Networking"
|
|
||||||
label: "Enable Host Networking"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
|
|
||||||
- variable: services
|
|
||||||
group: "Networking"
|
|
||||||
label: "Configure Service"
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
attrs:
|
|
||||||
- variable: main
|
|
||||||
label: "Main service"
|
|
||||||
description: "The Primary service on which the healthcheck runs, often the webUI"
|
|
||||||
schema:
|
|
||||||
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, nodePorts expose the container to the host node System"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "ClusterIP"
|
|
||||||
enum:
|
|
||||||
- value: "NodePort"
|
|
||||||
description: "NodePort"
|
|
||||||
- value: "ClusterIP"
|
|
||||||
description: "ClusterIP"
|
|
||||||
- variable: port
|
|
||||||
label: "Port configuration"
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
attrs:
|
|
||||||
- variable: protocol
|
|
||||||
label: "Port Type"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "HTTP"
|
|
||||||
hidden: false
|
|
||||||
enum:
|
|
||||||
- value: HTTP
|
|
||||||
description: "HTTP"
|
|
||||||
- value: "HTTPS"
|
|
||||||
description: "HTTPS"
|
|
||||||
- variable: port
|
|
||||||
label: "container port"
|
|
||||||
schema:
|
|
||||||
type: int
|
|
||||||
default: 8112
|
|
||||||
editable: false
|
|
||||||
hidden: true
|
|
||||||
- variable: targetport
|
|
||||||
label: "Internal Service port"
|
|
||||||
description: "When connecting internally to this App, you'll need this port"
|
|
||||||
schema:
|
|
||||||
type: int
|
|
||||||
default: 8112
|
|
||||||
editable: false
|
|
||||||
hidden: true
|
|
||||||
- variable: nodePort
|
|
||||||
label: "(optional) host nodePort to expose to"
|
|
||||||
description: "only get used when nodePort is selected"
|
|
||||||
schema:
|
|
||||||
type: int
|
|
||||||
min: 9000
|
|
||||||
max: 65535
|
|
||||||
default: 36052
|
|
||||||
required: true
|
|
||||||
- variable: tcp
|
|
||||||
label: "TCP Torrent connections"
|
|
||||||
description: "This service is used to process incomming torrent connections over TCP"
|
|
||||||
schema:
|
|
||||||
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, nodePorts expose the container to the host node System"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "ClusterIP"
|
|
||||||
enum:
|
|
||||||
- value: "NodePort"
|
|
||||||
description: "NodePort"
|
|
||||||
- value: "ClusterIP"
|
|
||||||
description: "ClusterIP"
|
|
||||||
- variable: port
|
|
||||||
label: "Port configuration"
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
attrs:
|
|
||||||
- variable: protocol
|
|
||||||
label: "Port Type"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "TCP"
|
|
||||||
hidden: true
|
|
||||||
enum:
|
|
||||||
- value: TCP
|
|
||||||
description: "TCP"
|
|
||||||
- value: "UDP"
|
|
||||||
description: "UDP"
|
|
||||||
- variable: port
|
|
||||||
label: "container port"
|
|
||||||
schema:
|
|
||||||
type: int
|
|
||||||
default: 51413
|
|
||||||
editable: false
|
|
||||||
hidden: true
|
|
||||||
- variable: targetport
|
|
||||||
label: "Internal Service port"
|
|
||||||
description: "When connecting internally to this App, you'll need this port"
|
|
||||||
schema:
|
|
||||||
type: int
|
|
||||||
default: 51413
|
|
||||||
editable: false
|
|
||||||
hidden: true
|
|
||||||
- variable: nodePort
|
|
||||||
label: "(optional) host nodePort to expose to"
|
|
||||||
description: "only get used when nodePort is selected"
|
|
||||||
schema:
|
|
||||||
type: int
|
|
||||||
min: 9000
|
|
||||||
max: 65535
|
|
||||||
default: 36052
|
|
||||||
required: true
|
|
||||||
- variable: udp
|
|
||||||
label: "UDP Torrent connections"
|
|
||||||
description: "This service is used to process incomming torrent connections over UDP"
|
|
||||||
schema:
|
|
||||||
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, nodePorts expose the container to the host node System"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "ClusterIP"
|
|
||||||
enum:
|
|
||||||
- value: "NodePort"
|
|
||||||
description: "NodePort"
|
|
||||||
- value: "ClusterIP"
|
|
||||||
description: "ClusterIP"
|
|
||||||
- variable: port
|
|
||||||
label: "Port configuration"
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
attrs:
|
|
||||||
- variable: protocol
|
|
||||||
label: "Port Type"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "UDP"
|
|
||||||
hidden: true
|
|
||||||
enum:
|
|
||||||
- value: TCP
|
|
||||||
description: "TCP"
|
|
||||||
- value: "UDP"
|
|
||||||
description: "UDP"
|
|
||||||
- variable: port
|
|
||||||
label: "container port"
|
|
||||||
schema:
|
|
||||||
type: int
|
|
||||||
default: 51413
|
|
||||||
editable: false
|
|
||||||
hidden: true
|
|
||||||
- variable: targetport
|
|
||||||
label: "Internal Service port"
|
|
||||||
description: "When connecting internally to this App, you'll need this port"
|
|
||||||
schema:
|
|
||||||
type: int
|
|
||||||
default: 51413
|
|
||||||
editable: false
|
|
||||||
hidden: true
|
|
||||||
- variable: nodePort
|
|
||||||
label: "(optional) host nodePort to expose to"
|
|
||||||
description: "only get used when nodePort is selected"
|
|
||||||
schema:
|
|
||||||
type: int
|
|
||||||
min: 9000
|
|
||||||
max: 65535
|
|
||||||
default: 36052
|
|
||||||
required: true
|
|
||||||
|
|
||||||
## TrueCharts Specific
|
|
||||||
|
|
||||||
- variable: appVolumeMounts
|
|
||||||
label: "app storage"
|
|
||||||
group: "Storage and Devices"
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
attrs:
|
|
||||||
- variable: config
|
|
||||||
label: "config dataset"
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
$ref:
|
|
||||||
- "normalize/ixVolume"
|
|
||||||
attrs:
|
|
||||||
- variable: enabled
|
|
||||||
label: "Enabled"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: true
|
|
||||||
required: true
|
|
||||||
hidden: true
|
|
||||||
editable: false
|
|
||||||
- variable: setPermissions
|
|
||||||
label: "Automatic Permissions"
|
|
||||||
description: "Automatically set permissions on install"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: true
|
|
||||||
hidden: false
|
|
||||||
- variable: emptyDir
|
|
||||||
label: "emptyDir"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
hidden: true
|
|
||||||
editable: false
|
|
||||||
- variable: datasetName
|
|
||||||
label: "Dataset Name"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "config"
|
|
||||||
required: true
|
|
||||||
editable: false
|
|
||||||
hidden: true
|
|
||||||
- variable: mountPath
|
|
||||||
label: "Mount Path"
|
|
||||||
description: "Path to mount inside the pod"
|
|
||||||
schema:
|
|
||||||
type: path
|
|
||||||
required: true
|
|
||||||
default: "/config"
|
|
||||||
editable: false
|
|
||||||
- variable: hostPathEnabled
|
|
||||||
label: "host Path Enabled"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
show_subquestions_if: true
|
|
||||||
subquestions:
|
|
||||||
- variable: hostPath
|
|
||||||
label: "Host Path"
|
|
||||||
schema:
|
|
||||||
type: hostpath
|
|
||||||
required: true
|
|
||||||
- variable: downloads
|
|
||||||
label: "downloads dataset"
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
$ref:
|
|
||||||
- "normalize/ixVolume"
|
|
||||||
attrs:
|
|
||||||
- variable: enabled
|
|
||||||
label: "Enabled"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: true
|
|
||||||
required: true
|
|
||||||
hidden: true
|
|
||||||
editable: false
|
|
||||||
- variable: setPermissions
|
|
||||||
label: "Automatic Permissions"
|
|
||||||
description: "Automatically set permissions on install"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: true
|
|
||||||
hidden: false
|
|
||||||
- variable: emptyDir
|
|
||||||
label: "emptyDir"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
hidden: true
|
|
||||||
editable: false
|
|
||||||
- variable: datasetName
|
|
||||||
label: "Dataset Name"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "downloads"
|
|
||||||
required: true
|
|
||||||
editable: false
|
|
||||||
- variable: mountPath
|
|
||||||
label: "Mount Path"
|
|
||||||
description: "Path to mount inside the pod"
|
|
||||||
schema:
|
|
||||||
type: path
|
|
||||||
required: true
|
|
||||||
default: "/downloads"
|
|
||||||
editable: false
|
|
||||||
- variable: hostPathEnabled
|
|
||||||
label: "host Path Enabled"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
show_subquestions_if: true
|
|
||||||
subquestions:
|
|
||||||
- variable: hostPath
|
|
||||||
label: "Host Path"
|
|
||||||
schema:
|
|
||||||
type: hostpath
|
|
||||||
required: true
|
|
||||||
|
|
||||||
|
|
||||||
- variable: additionalAppVolumeMounts
|
|
||||||
label: "Custom app storage"
|
|
||||||
group: "Storage and Devices"
|
|
||||||
schema:
|
|
||||||
type: list
|
|
||||||
default: []
|
|
||||||
items:
|
|
||||||
- variable: volumeMount
|
|
||||||
label: "Custom Storage"
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
attrs:
|
|
||||||
- variable: enabled
|
|
||||||
label: "Enabled"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: true
|
|
||||||
required: true
|
|
||||||
hidden: true
|
|
||||||
editable: false
|
|
||||||
- variable: setPermissions
|
|
||||||
label: "Automatic Permissions"
|
|
||||||
description: "Automatically set permissions on install"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: true
|
|
||||||
hidden: false
|
|
||||||
- variable: name
|
|
||||||
label: "Mountpoint Name"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: ""
|
|
||||||
required: true
|
|
||||||
editable: true
|
|
||||||
- variable: emptyDir
|
|
||||||
label: "emptyDir"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
hidden: true
|
|
||||||
editable: false
|
|
||||||
- variable: mountPath
|
|
||||||
label: "Mount Path"
|
|
||||||
description: "Path to mount inside the pod"
|
|
||||||
schema:
|
|
||||||
type: path
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
editable: true
|
|
||||||
- variable: hostPathEnabled
|
|
||||||
label: "host Path Enabled"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: true
|
|
||||||
hidden: true
|
|
||||||
- variable: hostPath
|
|
||||||
label: "Host Path"
|
|
||||||
schema:
|
|
||||||
type: hostpath
|
|
||||||
required: true
|
|
||||||
|
|
||||||
- variable: ingress
|
|
||||||
label: ""
|
|
||||||
group: "Reverse Proxy Configuration"
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
attrs:
|
|
||||||
- variable: main
|
|
||||||
label: "Web Reverse Proxy Configuration"
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
attrs:
|
|
||||||
- variable: enabled
|
|
||||||
label: "Enable Web Reverse Proxy"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
show_subquestions_if: true
|
|
||||||
subquestions:
|
|
||||||
- variable: type
|
|
||||||
label: "Reverse Proxy Type"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "HTTP"
|
|
||||||
hidden: true
|
|
||||||
editable: false
|
|
||||||
required: true
|
|
||||||
- variable: serviceName
|
|
||||||
label: "Service name to proxy to"
|
|
||||||
schema:
|
|
||||||
hidden: true
|
|
||||||
editable: false
|
|
||||||
type: string
|
|
||||||
default: ""
|
|
||||||
- variable: entrypoint
|
|
||||||
label: "Select Entrypoint"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "websecure"
|
|
||||||
required: true
|
|
||||||
enum:
|
|
||||||
- value: "websecure"
|
|
||||||
description: "Websecure: HTTPS/TLS port 443"
|
|
||||||
- variable: hosts
|
|
||||||
label: "Hosts"
|
|
||||||
schema:
|
|
||||||
type: list
|
|
||||||
default: []
|
|
||||||
items:
|
|
||||||
- variable: host
|
|
||||||
label: "Host"
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
attrs:
|
|
||||||
- variable: host
|
|
||||||
label: "Domain Name"
|
|
||||||
required: true
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
- variable: path
|
|
||||||
label: "path"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
required: true
|
|
||||||
hidden: true
|
|
||||||
default: "/"
|
|
||||||
- variable: certType
|
|
||||||
label: "Select Certificate Type"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "selfsigned"
|
|
||||||
enum:
|
|
||||||
- value: ""
|
|
||||||
description: "No Encryption/TLS/Certificates"
|
|
||||||
- value: "selfsigned"
|
|
||||||
description: "Self-Signed Certificate"
|
|
||||||
- value: "ixcert"
|
|
||||||
description: "TrueNAS SCALE Certificate"
|
|
||||||
- variable: certificate
|
|
||||||
label: "Select TrueNAS SCALE Certificate"
|
|
||||||
schema:
|
|
||||||
type: int
|
|
||||||
show_if: [["certType", "=", "ixcert"]]
|
|
||||||
$ref:
|
|
||||||
- "definitions/certificate"
|
|
||||||
- variable: authForwardURL
|
|
||||||
label: "Forward Authentication URL"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: ""
|
|
||||||
- variable: tcp
|
|
||||||
label: "TCP Reverse Proxy Configuration"
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
attrs:
|
|
||||||
- variable: enabled
|
|
||||||
label: "Enable TCP Reverse Proxy"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
show_subquestions_if: true
|
|
||||||
subquestions:
|
|
||||||
- variable: type
|
|
||||||
label: "Select Reverse Proxy Type"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "TCP"
|
|
||||||
required: true
|
|
||||||
editable: false
|
|
||||||
hidden: true
|
|
||||||
- variable: serviceName
|
|
||||||
label: "Service name to proxy to"
|
|
||||||
schema:
|
|
||||||
hidden: true
|
|
||||||
editable: false
|
|
||||||
type: string
|
|
||||||
default: ""
|
|
||||||
# - variable: servicePort
|
|
||||||
# label: "Service Port to proxy to"
|
|
||||||
# schema:
|
|
||||||
# hidden: true
|
|
||||||
# editable: false
|
|
||||||
# default: 80
|
|
||||||
# type: int
|
|
||||||
- variable: entrypoint
|
|
||||||
label: "Select Entrypoint"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "torrent-tcp"
|
|
||||||
required: true
|
|
||||||
enum:
|
|
||||||
- value: "torrent-tcp"
|
|
||||||
description: "Torrent-TCP: port 51413"
|
|
||||||
|
|
||||||
- variable: udp
|
|
||||||
label: "UDP Reverse Proxy Configuration"
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
attrs:
|
|
||||||
- variable: enabled
|
|
||||||
label: "Enable UDP Reverse Proxy"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
show_subquestions_if: true
|
|
||||||
subquestions:
|
|
||||||
- variable: type
|
|
||||||
label: "Select Reverse Proxy Type"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "UDP"
|
|
||||||
required: true
|
|
||||||
editable: false
|
|
||||||
hidden: true
|
|
||||||
- variable: serviceName
|
|
||||||
label: "Service name to proxy to"
|
|
||||||
schema:
|
|
||||||
hidden: true
|
|
||||||
editable: false
|
|
||||||
type: string
|
|
||||||
default: ""
|
|
||||||
# - variable: servicePort
|
|
||||||
# label: "Service Port to proxy to"
|
|
||||||
# schema:
|
|
||||||
# hidden: true
|
|
||||||
# editable: false
|
|
||||||
# default: 80
|
|
||||||
# type: int
|
|
||||||
- variable: entrypoint
|
|
||||||
label: "Select Entrypoint"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "torrent-udp"
|
|
||||||
required: true
|
|
||||||
enum:
|
|
||||||
- value: "torrent-udp"
|
|
||||||
description: "Torrent-UDP: port 51413"
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
categories:
|
|
||||||
- media
|
|
||||||
icon_url: https://avatars2.githubusercontent.com/u/6733935?v=3&s=200
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
Emby Server is a home media server
|
|
||||||
|
|
||||||
Binary file not shown.
@@ -1,3 +0,0 @@
|
|||||||
categories:
|
|
||||||
- media
|
|
||||||
icon_url: https://raw.githubusercontent.com/djs52/charts/master/charts/emby/icon.png?raw=true
|
|
||||||
Binary file not shown.
@@ -1,2 +0,0 @@
|
|||||||
FreshRSS is a self-hosted RSS feed aggregator
|
|
||||||
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,803 +0,0 @@
|
|||||||
# Groups
|
|
||||||
groups:
|
|
||||||
- name: "Container Image"
|
|
||||||
description: "Image to be used for container"
|
|
||||||
- name: "Workload Configuration"
|
|
||||||
description: "Configure workload deployment"
|
|
||||||
- name: "Configuration"
|
|
||||||
description: "additional container configuration"
|
|
||||||
- name: "Networking"
|
|
||||||
description: "Configure / service for container"
|
|
||||||
- name: "Storage and Devices"
|
|
||||||
description: "Persist and share data that is separate from the lifecycle of the container"
|
|
||||||
- name: "Resource Reservation"
|
|
||||||
description: "Specify resources to be allocated to workload"
|
|
||||||
- name: "Reverse Proxy Configuration"
|
|
||||||
description: "Reverse Proxy configuration"
|
|
||||||
- name: "Advanced"
|
|
||||||
description: "Advanced Configuration"
|
|
||||||
- name: "WARNING"
|
|
||||||
description: "WARNING"
|
|
||||||
|
|
||||||
portals:
|
|
||||||
web_portal:
|
|
||||||
protocols:
|
|
||||||
- "$kubernetes-resource_configmap_portal_protocol"
|
|
||||||
host:
|
|
||||||
- "$kubernetes-resource_configmap_portal_host"
|
|
||||||
ports:
|
|
||||||
- "$kubernetes-resource_configmap_portal_port"
|
|
||||||
# UI
|
|
||||||
questions:
|
|
||||||
# Portal
|
|
||||||
- variable: portal
|
|
||||||
group: "Container Image"
|
|
||||||
label: "Configure Portal Button"
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
hidden: true
|
|
||||||
attrs:
|
|
||||||
- variable: enabled
|
|
||||||
label: "Enable"
|
|
||||||
description: "enable the portal button"
|
|
||||||
schema:
|
|
||||||
hidden: true
|
|
||||||
editable: false
|
|
||||||
type: boolean
|
|
||||||
default: true
|
|
||||||
- variable: nodePortProtocol
|
|
||||||
label: "Protocol when using NodePort"
|
|
||||||
description: "Enter the protocol to use when using nodeport"
|
|
||||||
schema:
|
|
||||||
hidden: true
|
|
||||||
editable: false
|
|
||||||
type: string
|
|
||||||
default: "http"
|
|
||||||
# Update Policy
|
|
||||||
- variable: strategyType
|
|
||||||
group: "Container Image"
|
|
||||||
label: "Update Strategy"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "Recreate"
|
|
||||||
enum:
|
|
||||||
- value: "RollingUpdate"
|
|
||||||
description: "Create new pods and then kill old ones"
|
|
||||||
- value: "Recreate"
|
|
||||||
description: "Kill existing pods before creating new ones"
|
|
||||||
|
|
||||||
# Configure Time Zone
|
|
||||||
- variable: timezone
|
|
||||||
group: "Configuration"
|
|
||||||
label: "Timezone"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "Etc/UTC"
|
|
||||||
$ref:
|
|
||||||
- "definitions/timezone"
|
|
||||||
|
|
||||||
- variable: PUID
|
|
||||||
group: "Configuration"
|
|
||||||
label: "PUID"
|
|
||||||
description: "The UserID of the user running the application and owning the files"
|
|
||||||
schema:
|
|
||||||
type: int
|
|
||||||
default: 568
|
|
||||||
|
|
||||||
- variable: PGID
|
|
||||||
group: "Configuration"
|
|
||||||
label: "PGID"
|
|
||||||
description: "The groupID of the user/group running the application and owning the files"
|
|
||||||
schema:
|
|
||||||
type: int
|
|
||||||
default: 568
|
|
||||||
|
|
||||||
- variable: UMASK
|
|
||||||
group: "Configuration"
|
|
||||||
label: "UMASK (advanced)"
|
|
||||||
description: "The UMASK used if supported by the application"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "002"
|
|
||||||
|
|
||||||
# Configure Enviroment Variables
|
|
||||||
|
|
||||||
- variable: environmentVariables
|
|
||||||
label: "Image environment"
|
|
||||||
group: "Configuration"
|
|
||||||
schema:
|
|
||||||
type: list
|
|
||||||
default: []
|
|
||||||
items:
|
|
||||||
- variable: environmentVariable
|
|
||||||
label: "Environment Variable"
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
attrs:
|
|
||||||
- variable: name
|
|
||||||
label: "Name"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
- variable: value
|
|
||||||
label: "Value"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
|
|
||||||
# Docker specific env
|
|
||||||
- variable: env
|
|
||||||
group: "Configuration"
|
|
||||||
label: "Image Environment"
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
attrs:
|
|
||||||
- variable: gui
|
|
||||||
label: "GUI Settings"
|
|
||||||
description: "Always read description before changing a value here. Also refer to README"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
show_subquestions_if: true
|
|
||||||
subquestions:
|
|
||||||
- variable: DISPLAY_WIDTH
|
|
||||||
label: "DISPLAY_WIDTH"
|
|
||||||
description: "Width (in pixels) of the application's window."
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "1280"
|
|
||||||
required: true
|
|
||||||
- variable: DISPLAY_HEIGHT
|
|
||||||
label: "DISPLAY_HEIGHT"
|
|
||||||
description: "Height (in pixels) of the application's window."
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "768"
|
|
||||||
required: true
|
|
||||||
- variable: SECURE_CONNECTION
|
|
||||||
label: "SECURE_CONNECTION"
|
|
||||||
description: "When set to 1, an encrypted connection is used to access the application's GUI (either via a web browser or VNC client). See the Security section for more details."
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "0"
|
|
||||||
required: true
|
|
||||||
- variable: VNC_PASSWORD
|
|
||||||
label: "VNC_PASSWORD"
|
|
||||||
description: "Password needed to connect to the application's GUI. See the VNC Password section for more details."
|
|
||||||
schema:
|
|
||||||
private: true
|
|
||||||
type: string
|
|
||||||
default: ""
|
|
||||||
- variable: autoconv
|
|
||||||
label: "Automated Conversion Settings"
|
|
||||||
description: "Always read description before changing a value here. Also refer to README"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
show_subquestions_if: true
|
|
||||||
subquestions:
|
|
||||||
- variable: AUTOMATED_CONVERSION_PRESET
|
|
||||||
label: "AUTOMATED_CONVERSION_PRESET"
|
|
||||||
description: "HandBrake preset used by the automatic video converter. Identification of a preset must follow the format <CATEGORY>/<PRESET NAME>"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: 'General/Very Fast 1080p30'
|
|
||||||
required: true
|
|
||||||
- variable: AUTOMATED_CONVERSION_FORMAT
|
|
||||||
label: "AUTOMATED_CONVERSION_FORMAT"
|
|
||||||
description: "Video container format used by the automatic video converter for output files. This is typically the video filename extension."
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: 'mp4'
|
|
||||||
required: true
|
|
||||||
- variable: AUTOMATED_CONVERSION_KEEP_SOURCE
|
|
||||||
label: "AUTOMATED_CONVERSION_KEEP_SOURCE"
|
|
||||||
description: "When set to 0, a video that has been successfully converted is removed from the watch folder."
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "1"
|
|
||||||
required: true
|
|
||||||
- variable: AUTOMATED_CONVERSION_NON_VIDEO_FILE_ACTION
|
|
||||||
label: "AUTOMATED_CONVERSION_NON_VIDEO_FILE_ACTION"
|
|
||||||
description: "When set to ignore, a non-video file found in the watch folder is ignored. If set to copy, a non-video file is copied as-is to the output folder."
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: 'ignore'
|
|
||||||
required: true
|
|
||||||
|
|
||||||
# Networking
|
|
||||||
# Enable Host Networking
|
|
||||||
- variable: hostNetwork
|
|
||||||
group: "Networking"
|
|
||||||
label: "Enable Host Networking"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
|
|
||||||
- variable: services
|
|
||||||
group: "Networking"
|
|
||||||
label: "Configure Service"
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
attrs:
|
|
||||||
- variable: main
|
|
||||||
label: "Main service"
|
|
||||||
description: "The Primary service on which the healthcheck runs, often the webUI"
|
|
||||||
schema:
|
|
||||||
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, nodePorts expose the container to the host node System"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "ClusterIP"
|
|
||||||
enum:
|
|
||||||
- value: "NodePort"
|
|
||||||
description: "NodePort"
|
|
||||||
- value: "ClusterIP"
|
|
||||||
description: "ClusterIP"
|
|
||||||
- variable: port
|
|
||||||
label: "Port configuration"
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
attrs:
|
|
||||||
- variable: protocol
|
|
||||||
label: "Port Type"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "HTTP"
|
|
||||||
hidden: false
|
|
||||||
enum:
|
|
||||||
- value: HTTP
|
|
||||||
description: "HTTP"
|
|
||||||
- value: "HTTPS"
|
|
||||||
description: "HTTPS"
|
|
||||||
- variable: port
|
|
||||||
label: "container port"
|
|
||||||
schema:
|
|
||||||
type: int
|
|
||||||
default: 5800
|
|
||||||
editable: false
|
|
||||||
hidden: true
|
|
||||||
- variable: targetport
|
|
||||||
label: "Internal Service port"
|
|
||||||
description: "When connecting internally to this App, you'll need this port"
|
|
||||||
schema:
|
|
||||||
type: int
|
|
||||||
default: 5800
|
|
||||||
editable: false
|
|
||||||
hidden: true
|
|
||||||
- variable: nodePort
|
|
||||||
label: "(optional) host nodePort to expose to"
|
|
||||||
description: "only get used when nodePort is selected"
|
|
||||||
schema:
|
|
||||||
type: int
|
|
||||||
min: 9000
|
|
||||||
max: 65535
|
|
||||||
default: 36052
|
|
||||||
required: true
|
|
||||||
- variable: vnc
|
|
||||||
label: "VNC service"
|
|
||||||
description: "Service to connect to VNC if enabled"
|
|
||||||
schema:
|
|
||||||
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, nodePorts expose the container to the host node System"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "ClusterIP"
|
|
||||||
enum:
|
|
||||||
- value: "NodePort"
|
|
||||||
description: "NodePort"
|
|
||||||
- value: "ClusterIP"
|
|
||||||
description: "ClusterIP"
|
|
||||||
- variable: port
|
|
||||||
label: "Port configuration"
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
attrs:
|
|
||||||
- variable: protocol
|
|
||||||
label: "Port Type"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "TCP"
|
|
||||||
hidden: true
|
|
||||||
enum:
|
|
||||||
- value: TCP
|
|
||||||
description: "TCP"
|
|
||||||
- value: "UDP"
|
|
||||||
description: "UDP"
|
|
||||||
- variable: port
|
|
||||||
label: "container port"
|
|
||||||
schema:
|
|
||||||
type: int
|
|
||||||
default: 5900
|
|
||||||
editable: false
|
|
||||||
hidden: true
|
|
||||||
- variable: targetport
|
|
||||||
label: "Internal Service port"
|
|
||||||
description: "When connecting internally to this App, you'll need this port"
|
|
||||||
schema:
|
|
||||||
type: int
|
|
||||||
default: 5900
|
|
||||||
editable: false
|
|
||||||
hidden: true
|
|
||||||
- variable: nodePort
|
|
||||||
label: "(optional) host nodePort to expose to"
|
|
||||||
description: "only get used when nodePort is selected"
|
|
||||||
schema:
|
|
||||||
type: int
|
|
||||||
min: 9000
|
|
||||||
max: 65535
|
|
||||||
default: 36052
|
|
||||||
required: true
|
|
||||||
|
|
||||||
|
|
||||||
# TrueCharts Specific
|
|
||||||
- variable: appVolumeMounts
|
|
||||||
label: "app storage"
|
|
||||||
group: "Storage and Devices"
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
attrs:
|
|
||||||
# Config ------------------------
|
|
||||||
- variable: config
|
|
||||||
label: "config dataset"
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
$ref:
|
|
||||||
- "normalize/ixVolume"
|
|
||||||
attrs:
|
|
||||||
- variable: enabled
|
|
||||||
label: "Enabled"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: true
|
|
||||||
required: true
|
|
||||||
hidden: true
|
|
||||||
editable: false
|
|
||||||
- variable: setPermissions
|
|
||||||
label: "Automatic Permissions"
|
|
||||||
description: "Automatically set permissions on install"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: true
|
|
||||||
hidden: false
|
|
||||||
- variable: emptyDir
|
|
||||||
label: "emptyDir"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
hidden: true
|
|
||||||
editable: false
|
|
||||||
- variable: datasetName
|
|
||||||
label: "Dataset Name"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "config"
|
|
||||||
required: true
|
|
||||||
editable: false
|
|
||||||
hidden: true
|
|
||||||
- variable: mountPath
|
|
||||||
label: "Mount Path"
|
|
||||||
description: "Path to mount inside the pod"
|
|
||||||
schema:
|
|
||||||
type: path
|
|
||||||
required: true
|
|
||||||
default: "/config"
|
|
||||||
editable: false
|
|
||||||
- variable: hostPathEnabled
|
|
||||||
label: "host Path Enabled"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
show_subquestions_if: true
|
|
||||||
subquestions:
|
|
||||||
- variable: hostPath
|
|
||||||
label: "Host Path"
|
|
||||||
schema:
|
|
||||||
type: hostpath
|
|
||||||
required: true
|
|
||||||
# storage ------------------------
|
|
||||||
- variable: storage
|
|
||||||
label: "storage dataset"
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
$ref:
|
|
||||||
- "normalize/ixVolume"
|
|
||||||
attrs:
|
|
||||||
- variable: enabled
|
|
||||||
label: "Enabled"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: true
|
|
||||||
required: true
|
|
||||||
hidden: true
|
|
||||||
editable: false
|
|
||||||
- variable: setPermissions
|
|
||||||
label: "Automatic Permissions"
|
|
||||||
description: "Automatically set permissions on install"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: true
|
|
||||||
hidden: false
|
|
||||||
- variable: emptyDir
|
|
||||||
label: "emptyDir"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
hidden: true
|
|
||||||
editable: false
|
|
||||||
- variable: datasetName
|
|
||||||
label: "Dataset Name"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "storage"
|
|
||||||
required: true
|
|
||||||
editable: false
|
|
||||||
- variable: mountPath
|
|
||||||
label: "Mount Path"
|
|
||||||
description: "Path to mount inside the pod"
|
|
||||||
schema:
|
|
||||||
type: path
|
|
||||||
required: true
|
|
||||||
default: "/storage"
|
|
||||||
editable: false
|
|
||||||
- variable: hostPathEnabled
|
|
||||||
label: "host Path Enabled"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
show_subquestions_if: true
|
|
||||||
subquestions:
|
|
||||||
- variable: hostPath
|
|
||||||
label: "Host Path"
|
|
||||||
schema:
|
|
||||||
type: hostpath
|
|
||||||
required: true
|
|
||||||
# watch ------------------------
|
|
||||||
- variable: watch
|
|
||||||
label: "watch dataset"
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
$ref:
|
|
||||||
- "normalize/ixVolume"
|
|
||||||
attrs:
|
|
||||||
- variable: enabled
|
|
||||||
label: "Enabled"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: true
|
|
||||||
required: true
|
|
||||||
hidden: true
|
|
||||||
editable: false
|
|
||||||
- variable: setPermissions
|
|
||||||
label: "Automatic Permissions"
|
|
||||||
description: "Automatically set permissions on install"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: true
|
|
||||||
hidden: false
|
|
||||||
- variable: emptyDir
|
|
||||||
label: "emptyDir"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
hidden: true
|
|
||||||
editable: false
|
|
||||||
- variable: datasetName
|
|
||||||
label: "Dataset Name"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "watch"
|
|
||||||
required: true
|
|
||||||
editable: false
|
|
||||||
- variable: mountPath
|
|
||||||
label: "Mount Path"
|
|
||||||
description: "Path to mount inside the pod"
|
|
||||||
schema:
|
|
||||||
type: path
|
|
||||||
required: true
|
|
||||||
default: "/watch"
|
|
||||||
editable: false
|
|
||||||
- variable: hostPathEnabled
|
|
||||||
label: "host Path Enabled"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
show_subquestions_if: true
|
|
||||||
subquestions:
|
|
||||||
- variable: hostPath
|
|
||||||
label: "Host Path"
|
|
||||||
schema:
|
|
||||||
type: hostpath
|
|
||||||
required: true
|
|
||||||
# output ------------------------
|
|
||||||
- variable: output
|
|
||||||
label: "output dataset"
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
$ref:
|
|
||||||
- "normalize/ixVolume"
|
|
||||||
attrs:
|
|
||||||
- variable: enabled
|
|
||||||
label: "Enabled"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: true
|
|
||||||
required: true
|
|
||||||
hidden: true
|
|
||||||
editable: false
|
|
||||||
- variable: setPermissions
|
|
||||||
label: "Automatic Permissions"
|
|
||||||
description: "Automatically set permissions on install"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: true
|
|
||||||
hidden: false
|
|
||||||
- variable: emptyDir
|
|
||||||
label: "emptyDir"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
hidden: true
|
|
||||||
editable: false
|
|
||||||
- variable: datasetName
|
|
||||||
label: "Dataset Name"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "output"
|
|
||||||
required: true
|
|
||||||
editable: false
|
|
||||||
- variable: mountPath
|
|
||||||
label: "Mount Path"
|
|
||||||
description: "Path to mount inside the pod"
|
|
||||||
schema:
|
|
||||||
type: path
|
|
||||||
required: true
|
|
||||||
default: "/output"
|
|
||||||
editable: false
|
|
||||||
- variable: hostPathEnabled
|
|
||||||
label: "host Path Enabled"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
show_subquestions_if: true
|
|
||||||
subquestions:
|
|
||||||
- variable: hostPath
|
|
||||||
label: "Host Path"
|
|
||||||
schema:
|
|
||||||
type: hostpath
|
|
||||||
required: true
|
|
||||||
# Optical Drive
|
|
||||||
- variable: opticaldrive
|
|
||||||
label: "Optical Drive Device"
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
attrs:
|
|
||||||
- variable: enabled
|
|
||||||
label: "Enable Optical Drive Device"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
required: false
|
|
||||||
editable: true
|
|
||||||
show_subquestions_if: true
|
|
||||||
subquestions:
|
|
||||||
- variable: setPermissions
|
|
||||||
label: "Automatic Permissions"
|
|
||||||
description: "Automatically set permissions on install"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
hidden: true
|
|
||||||
- variable: name
|
|
||||||
label: "Mountpoint Name"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "opticaldrive"
|
|
||||||
required: true
|
|
||||||
editable: true
|
|
||||||
- variable: emptyDir
|
|
||||||
label: "emptyDir"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
hidden: true
|
|
||||||
editable: false
|
|
||||||
- variable: mountPath
|
|
||||||
label: "Path to Optical Drive device inside the pod"
|
|
||||||
description: "Preferably the same as the path to the Optical Drive on the host"
|
|
||||||
schema:
|
|
||||||
type: path
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
editable: true
|
|
||||||
- variable: hostPathEnabled
|
|
||||||
label: "host Path Enabled"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: true
|
|
||||||
hidden: true
|
|
||||||
- variable: hostPath
|
|
||||||
label: "Path to Optical Drive device on host"
|
|
||||||
description: 'Best to use path "by-id"'
|
|
||||||
schema:
|
|
||||||
type: path
|
|
||||||
required: true
|
|
||||||
# Privileged
|
|
||||||
- variable: securityContext
|
|
||||||
group: "Storage and Devices"
|
|
||||||
label: "Security Context"
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
attrs:
|
|
||||||
- variable: privileged
|
|
||||||
label: "Enable privileged to pass thru an Optical Drive device"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: true
|
|
||||||
required: false
|
|
||||||
- variable: additionalAppVolumeMounts
|
|
||||||
label: "Custom app storage"
|
|
||||||
group: "Storage and Devices"
|
|
||||||
schema:
|
|
||||||
type: list
|
|
||||||
default: []
|
|
||||||
items:
|
|
||||||
- variable: volumeMount
|
|
||||||
label: "Custom Storage"
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
attrs:
|
|
||||||
- variable: enabled
|
|
||||||
label: "Enabled"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: true
|
|
||||||
required: true
|
|
||||||
hidden: true
|
|
||||||
editable: false
|
|
||||||
- variable: setPermissions
|
|
||||||
label: "Automatic Permissions"
|
|
||||||
description: "Automatically set permissions on install"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: true
|
|
||||||
hidden: false
|
|
||||||
- variable: name
|
|
||||||
label: "Mountpoint Name"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: ""
|
|
||||||
required: true
|
|
||||||
editable: true
|
|
||||||
- variable: emptyDir
|
|
||||||
label: "emptyDir"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
hidden: true
|
|
||||||
editable: false
|
|
||||||
- variable: mountPath
|
|
||||||
label: "Mount Path"
|
|
||||||
description: "Path to mount inside the pod"
|
|
||||||
schema:
|
|
||||||
type: path
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
editable: true
|
|
||||||
- variable: hostPathEnabled
|
|
||||||
label: "host Path Enabled"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: true
|
|
||||||
hidden: true
|
|
||||||
- variable: hostPath
|
|
||||||
label: "Host Path"
|
|
||||||
schema:
|
|
||||||
type: hostpath
|
|
||||||
required: true
|
|
||||||
# Reverse Proxy
|
|
||||||
- variable: ingress
|
|
||||||
label: ""
|
|
||||||
group: "Reverse Proxy Configuration"
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
attrs:
|
|
||||||
- variable: main
|
|
||||||
label: "Web Reverse Proxy Configuration"
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
attrs:
|
|
||||||
- variable: enabled
|
|
||||||
label: "Enable Web Reverse Proxy"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
show_subquestions_if: true
|
|
||||||
subquestions:
|
|
||||||
- variable: type
|
|
||||||
label: "Reverse Proxy Type"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "HTTP"
|
|
||||||
hidden: true
|
|
||||||
editable: false
|
|
||||||
required: true
|
|
||||||
- variable: serviceName
|
|
||||||
label: "Service name to proxy to"
|
|
||||||
schema:
|
|
||||||
hidden: true
|
|
||||||
editable: false
|
|
||||||
type: string
|
|
||||||
default: ""
|
|
||||||
- variable: entrypoint
|
|
||||||
label: "Select Entrypoint"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "websecure"
|
|
||||||
required: true
|
|
||||||
enum:
|
|
||||||
- value: "websecure"
|
|
||||||
description: "Websecure: HTTPS/TLS port 443"
|
|
||||||
- variable: hosts
|
|
||||||
label: "Hosts"
|
|
||||||
schema:
|
|
||||||
type: list
|
|
||||||
default: []
|
|
||||||
items:
|
|
||||||
- variable: host
|
|
||||||
label: "Host"
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
attrs:
|
|
||||||
- variable: host
|
|
||||||
label: "Domain Name"
|
|
||||||
required: true
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
- variable: path
|
|
||||||
label: "path"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
required: true
|
|
||||||
hidden: true
|
|
||||||
default: "/"
|
|
||||||
- variable: certType
|
|
||||||
label: "Select Certificate Type"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "selfsigned"
|
|
||||||
enum:
|
|
||||||
- value: ""
|
|
||||||
description: "No Encryption/TLS/Certificates"
|
|
||||||
- value: "selfsigned"
|
|
||||||
description: "Self-Signed Certificate"
|
|
||||||
- value: "ixcert"
|
|
||||||
description: "TrueNAS SCALE Certificate"
|
|
||||||
- variable: certificate
|
|
||||||
label: "Select TrueNAS SCALE Certificate"
|
|
||||||
schema:
|
|
||||||
type: int
|
|
||||||
show_if: [["certType", "=", "ixcert"]]
|
|
||||||
$ref:
|
|
||||||
- "definitions/certificate"
|
|
||||||
- variable: authForwardURL
|
|
||||||
label: "Forward Authentication URL"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: ""
|
|
||||||
@@ -1,130 +0,0 @@
|
|||||||
image:
|
|
||||||
repository: jlesage/handbrake
|
|
||||||
tag: v1.23.1
|
|
||||||
pullPolicy: IfNotPresent
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
type: Recreate
|
|
||||||
|
|
||||||
startAsRoot: true
|
|
||||||
|
|
||||||
# 24=cdrom 44=video 107=render
|
|
||||||
supplementalGroups: 24,44,107
|
|
||||||
|
|
||||||
services:
|
|
||||||
main:
|
|
||||||
port:
|
|
||||||
port: 5800 #Required for web GUI
|
|
||||||
vnc:
|
|
||||||
enabled: true
|
|
||||||
type: ClusterIP
|
|
||||||
port:
|
|
||||||
port: 5900
|
|
||||||
protocol: "TCP"
|
|
||||||
targetPort: 5900
|
|
||||||
|
|
||||||
#All values here are set as the docker defaults.
|
|
||||||
envTpl:
|
|
||||||
# Permissions Settings
|
|
||||||
USER_ID: "{{ .Values.PUID }}"
|
|
||||||
GROUP_ID: "{{ .Values.PGID }}"
|
|
||||||
|
|
||||||
env:
|
|
||||||
# General Settings
|
|
||||||
KEEP_APP_RUNNING: "0"
|
|
||||||
CLEAN_TMP_DIR: "1"
|
|
||||||
# GUI Settings
|
|
||||||
DISPLAY_WIDTH: "1280"
|
|
||||||
DISPLAY_HEIGHT: "768"
|
|
||||||
SECURE_CONNECTION: "0"
|
|
||||||
VNC_PASSWORD:
|
|
||||||
# Automated Conversion Preset
|
|
||||||
AUTOMATED_CONVERSION_PRESET: 'General/Very Fast 1080p30'
|
|
||||||
AUTOMATED_CONVERSION_FORMAT: 'mp4'
|
|
||||||
AUTOMATED_CONVERSION_KEEP_SOURCE: "1"
|
|
||||||
AUTOMATED_CONVERSION_NON_VIDEO_FILE_ACTION: 'ignore'
|
|
||||||
|
|
||||||
persistence:
|
|
||||||
config:
|
|
||||||
enabled: false
|
|
||||||
emptyDir: false
|
|
||||||
mountPath: /config
|
|
||||||
|
|
||||||
storage:
|
|
||||||
enabled: false
|
|
||||||
emptyDir: false
|
|
||||||
mountPath: /storage # This can be read only
|
|
||||||
|
|
||||||
watch:
|
|
||||||
enabled: false
|
|
||||||
emptyDir: false
|
|
||||||
mountPath: /watch
|
|
||||||
|
|
||||||
output:
|
|
||||||
enabled: false
|
|
||||||
emptyDir: false
|
|
||||||
mountPath: /output
|
|
||||||
|
|
||||||
## Somehow must enable user to add as many watch folders
|
|
||||||
## All folders must start with "watch" and an index after
|
|
||||||
## eg. /watch1, /watch2
|
|
||||||
## This is importand because settings can overrode to each watch folder exclusivly, with env vars with _# as a suffix
|
|
||||||
## eg. AUTOMATED_CONVERSION_PRESET_1
|
|
||||||
|
|
||||||
# Path to your optical drive device in the container
|
|
||||||
additionalVolumeMounts: []
|
|
||||||
# - name: opticaldrive
|
|
||||||
# mountPath: /dev/serial/by-id/sr0-
|
|
||||||
|
|
||||||
# Path to your zwave device on the host
|
|
||||||
additionalVolumes: []
|
|
||||||
# - name: opticaldrive
|
|
||||||
# hostPath:
|
|
||||||
# path: /dev/serial/by-id/sr0-
|
|
||||||
|
|
||||||
# affinity:
|
|
||||||
# nodeAffinity:
|
|
||||||
# requiredDuringSchedulingIgnoredDuringExecution:
|
|
||||||
# nodeSelectorTerms:
|
|
||||||
# - matchExpressions:
|
|
||||||
# - key: app
|
|
||||||
# operator: In
|
|
||||||
# values:
|
|
||||||
# - opticaldrive-controller
|
|
||||||
|
|
||||||
appVolumeMounts:
|
|
||||||
config:
|
|
||||||
enabled: true
|
|
||||||
emptyDir: true
|
|
||||||
datasetName: "config"
|
|
||||||
mountPath: "/config"
|
|
||||||
hostPathEnabled: true
|
|
||||||
setPermissions: true
|
|
||||||
storage:
|
|
||||||
enabled: true
|
|
||||||
emptyDir: true
|
|
||||||
datasetName: "storage"
|
|
||||||
mountPath: "/storage"
|
|
||||||
hostPathEnabled: true
|
|
||||||
setPermissions: true
|
|
||||||
watch:
|
|
||||||
enabled: true
|
|
||||||
emptyDir: true
|
|
||||||
datasetName: "watch"
|
|
||||||
mountPath: "/watch"
|
|
||||||
hostPathEnabled: true
|
|
||||||
setPermissions: true
|
|
||||||
output:
|
|
||||||
enabled: true
|
|
||||||
emptyDir: true
|
|
||||||
datasetName: "output"
|
|
||||||
mountPath: "/output"
|
|
||||||
hostPathEnabled: true
|
|
||||||
setPermissions: true
|
|
||||||
# opticaldrive:
|
|
||||||
# enabled: true
|
|
||||||
# emptyDir: true
|
|
||||||
# mountPath: "/dev/sr0"
|
|
||||||
# hostPath: "/dev/sr0"
|
|
||||||
# hostPathEnabled: true
|
|
||||||
# setPermissions: true
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
An Application dashboard and launcher
|
|
||||||
|
|
||||||
Binary file not shown.
@@ -1,2 +0,0 @@
|
|||||||
home-assistant App for TrueNAS SCALE
|
|
||||||
|
|
||||||
Binary file not shown.
@@ -1,532 +0,0 @@
|
|||||||
groups:
|
|
||||||
- name: "Container Image"
|
|
||||||
description: "Image to be used for container"
|
|
||||||
- name: "Workload Configuration"
|
|
||||||
description: "Configure workload deployment"
|
|
||||||
- name: "Configuration"
|
|
||||||
description: "additional container configuration"
|
|
||||||
- name: "Networking"
|
|
||||||
description: "Configure / service for container"
|
|
||||||
- name: "Storage and Devices"
|
|
||||||
description: "Persist and share data that is separate from the lifecycle of the container"
|
|
||||||
- name: "Resource Reservation"
|
|
||||||
description: "Specify resources to be allocated to workload"
|
|
||||||
- name: "Reverse Proxy Configuration"
|
|
||||||
description: "Reverse Proxy configuration"
|
|
||||||
- name: "Advanced"
|
|
||||||
description: "Advanced Configuration"
|
|
||||||
- name: "WARNING"
|
|
||||||
description: "WARNING"
|
|
||||||
|
|
||||||
portals:
|
|
||||||
web_portal:
|
|
||||||
protocols:
|
|
||||||
- "$kubernetes-resource_configmap_portal_protocol"
|
|
||||||
host:
|
|
||||||
- "$kubernetes-resource_configmap_portal_host"
|
|
||||||
ports:
|
|
||||||
- "$kubernetes-resource_configmap_portal_port"
|
|
||||||
|
|
||||||
questions:
|
|
||||||
|
|
||||||
- variable: portal
|
|
||||||
group: "Container Image"
|
|
||||||
label: "Configure Portal Button"
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
hidden: true
|
|
||||||
attrs:
|
|
||||||
- variable: enabled
|
|
||||||
label: "Enable"
|
|
||||||
description: "enable the portal button"
|
|
||||||
schema:
|
|
||||||
hidden: true
|
|
||||||
editable: false
|
|
||||||
type: boolean
|
|
||||||
default: true
|
|
||||||
|
|
||||||
# Update Policy
|
|
||||||
- variable: strategyType
|
|
||||||
group: "Container Image"
|
|
||||||
label: "Update Strategy"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "Recreate"
|
|
||||||
enum:
|
|
||||||
- value: "RollingUpdate"
|
|
||||||
description: "Create new pods and then kill old ones"
|
|
||||||
- value: "Recreate"
|
|
||||||
description: "Kill existing pods before creating new ones"
|
|
||||||
|
|
||||||
# Configure Time Zone
|
|
||||||
- variable: timezone
|
|
||||||
group: "Configuration"
|
|
||||||
label: "Timezone"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "Etc/UTC"
|
|
||||||
$ref:
|
|
||||||
- "definitions/timezone"
|
|
||||||
|
|
||||||
- variable: PUID
|
|
||||||
group: "Configuration"
|
|
||||||
label: "PUID"
|
|
||||||
description: "The UserID of the user running the application and owning the files"
|
|
||||||
schema:
|
|
||||||
type: int
|
|
||||||
default: 568
|
|
||||||
|
|
||||||
- variable: PGID
|
|
||||||
group: "Configuration"
|
|
||||||
label: "PGID"
|
|
||||||
description: "The groupID of the user/group running the application and owning the files"
|
|
||||||
schema:
|
|
||||||
type: int
|
|
||||||
default: 568
|
|
||||||
|
|
||||||
- variable: UMASK
|
|
||||||
group: "Configuration"
|
|
||||||
label: "UMASK (advanced)"
|
|
||||||
description: "The UMASK used if supported by the application"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "002"
|
|
||||||
|
|
||||||
# Configure Time Zone
|
|
||||||
- variable: git
|
|
||||||
group: "Configuration"
|
|
||||||
label: "Git"
|
|
||||||
description: "Attatch git repository to Home-Assistant"
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
attrs:
|
|
||||||
- variable: deployKey
|
|
||||||
label: "deployKey"
|
|
||||||
description: "Raw SSH private key"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: ""
|
|
||||||
- variable: deployKeyBase64
|
|
||||||
label: "deployKey"
|
|
||||||
description: "Base64-encoded SSH private key. When both variables are set, the raw SSH key takes precedence"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: ""
|
|
||||||
|
|
||||||
# Configure app volumes
|
|
||||||
- variable: appVolumeMounts
|
|
||||||
group: "Storage and Devices"
|
|
||||||
label: ""
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
attrs:
|
|
||||||
# Config ------------------------
|
|
||||||
- variable: config
|
|
||||||
label: "Config Volume"
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
$ref:
|
|
||||||
- "normalize/ixVolume"
|
|
||||||
attrs:
|
|
||||||
- variable: enabled
|
|
||||||
label: "Enabled"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: true
|
|
||||||
required: true
|
|
||||||
hidden: true
|
|
||||||
editable: false
|
|
||||||
- variable: setPermissions
|
|
||||||
label: "Automatic Permissions"
|
|
||||||
description: "Automatically set permissions on install"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: true
|
|
||||||
hidden: false
|
|
||||||
- variable: emptyDir
|
|
||||||
label: "emptyDir"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
hidden: true
|
|
||||||
editable: false
|
|
||||||
- variable: datasetName
|
|
||||||
label: "Dataset Name"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "config"
|
|
||||||
required: true
|
|
||||||
editable: false
|
|
||||||
hidden: true
|
|
||||||
- variable: mountPath
|
|
||||||
label: "Mount path inside the container"
|
|
||||||
schema:
|
|
||||||
type: path
|
|
||||||
default: "/config"
|
|
||||||
editable: false
|
|
||||||
- variable: hostPathEnabled
|
|
||||||
label: "Config - Enable Host Path"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
show_subquestions_if: true
|
|
||||||
subquestions:
|
|
||||||
- variable: hostPath
|
|
||||||
label: "Config Host Path"
|
|
||||||
schema:
|
|
||||||
type: hostpath
|
|
||||||
required: true
|
|
||||||
# Z-Wave device -----------------
|
|
||||||
- variable: zwave
|
|
||||||
label: "USB Z-Wave Device"
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
attrs:
|
|
||||||
- variable: enabled
|
|
||||||
label: "USB Z-Wave Device"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
show_subquestions_if: true
|
|
||||||
subquestions:
|
|
||||||
- variable: setPermissions
|
|
||||||
label: "Automatic Permissions"
|
|
||||||
description: "Automatically set permissions on install"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
hidden: true
|
|
||||||
- variable: name
|
|
||||||
label: "Mountpoint Name"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "ZWave"
|
|
||||||
required: true
|
|
||||||
editable: true
|
|
||||||
- variable: emptyDir
|
|
||||||
label: "emptyDir"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
hidden: true
|
|
||||||
editable: false
|
|
||||||
- variable: mountPath
|
|
||||||
label: "Path to mount device inside the container"
|
|
||||||
description: "Preferably the same as the path to the device path on the host"
|
|
||||||
schema:
|
|
||||||
type: path
|
|
||||||
required: true
|
|
||||||
default: "/dev/ttyUSB0"
|
|
||||||
editable: true
|
|
||||||
- variable: hostPathEnabled
|
|
||||||
label: "host Path Enabled"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: true
|
|
||||||
hidden: true
|
|
||||||
- variable: hostPath
|
|
||||||
label: "Path to Z-Wave device on host"
|
|
||||||
schema:
|
|
||||||
type: path
|
|
||||||
required: true
|
|
||||||
default: "/dev/ttyUSB0"
|
|
||||||
|
|
||||||
# Zigbee device -----------------
|
|
||||||
- variable: zigbee
|
|
||||||
label: "USB Zigbee Device"
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
attrs:
|
|
||||||
- variable: enabled
|
|
||||||
label: "USB Zigbee Device"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
show_subquestions_if: true
|
|
||||||
subquestions:
|
|
||||||
- variable: setPermissions
|
|
||||||
label: "Automatic Permissions"
|
|
||||||
description: "Automatically set permissions on install"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
hidden: true
|
|
||||||
- variable: name
|
|
||||||
label: "Mountpoint Name"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "ZWave"
|
|
||||||
required: true
|
|
||||||
editable: true
|
|
||||||
- variable: emptyDir
|
|
||||||
label: "emptyDir"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
hidden: true
|
|
||||||
editable: false
|
|
||||||
- variable: mountPath
|
|
||||||
label: "Path to mount device inside the container"
|
|
||||||
description: "Preferably the same as the path to the device path on the host"
|
|
||||||
schema:
|
|
||||||
type: path
|
|
||||||
required: true
|
|
||||||
default: "/dev/ttyUSB0"
|
|
||||||
editable: true
|
|
||||||
- variable: hostPathEnabled
|
|
||||||
label: "host Path Enabled"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: true
|
|
||||||
hidden: true
|
|
||||||
- variable: hostPath
|
|
||||||
label: "Path to Zigbee device on host"
|
|
||||||
schema:
|
|
||||||
type: path
|
|
||||||
required: true
|
|
||||||
default: "/dev/ttyUSB0"
|
|
||||||
# Enable privileged
|
|
||||||
- variable: securityContext
|
|
||||||
group: "Storage and Devices"
|
|
||||||
label: "Security Context"
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
attrs:
|
|
||||||
- variable: privileged
|
|
||||||
label: "Enable privileged to pass thru a USB device from the host"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Service Configuration
|
|
||||||
# Enable Host Networking
|
|
||||||
- variable: hostNetwork
|
|
||||||
group: "Networking"
|
|
||||||
label: "Enable Host Networking"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
|
|
||||||
- variable: services
|
|
||||||
group: "Networking"
|
|
||||||
label: "Configure Service"
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
attrs:
|
|
||||||
- variable: main
|
|
||||||
label: "Main service"
|
|
||||||
description: "The Primary service on which the healthcheck runs, often the webUI"
|
|
||||||
schema:
|
|
||||||
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, nodePorts expose the container to the host node System"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "ClusterIP"
|
|
||||||
enum:
|
|
||||||
- value: "NodePort"
|
|
||||||
description: "NodePort"
|
|
||||||
- value: "ClusterIP"
|
|
||||||
description: "ClusterIP"
|
|
||||||
- variable: port
|
|
||||||
label: "Port configuration"
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
attrs:
|
|
||||||
- variable: protocol
|
|
||||||
label: "Port Type"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "HTTP"
|
|
||||||
hidden: false
|
|
||||||
enum:
|
|
||||||
- value: HTTP
|
|
||||||
description: "HTTP"
|
|
||||||
- value: "HTTPS"
|
|
||||||
description: "HTTPS"
|
|
||||||
- variable: port
|
|
||||||
label: "container port"
|
|
||||||
schema:
|
|
||||||
type: int
|
|
||||||
default: 8123
|
|
||||||
editable: false
|
|
||||||
hidden: true
|
|
||||||
- variable: targetport
|
|
||||||
label: "Internal Service port"
|
|
||||||
description: "When connecting internally to this App, you'll need this port"
|
|
||||||
schema:
|
|
||||||
type: int
|
|
||||||
default: 8123
|
|
||||||
editable: false
|
|
||||||
hidden: true
|
|
||||||
- variable: nodePort
|
|
||||||
label: "(optional) host nodePort to expose to"
|
|
||||||
description: "only get used when nodePort is selected"
|
|
||||||
schema:
|
|
||||||
type: int
|
|
||||||
min: 9000
|
|
||||||
max: 65535
|
|
||||||
default: 36052
|
|
||||||
required: true
|
|
||||||
|
|
||||||
- variable: additionalAppVolumeMounts
|
|
||||||
label: "Custom app storage"
|
|
||||||
group: "Storage and Devices"
|
|
||||||
schema:
|
|
||||||
type: list
|
|
||||||
default: []
|
|
||||||
items:
|
|
||||||
- variable: volumeMount
|
|
||||||
label: "Custom Storage"
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
attrs:
|
|
||||||
- variable: enabled
|
|
||||||
label: "Enabled"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: true
|
|
||||||
required: true
|
|
||||||
hidden: true
|
|
||||||
editable: false
|
|
||||||
- variable: setPermissions
|
|
||||||
label: "Automatic Permissions"
|
|
||||||
description: "Automatically set permissions on install"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: true
|
|
||||||
hidden: false
|
|
||||||
- variable: name
|
|
||||||
label: "Mountpoint Name"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: ""
|
|
||||||
required: true
|
|
||||||
editable: true
|
|
||||||
- variable: emptyDir
|
|
||||||
label: "emptyDir"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
hidden: true
|
|
||||||
editable: false
|
|
||||||
- variable: mountPath
|
|
||||||
label: "Mount Path"
|
|
||||||
description: "Path to mount inside the pod"
|
|
||||||
schema:
|
|
||||||
type: path
|
|
||||||
required: true
|
|
||||||
default: ""
|
|
||||||
editable: true
|
|
||||||
- variable: hostPathEnabled
|
|
||||||
label: "host Path Enabled"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: true
|
|
||||||
hidden: true
|
|
||||||
- variable: hostPath
|
|
||||||
label: "Host Path"
|
|
||||||
schema:
|
|
||||||
type: hostpath
|
|
||||||
required: true
|
|
||||||
|
|
||||||
- variable: ingress
|
|
||||||
label: ""
|
|
||||||
group: "Reverse Proxy Configuration"
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
attrs:
|
|
||||||
- variable: main
|
|
||||||
label: "Web Reverse Proxy Configuration"
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
attrs:
|
|
||||||
- variable: enabled
|
|
||||||
label: "Enable Web Reverse Proxy"
|
|
||||||
schema:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
show_subquestions_if: true
|
|
||||||
subquestions:
|
|
||||||
- variable: type
|
|
||||||
label: "Reverse Proxy Type"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "HTTP"
|
|
||||||
hidden: true
|
|
||||||
editable: false
|
|
||||||
required: true
|
|
||||||
- variable: serviceName
|
|
||||||
label: "Service name to proxy to"
|
|
||||||
schema:
|
|
||||||
hidden: true
|
|
||||||
editable: false
|
|
||||||
type: string
|
|
||||||
default: ""
|
|
||||||
- variable: entrypoint
|
|
||||||
label: "Select Entrypoint"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "websecure"
|
|
||||||
required: true
|
|
||||||
enum:
|
|
||||||
- value: "websecure"
|
|
||||||
description: "Websecure: HTTPS/TLS port 443"
|
|
||||||
- variable: hosts
|
|
||||||
label: "Hosts"
|
|
||||||
schema:
|
|
||||||
type: list
|
|
||||||
default: []
|
|
||||||
items:
|
|
||||||
- variable: host
|
|
||||||
label: "Host"
|
|
||||||
schema:
|
|
||||||
type: dict
|
|
||||||
attrs:
|
|
||||||
- variable: host
|
|
||||||
label: "Domain Name"
|
|
||||||
required: true
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
- variable: path
|
|
||||||
label: "path"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
required: true
|
|
||||||
hidden: true
|
|
||||||
default: "/"
|
|
||||||
- variable: certType
|
|
||||||
label: "Select Certificate Type"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: "selfsigned"
|
|
||||||
enum:
|
|
||||||
- value: ""
|
|
||||||
description: "No Encryption/TLS/Certificates"
|
|
||||||
- value: "selfsigned"
|
|
||||||
description: "Self-Signed Certificate"
|
|
||||||
- value: "ixcert"
|
|
||||||
description: "TrueNAS SCALE Certificate"
|
|
||||||
- variable: certificate
|
|
||||||
label: "Select TrueNAS SCALE Certificate"
|
|
||||||
schema:
|
|
||||||
type: int
|
|
||||||
show_if: [["certType", "=", "ixcert"]]
|
|
||||||
$ref:
|
|
||||||
- "definitions/certificate"
|
|
||||||
- variable: authForwardURL
|
|
||||||
label: "Forward Authentication URL"
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
default: ""
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
API Support for your favorite torrent trackers.
|
|
||||||
|
|
||||||
Binary file not shown.
@@ -1,3 +0,0 @@
|
|||||||
categories:
|
|
||||||
- media
|
|
||||||
icon_url: https://raw.githubusercontent.com/truecharts/truecharts/master/charts/jackett/icon.png?raw=true
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
Jellyfin is a Free Software Media System
|
|
||||||
|
|
||||||
Binary file not shown.
@@ -1,3 +0,0 @@
|
|||||||
categories:
|
|
||||||
- media
|
|
||||||
icon_url: https://raw.githubusercontent.com/truecharts/truecharts/master/charts/jellyfin/icon.png?raw=true
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user