feat(apps): fill incubator with a bunch of new apps (#1083)

* (feat) fill incubator with a bunch of new apps

* Ornias' cleanup

* stavros' cleanup

* Ornias' second cleanup

* Add basic SCALE Compatibility layer and docs

* Ornias's cleanup 3

* Stavros' cleanup 2

Update service's port on the skipped apps (+32 squashed commit)

Squashed commit:

[361963ced] config -> data on some apps

[545c32b55] wiki

[41fb4f518] twtxt

[02169bad9] static

[a9042669c] sqlitebrowser

[f09ce3d76] smokeping

[01d2f9af6] sickgear

[680fd358f] sickchill

[71856480f] shorturl

[ce130ac8a] Remmina

[6410ec2ae] pixapop

[a1ea2a33f] Piwigo

[0b4c52d43] photoshow

[25e9a44fd] novnc

[84954deae] notes

[b3be0b28d] muximux

[43d2b37a5] mstream

[736f9877f] Medusa

[8ef3434d6] Headphones

[05e52284f] Grav

[7ce6f1723] golinks

[b4eee91e6] fossil

[d19b44434] FIlezilla

[926236447] Doublecommander

[6f68e5253] Digikam

[f14d3af21] Davos

[8108c01ea] Code-server

[496991750] Cloud9

[4ad02a99f] Beets

[f2f0565b9] Apache-musicindex

[9bf8de8c4] aria2

[283edf7b0] Audacity

* Ornias' cleanup 4

try something for amcrest and zigbee (+8 squashed commit)

Squashed commit:

[a199779a9] First part of  leaf2mqtt

[0eb7fea43] cryptfolio

[81c2b9b8b] amcrest readonly default true

[fc62aebb4] setup amcrest2mqtt

[d97f7d1fe] remove empty secret references

[ec0e6b1b3] remove sogo for now (till we have a decent mail server and such)

[9be04c1e7] Adapt to recent serviceExpert changes (includes)

(cherry picked from commit 98acc5f93f9f1aa5129942af7f196a04ed6a8c1e)

[8362ebc89] Adapt to recent ingress changes in questions.yaml (includes)

(cherry picked from commit d307ba98a74d470c45c8fdff51423930826015a9)

* Stavros' cleanup 3

leaf2mqtt actually needs root when the core fuctionality env's are populated (+6 squashed commit)

Squashed commit:

[4ef306f0c] minio-console

[6ad206b48] finish whoogle and move fixed envs on top

[aaf48575c] finish 4 apps

[97ad3fd4d] don't leave sercrets empty

[e27b98841] sync more env's and sercrets

[398929040] sync secrets

* Initial work on valheim (WIP)

* fix some linting issues

* Use the configuration only as a default and let users expand it using env vars

* indent issue on valheim

* add second ingress to valheim

* remove some old valheim comments

* valheim fix port ints

Co-authored-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com>
Co-authored-by: Stavros kois <s.kois@outlook.com>
This commit is contained in:
Kjeld Schouten-Lebbing
2021-10-13 22:46:42 +02:00
committed by GitHub
co-authored by Stavros Kois Stavros kois
parent cebbd4fd23
commit a26eb7e344
694 changed files with 29919 additions and 372 deletions
+26
View File
@@ -0,0 +1,26 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/
# OWNERS file for Kubernetes
OWNERS
# helm-docs templates
*.gotmpl
@@ -0,0 +1,5 @@
# Changelog<br>
<a name="zigbee2mqtt-0.0.1"></a>
### zigbee2mqtt-0.0.1 (2021-10-04)
+8
View File
@@ -0,0 +1,8 @@
# Configuration Options
##### Connecting to other apps
If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide:
https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/
##### Available config options
In the future this page is going to contain an automated list of options available in the installation/edit UI.
+22
View File
@@ -0,0 +1,22 @@
apiVersion: v2
appVersion: "1.19.1"
description: Bridges events and allows you to control your Zigbee devices via MQTT
name: zigbee2mqtt
version: 0.0.1
kubeVersion: ">=1.16.0-0"
keywords:
- zigbee
- mqtt
- home-assistant
home: https://github.com/truecharts/apps/tree/master/charts/stable/zigbee2mqtt
icon: https://www.zigbee2mqtt.io/images/logo.png
sources:
- https://github.com/Koenkk/zigbee2mqtt
maintainers:
- email: info@truecharts.org
name: TrueCharts
url: truecharts.org
dependencies:
- name: common
repository: https://truecharts.org
version: 8.2.1
+39
View File
@@ -0,0 +1,39 @@
# Introduction
Bridges events and allows you to control your Zigbee devices via MQTT
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/apps/issues/new/choose)**
## Source Code
* <https://github.com/Koenkk/zigbee2mqtt>
## Requirements
Kubernetes: `>=1.16.0-0`
## Dependencies
| Repository | Name | Version |
|------------|------|---------|
| https://truecharts.org | common | 8.2.1 |
## Installing the Chart
To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/).
## Uninstalling the Chart
To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/).
## Support
- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first.
- See the [Wiki](https://truecharts.org)
- Check our [Discord](https://discord.gg/tVsPTHWTtr)
- Open a [issue](https://github.com/truecharts/apps/issues/new/choose)
---
All Rights Reserved - The TrueCharts Project
@@ -0,0 +1,3 @@
categories:
- media
icon_url: https://www.zigbee2mqtt.io/images/logo.png
@@ -0,0 +1,91 @@
##
# 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: koenkk/zigbee2mqtt
pullPolicy: IfNotPresent
tag: 1.19.1@sha256:42
# -- zigbee2mqtt configuration settings.
# This will be copied into the container's persistent storage at first run only.
# Further configuration should be done in the application itself!
# See [project documentation](https://www.zigbee2mqtt.io/information/configuration.html) for more information.
# these are mostly just defaults and any further tweaking should be done using env-vars
# @default -- See values.yaml
config:
# These will be applied ONLY on first run
# Home Assistant integration (MQTT discovery)
homeassistant: false
# allow new devices to join
# WARNING: Disable this after all devices have been paired! (default: false)
# Note: this will be controllable in the UI
permit_join: true
# MQTT settings
mqtt:
# MQTT base topic for zigbee2mqtt MQTT messages
base_topic: zigbee2mqtt
# MQTT server URL
server: "mqtt://localhost"
# MQTT server authentication, uncomment if required:
# user: my_user
# password: my_password
# client_id: my_id
# Alternatively, credentials may be put into a separate file, managed through a secret:
# password: '!secret password'
# Optional: Include device information to mqtt messages (default: false)
include_device_information: true
# USB / Serial settings
serial:
# Location of your zigbee device
# port: /dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE2400981-if00
# Optional: adapter type, not needed unless you are experiencing problems (options: zstack, deconz)
# adapter: deconz
advanced:
network_key: GENERATE
log_output:
- console
log_level: info
# Optional: ZigBee channel, changing requires re-pairing of all devices. (Note: use a ZLL channel: 11, 15, 20, or 25 to avoid Problems)
# default: 11
# channel: 11
# Optional: Baudrate for serial port (default: 115200 for Z-Stack, 38400 for Deconz)
# baudrate: 38400
# Optional: RTS / CTS Hardware Flow Control for serial port (default: false)
# rtscts: true
# Optional: Add a last_seen attribute to MQTT messages, contains date/time of last Zigbee message
# possible values are: disable (default), ISO_8601, ISO_8601_local, epoch (default: disable)
last_seen: 'ISO_8601'
homeassistant_discovery_topic: 'homeassistant'
homeassistant_status_topic: 'homeassistant/status'
# Optional: Enables report feature (see information -> report for more details) (default: false)
# report: true
# Optional: Add an elapsed attribute to MQTT messages, contains milliseconds since the previous msg (default: false)
# elapsed: true
# Both of these need to be enabled for the webui
frontend:
port: 8080
experimental:
new_api: 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
##
@@ -0,0 +1,460 @@
# Include{groups}
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
- variable: controller
group: "Controller"
label: ""
schema:
type: dict
attrs:
- variable: type
description: "Please specify type of workload to deploy"
label: "(Advanced) Controller Type"
schema:
type: string
default: "deployment"
required: true
enum:
- value: "deployment"
description: "Deployment"
- value: "statefulset"
description: "Statefulset"
- value: "daemonset"
description: "Daemonset"
- variable: replicas
description: "Number of desired pod replicas"
label: "Desired Replicas"
schema:
type: int
default: 1
required: true
- variable: strategy
description: "Please specify type of workload to deploy"
label: "(Advanced) Update Strategy"
schema:
type: string
default: "Recreate"
required: true
enum:
- value: "Recreate"
description: "Recreate: Kill existing pods before creating new ones"
- value: "RollingUpdate"
description: "RollingUpdate: Create new pods and then kill old ones"
- value: "OnDelete"
description: "(Legacy) OnDelete: ignore .spec.template changes"
# Include{controllerExpert}
- variable: env
group: "Container Configuration"
label: "Image Environment"
schema:
type: dict
attrs:
- variable: ZIGBEE2MQTT_DATA
label: "ZIGBEE2MQTT_DATA"
schema:
type: string
default: "/data"
# Include{fixedEnv}
# Include{containerConfig}
- variable: service
group: "Networking and Services"
label: "Configure Service(s)"
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, Loadbalancer exposes the service using the system loadbalancer"
schema:
type: string
default: "NodePort"
enum:
- value: "NodePort"
description: "NodePort"
- value: "ClusterIP"
description: "ClusterIP"
- value: "LoadBalancer"
description: "LoadBalancer"
- variable: loadBalancerIP
label: "LoadBalancer IP"
description: "LoadBalancerIP"
schema:
show_if: [["type", "=", "LoadBalancer"]]
type: string
default: ""
- variable: externalIPs
label: "External IP's"
description: "External IP's"
schema:
show_if: [["type", "=", "LoadBalancer"]]
type: list
default: []
items:
- variable: externalIP
label: "External IP"
schema:
type: string
- variable: ports
label: "Service's Port(s) Configuration"
schema:
type: dict
attrs:
- variable: main
label: "Main Service Port Configuration"
schema:
type: dict
attrs:
- variable: enabled
label: "Enable the port"
schema:
type: boolean
default: true
hidden: true
- variable: protocol
label: "Port Type"
schema:
type: string
default: "HTTP"
enum:
- value: HTTP
description: "HTTP"
- value: "HTTPS"
description: "HTTPS"
- value: TCP
description: "TCP"
- value: "UDP"
description: "UDP"
- variable: targetPort
label: "Target Port"
description: "This port exposes the container port on the service"
schema:
type: int
default: 8080
editable: false
hidden: true
- variable: port
label: "Container Port"
schema:
type: int
default: 8080
editable: true
required: true
- variable: nodePort
label: "Node Port (Optional)"
description: "This port gets exposed to the node. Only considered when service type is NodePort"
schema:
type: int
min: 9000
max: 65535
default: 36141
- variable: serviceexpert
group: "Networking and Services"
label: "Show Expert Config"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: hostNetwork
group: "Networking and Services"
label: "Host-Networking (Complicated)"
schema:
type: boolean
default: false
# Include{serviceExpert}
# Include{serviceList}
- variable: persistence
label: "Integrated Persistent Storage"
group: "Storage and Persistence"
schema:
type: dict
attrs:
- variable: data
label: "App Data Storage"
description: "Stores the Application Configuration."
schema:
type: dict
attrs:
- variable: enabled
label: "Enable the storage"
schema:
type: boolean
default: true
- variable: type
label: "(Advanced) Type of Storage"
description: "Sets the persistence type"
schema:
type: string
default: "pvc"
enum:
- value: "pvc"
description: "pvc"
- value: "emptyDir"
description: "emptyDir"
- value: "hostPath"
description: "hostPath"
- variable: storageClass
label: "(Advanced) storageClass"
description: " Warning: Anything other than SCALE-ZFS will break rollback!"
schema:
show_if: [["type", "=", "pvc"]]
type: string
default: "SCALE-ZFS"
- variable: labelsList
label: "Labels"
schema:
type: list
default: []
items:
- variable: labelItem
label: "Label"
schema:
type: dict
attrs:
- variable: name
label: "Name"
schema:
type: string
- variable: value
label: "Value"
schema:
type: string
- variable: annotationsList
label: "Annotations"
schema:
type: list
default: []
items:
- variable: annotationItem
label: "Label"
schema:
type: dict
attrs:
- variable: name
label: "Name"
schema:
type: string
- variable: value
label: "Value"
schema:
type: string
- variable: setPermissions
label: "Automatic Permissions"
description: "Automatically set permissions on install"
schema:
show_if: [["type", "=", "hostPath"]]
type: boolean
default: true
- variable: readOnly
label: "readOnly"
schema:
type: boolean
default: false
- variable: hostPath
label: "hostPath"
description: "Path inside the container the storage is mounted"
schema:
show_if: [["type", "=", "hostPath"]]
type: hostpath
- variable: hostPathType
label: "hostPath Type"
schema:
show_if: [["type", "=", "hostPath"]]
type: string
default: ""
enum:
- value: ""
description: "Default"
- value: "DirectoryOrCreate"
description: "DirectoryOrCreate"
- value: "Directory"
description: "Directory"
- value: "FileOrCreate"
description: "FileOrCreate"
- value: "File"
description: "File"
- value: "Socket"
description: "Socket"
- value: "CharDevice"
description: "CharDevice"
- value: "BlockDevice"
description: "BlockDevice"
- variable: mountPath
label: "mountPath"
description: "Path inside the container the storage is mounted"
schema:
type: string
default: "/data"
hidden: true
- variable: medium
label: "EmptyDir Medium"
schema:
show_if: [["type", "=", "emptyDir"]]
type: string
default: ""
enum:
- value: ""
description: "Default"
- value: "Memory"
description: "Memory"
- variable: accessMode
label: "Access Mode (Advanced)"
description: "Allow or disallow multiple PVC's writhing to the same PV"
schema:
show_if: [["type", "=", "pvc"]]
type: string
default: "ReadWriteOnce"
enum:
- value: "ReadWriteOnce"
description: "ReadWriteOnce"
- value: "ReadOnlyMany"
description: "ReadOnlyMany"
- value: "ReadWriteMany"
description: "ReadWriteMany"
- variable: size
label: "Size quotum of storage"
schema:
show_if: [["type", "=", "pvc"]]
type: string
default: "100Gi"
# Include{persistenceList}
- variable: ingress
label: ""
group: "Ingress"
schema:
type: dict
attrs:
- variable: main
label: "Main Ingress"
schema:
type: dict
attrs:
# Include{ingressDefault}
# Include{ingressTLS}
# Include{ingressTraefik}
# Include{ingressExpert}
# Include{ingressList}
- variable: securityContext
group: "Security and Permissions"
label: "Security Context"
schema:
type: dict
attrs:
- variable: privileged
label: "Privileged mode"
schema:
type: boolean
default: false
- variable: readOnlyRootFilesystem
label: "ReadOnly Root Filesystem"
schema:
type: boolean
default: false
- variable: allowPrivilegeEscalation
label: "Allow Privilege Escalation"
schema:
type: boolean
default: false
- variable: runAsNonRoot
label: "runAsNonRoot"
schema:
type: boolean
default: true
- variable: podSecurityContext
group: "Security and Permissions"
label: "Pod Security Context"
schema:
type: dict
attrs:
- variable: runAsUser
label: "runAsUser"
description: "The UserID of the user running the application"
schema:
type: int
default: 568
- variable: runAsGroup
label: "runAsGroup"
description: The groupID this App of the user running the application"
schema:
type: int
default: 568
- variable: fsGroup
label: "fsGroup"
description: "The group that should own ALL storage."
schema:
type: int
default: 568
- variable: supplementalGroups
label: "supplemental Groups"
schema:
type: list
default: []
items:
- variable: supplementalGroupsEntry
label: "supplemental Group"
schema:
type: int
- variable: fsGroupChangePolicy
label: "When should we take ownership?"
schema:
type: string
default: "OnRootMismatch"
enum:
- value: "OnRootMismatch"
description: "OnRootMismatch"
- value: "Always"
description: "Always"
# Include{resources}
# Include{advanced}
# Include{addons}
@@ -0,0 +1,3 @@
<a name="zigbee2mqtt-0.0.1"></a>
### zigbee2mqtt-0.0.1 (2021-10-04)
@@ -0,0 +1,3 @@
Bridges events and allows you to control your Zigbee devices via MQTT
This App is supplied by TrueCharts, for more information please visit https://truecharts.org
@@ -0,0 +1,23 @@
# Default Helm-Values
TrueCharts is primarily build to supply TrueNAS SCALE Apps.
However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file.
Most of our Apps also consume our "common" Helm Chart.
If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart.
You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document.
## Values
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| config | object | See values.yaml | zigbee2mqtt configuration settings. This will be copied into the container's persistent storage at first run only. Further configuration should be done in the application itself! See [project documentation](https://www.zigbee2mqtt.io/information/configuration.html) for more information. |
| env | object | See below | environment variables. See [image docs](https://www.zigbee2mqtt.io/information/configuration.html#override-via-environment-variables) for more details. |
| env.ZIGBEE2MQTT_DATA | string | `"/data"` | Set the data folder for Zigbee2MQTT. |
| image.pullPolicy | string | `"IfNotPresent"` | image pull policy |
| image.repository | string | `"koenkk/zigbee2mqtt"` | image repository |
| image.tag | string | `"1.19.1"` | image tag |
| persistence | object | See values.yaml | Configure persistence settings for the chart under this key. |
| service | object | See values.yaml | Configures service settings for the chart. Normally this does not need to be modified. |
All Rights Reserved - The TrueCharts Project
@@ -0,0 +1,17 @@
{{/* Make sure all variables are set properly */}}
{{- include "common.values.setup" . }}
{{/* Append the configMap volume to the volumes */}}
{{- define "zigbee2mqtt.settingsVolume" -}}
enabled: "true"
mountPath: "/app/configuration.yaml"
subPath: "configuration.yaml"
type: "custom"
volumeSpec:
configMap:
name: {{ include "common.names.fullname" . }}-settings
{{- end -}}
{{- $_ := set .Values.persistence "zigbee2mqtt-settings" (include "zigbee2mqtt.settingsVolume" . | fromYaml) -}}
{{/* Render the templates */}}
{{ include "common.all" . }}
@@ -0,0 +1,11 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ template "common.names.fullname" . }}-settings
labels:
{{- include "common.labels" . | nindent 4 }}
data:
configuration.yaml: |
{{- with .Values.config }}
{{- toYaml . | nindent 4 }}
{{- end }}
+103
View File
@@ -0,0 +1,103 @@
image:
# -- image repository
repository: koenkk/zigbee2mqtt
# -- image tag
tag: 1.19.1
# -- image pull policy
pullPolicy: IfNotPresent
# -- environment variables. See [image docs](https://www.zigbee2mqtt.io/information/configuration.html#override-via-environment-variables) for more details.
# @default -- See below
env:
# -- Set the data folder for Zigbee2MQTT.
ZIGBEE2MQTT_DATA: /data
# -- Configures service settings for the chart. Normally this does not need to be modified.
# @default -- See values.yaml
service:
main:
ports:
main:
port: 8080
# -- Configure persistence settings for the chart under this key.
# @default -- See values.yaml
persistence:
data:
enabled: true
mountPath: /data
# -- zigbee2mqtt configuration settings.
# This will be copied into the container's persistent storage at first run only.
# Further configuration should be done in the application itself!
# See [project documentation](https://www.zigbee2mqtt.io/information/configuration.html) for more information.
# these are mostly just defaults and any further tweaking should be done using env-vars
# @default -- See values.yaml
config:
# These will be applied ONLY on first run
# Home Assistant integration (MQTT discovery)
homeassistant: false
# allow new devices to join
# WARNING: Disable this after all devices have been paired! (default: false)
# Note: this will be controllable in the UI
permit_join: true
# MQTT settings
mqtt:
# MQTT base topic for zigbee2mqtt MQTT messages
base_topic: zigbee2mqtt
# MQTT server URL
server: "mqtt://localhost"
# MQTT server authentication, uncomment if required:
# user: my_user
# password: my_password
# client_id: my_id
# Alternatively, credentials may be put into a separate file, managed through a secret:
# password: '!secret password'
# Optional: Include device information to mqtt messages (default: false)
include_device_information: true
# USB / Serial settings
serial:
# Location of your zigbee device
# port: /dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE2400981-if00
# Optional: adapter type, not needed unless you are experiencing problems (options: zstack, deconz)
# adapter: deconz
advanced:
network_key: GENERATE
log_output:
- console
log_level: info
# Optional: ZigBee channel, changing requires re-pairing of all devices. (Note: use a ZLL channel: 11, 15, 20, or 25 to avoid Problems)
# default: 11
# channel: 11
# Optional: Baudrate for serial port (default: 115200 for Z-Stack, 38400 for Deconz)
# baudrate: 38400
# Optional: RTS / CTS Hardware Flow Control for serial port (default: false)
# rtscts: true
# Optional: Add a last_seen attribute to MQTT messages, contains date/time of last Zigbee message
# possible values are: disable (default), ISO_8601, ISO_8601_local, epoch (default: disable)
last_seen: 'ISO_8601'
homeassistant_discovery_topic: 'homeassistant'
homeassistant_status_topic: 'homeassistant/status'
# Optional: Enables report feature (see information -> report for more details) (default: false)
# report: true
# Optional: Add an elapsed attribute to MQTT messages, contains milliseconds since the previous msg (default: false)
# elapsed: true
# Both of these need to be enabled for the webui
frontend:
port: 8080
experimental:
new_api: true