feat(rtmpserver) move to stable (#6589)

* feat(rtmpserver) move to stable

* Apply suggestions from code review

Signed-off-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com>

* fix docs

---------

Signed-off-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com>
Co-authored-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com>
This commit is contained in:
Xstar97TheNoob
2023-02-16 11:23:19 -05:00
committed by GitHub
co-authored by Stavros Kois
parent f1cd63437a
commit 846262b85a
11 changed files with 253 additions and 98 deletions
@@ -1,61 +0,0 @@
# Include{groups}
portals: {}
questions:
# Include{global}
# Include{controller}
# Include{replicas}
# Include{replica1}
# Include{controllerExpertExtraArgs}
# Include{serviceExpertRoot}
default: false
# Include{serviceExpert}
# Include{serviceList}
# Include{persistenceList}
# 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{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{codeserver}
# Include{vpn}
# Include{documentation}
-28
View File
@@ -1,28 +0,0 @@
env: {}
image:
pullPolicy: IfNotPresent
repository: tccr.io/truecharts/rtmpserver
tag: latest@sha256:bfc85c58cc8cb8866774364af135c8fe3816ed26ee5c4ea182d28d2acf63c16e
persistence: {}
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:
enabled: false
@@ -1,8 +1,3 @@
annotations:
truecharts.org/SCALE-support: "true"
truecharts.org/catagories: |
- GameServers
- Network-Other
apiVersion: v2 apiVersion: v2
appVersion: "latest" appVersion: "latest"
dependencies: dependencies:
@@ -10,8 +5,8 @@ dependencies:
repository: https://library-charts.truecharts.org repository: https://library-charts.truecharts.org
version: 11.1.2 version: 11.1.2
deprecated: false deprecated: false
description: "This Chart can be used to create a video streaming server that supports RTMP, HLS, DASH out of the box. It also allows adaptive streaming and custom transcoding of video streams. All modules are built from source on Debian and Alpine Linux base images." description: A video streaming server that supports RTMP, HLS, DASH out of the box.
home: https://truecharts.org/charts/incubator/rtmpserver home: https://truecharts.org/charts/stable/rtmpserver
icon: https://truecharts.org/img/hotlink-ok/chart-icons/rtmpserver.png icon: https://truecharts.org/img/hotlink-ok/chart-icons/rtmpserver.png
keywords: keywords:
- rtmpserver - rtmpserver
@@ -25,7 +20,13 @@ maintainers:
name: rtmpserver name: rtmpserver
sources: sources:
- https://github.com/truecharts/charts/tree/master/charts/incubator/rtmpserver - https://github.com/truecharts/charts/tree/master/charts/incubator/rtmpserver
- https://hub.docker.com/r/alqutami/rtmp-hls - https://hub.docker.com/alqutami/rtmp-hls
- https://github.com/TareqAlqutami/rtmp-hls-server - https://github.com/TareqAlqutami/rtmp-hls-server
type: application type: application
version: 2.0.9 version: 3.0.0
annotations:
truecharts.org/catagories: |
- GameServers
- Network-Other
truecharts.org/SCALE-support: "true"
truecharts.org/grade: U
@@ -0,0 +1,44 @@
# Installation Notes
The app has no configuration. The following is just a basic guide on how to stream and view the live stream.
## Stream
- This is the URL to use to stream `rtmp://<server_ip>:1935/live/<stream_key>`
- Replace <server_ip> and <stream_key> respectively.
- Change the port if its not default.
## View
- VLC
- Go to Media > Open Network Stream.
/code/charts/truecharts/charts/charts/rtmpserver - `rtmp://<server ip>:1935/live/<stream-key>`
- Web
- ~~To play RTMP content: `http://<server_ip>:10610/players/rtmp.html`~~ (requires Flash, this tech is dead!)
- To play HLS content: `http://<server_ip>:10610/players/hls.html`
- To play HLS content using hls.js library: `http://<server_ip>:10610/players/hls_hlsjs.html`
- To play DASH content: `http://<server_ip>:10610/players/dash.html`
- To play RTMP and HLS contents on the same page: `http://<server_ip>:10610/players/rtmp_hls.html`
:::note
The default basic builtin stream sites use a default key, "test".
:::
## Customizaton
- If you want to mount a modified version of a nginx.conf you can do so by manually mounting `/etc/nginx/` as PVC or hostpath and then add the custom files after. Take a look at upstream's [configs](https://github.com/TareqAlqutami/rtmp-hls-server/tree/master/conf).
- If you want to mount and customized the web players you can do so by mounting `/usr/local/nginx/html/players` and adding the files in that dir, here are example players [htmls](https://github.com/TareqAlqutami/rtmp-hls-server/tree/master/players).
- You might want to enable the `codeserver` addon to access the dirs to add/modify the files in a fast and easy to use web editor by going to `http://<server_ip>:36107/?folder=/`
:::note
We will not offer support if you manually mount these dirs, you can ask for help in our discord channel [#🎓・unsupported-setups](https://discord.gg/JRU6gUjeMJ) otherwise you can create a ticket in our support channel normally.
:::

Before

Width:  |  Height:  |  Size: 8.2 KiB

After

Width:  |  Height:  |  Size: 8.2 KiB

+148
View File
@@ -0,0 +1,148 @@
# Include{groups}
portals:
open:
# Include{portalLink}
path: /players/hls.html
stats:
# Include{portalLink}
path: /stats.html
questions:
# Include{global}
# Include{controller}
# Include{replicas}
# Include{replica1}
# Include{controllerExpertExtraArgs}
# 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{serviceSelectorLoadBalancer}
# Include{serviceSelectorExtras}
- 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: 10610
required: true
- variable: rtmp
label: RTMP Service
description: The RTMP service
schema:
additional_attrs: true
type: dict
attrs:
# Include{serviceSelectorLoadBalancer}
# Include{serviceSelectorExtras}
- variable: rtmp
label: RTMP 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: 1935
required: true
# Include{serviceExpertRoot}
default: false
# Include{serviceExpert}
# Include{serviceList}
# Include{persistenceRoot}
- variable: dash
label: App Dash Storage
description: Stores the Application Dash.
schema:
additional_attrs: true
type: dict
attrs:
# Include{persistenceBasic}
- variable: hls
label: App HLS Storage
description: Stores the Application HLS.
schema:
additional_attrs: true
type: dict
attrs:
# Include{persistenceBasic}
# Include{persistenceList}
# Include{ingressRoot}
- variable: main
label: Main Ingress
schema:
additional_attrs: true
type: dict
attrs:
# Include{ingressDefault}
- variable: rtmp
label: RTMP Ingress
schema:
additional_attrs: true
type: dict
attrs:
# Include{ingressDefault}
# Include{ingressTLS}
# Include{ingressTraefik}
# 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{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{codeserver}
# Include{vpn}
# Include{documentation}
+51
View File
@@ -0,0 +1,51 @@
image:
pullPolicy: IfNotPresent
repository: tccr.io/truecharts/rtmpserver
tag: latest@sha256:bfc85c58cc8cb8866774364af135c8fe3816ed26ee5c4ea182d28d2acf63c16e
securityContext:
readOnlyRootFilesystem: false
runAsNonRoot: false
podSecurityContext:
runAsGroup: 0
runAsUser: 0
service:
main:
ports:
main:
protocol: HTTP
targetPort: 8080
port: 10610
rtmp:
ports:
rtmp:
protocol: TCP
targetPort: 1935
port: 1935
probes:
liveness:
path: /stats.html
readiness:
path: /stats.html
startup:
path: /stats.html
ingress:
rtmp:
autoLink: true
persistence:
dash:
enabled: true
mountPath: /mnt/dash
hls:
enabled: true
mountPath: /mnt/hls
portal:
enabled: true