fix(ring-mqtt): move to stable + docs (#3675)

* fix(ring-mqtt): move to stable + docs

* update files

* Apply suggestions from code review

* update md

* lint

* lint

Co-authored-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com>
This commit is contained in:
Xstar97
2022-09-03 23:28:51 +03:00
committed by GitHub
co-authored by Stavros Kois
parent a7726e8134
commit baf2f5ea8e
10 changed files with 445 additions and 299 deletions
-154
View File
@@ -1,154 +0,0 @@
# Include{groups}
portals: {}
questions:
# Include{global}
# Include{controller}
# Include{controllerDeployment}
# Include{replicas}
# Include{replica1}
# Include{strategy}
# Include{recreate}
# Include{controllerExpert}
# Include{controllerExpertExtraArgs}
- variable: env
group: "Container Configuration"
label: "Image Environment"
schema:
additional_attrs: true
type: dict
attrs:
- variable: RINGTOKEN
label: "RINGTOKEN"
description: "Container Variable RINGTOKEN"
schema:
type: string
default: ""
- variable: MQTTHOST
label: "MQTTHOST"
description: "Container Variable MQTTHOST"
schema:
type: string
default: ""
- variable: MQTTPORT
label: "MQTTPORT"
description: "Container Variable MQTTPORT"
schema:
type: string
default: "1883"
- variable: MQTTUSER
label: "MQTTUSER"
description: "Container Variable MQTTUSER"
schema:
type: string
default: ""
- variable: MQTTPASSWORD
label: "MQTTPASSWORD"
description: "Container Variable MQTTPASSWORD"
schema:
type: string
default: ""
- variable: ENABLECAMERAS
label: "ENABLECAMERAS"
description: "Container Variable ENABLECAMERAS"
schema:
type: string
default: "false"
- variable: SNAPSHOTMODE
label: "SNAPSHOTMODE"
description: "Container Variable SNAPSHOTMODE"
schema:
type: string
default: "disabled"
- variable: ENABLEMODES
label: "ENABLEMODES"
description: "Container Variable ENABLEMODES"
schema:
type: string
default: "false"
- variable: ENABLEPANIC
label: "ENABLEPANIC"
description: "Container Variable ENABLEPANIC"
schema:
type: string
default: "false"
- variable: BEAMDURATION
label: "BEAMDURATION"
description: "Container Variable BEAMDURATION"
schema:
type: string
default: "0"
- variable: DISARMCODE
label: "DISARMCODE"
description: "Container Variable DISARMCODE"
schema:
type: string
default: ""
- variable: RINGLOCATIONIDS
label: "RINGLOCATIONIDS"
description: "Container Variable RINGLOCATIONIDS"
schema:
type: string
default: ""
# Include{serviceExpertRoot}
default: false
# Include{serviceExpert}
# Include{serviceList}
# Include{persistenceRoot}
- variable: data
label: "data Storage"
description: "Data Path"
schema:
additional_attrs: true
type: dict
attrs:
# Include{persistenceBasic}
# Include{persistenceAdvanced}
# Include{persistenceList}
# Include{ingressList}
# Include{security}
# Include{securityContextAdvancedRoot}
- variable: privileged
label: "Privileged mode"
schema:
type: boolean
default: false
- variable: readOnlyRootFilesystem
label: "ReadOnly Root Filesystem"
schema:
type: boolean
default: false
- variable: allowPrivilegeEscalation
label: "Allow Privilege Escalation"
schema:
type: boolean
default: false
- variable: runAsNonRoot
label: "runAsNonRoot"
schema:
type: boolean
default: false
# Include{securityContextAdvanced}
# Include{podSecurityContextRoot}
- variable: runAsUser
label: "runAsUser"
description: "The UserID of the user running the application"
schema:
type: int
default: 0
- variable: runAsGroup
label: "runAsGroup"
description: The groupID this App of the user running the application"
schema:
type: int
default: 0
- variable: fsGroup
label: "fsGroup"
description: "The group that should own ALL storage."
schema:
type: int
default: 568
# Include{podSecurityContextAdvanced}
# Include{resources}
# Include{advanced}
# Include{addons}
# Include{documentation}
@@ -1,17 +1,12 @@
annotations:
truecharts.org/SCALE-support: "true"
truecharts.org/catagories: |
- HomeAutomation
- Tools-Utilities
apiVersion: v2 apiVersion: v2
appVersion: "latest" appVersion: "5.0.3"
dependencies: dependencies:
- name: common - name: common
repository: https://library-charts.truecharts.org repository: https://library-charts.truecharts.org
version: 10.5.6 version: 10.5.6
deprecated: false deprecated: false
description: Interact with Ring Inc products (cameras/alarms/smart lighting) via MQTT - See the project page for token auth procedure - https://github.com/tsightler/ring-mqtt#authentication description: Interact with Ring Inc products (cameras/alarms/smart lighting) via MQTT.
home: https://truecharts.org/docs/charts/incubator/ring-mqtt home: https://truecharts.org/docs/charts/stable/ring-mqtt
icon: https://truecharts.org/img/hotlink-ok/chart-icons/ring-mqtt.png icon: https://truecharts.org/img/hotlink-ok/chart-icons/ring-mqtt.png
keywords: keywords:
- ring-mqtt - ring-mqtt
@@ -24,8 +19,14 @@ maintainers:
url: https://truecharts.org url: https://truecharts.org
name: ring-mqtt name: ring-mqtt
sources: sources:
- https://github.com/truecharts/charts/tree/master/charts/incubator/ring-mqtt - https://github.com/truecharts/charts/tree/master/charts/stable/ring-mqtt
- https://github.com/tsightler/ring-mqtt - https://github.com/tsightler/ring-mqtt
- https://hub.docker.com/r/tsightler/ring-mqtt/ - https://hub.docker.com/r/tsightler/ring-mqtt/
type: application type: application
version: 0.0.23 version: 1.0.0
annotations:
truecharts.org/catagories: |
- HomeAutomation
- Tools-Utilities
truecharts.org/SCALE-support: "true"
truecharts.org/grade: U
@@ -1,109 +1,109 @@
# ring-mqtt # ring-mqtt
![Version: 0.0.23](https://img.shields.io/badge/Version-0.0.23-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: latest](https://img.shields.io/badge/AppVersion-latest-informational?style=flat-square) ![Version: 0.0.23](https://img.shields.io/badge/Version-0.0.23-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: latest](https://img.shields.io/badge/AppVersion-latest-informational?style=flat-square)
Interact with Ring Inc products (cameras/alarms/smart lighting) via MQTT - See the project page for token auth procedure - https://github.com/tsightler/ring-mqtt#authentication Interact with Ring Inc products (cameras/alarms/smart lighting) via MQTT - See the project page for token auth procedure - https://github.com/tsightler/ring-mqtt#authentication
TrueCharts can be installed as both *normal* Helm Charts or as Apps on TrueNAS SCALE. TrueCharts can be installed as both *normal* Helm Charts or as Apps on TrueNAS SCALE.
This readme is just an automatically generated general guide on installing our Helm Charts and Apps. This readme is just an automatically generated general guide on installing our Helm Charts and Apps.
For more information, please click here: [ring-mqtt](https://truecharts.org/docs/charts/incubator/ring-mqtt) For more information, please click here: [ring-mqtt](https://truecharts.org/docs/charts/incubator/ring-mqtt)
**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/charts/issues/new/choose)**
## Source Code ## Source Code
* <https://github.com/truecharts/charts/tree/master/charts/incubator/ring-mqtt> * <https://github.com/truecharts/charts/tree/master/charts/incubator/ring-mqtt>
* <https://github.com/tsightler/ring-mqtt> * <https://github.com/tsightler/ring-mqtt>
* <https://hub.docker.com/r/tsightler/ring-mqtt/> * <https://hub.docker.com/r/tsightler/ring-mqtt/>
## Requirements ## Requirements
Kubernetes: `>=1.16.0-0` Kubernetes: `>=1.16.0-0`
## Dependencies ## Dependencies
| Repository | Name | Version | | Repository | Name | Version |
|------------|------|---------| |------------|------|---------|
| https://library-charts.truecharts.org | common | 10.5.6 | | https://library-charts.truecharts.org | common | 10.5.6 |
## Installing the Chart ## Installing the Chart
### TrueNAS SCALE ### TrueNAS SCALE
To install this Chart on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Quick-Start%20Guides/Installing-an-App). To install this Chart on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Quick-Start%20Guides/Installing-an-App).
### Helm ### Helm
To install the chart with the release name `ring-mqtt` To install the chart with the release name `ring-mqtt`
```console ```console
helm repo add TrueCharts https://charts.truecharts.org helm repo add TrueCharts https://charts.truecharts.org
helm repo update helm repo update
helm install ring-mqtt TrueCharts/ring-mqtt helm install ring-mqtt TrueCharts/ring-mqtt
``` ```
## Uninstall ## Uninstall
### TrueNAS SCALE ### TrueNAS SCALE
**Upgrading, Rolling Back and Uninstalling the Chart** **Upgrading, Rolling Back and Uninstalling the Chart**
To upgrade, rollback or delete this Chart from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Quick-Start%20Guides/Upgrade-rollback-delete-an-App). To upgrade, rollback or delete this Chart from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Quick-Start%20Guides/Upgrade-rollback-delete-an-App).
### Helm ### Helm
To uninstall the `ring-mqtt` deployment To uninstall the `ring-mqtt` deployment
```console ```console
helm uninstall ring-mqtt helm uninstall ring-mqtt
``` ```
## Configuration ## Configuration
### Helm ### Helm
#### Available Settings #### Available Settings
Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values. Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values.
Other values may be used from the [values.yaml](https://github.com/truecharts/library-charts/tree/main/charts/stable/common/values.yaml) from the [common library](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common). Other values may be used from the [values.yaml](https://github.com/truecharts/library-charts/tree/main/charts/stable/common/values.yaml) from the [common library](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common).
#### Configure using the command line #### Configure using the command line
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
```console ```console
helm install ring-mqtt \ helm install ring-mqtt \
--set env.TZ="America/New York" \ --set env.TZ="America/New York" \
TrueCharts/ring-mqtt TrueCharts/ring-mqtt
``` ```
#### Configure using a yaml file #### Configure using a yaml file
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.
```console ```console
helm install ring-mqtt TrueCharts/ring-mqtt -f values.yaml helm install ring-mqtt TrueCharts/ring-mqtt -f values.yaml
``` ```
#### Connecting to other charts #### Connecting to other charts
If you need to connect this Chart to other Charts on TrueNAS SCALE, please refer to our [Linking Charts Internally](https://truecharts.org/docs/manual/SCALE%20Apps/Quick-Start%20Guides/linking-apps) quick-start guide. If you need to connect this Chart to other Charts on TrueNAS SCALE, please refer to our [Linking Charts Internally](https://truecharts.org/docs/manual/SCALE%20Apps/Quick-Start%20Guides/linking-apps) quick-start guide.
## Support ## Support
- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/docs/manual/SCALE%20Apps/Quick-Start%20Guides/Important-MUST-READ). - Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/docs/manual/SCALE%20Apps/Quick-Start%20Guides/Important-MUST-READ).
- See the [Website](https://truecharts.org) - See the [Website](https://truecharts.org)
- Check our [Discord](https://discord.gg/tVsPTHWTtr) - Check our [Discord](https://discord.gg/tVsPTHWTtr)
- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) - Open a [issue](https://github.com/truecharts/apps/issues/new/choose)
--- ---
## Sponsor TrueCharts ## Sponsor TrueCharts
TrueCharts can only exist due to the incredible effort of our staff. TrueCharts can only exist due to the incredible effort of our staff.
Please consider making a [donation](https://truecharts.org/docs/about/sponsor) or contributing back to the project any way you can! Please consider making a [donation](https://truecharts.org/docs/about/sponsor) or contributing back to the project any way you can!
--- ---
All Rights Reserved - The TrueCharts Project All Rights Reserved - The TrueCharts Project
@@ -0,0 +1,60 @@
# Installation Notes
- Follow the prerequisite guides below before attempting `Ring-MQTT` installation.
## MQTT setup
- I used the chart called `mosquitto` install it as normal and set `Authentication` to **true**. here's the [auth guide](https://truecharts.org/docs/charts/stable/mosquitto/setup-guide).
## Ring-MQTT setup
- `RINGTOKEN` can be left blank as you can auth through the temporarily web interface which is just for the authorization of your ring account.
- Go to `http://SCALE_IP:55123`.
- Set `MQTTHOST` to **mosquitto.ix-mosquitto.svc.cluster.local**.
- Set `MQTTPORT` to **1883**.
- Set `MQTTUSER` to **user_name** from the authentication setup.
- Set `MQTTPASSWORD` to **user_pass** from the authentication setup.
- Set `ENABLECAMERAS` to **true** to enable cameras.
- Set `SNAPSHOTMODE` to **Auto** to optimize based on high vs low-power Ring devices.
- Set `ENABLEMODES` to **false**.
- Set `ENABLEPANIC` to **false**.
- Set `BEAMDURATION` to **0**.
- Leave `DISARMCODE` blank.
- Leave `RINGLOCATIONIDS` blank.
## Home-assistant setup
- Install the chart `home-assistant` if you have not done so.
- In home-assistant go to settings -> devices & integrations -> click add integration -> search for `mqtt`.
- Set `broker` to `mosquitto.ix-mosquitto.svc.cluster.local`.
- Set `port` to `1883`.
- Set `username` and `password` to the MQTT auth user and pass.
- Set the `MQTT options` as needed.
- Shell into home-assistant, use truetool.sh or other means to modify the file `/config/configuration.yaml`.
- Add the following code.
```yaml
shell_command:
ring_snap: "ffmpeg -y -i {{RTSP_URL}} -vframes 1 {{fileDirName}}"
```
- Create a new dir called `www` in `/config/`.
- Validate home-assistant configuration in `developer tools` and if passes; click on restart to use the service `ring_snap` in automations.
- Here's a sample on how to create a `live snapshot` automation.
- This will override the previous image if saved as `/config/www/snapshot.jpg`
```yaml
service: shell_command.ring_snap
data:
RTSP_URL: "{{ states.sensor.front_door_info.attributes.stream_Source }}"
fileDirName: "/config/www/snapshot.jpg"
```
- Note: You **must** save the file in `/config/www/` or set the option to allow other dirs for home-assistant to be used.
- Now you can create a live snapshot automation in `home-assistant`.

Before

Width:  |  Height:  |  Size: 90 KiB

After

Width:  |  Height:  |  Size: 90 KiB

+232
View File
@@ -0,0 +1,232 @@
# Include{groups}
portals: {}
questions:
# Include{global}
# Include{controller}
# Include{controllerDeployment}
# Include{replicas}
# Include{replica1}
# Include{strategy}
# Include{recreate}
# Include{controllerExpert}
# Include{controllerExpertExtraArgs}
- variable: secretEnv
group: "Container Configuration"
label: "Image Secrets"
schema:
additional_attrs: true
type: dict
attrs:
- variable: RINGTOKEN
label: "RINGTOKEN"
description: "RINGTOKEN can be left blank for web authenticated."
schema:
type: string
private: true
default: ""
- variable: MQTTUSER
label: "MQTTUSER"
description: "Set a username for your MQTT instance."
schema:
type: string
default: ""
- variable: MQTTPASSWORD
label: "MQTTPASSWORD"
description: "Set a password for your MQTT instance."
schema:
type: string
default: ""
private: true
- variable: env
group: "Container Configuration"
label: "Image Environment"
schema:
additional_attrs: true
type: dict
attrs:
- variable: MQTTHOST
label: "MQTTHOST"
description: "Set the MQTT host cluster url or ip. ex: `mosquitto.ix-mosquitto.svc.cluster.local`."
schema:
type: string
default: ""
- variable: MQTTPORT
label: "MQTTPORT"
description: "Set MQTTPORT to the port that your MQTT uses."
schema:
type: int
default: 1883
- variable: ENABLECAMERAS
label: "ENABLECAMERAS"
description: "Default false since the native Ring component for Home Assistant supports cameras, set to true to enable camera/chime support in this add-on. Access to Chimes cannot be granted to shared users so Chime support requires use of the primary Ring account."
schema:
type: boolean
default: false
- variable: SNAPSHOTMODE
label: "SNAPSHOTMODE"
description: "Set SNAPSHOTMODE to [`Auto``, `Motion`, `Interval`, `All`] or default `disabled`"
schema:
type: string
default: "disabled"
enum:
- value: disabled
description: Disabled
- value: auto
description: Auto
- value: motion
description: Motion
- value: interval
description: Interval
- value: all
description: All
- variable: ENABLEMODES
label: "ENABLEMODES"
description: "Enable support for Location Modes for sites without a Ring Alarm Panel."
schema:
type: boolean
default: false
- variable: ENABLEPANIC
label: "ENABLEPANIC"
description: "Enable panic buttons on Alarm Control Panel device."
schema:
type: boolean
default: false
- variable: BEAMDURATION
label: "BEAMDURATION"
description: "Container Variable BEAMDURATION"
schema:
type: string
default: "0"
- variable: DISARMCODE
label: "DISARMCODE"
description: "Used only with Home Assistant, when defined this option causes the Home Assistant Alarm Control Panel integration to require entering this code to disarm the alarm"
schema:
type: string
default: ""
- variable: RINGLOCATIONIDS
label: "RINGLOCATIONIDS"
description: "Array of location Ids in format: [`loc-id`, `loc-id2`], see [Limiting Locations](https://github.com/tsightler/ring-mqtt/wiki/Configuration-Details#limiting-locations) for details."
schema:
type: string
default: ""
# Include{containerConfig}
# Include{serviceRoot}
- variable: main
label: "Main Service"
description: "The Primary service on which the healthcheck runs, often the webUI"
schema:
additional_attrs: true
type: dict
attrs:
# Include{serviceSelector}
- variable: main
label: "Main Service Port Configuration"
schema:
additional_attrs: true
type: dict
attrs:
- variable: port
label: "Port"
description: "This port exposes the container port on the service"
schema:
type: int
default: 55123
required: true
# Include{advancedPortHTTP}
- variable: targetPort
label: "Target Port"
description: "The internal(!) port on the container the Application runs on"
schema:
type: int
default: 55123
- variable: rtsp
label: "RCON Service"
description: "The Primary service on which the healthcheck runs, often the webUI"
schema:
additional_attrs: true
type: dict
attrs:
# Include{serviceSelector}
- variable: rtsp
label: "RTSP Service Port Configuration"
schema:
additional_attrs: true
type: dict
attrs:
- variable: port
label: "Port"
description: "This port exposes the container port on the service"
schema:
type: int
default: 8554
required: true
# Include{advancedPortTCP}
- variable: targetPort
label: "Target Port"
description: "The internal(!) port on the container the Application runs on"
schema:
type: int
default: 8554
# Include{serviceExpertRoot}
default: false
# Include{serviceExpert}
# Include{serviceList}
# Include{persistenceRoot}
- variable: data
label: "data Storage"
description: "Data Path"
schema:
additional_attrs: true
type: dict
attrs:
# Include{persistenceBasic}
# Include{persistenceAdvanced}
# Include{persistenceList}
# Include{ingressList}
# Include{security}
# Include{securityContextAdvancedRoot}
- variable: privileged
label: "Privileged mode"
schema:
type: boolean
default: false
- variable: readOnlyRootFilesystem
label: "ReadOnly Root Filesystem"
schema:
type: boolean
default: false
- variable: allowPrivilegeEscalation
label: "Allow Privilege Escalation"
schema:
type: boolean
default: false
- variable: runAsNonRoot
label: "runAsNonRoot"
schema:
type: boolean
default: false
# Include{securityContextAdvanced}
# Include{podSecurityContextRoot}
- variable: runAsUser
label: "runAsUser"
description: "The UserID of the user running the application"
schema:
type: int
default: 0
- variable: runAsGroup
label: "runAsGroup"
description: The groupID this App of the user running the application"
schema:
type: int
default: 0
- variable: fsGroup
label: "fsGroup"
description: "The group that should own ALL storage."
schema:
type: int
default: 568
# Include{podSecurityContextAdvanced}
# Include{resources}
# Include{advanced}
# Include{addons}
# Include{documentation}
@@ -1,3 +1,21 @@
image:
pullPolicy: IfNotPresent
repository: tccr.io/truecharts/ring-mqtt
tag: 5.0.3@sha256:a089c8c1514c5c80cc2fc1fa529f633290538a963df5e3d0c7c93b14fd92b633
podSecurityContext:
runAsGroup: 0
runAsUser: 0
securityContext:
readOnlyRootFilesystem: false
runAsNonRoot: false
secretEnv:
RINGTOKEN: ""
MQTTUSER: ""
MQTTPASSWORD: ""
env: env:
BEAMDURATION: "0" BEAMDURATION: "0"
DISARMCODE: "" DISARMCODE: ""
@@ -5,39 +23,28 @@ env:
ENABLEMODES: "false" ENABLEMODES: "false"
ENABLEPANIC: "false" ENABLEPANIC: "false"
MQTTHOST: "" MQTTHOST: ""
MQTTPASSWORD: ""
MQTTPORT: "1883" MQTTPORT: "1883"
MQTTUSER: ""
RINGLOCATIONIDS: "" RINGLOCATIONIDS: ""
RINGTOKEN: ""
SNAPSHOTMODE: disabled SNAPSHOTMODE: disabled
image:
pullPolicy: IfNotPresent service:
repository: tccr.io/truecharts/ring-mqtt main:
tag: latest@sha256:fe9beb0313fd81f26e698e7b528ae13eab5e74f65fade8d51f626c3fc272e066 ports:
main:
protocol: HTTP
targetPort: 55123
port: 55123
rtsp:
ports:
rtsp:
protocol: TCP
targetPort: 8554
port: 8554
persistence: persistence:
data: data:
enabled: true enabled: true
mountPath: /data mountPath: /data
podSecurityContext:
runAsGroup: 0
runAsUser: 0
probes:
liveness:
enabled: false
readiness:
enabled: false
startup:
enabled: false
securityContext:
readOnlyRootFilesystem: false
runAsNonRoot: false
service:
main:
enabled: false
ports:
main:
enabled: false
portal: portal:
enabled: false enabled: false