chore(apps) remove duplicate apps

This commit is contained in:
ksimm1 2023-06-30 19:56:39 -07:00 committed by GitHub
parent 0b53d19e40
commit 6773a330aa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
245 changed files with 0 additions and 53184 deletions

View File

@ -1,99 +0,0 @@
**Important:**
*for the complete changelog, please refer to the website*
## [etesync-4.0.9](https://github.com/truecharts/charts/compare/etesync-4.0.8...etesync-4.0.9) (2023-06-15)
### Feat
- Add admin portal to GUI ([#9611](https://github.com/truecharts/charts/issues/9611))
## [etesync-4.0.9](https://github.com/truecharts/charts/compare/etesync-4.0.8...etesync-4.0.9) (2023-06-15)
### Feat
- Add admin portal to GUI ([#9611](https://github.com/truecharts/charts/issues/9611))
## [etesync-4.0.9](https://github.com/truecharts/charts/compare/etesync-4.0.8...etesync-4.0.9) (2023-06-15)
### Feat
- Add admin portal to GUI ([#9611](https://github.com/truecharts/charts/issues/9611))
## [etesync-4.0.9](https://github.com/truecharts/charts/compare/etesync-4.0.8...etesync-4.0.9) (2023-06-15)
### Feat
- Add admin portal to GUI ([#9611](https://github.com/truecharts/charts/issues/9611))
## [etesync-4.0.9](https://github.com/truecharts/charts/compare/etesync-4.0.8...etesync-4.0.9) (2023-06-15)
### Feat
- Add admin portal to GUI ([#9611](https://github.com/truecharts/charts/issues/9611))
## [etesync-4.0.9](https://github.com/truecharts/charts/compare/etesync-4.0.8...etesync-4.0.9) (2023-06-15)
### Feat
- Add admin portal to GUI ([#9611](https://github.com/truecharts/charts/issues/9611))
## [etesync-4.0.9](https://github.com/truecharts/charts/compare/etesync-4.0.8...etesync-4.0.9) (2023-06-15)
### Feat
- Add admin portal to GUI ([#9611](https://github.com/truecharts/charts/issues/9611))
## [etesync-4.0.9](https://github.com/truecharts/charts/compare/etesync-4.0.8...etesync-4.0.9) (2023-06-15)
### Feat
- Add admin portal to GUI ([#9611](https://github.com/truecharts/charts/issues/9611))
## [etesync-4.0.9](https://github.com/truecharts/charts/compare/etesync-4.0.8...etesync-4.0.9) (2023-06-15)
### Feat
- Add admin portal to GUI ([#9611](https://github.com/truecharts/charts/issues/9611))
## [etesync-4.0.9](https://github.com/truecharts/charts/compare/etesync-4.0.8...etesync-4.0.9) (2023-06-15)
### Feat
- Add admin portal to GUI ([#9611](https://github.com/truecharts/charts/issues/9611))
## [etesync-4.0.9](https://github.com/truecharts/charts/compare/etesync-4.0.8...etesync-4.0.9) (2023-06-15)
### Feat

View File

@ -1,44 +0,0 @@
apiVersion: v2
appVersion: "0.11.0"
dependencies:
- name: common
repository: https://library-charts.truecharts.org
version: 12.14.2
- condition: redis.enabled
name: redis
repository: https://deps.truecharts.org
version: 6.0.58
deprecated: false
description: Secure, end-to-end encrypted, and privacy respecting sync for your contacts, calendars, tasks and notes.
home: https://truecharts.org/charts/incubator/etesync
icon: https://truecharts.org/img/hotlink-ok/chart-icons/etesync.png
keywords:
- etesync
- sync
- contacts
- calendars
- tasks
- notes
kubeVersion: ">=1.16.0-0"
maintainers:
- email: info@truecharts.org
name: TrueCharts
url: https://truecharts.org
name: etesync
sources:
- https://github.com/truecharts/charts/tree/master/charts/incubator/etesync
- https://www.etesync.com/
- https://github.com/etesync
- https://github.com/victor-rds/docker-etebase
type: application
version: 4.0.9
annotations:
truecharts.org/catagories: |
- productivity
- sync
- contacts
- calendars
- tasks
- notes
truecharts.org/SCALE-support: "true"
truecharts.org/grade: U

View File

@ -1,27 +0,0 @@
# README
## General Info
TrueCharts can be installed as both *normal* Helm Charts or as Apps on TrueNAS SCALE.
However only installations using the TrueNAS SCALE Apps system are supported.
For more information about this App, please check the docs on the TrueCharts [website](https://truecharts.org/charts/incubator/)
**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)**
## Support
- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE%20Apps/Important-MUST-READ).
- See the [Website](https://truecharts.org)
- Check our [Discord](https://discord.gg/tVsPTHWTtr)
- Open a [issue](https://github.com/truecharts/charts/issues/new/choose)
---
## Sponsor TrueCharts
TrueCharts can only exist due to the incredible effort of our staff.
Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can!
*All Rights Reserved - The TrueCharts Project*

View File

@ -1,9 +0,0 @@
## [etesync-4.0.9](https://github.com/truecharts/charts/compare/etesync-4.0.8...etesync-4.0.9) (2023-06-15)
### Feat
- Add admin portal to GUI ([#9611](https://github.com/truecharts/charts/issues/9611))

View File

@ -1,8 +0,0 @@
Secure, end-to-end encrypted, and privacy respecting sync for your contacts, calendars, tasks and notes.
This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/charts/incubator/etesync](https://truecharts.org/charts/incubator/etesync)
---
TrueCharts can only exist due to the incredible effort of our staff.
Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can!

View File

@ -1,100 +0,0 @@
image:
repository: tccr.io/truecharts/etesync
pullPolicy: IfNotPresent
tag: 0.11.0@sha256:47478da0d1b3ab18d5bfbcd4537fa80305ace94746b01c32e609c7e9e663d860
securityContext:
container:
runAsUser: 373
runAsGroup: 373
readOnlyRootFilesystem: false
pod:
fsGroup: 373
# Docker image configuration docs:
# https://github.com/victor-rds/docker-etebase#settings-and-customization
# EteSync configuration docs:
# https://github.com/etesync/server#configuration
workload:
main:
podSpec:
containers:
main:
probes:
liveness:
type: tcp
readiness:
type: tcp
startup:
type: tcp
env:
PORT: "{{ .Values.service.main.ports.main.port }}"
# App
SERVER: http
AUTO_UPDATE: true
ALLOWED_HOSTS: "localhost"
AUTO_SIGNUP: false
LANGUAGE_CODE: "en-us"
TIME_ZONE: "{{ .Values.TZ }}"
# Debugging
DEBUG: false
SHELL_DEBUG: false
DEBUG_DJANGO: false
# Postgres
DB_ENGINE: postgres
DATABASE_NAME: "{{ .Values.cnpg.main.database }}"
DATABASE_USER: "{{ .Values.cnpg.main.user }}"
DATABASE_PASSWORD:
secretKeyRef:
name: cnpg-main-user
key: password
DATABASE_HOST:
secretKeyRef:
name: cnpg-main-urls
key: host
DATABASE_PORT: 5432
REDIS_URI:
secretKeyRef:
expandObjectName: false
name: '{{ printf "%s-%s" .Release.Name "rediscreds" }}'
key: url
# Superuser
SUPER_USER: "admin"
SUPER_PASS: ""
SUPER_EMAIL: ""
service:
main:
ports:
main:
protocol: http
port: 10254
persistence:
app:
enabled: true
mountPath: "/data"
secret:
enabled: true
type: secret
readOnly: true
mountPath: "/data/secret.txt"
subPath: "secret.txt"
objectName: "etesync-secret"
# Enabled postgres
cnpg:
main:
enabled: true
user: etesync
database: etesync
redis:
enabled: true
portal:
open:
enabled: true

File diff suppressed because it is too large Load Diff

View File

@ -1,10 +0,0 @@
{{/* EteSync superuser credentials and Django SECRET_KEY */}}
{{- define "etesync.secret" -}}
enabled: true
data:
{{- with (lookup "v1" "Secret" .Release.Namespace "etesync-secret") }}
secret.txt: {{ index .data "secret.txt" | b64dec }}
{{- else }}
secret.txt: {{ randAlphaNum 32 }}
{{- end }}
{{- end -}}

View File

@ -1,11 +0,0 @@
{{/* Make sure all variables are set properly */}}
{{- include "tc.v1.common.loader.init" . }}
{{/* Render secrets for etesync */}}
{{- $secret := include "etesync.secret" . | fromYaml -}}
{{- if $secret -}}
{{- $_ := set .Values.secret "etesync-secret" $secret -}}
{{- end -}}
{{/* Render the templates */}}
{{ include "tc.v1.common.loader.apply" . }}

View File

@ -1,10 +0,0 @@
icon_url: https://truecharts.org/img/hotlink-ok/chart-icons/etesync.png
categories:
- productivity
- sync
- contacts
- calendars
- tasks
- notes
screenshots: []

View File

@ -1,99 +0,0 @@
**Important:**
*for the complete changelog, please refer to the website*
## [frigate-8.0.4](https://github.com/truecharts/charts/compare/frigate-8.0.3...frigate-8.0.4) (2023-06-07)
### Chore
- update helm general non-major ([#9457](https://github.com/truecharts/charts/issues/9457))
## [frigate-8.0.3](https://github.com/truecharts/charts/compare/frigate-8.0.2...frigate-8.0.3) (2023-06-07)
### Chore
- update helm general non-major ([#9423](https://github.com/truecharts/charts/issues/9423))
## [frigate-8.0.2](https://github.com/truecharts/charts/compare/frigate-8.0.1...frigate-8.0.2) (2023-06-06)
### Fix
- Fix questions default value ([#9414](https://github.com/truecharts/charts/issues/9414))
## [frigate-8.0.1](https://github.com/truecharts/charts/compare/frigate-8.0.0...frigate-8.0.1) (2023-06-04)
## [frigate-8.0.0](https://github.com/truecharts/charts/compare/frigate-7.0.1...frigate-8.0.0) (2023-06-04)
## [frigate-7.0.1](https://github.com/truecharts/charts/compare/frigate-7.0.0...frigate-7.0.1) (2023-06-04)
### Chore
- update helm general non-major ([#9393](https://github.com/truecharts/charts/issues/9393))
## [frigate-7.0.0](https://github.com/truecharts/charts/compare/frigate-6.0.2...frigate-7.0.0) (2023-06-01)
### Feat
- hide advanced ingress options behind checbox ([#9203](https://github.com/truecharts/charts/issues/9203))
- port to new common ([#9141](https://github.com/truecharts/charts/issues/9141))
### Fix
- fix mistakes on questions.yaml
## [frigate-6.0.2](https://github.com/truecharts/charts/compare/frigate-6.0.1...frigate-6.0.2) (2023-02-10)
### Fix
- ensure new helm deps repo is used in latest releases as well.
## [frigate-6.0.1](https://github.com/truecharts/charts/compare/frigate-6.0.0...frigate-6.0.1) (2023-02-02)
### Fix
- remove non-link sources ([#6826](https://github.com/truecharts/charts/issues/6826))
## [frigate-6.0.0](https://github.com/truecharts/charts/compare/frigate-5.0.14...frigate-6.0.0) (2023-01-21)
## [frigate-5.0.14](https://github.com/truecharts/charts/compare/frigate-5.0.13...frigate-5.0.14) (2022-12-27)
### Chore
- update helm general non-major ([#5856](https://github.com/truecharts/charts/issues/5856))
## [frigate-5.0.13](https://github.com/truecharts/charts/compare/frigate-5.0.12...frigate-5.0.13) (2022-12-26)

View File

@ -1,30 +0,0 @@
apiVersion: v2
appVersion: "0.12.0"
dependencies:
- name: common
repository: https://library-charts.truecharts.org
version: 12.13.0
deprecated: false
description: NVR With Realtime Object Detection for IP Cameras
home: https://truecharts.org/charts/incubator/frigate
icon: https://truecharts.org/img/hotlink-ok/chart-icons/frigate.png
keywords:
- encode
- nvr
- media
- frigate
kubeVersion: ">=1.16.0-0"
maintainers:
- email: info@truecharts.org
name: TrueCharts
url: https://truecharts.org
name: frigate
sources:
- https://github.com/truecharts/charts/tree/master/charts/incubator/frigate
- https://github.com/blakeblackshear/frigate
type: application
version: 8.0.4
annotations:
truecharts.org/catagories: |
- nvr
truecharts.org/SCALE-support: "true"

View File

@ -1,27 +0,0 @@
# README
## General Info
TrueCharts can be installed as both *normal* Helm Charts or as Apps on TrueNAS SCALE.
However only installations using the TrueNAS SCALE Apps system are supported.
For more information about this App, please check the docs on the TrueCharts [website](https://truecharts.org/charts/incubator/)
**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)**
## Support
- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE%20Apps/Important-MUST-READ).
- See the [Website](https://truecharts.org)
- Check our [Discord](https://discord.gg/tVsPTHWTtr)
- Open a [issue](https://github.com/truecharts/charts/issues/new/choose)
---
## Sponsor TrueCharts
TrueCharts can only exist due to the incredible effort of our staff.
Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can!
*All Rights Reserved - The TrueCharts Project*

View File

@ -1,9 +0,0 @@
## [frigate-8.0.4](https://github.com/truecharts/charts/compare/frigate-8.0.3...frigate-8.0.4) (2023-06-07)
### Chore
- update helm general non-major ([#9457](https://github.com/truecharts/charts/issues/9457))

View File

@ -1,8 +0,0 @@
NVR With Realtime Object Detection for IP Cameras
This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/charts/incubator/frigate](https://truecharts.org/charts/incubator/frigate)
---
TrueCharts can only exist due to the incredible effort of our staff.
Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can!

View File

@ -1,471 +0,0 @@
image:
repository: tccr.io/truecharts/frigate
pullPolicy: IfNotPresent
tag: v0.12.0@sha256:6fac983662fc6095ffdc8dd494f0c918192ddab80602f01d50a3569dab868148
securityContext:
container:
readOnlyRootFilesystem: false
runAsNonRoot: false
runAsUser: 0
runAsGroup: 0
# -- The "render_config" key is only used internally to "render" or not the configuration
# - Some parts of the config bellow are slightly modified so they can be added on SCALE UI. Mainly lists.
# - Do not blindly copy paste configuration from upstream. As this won't work on all cases
# - Where you see "null" set as default is ignored by the configmap. (Not all keys are supported).
# - Those "nulls" should be replaced with integers (if you want to set a value)
frigate:
mqtt:
# -- Enable it to add the configuration in the config file
render_config: true
# -- Enables MQTT
enabled: false
host: mqtt.server.com
port: 1883
# -- NOTE: Must be unique if you are running multiple instances
topic_prefix: ""
# -- NOTE: Must be unique if you are running multiple instances
client_id: ""
user: ""
password: ""
stats_interval: 60
detectors:
# -- Enable it to add the configuration in the config file
render_config: false
config: []
# -- Required: Name of the detector
# - name: coral
# # -- Valid values are 'edgetpu' (requires device property below) and 'cpu'.
# type: edgetpu
# # -- Device name as defined here: https://coral.ai/docs/edgetpu/multiple-edgetpu/#using-the-tensorflow-lite-python-api
# device: usb
# # -- This value is only used for CPU types
# num_threads: 3
model:
# -- Enable it to add the configuration in the config file
render_config: false
# -- Required: Object detection model input width
width: 320
# -- Required: Object detection model input height
height: 320
# -- Optional: Path to the model
path: ""
# -- Optional: Path to the labelmap
labelmap_path: ""
# -- Optional: Label name modifications.
labelmap: []
# - model: "2"
# name: vehicle
# - model: 3
# name: vehicle
logger:
# -- Enable it to add the configuration in the config file
render_config: false
# -- Optional: Default log verbosity (default: shown below)
default: info
# -- Optional: Component specific logger overrides
logs: []
# - component: frigate.event
# verbosity: debug
birdseye:
# -- Enable it to add the configuration in the config file
render_config: false
# -- Enables birdseye
enabled: true
# -- Optional: Width of the output resolution
width: null
# -- Optional: Height of the output resolution
height: null
# -- Optional: Encoding quality of the mpeg1 feed
# - 1 is the highest quality, and 31 is the lowest. Lower quality feeds utilize less CPU resources.
quality: null
# -- Optional: Mode of the view. Available options are: objects, motion, and continuous
# - objects - cameras are included if they have had a tracked object within the last 30 seconds
# - motion - cameras are included if motion was detected in the last 30 seconds
# - continuous - all cameras are included always
mode: ""
ffmpeg:
# -- Enable it to add the configuration in the config file
render_config: false
# -- Optional: global ffmpeg args
global_args: ""
# -- Optional: global input args
input_args: ""
# -- Optional: global hwaccel args
# - NOTE: See hardware acceleration docs for your specific device
hwaccel_args: ""
# -- Optional: global output args
output_args:
# -- Optional: output args for detect streams
detect: ""
# -- Optional: output args for record streams
record: ""
# -- Optional: output args for rtmp streams
rtmp: ""
detect:
# -- Enable it to add the configuration in the config file
render_config: false
# -- Enables detection for the camera.
# - This value can be set via MQTT and will be updated in startup based on retained value
enabled: true
# -- Optional: width of the frame for the input with the detect role
width: null
# -- Optional: height of the frame for the input with the detect role
height: null
# -- Optional: desired fps for your camera for the input with the detect role
# - NOTE: Recommended value of 5. Ideally, try and reduce your FPS on the camera.
fps: null
# -- Optional: Number of frames without a detection before frigate considers an object to be gone. (default: 5x the frame rate)
max_disappeared: null
# -- Optional: Configuration for stationary object tracking
stationary:
# -- Optional: Frequency for confirming stationary objects
# - When set to 0, object detection will not confirm stationary objects until movement is detected.
# - If set to 10, object detection will run to confirm the object still exists on every 10th frame.
interval: null
# -- Optional: Number of frames without a position change for an object to be considered stationary (default: 10x the frame rate or 10s)
threshold: null
# -- Optional: Define a maximum number of frames for tracking a stationary object (default: not set, track forever)
# - This can help with false positives for objects that should only be stationary for a limited amount of time.
# - It can also be used to disable stationary object tracking. For example, you may want to set a value for person, but leave
# - car at the default.
# - WARNING: Setting these values overrides default behavior and disables stationary object tracking.
# - There are very few situations where you would want it disabled. It is NOT recommended to
# - copy these values from the example config into your config unless you know they are needed.
# max_frames:
# # -- Optional: Default for all object types (default: not set, track forever)
# default:
# # -- Optional: Object specific values
# objects:
# - object: person
# frames: 1000
objects:
# -- Enable it to add the configuration in the config file
render_config: false
# -- Optional: list of objects to track from labelmap.txt
track: []
# - person
# - car
# -- Optional: mask to prevent all object types from being detected in certain areas (default: no mask)
# - Checks based on the bottom center of the bounding box of the object.
# - NOTE: This mask is COMBINED with the object type specific mask below
mask: ""
# - Optional: filters to reduce false positives for specific object types
filters: []
# - object: person
# # -- Optional: Minimum width*height of the bounding box for the detected object
# min_area: 5000
# # -- Optional: Maximum width*height of the bounding box for the detected object
# max_area: 100000
# # -- Optional: Minimum width/height of the bounding box for the detected object
# min_ratio: "0.5"
# # -- Optional: Maximum width/height of the bounding box for the detected object
# max_ratio: "2.0"
# # -- Optional: Minimum score for the object to initiate tracking
# min_score: "0.5"
# # -- Optional: Minimum decimal percentage for tracked object's computed score to be considered a true positive
# threshold: "0.7"
# # -- Optional: Mask to prevent this object type from being detected in certain areas
# # - Checks based on the bottom center of the bounding box of the object
# mask: 0,0,1000,0,1000,200,0,200
motion:
# -- Enable it to add the configuration in the config file
render_config: false
# -- Optional: The threshold passed to cv2.threshold to determine if a pixel is different enough to be counted as motion.
# - Increasing this value will make motion detection less sensitive and decreasing it will make motion detection more sensitive.
# - The value should be between 1 and 255.
threshold: null
# -- Optional: Minimum size in pixels in the resized motion image that counts as motion
# - Increasing this value will prevent smaller areas of motion from being detected. Decreasing will
# - make motion detection more sensitive to smaller moving objects.
# - As a rule of thumb:
# - 15 - high sensitivity
# - 30 - medium sensitivity
# - 50 - low sensitivity
contour_area: null
# -- Optional: Alpha value passed to cv2.accumulateWeighted when averaging the motion delta across multiple frames
# - Higher values mean the current frame impacts the delta a lot, and a single raindrop may register as motion.
# - Too low and a fast moving person wont be detected as motion.
delta_alpha: ""
# -- Optional: Alpha value passed to cv2.accumulateWeighted when averaging frames to determine the background
# - Higher values mean the current frame impacts the average a lot, and a new object will be averaged into the background faster.
# - Low values will cause things like moving shadows to be detected as motion for longer.
# - https://www.geeksforgeeks.org/background-subtraction-in-an-image-using-concept-of-running-average/
frame_alpha: ""
# -- Optional: Height of the resized motion frame (default: 50)
# - This operates as an efficient blur alternative. Higher values will result in more granular motion detection at the expense
# - of higher CPU usage. Lower values result in less CPU, but small changes may not register as motion.
frame_height: null
# -- Optional: motion mask
# - NOTE: see docs for more detailed info on creating masks
mask: ""
# -- Optional: improve contrast
# - Enables dynamic contrast improvement. This should help improve night detections at the cost of making motion detection more sensitive
# - for daytime.
improve_contrast: false
# -- Optional: Delay when updating camera motion through MQTT from ON -> OFF
mqtt_off_delay: null
record:
# -- Enable it to add the configuration in the config file
render_config: false
# -- Optional: Enable recording
# - WARNING: If recording is disabled in the config, turning it on via
# - the UI or MQTT later will have no effect.
# - WARNING: Frigate does not currently support limiting recordings based
# - on available disk space automatically. If using recordings,
# - you must specify retention settings for a number of days that
# - will fit within the available disk space of your drive or Frigate will crash.
enabled: false
# -- Optional: Number of minutes to wait between cleanup runs
# - This can be used to reduce the frequency of deleting recording segments from disk if you want to minimize i/o
expire_interval:
# -- Optional: Retention settings for recording
retain:
# -- Render retain config
render_config: false
# -- Optional: Number of days to retain recordings regardless of events
# - NOTE: This should be set to 0 and retention should be defined in events section below
# - if you only want to retain recordings of events.
days:
# -- Optional: Mode for retention. Available options are: all, motion, and active_objects
# - all - save all recording segments regardless of activity
# - motion - save all recordings segments with any detected motion
# - active_objects - save all recording segments with active/moving objects
# - NOTE: this mode only applies when the days setting above is greater than 0
mode: ""
# -- Optional: Event recording settings
events:
# -- Enable it to add the configuration in the config file
render_config: false
# -- Optional: Number of seconds before the event to include
pre_capture: null
# -- Optional: Number of seconds after the event to include
post_capture: null
# -- Optional: Objects to save recordings for. Defaults to all
objects: []
# - person
# -- Optional: Restrict recordings to objects that entered any of the listed zones
required_zones: []
# -- Optional: Retention settings for recordings of events
retain:
# -- Render retain config
render_config: false
# -- Required: Default retention days
default: 10
# -- Optional: Mode for retention.
# - all - save all recording segments for events regardless of activity
# - motion - save all recordings segments for events with any detected motion
# - active_objects - save all recording segments for event with active/moving objects
mode: ""
# -- Optional: Per object retention days
objects: []
# - object: person
# days: 15
snapshots:
# -- Enable it to add the configuration in the config file
render_config: false
# -- Optional: Enable writing jpg snapshot to /media/frigate/clips
# - This value can be set via MQTT and will be updated in startup based on retained value
enabled: false
# -- Optional: Save a clean PNG copy of the snapshot image
clean_copy: true
# -- Optional: print a timestamp on the snapshots
timestamp: false
# -- Optional: draw bounding box on the snapshots
bounding_box: false
# -- Optional: crop the snapshot
crop: false
# -- Optional: height to resize the snapshot to (default: original size)
height:
# -- Optional: Restrict snapshots to objects that entered any of the listed zones (default: no required zones)
required_zones: []
# -- Optional: Camera override for retention settings (default: global values)
retain:
# -- Render retain config
render_config: false
# -- Required: Default retention days (default: shown below)
default: 10
# -- Optional: Per object retention days
objects: []
# - object: person
# days: 15
rtmp:
# -- Enable it to add the configuration in the config file
render_config: false
# - Optional: Enable the RTMP stream
enabled: true
live:
# -- Enable it to add the configuration in the config file
render_config: false
# -- Optional: Set the height of the live stream. (default: 720)
# - This must be less than or equal to the height of the detect stream. Lower resolutions
# - reduce bandwidth required for viewing the live stream. Width is computed to match known aspect ratio.
height: null
# -- Optional: Set the encode quality of the live stream (default: shown below)
# - 1 is the highest quality, and 31 is the lowest. Lower quality feeds utilize less CPU resources.
quality: null
timestamp_style:
# -- Enable it to add the configuration in the config file
render_config: false
# -- Optional: Position of the timestamp
# - "tl" (top left), "tr" (top right), "bl" (bottom left), "br" (bottom right)
position: ""
# -- Optional: Format specifier conform to the Python package "datetime"
# - Additional Examples:
# - german: "%d.%m.%Y %H:%M:%S"
format: ""
# -- Optional: Color of font
color:
# -- Enable it to add the configuration in the config file
render_config: false
# -- All Required when color is specified (default: shown below)
red: 255
green: 255
blue: 255
# -- Optional: Line thickness of font (default: shown below)
thickness: null
# -- Optional: Effect of lettering (default: shown below)
# - None (No effect),
# - "solid" (solid background in inverse color of font)
# - "shadow" (shadow for font)
effect: ""
cameras:
# -- Required: name of the camera
- camera_name: back
# -- Required: ffmpeg settings for the camera
ffmpeg:
# -- Required: A list of input streams for the camera. See documentation for more information.
inputs:
# -- Required: the path to the stream
- path: rtsp://viewer:password@10.0.10.10:554/cam/realmonitor?channel=1&subtype=2
# -- Required: list of roles for this stream. valid values are: detect,record,rtmp
# - NOTICE: In addition to assigning the record, and rtmp roles,
# - they must also be enabled in the camera config.
roles:
- detect
- rtmp
# -- Optional: stream specific global args
global_args: ""
# - Optional: stream specific hwaccel args
hwaccel_args: ""
# - Optional: stream specific input args
input_args: ""
# - Optional: stream specific output args
output_args:
detect: ""
record: ""
rtmp: ""
# -- Optional: camera specific global args
global_args: ""
# -- Optional: camera specific hwaccel args
hwaccel_args: ""
# -- Optional: camera specific input args
input_args: ""
# -- Optional: camera specific output args
output_args:
detect: ""
record: ""
rtmp: ""
# -- Optional: timeout for highest scoring image before allowing it
# - to be replaced by a newer image.
best_image_timeout: 60
# -- Optional: zones for this camera
zones:
# -- Required: name of the zone
# - NOTE: This must be different than any camera names, but can match with another zone on another camera
- name: front_steps
# -- Required: List of x,y coordinates to define the polygon of the zone.
# - NOTE: Presence in a zone is evaluated only based on the bottom center of the objects bounding box.
coordinates: 545,1077,747,939,788,805
# -- Optional: List of objects that can trigger this zone (default: all tracked objects)
objects: []
# - person
# -- Optional: Zone level object filters.
# -NOTE: The global and camera filters are applied upstream.
filters: []
# - object: person
# min_area: null
# max_area: null
# threshold: ""
# -- Optional: Configuration for the jpg snapshots published via MQTT
mqtt:
# -- Enable it to add the configuration in the config file
render_config: false
# -- Optional: Enable publishing snapshot via mqtt for camera
# - NOTE: Only applies to publishing image data to MQTT via 'frigate/<camera_name>/<object_name>/snapshot'.
# - All other messages will still be published.
enabled: true
# -- Optional: print a timestamp on the snapshots
timestamp: true
# -- Optional: draw bounding box on the snapshots
bounding_box: true
# -- Optional: crop the snapshot
crop: true
# -- Optional: height to resize the snapshot to
height: null
# -- Optional: jpeg encode quality
quality: null
# -- Optional: Restrict mqtt messages to objects that entered any of the listed zones
required_zones: []
# -- Optional: Configuration for how camera is handled in the GUI.
ui:
# -- Enable it to add the configuration in the config file
render_config: false
# -- Optional: Adjust sort order of cameras in the UI. Larger numbers come later
# - By default the cameras are sorted alphabetically.
order: null
# -- Optional: Whether or not to show the camera in the Frigate UI
dashboard: true
ingress:
rtmp:
autoLink: true
service:
main:
ports:
main:
port: 10500
protocol: http
targetPort: 5000
rtmp:
enabled: true
ports:
rtmp:
enabled: true
port: 1935
targetPort: 1935
persistence:
media:
enabled: true
mountPath: /media
db:
enabled: true
mountPath: /db
frigate-config:
enabled: true
mountPath: /config
type: configmap
objectName: frigate-config
items:
- key: config.yml
path: config.yml
portal:
open:
enabled: true

File diff suppressed because it is too large Load Diff

View File

@ -1 +0,0 @@
{{- include "tc.v1.common.lib.chart.notes" $ -}}

View File

@ -1,496 +0,0 @@
{{/* Define the configmap */}}
{{- define "frigate.configmap" -}}
enabled: true
data:
config.yml: |
database:
path: /db/frigate.db
mqtt:
{{- include "frigate.mqtt" .Values.frigate.mqtt | indent 6 }}
{{- if and .Values.frigate.detectors.render_config .Values.frigate.detectors.config }}
detectors:
{{- include "frigate.detectors" .Values.frigate.detectors | indent 6 }}
{{- end }}
{{- if .Values.frigate.model.render_config }}
model:
{{- include "frigate.model" .Values.frigate.model | indent 6 }}
{{- end }}
{{- if .Values.frigate.logger.render_config }}
logger:
{{- include "frigate.logger" .Values.frigate.logger | indent 6 }}
{{- end }}
{{- if .Values.frigate.birdseye.render_config }}
birdseye:
{{- include "frigate.birdseye" .Values.frigate.birdseye | indent 6 }}
{{- end }}
{{- if .Values.frigate.ffmpeg.render_config }}
ffmpeg:
{{- include "frigate.ffmpeg" .Values.frigate.ffmpeg | indent 6 }}
{{- end }}
{{- if .Values.frigate.detect.render_config }}
detect:
{{- include "frigate.detect" .Values.frigate.detect | indent 6 }}
{{- end -}}
{{- if .Values.frigate.objects.render_config }}
objects:
{{- include "frigate.objects" .Values.frigate.objects | indent 6 }}
{{- end }}
{{- if .Values.frigate.motion.render_config }}
motion:
{{- include "frigate.motion" .Values.frigate.motion | indent 6 }}
{{- end }}
{{- if .Values.frigate.record.render_config }}
record:
{{- include "frigate.record" .Values.frigate.record | indent 6 }}
{{- end }}
{{- if .Values.frigate.snapshots.render_config }}
snapshots:
{{- include "frigate.snapshots" .Values.frigate.snapshots | indent 6 }}
{{- end }}
{{- if .Values.frigate.rtmp.render_config }}
rtmp:
{{- include "frigate.rtmp" .Values.frigate.rtmp | indent 6 }}
{{- end }}
{{- if .Values.frigate.live.render_config }}
live:
{{- include "frigate.live" .Values.frigate.live | indent 6 }}
{{- end }}
{{- if .Values.frigate.timestamp_style.render_config }}
timestamp_style:
{{- include "frigate.timestamp_style" .Values.frigate.timestamp_style | indent 6 }}
{{- end }}
{{- $cameras := .Values.frigate.cameras }}
cameras:
{{- range $cam := $cameras }}
{{ $cam.camera_name | required "You need to provide a camera name" }}:
ffmpeg:
inputs:
{{- range $input := $cam.ffmpeg.inputs }}
- path: {{ $input.path | required "You need to provide a path" }}
roles:
{{- range $role := $input.roles }}
- {{ $role }}
{{- else -}}
{{- fail "You need to provide roles" -}}
{{- end -}}
{{- include "frigate.ffmpeg" $input | indent 14 }}
{{- end -}} {{/* End range $cam.ffmpeg.inputs */}}
{{- include "frigate.ffmpeg" $cam.ffmpeg | indent 10 }}
{{- with $cam.best_image_timeout }}
best_image_timeout: {{ . }}
{{- end -}}
{{- with $cam.zones }}
zones:
{{- range $zone := . }}
{{ $zone.name | required "You have to specify a zone name" }}:
coordinates: {{ required "You have to specify coordinates" .coordinates }}
{{- with $zone.objects }}
objects:
{{- range $obj := . }}
- {{ $obj }}
{{- end -}}
{{- end -}}
{{- with $zone.filters }}
filters:
{{- range $filter := . }}
{{ $filter.object | required "You have to specify an object" }}:
{{- with $filter.min_area }}
min_area: {{ . }}
{{- end -}}
{{- with $filter.max_area }}
max_area: {{ . }}
{{- end -}}
{{- with $filter.threshold }}
threshold: {{ . }}
{{- end -}}
{{- end -}} {{/* end range filters */}}
{{- end -}} {{/* end with filter */}}
{{- end -}} {{/* end range zones */}}
{{- end -}} {{/* end with zones */}}
{{- if $cam.mqtt.render_config -}}
{{- with $cam.mqtt }}
mqtt:
enabled: {{ ternary "True" "False" .enabled }}
timestamp: {{ ternary "True" "False" .timestamp }}
bounding_box: {{ ternary "True" "False" .bounding_box }}
crop: {{ ternary "True" "False" .crop }}
{{- with .height }}
height: {{ . }}
{{- end -}}
{{- with .quality }}
quality: {{ . }}
{{- end -}}
{{- with .required_zones }}
required_zones:
{{- range $zone := . }}
- {{ $zone }}
{{- end -}}
{{- end -}}
{{- end -}} {{/* end with mqtt */}}
{{- end -}} {{/* end if mqtt.render_config */}}
{{- if $cam.ui.render_config -}}
{{- with $cam.ui }}
ui:
{{- if not (kindIs "invalid" .order) }}
order: {{ .order }}
{{- end }}
dashboard: {{ ternary "True" "False" .dashboard }}
{{- end -}} {{/* end with ui */}}
{{- end -}} {{/* end if ui.render_config */}}
{{- end -}} {{/* end range cameras */}}
{{- end }}
{{- define "frigate.ffmpeg" -}}
{{- $ffmpeg := . -}}
{{- with $ffmpeg.global_args }}
global_args: {{ . }}
{{- end -}}
{{- with $ffmpeg.input_args }}
input_args: {{ . }}
{{- end -}}
{{- with $ffmpeg.hwaccel_args }}
hwaccel_args: {{ . }}
{{- end -}}
{{- if $ffmpeg.output_args -}}
{{- if or $ffmpeg.output_args.detect $ffmpeg.output_args.record $ffmpeg.output_args.rtmp }}
output_args:
{{- with $ffmpeg.output_args.detect }}
detect: {{ . }}
{{- end -}}
{{- with $ffmpeg.output_args.record }}
record: {{ . }}
{{- end -}}
{{- with $ffmpeg.output_args.rtmp }}
rtmp: {{ . }}
{{- end -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- define "frigate.detect" -}}
{{- $detect := . }}
enabled: {{ ternary "True" "False" $detect.enabled }}
{{- with $detect.width }}
width: {{ . }}
{{- end -}}
{{- with $detect.height }}
height: {{ . }}
{{- end -}}
{{- with $detect.fps }}
fps: {{ . }}
{{- end -}}
{{- with $detect.max_disappeared }}
max_disappeared: {{ . }}
{{- end -}}
{{- if or (not (kindIs "invalid" $detect.stationary.interval)) $detect.stationary.threshold $detect.stationary.set_max_frames }}
stationary:
{{- if not (kindIs "invalid" $detect.stationary.interval) }} {{/* invalid kind means its empty (0 is not empty) */}}
interval: {{ $detect.stationary.interval }}
{{- end -}}
{{- with $detect.stationary.threshold }}
threshold: {{ . }}
{{- end -}}
{{- if (hasKey $detect.stationary "max_frames") }}
{{- if or $detect.stationary.max_frames.default $detect.stationary.max_frames.objects }}
max_frames:
{{- with $detect.stationary.max_frames.default }}
default: {{ . }}
{{- end -}}
{{- with $detect.stationary.max_frames.objects }}
objects:
{{- range $obj := . }}
{{ $obj.object | required "You need to provide an object" }}: {{ $obj.frames | required "You need to provide frames" }}
{{- end -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- define "frigate.motion" -}}
{{- $motion := . -}}
{{- with $motion.threshold }}
threshold: {{ . }}
{{- end -}}
{{- with $motion.contour_area }}
contour_area: {{ . }}
{{- end -}}
{{- with $motion.delta_alpha }}
delta_alpha: {{ . }}
{{- end -}}
{{- with $motion.frame_alpha }}
frame_alpha: {{ . }}
{{- end -}}
{{- with $motion.frame_height }}
frame_height: {{ . }}
{{- end -}}
{{- with $motion.mask }}
mask: {{ . }}
{{- end }}
improve_contrast: {{ ternary "True" "False" $motion.improve_contrast }}
{{- with $motion.mqtt_off_delay }}
mqtt_off_delay: {{ . }}
{{- end -}}
{{- end -}}
{{- define "frigate.record" -}}
{{- $record := . }}
enabled: {{ ternary "True" "False" $record.enabled }}
{{- with $record.expire_interval }}
expire_interval: {{ . }}
{{- end -}}
{{- if $record.retain.render_config }}
retain:
{{- if not (kindIs "invalid" $record.retain.days) }}
days: {{ $record.retain.days }}
{{- end -}}
{{- with $record.retain.mode }}
mode: {{ . }}
{{- end -}}
{{- end -}}
{{- if $record.events.render_config }}
events:
{{- if not (kindIs "invalid" $record.events.pre_capture) }}
pre_capture: {{ $record.events.pre_capture }}
{{- end -}}
{{- if not (kindIs "invalid" $record.events.post_capture) }}
post_capture: {{ $record.events.post_capture }}
{{- end -}}
{{- with $record.events.objects }}
objects:
{{- range $obj := . }}
- {{ $obj }}
{{- end -}}
{{- end -}}
{{- with $record.events.required_zones }}
required_zones:
{{- range $zone := . }}
- {{ $zone }}
{{- end -}}
{{- end -}}
{{- if $record.events.retain.render_config }}
retain:
default: {{ $record.events.retain.default | required "You need to provide default retain days" }}
{{- with $record.events.retain.mode }}
mode: {{ . }}
{{- end -}}
{{- with $record.events.retain.objects }}
objects:
{{- range $obj := . }}
{{ $obj.object | required "You need to provide an object" }}: {{ $obj.days | required "You need to provide default retain days" }}
{{- end -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- define "frigate.objects" -}}
{{- $objects := . -}}
{{- with $objects.track }}
track:
{{- range $track := . }}
- {{ $track }}
{{- end -}}
{{- end -}}
{{- with $objects.mask }}
mask: {{ . }}
{{- end -}}
{{- with $objects.filters }}
filters:
{{- range $filter := . }}
{{ $filter.object | required "You need to provide an object" }}:
{{- with $filter.min_area }}
min_area: {{ . }}
{{- end -}}
{{- with $filter.max_area }}
max_area: {{ . }}
{{- end -}}
{{- with $filter.min_ratio }}
min_ratio: {{ . }}
{{- end -}}
{{- with $filter.max_ratio }}
max_ratio: {{ . }}
{{- end -}}
{{- with $filter.min_score }}
min_score: {{ . }}
{{- end -}}
{{- with $filter.threshold }}
threshold: {{ . }}
{{- end -}}
{{- with $filter.mask }}
mask: {{ . }}
{{- end -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- define "frigate.birdseye" -}}
{{- $birdseye := . }}
enabled: {{ ternary "True" "False" $birdseye.enabled }}
{{- with $birdseye.width }}
width: {{ . }}
{{- end -}}
{{- with $birdseye.height }}
height: {{ . }}
{{- end -}}
{{- with $birdseye.quality }}
quality: {{ . }}
{{- end -}}
{{- with $birdseye.mode }}
mode: {{ . }}
{{- end -}}
{{- end -}}
{{- define "frigate.timestamp_style" -}}
{{- $timestamp_style := . -}}
{{- with $timestamp_style.position }}
position: {{ . }}
{{- end -}}
{{- with $timestamp_style.format }}
format: {{ . }}
{{- end -}}
{{- if $timestamp_style.color.render_config }}
color:
red: {{ $timestamp_style.color.red }}
green: {{ $timestamp_style.color.green }}
blue: {{ $timestamp_style.color.blue }}
{{- end -}}
{{- with $timestamp_style.thickness }}
thickness: {{ . }}
{{- end -}}
{{- with $timestamp_style.effect }}
effect: {{ $timestamp_style.effect }}
{{- end -}}
{{- end -}}
{{- define "frigate.live" -}}
{{- $live := . -}}
{{- with $live.height }}
height: {{ . }}
{{- end -}}
{{- with $live.quality }}
quality: {{ . }}
{{- end -}}
{{- end -}}
{{- define "frigate.rtmp" -}}
{{- $rtmp := . }}
enabled: {{ ternary "True" "False" $rtmp.enabled }}
{{- end -}}
{{- define "frigate.snapshots" -}}
{{- $snapshots := . }}
enabled: {{ ternary "True" "False" $snapshots.enabled }}
clean_copy: {{ ternary "True" "False" $snapshots.clean_copy }}
timestamp: {{ ternary "True" "False" $snapshots.timestamp }}
bounding_box: {{ ternary "True" "False" $snapshots.bounding_box }}
crop: {{ ternary "True" "False" $snapshots.crop }}
{{- with $snapshots.height }}
height: {{ . }}
{{- end -}}
{{- with $snapshots.required_zones }}
required_zones:
{{- range $zone := . }}
- {{ $zone }}
{{- end -}}
{{- end -}}
{{- if $snapshots.retain.render_config }}
retain:
default: {{ $snapshots.retain.default | required "You need to provide default retain days" }}
{{- with $snapshots.retain.objects }}
objects:
{{- range $obj := . }}
{{ $obj.object | required "You need to provide an object" }}: {{ $obj.days | required "You need to provide default retain days" }}
{{- end -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- define "frigate.detectors" -}}
{{- $detectors := . -}}
{{- range $detector := $detectors.config }}
{{ $detector.name | required "You need to provide a detector name" }}:
type: {{ $detector.type | required "You need to provide a detector type" }}
{{- with $detector.device }}
device: {{ . }}
{{- end -}}
{{- with $detector.num_threads }}
num_threads: {{ . }}
{{- end -}}
{{- end -}}
{{- end -}}
{{- define "frigate.model" -}}
{{ $model := . }}
width: {{ $model.width | required "You need to provide a model width" }}
height: {{ $model.height | required "You need to provide a model height" }}
{{- with $model.path }}
path: {{ . }}
{{- end -}}
{{- with $model.labelmap_path }}
labelmap_path: {{ . }}
{{- end -}}
{{- with $model.labelmap }}
labelmap:
{{- range $lmap := . }}
{{ $lmap.model | required "You need to provide a labelmap model" }}: {{ $lmap.name | required "You need to provide a labelmap name" }}
{{- end -}}
{{- end -}}
{{- end -}}
{{- define "frigate.logger" -}}
{{- $logger := . }}
default: {{ $logger.default }}
{{- with $logger.logs }}
logs:
{{- range $log := . }}
{{ $log.component | required "You need to provide a logger cmponent" }}: {{ $log.verbosity | required "You need to provide logger verbosity" }}
{{- end -}}
{{- end -}}
{{- end -}}
{{- define "frigate.mqtt" -}}
{{- $mqtt := . }}
{{- if $mqtt.render_config }}
enabled: {{ ternary "True" "False" $mqtt.enabled }}
host: {{ required "You need to provide an MQTT host" $mqtt.host }}
{{- with $mqtt.port }}
port: {{ . }}
{{- end -}}
{{- with $mqtt.topic_prefix }}
topic_prefix: {{ . }}
{{- end -}}
{{- with $mqtt.client_id }}
client_id: {{ . }}
{{- end -}}
{{- if not (kindIs "invalid" $mqtt.stats_interval) }}
stats_interval: {{ $mqtt.stats_interval }}
{{- end -}}
{{- with $mqtt.user }}
user: {{ . }}
{{- end -}}
{{- with $mqtt.password }}
password: {{ . }}
{{- end -}}
{{- end -}}
{{- end -}}

View File

@ -1,11 +0,0 @@
{{/* Make sure all variables are set properly */}}
{{- include "tc.v1.common.loader.init" . }}
{{/* Render configmap for frigate */}}
{{- $config := include "frigate.configmap" . | fromYaml -}}
{{- if $config -}}
{{- $_ := set .Values.configmap "frigate-config" $config -}}
{{- end -}}
{{/* Render the templates */}}
{{ include "tc.v1.common.loader.apply" . }}

View File

@ -1,99 +0,0 @@
**Important:**
*for the complete changelog, please refer to the website*
## [frigate-9.0.4](https://github.com/truecharts/charts/compare/frigate-9.0.3...frigate-9.0.4) (2023-06-24)
### Feat
- Update to 0.12.1 ([#9861](https://github.com/truecharts/charts/issues/9861))
## [frigate-9.0.3](https://github.com/truecharts/charts/compare/frigate-9.0.2...frigate-9.0.3) (2023-06-16)
## [frigate-9.0.2](https://github.com/truecharts/charts/compare/frigate-9.0.1...frigate-9.0.2) (2023-06-13)
### Chore
- update helm chart common to 12.14.2 ([#9599](https://github.com/truecharts/charts/issues/9599))
## [frigate-9.0.1](https://github.com/truecharts/charts/compare/frigate-9.0.0...frigate-9.0.1) (2023-06-11)
### Chore
- update helm general non-major ([#9558](https://github.com/truecharts/charts/issues/9558))
## [frigate-9.0.0](https://github.com/truecharts/charts/compare/frigate-8.0.4...frigate-9.0.0) (2023-06-10)
### Chore
- BREAKING CHANGE - Allow native helm users to use 1:1 configuration, and scale users to define a hostpath config file ([#9575](https://github.com/truecharts/charts/issues/9575))
## [frigate-8.0.4](https://github.com/truecharts/charts/compare/frigate-8.0.3...frigate-8.0.4) (2023-06-07)
### Chore
- update helm general non-major ([#9457](https://github.com/truecharts/charts/issues/9457))
## [frigate-8.0.3](https://github.com/truecharts/charts/compare/frigate-8.0.2...frigate-8.0.3) (2023-06-07)
### Chore
- update helm general non-major ([#9423](https://github.com/truecharts/charts/issues/9423))
## [frigate-8.0.2](https://github.com/truecharts/charts/compare/frigate-8.0.1...frigate-8.0.2) (2023-06-06)
### Fix
- Fix questions default value ([#9414](https://github.com/truecharts/charts/issues/9414))
## [frigate-8.0.1](https://github.com/truecharts/charts/compare/frigate-8.0.0...frigate-8.0.1) (2023-06-04)
## [frigate-8.0.0](https://github.com/truecharts/charts/compare/frigate-7.0.1...frigate-8.0.0) (2023-06-04)
## [frigate-7.0.1](https://github.com/truecharts/charts/compare/frigate-7.0.0...frigate-7.0.1) (2023-06-04)
### Chore
- update helm general non-major ([#9393](https://github.com/truecharts/charts/issues/9393))
## [frigate-7.0.0](https://github.com/truecharts/charts/compare/frigate-6.0.2...frigate-7.0.0) (2023-06-01)
### Feat
- hide advanced ingress options behind checbox ([#9203](https://github.com/truecharts/charts/issues/9203))
- port to new common ([#9141](https://github.com/truecharts/charts/issues/9141))

View File

@ -1,30 +0,0 @@
apiVersion: v2
appVersion: "0.12.1"
dependencies:
- name: common
repository: https://library-charts.truecharts.org
version: 12.14.2
deprecated: false
description: NVR With Realtime Object Detection for IP Cameras
home: https://truecharts.org/charts/incubator/frigate
icon: https://truecharts.org/img/hotlink-ok/chart-icons/frigate.png
keywords:
- encode
- nvr
- media
- frigate
kubeVersion: ">=1.16.0-0"
maintainers:
- email: info@truecharts.org
name: TrueCharts
url: https://truecharts.org
name: frigate
sources:
- https://github.com/truecharts/charts/tree/master/charts/incubator/frigate
- https://github.com/blakeblackshear/frigate
type: application
version: 9.0.4
annotations:
truecharts.org/catagories: |
- nvr
truecharts.org/SCALE-support: "true"

View File

@ -1,27 +0,0 @@
# README
## General Info
TrueCharts can be installed as both *normal* Helm Charts or as Apps on TrueNAS SCALE.
However only installations using the TrueNAS SCALE Apps system are supported.
For more information about this App, please check the docs on the TrueCharts [website](https://truecharts.org/charts/incubator/)
**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)**
## Support
- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE/guides/scale-intro).
- See the [Website](https://truecharts.org)
- Check our [Discord](https://discord.gg/tVsPTHWTtr)
- Open a [issue](https://github.com/truecharts/charts/issues/new/choose)
---
## Sponsor TrueCharts
TrueCharts can only exist due to the incredible effort of our staff.
Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can!
*All Rights Reserved - The TrueCharts Project*

View File

@ -1,9 +0,0 @@
## [frigate-9.0.4](https://github.com/truecharts/charts/compare/frigate-9.0.3...frigate-9.0.4) (2023-06-24)
### Feat
- Update to 0.12.1 ([#9861](https://github.com/truecharts/charts/issues/9861))

View File

@ -1,8 +0,0 @@
NVR With Realtime Object Detection for IP Cameras
This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/charts/incubator/frigate](https://truecharts.org/charts/incubator/frigate)
---
TrueCharts can only exist due to the incredible effort of our staff.
Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can!

View File

@ -1,97 +0,0 @@
image:
repository: tccr.io/truecharts/frigate
pullPolicy: IfNotPresent
tag: v0.12.1@sha256:71c83d1c5454bfee190b450ab89b2889352688b8cf3f832782a47ed82e2c604d
# When this is defined, the contents will be mounted
# as configmap into the container at /config/config.yml.
frigateConfig:
{}
# -- https://docs.frigate.video/configuration/
# mqtt:
# enabled: False
# cameras:
# dummy:
# enabled: False
# ffmpeg:
# inputs:
# - path: rtsp://127.0.0.1:554/rtsp
# roles:
# - detect
workload:
main:
podSpec:
initContainers:
init-config:
enabled: "{{ not .Values.frigateConfig }}"
type: init
imageSelector: alpineImage
command:
- /bin/sh
- -c
- |
mkdir -p /config
if [ ! -f /config/config.yml ]; then
echo "Config file not found, copying dummy..."
cp /dummy-config/config.yml.dummy /config/config.yml
echo "Config file copied, you can now edit it at /config/config.yml"
fi
securityContext:
container:
readOnlyRootFilesystem: false
runAsNonRoot: false
runAsUser: 0
runAsGroup: 0
service:
main:
ports:
main:
port: 10500
protocol: http
targetPort: 5000
rtmp:
enabled: true
ports:
rtmp:
enabled: true
port: 1935
targetPort: 1935
rtsp:
enabled: true
ports:
rtsp:
enabled: true
port: 8554
targetPort: 8554
webrtc:
enabled: true
ports:
webrtc-tcp:
enabled: true
port: 8555
targetPort: 8555
webrtc-udp:
enabled: true
port: 8555
protocol: udp
targetPort: 8555
persistence:
media:
enabled: true
mountPath: /media
config:
# Only enable when not using frigateConfig
enabled: false
mountPath: /config
targetSelector:
main:
main: {}
init-config: {}
portal:
open:
enabled: true

File diff suppressed because it is too large Load Diff

View File

@ -1 +0,0 @@
{{- include "tc.v1.common.lib.chart.notes" $ -}}

View File

@ -1,42 +0,0 @@
{{/* Define the configmap */}}
{{- define "frigate.configmap" -}}
enabled: true
data:
{{- if .Values.frigateConfig }}
config.yml: |
{{- .Values.frigateConfig | toYaml | nindent 4 }}
{{- else }}
config.yml.dummy: |
mqtt:
enabled: false
cameras:
dummy:
enabled: false
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:554/rtsp
roles:
- detect
{{- end }}
{{- end -}}
{{- define "frigate.configVolume" -}}
enabled: true
type: configmap
objectName: frigate-config
targetSelector:
main:
main: {}
init-config: {}
{{- if .Values.frigateConfig }}
mountPath: /config
items:
- key: config.yml
path: config.yml
{{- else }}
mountPath: /dummy-config
items:
- key: config.yml.dummy
path: config.yml.dummy
{{- end -}}
{{- end -}}

View File

@ -1,20 +0,0 @@
{{/* Make sure all variables are set properly */}}
{{- include "tc.v1.common.loader.init" . }}
{{/* Render configmap for frigate */}}
{{- $config := include "frigate.configmap" . | fromYaml -}}
{{- if $config -}}
{{- $_ := set .Values.configmap "frigate-config" $config -}}
{{- end -}}
{{- if not .Values.frigateConfig -}}
{{- $_ := set .Values.persistence.config "enabled" true -}}
{{- end -}}
{{- $vol := include "frigate.configVolume" . | fromYaml -}}
{{- if $vol -}}
{{- $_ := set .Values.persistence "frigate-config" $vol -}}
{{- end -}}
{{/* Render the templates */}}
{{ include "tc.v1.common.loader.apply" . }}

View File

@ -1,5 +0,0 @@
icon_url: https://truecharts.org/img/hotlink-ok/chart-icons/frigate.png
categories:
- nvr
screenshots: []

View File

@ -1,88 +0,0 @@
**Important:**
*for the complete changelog, please refer to the website*
## [invidious-4.0.0](https://github.com/truecharts/charts/compare/invidious-3.0.0...invidious-4.0.0) (2023-06-01)
### Feat
- hide advanced ingress options behind checbox ([#9203](https://github.com/truecharts/charts/issues/9203))
- Invidious port ([#9283](https://github.com/truecharts/charts/issues/9283))
## [invidious-3.0.0](https://github.com/truecharts/charts/compare/invidious-2.0.12...invidious-3.0.0) (2023-05-24)
## [invidious-3.0.0](https://github.com/truecharts/charts/compare/invidious-2.0.12...invidious-3.0.0) (2023-05-24)
## [invidious-3.0.0](https://github.com/truecharts/charts/compare/invidious-2.0.12...invidious-3.0.0) (2023-05-24)
## [invidious-3.0.0](https://github.com/truecharts/charts/compare/invidious-2.0.12...invidious-3.0.0) (2023-05-24)
## [invidious-3.0.0](https://github.com/truecharts/charts/compare/invidious-2.0.12...invidious-3.0.0) (2023-05-24)
## [invidious-3.0.0](https://github.com/truecharts/charts/compare/invidious-2.0.12...invidious-3.0.0) (2023-05-24)
## [invidious-3.0.0](https://github.com/truecharts/charts/compare/invidious-2.0.12...invidious-3.0.0) (2023-05-24)
## [invidious-3.0.0](https://github.com/truecharts/charts/compare/invidious-2.0.12...invidious-3.0.0) (2023-05-24)
## [invidious-3.0.0](https://github.com/truecharts/charts/compare/invidious-2.0.12...invidious-3.0.0) (2023-05-24)
## [invidious-3.0.0](https://github.com/truecharts/charts/compare/invidious-2.0.12...invidious-3.0.0) (2023-05-24)
## [invidious-3.0.0](https://github.com/truecharts/charts/compare/invidious-2.0.12...invidious-3.0.0) (2023-05-24)
## [invidious-3.0.0](https://github.com/truecharts/charts/compare/invidious-2.0.12...invidious-3.0.0) (2023-05-24)
## [invidious-3.0.0](https://github.com/truecharts/charts/compare/invidious-2.0.12...invidious-3.0.0) (2023-05-24)
## [invidious-3.0.0](https://github.com/truecharts/charts/compare/invidious-2.0.12...invidious-3.0.0) (2023-05-24)
## [invidious-3.0.0](https://github.com/truecharts/charts/compare/invidious-2.0.12...invidious-3.0.0) (2023-05-24)

View File

@ -1,29 +0,0 @@
apiVersion: v2
appVersion: "latest"
dependencies:
- name: common
repository: https://library-charts.truecharts.org
version: 12.10.4
description: Open source alternative front-end to YouTube.
home: https://truecharts.org/charts/incubator/invidious
icon: https://truecharts.org/img/hotlink-ok/chart-icons/invidious.png
keywords:
- invidious
- youtube
- media
kubeVersion: ">=1.16.0-0"
maintainers:
- email: info@truecharts.org
name: TrueCharts
url: https://truecharts.org
name: invidious
sources:
- https://github.com/truecharts/charts/tree/master/charts/incubator/invidious
- https://github.com/iv-org/invidious
- https://docs.invidious.io/installation/#docker
version: 4.0.0
annotations:
truecharts.org/catagories: |
- media
truecharts.org/SCALE-support: "true"
truecharts.org/grade: U

View File

@ -1,106 +0,0 @@
Business Source License 1.1
Parameters
Licensor: The TrueCharts Project, it's owner and it's contributors
Licensed Work: The TrueCharts "Blocky" Helm Chart
Additional Use Grant: You may use the licensed work in production, as long
as it is directly sourced from a TrueCharts provided
official repository, catalog or source. You may also make private
modification to the directly sourced licenced work,
when used in production.
The following cases are, due to their nature, also
defined as 'production use' and explicitly prohibited:
- Bundling, including or displaying the licensed work
with(in) another work intended for production use,
with the apparent intend of facilitating and/or
promoting production use by third parties in
violation of this license.
Change Date: 2050-01-01
Change License: 3-clause BSD license
For information about alternative licensing arrangements for the Software,
please contact: legal@truecharts.org
Notice
The Business Source License (this document, or the “License”) is not an Open
Source license. However, the Licensed Work will eventually be made available
under an Open Source License, as stated in this License.
License text copyright (c) 2017 MariaDB Corporation Ab, All Rights Reserved.
“Business Source License” is a trademark of MariaDB Corporation Ab.
-----------------------------------------------------------------------------
Business Source License 1.1
Terms
The Licensor hereby grants you the right to copy, modify, create derivative
works, redistribute, and make non-production use of the Licensed Work. The
Licensor may make an Additional Use Grant, above, permitting limited
production use.
Effective on the Change Date, or the fourth anniversary of the first publicly
available distribution of a specific version of the Licensed Work under this
License, whichever comes first, the Licensor hereby grants you rights under
the terms of the Change License, and the rights granted in the paragraph
above terminate.
If your use of the Licensed Work does not comply with the requirements
currently in effect as described in this License, you must purchase a
commercial license from the Licensor, its affiliated entities, or authorized
resellers, or you must refrain from using the Licensed Work.
All copies of the original and modified Licensed Work, and derivative works
of the Licensed Work, are subject to this License. This License applies
separately for each version of the Licensed Work and the Change Date may vary
for each version of the Licensed Work released by Licensor.
You must conspicuously display this License on each original or modified copy
of the Licensed Work. If you receive the Licensed Work in original or
modified form from a third party, the terms and conditions set forth in this
License apply to your use of that work.
Any use of the Licensed Work in violation of this License will automatically
terminate your rights under this License for the current and all other
versions of the Licensed Work.
This License does not grant you any right in any trademark or logo of
Licensor or its affiliates (provided that you may use a trademark or logo of
Licensor as expressly required by this License).
TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON
AN “AS IS” BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS,
EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND
TITLE.
MariaDB hereby grants you permission to use this Licenses text to license
your works, and to refer to it using the trademark “Business Source License”,
as long as you comply with the Covenants of Licensor below.
Covenants of Licensor
In consideration of the right to use this Licenses text and the “Business
Source License” name and trademark, Licensor covenants to MariaDB, and to all
other recipients of the licensed work to be provided by Licensor:
1. To specify as the Change License the GPL Version 2.0 or any later version,
or a license that is compatible with GPL Version 2.0 or a later version,
where “compatible” means that software provided under the Change License can
be included in a program with software provided under GPL Version 2.0 or a
later version. Licensor may specify additional Change Licenses without
limitation.
2. To either: (a) specify an additional grant of rights to use that does not
impose any additional restriction on the right granted in this License, as
the Additional Use Grant; or (b) insert the text “None”.
3. To specify a Change Date.
4. Not to modify this License in any other way.

View File

@ -1,27 +0,0 @@
# README
## General Info
TrueCharts can be installed as both *normal* Helm Charts or as Apps on TrueNAS SCALE.
However only installations using the TrueNAS SCALE Apps system are supported.
For more information about this App, please check the docs on the TrueCharts [website](https://truecharts.org/charts/incubator/)
**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)**
## Support
- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE%20Apps/Important-MUST-READ).
- See the [Website](https://truecharts.org)
- Check our [Discord](https://discord.gg/tVsPTHWTtr)
- Open a [issue](https://github.com/truecharts/charts/issues/new/choose)
---
## Sponsor TrueCharts
TrueCharts can only exist due to the incredible effort of our staff.
Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can!
*All Rights Reserved - The TrueCharts Project*

View File

@ -1,10 +0,0 @@
## [invidious-4.0.0](https://github.com/truecharts/charts/compare/invidious-3.0.0...invidious-4.0.0) (2023-06-01)
### Feat
- hide advanced ingress options behind checbox ([#9203](https://github.com/truecharts/charts/issues/9203))
- Invidious port ([#9283](https://github.com/truecharts/charts/issues/9283))

View File

@ -1,8 +0,0 @@
Open source alternative front-end to YouTube.
This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/charts/incubator/invidious](https://truecharts.org/charts/incubator/invidious)
---
TrueCharts can only exist due to the incredible effort of our staff.
Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can!

View File

@ -1,177 +0,0 @@
image:
repository: tccr.io/truecharts/invidious
pullPolicy: IfNotPresent
tag: latest@sha256:3bb9e44e7d69baf91728c0a88115ef5fdb3adc91432b851e11e4d0e78bbe6e7a
securityContext:
container:
readOnlyRootFilesystem: false
runAsNonRoot: false
runAsGroup: 0
runAsUser: 0
service:
main:
ports:
main:
port: 10594
protocol: http
workload:
main:
podSpec:
initContainers:
dbseed:
type: install
enabled: true
imageSelector: postgresClientImage
env:
POSTGRES_DB:
secretKeyRef:
name: cnpg-main-urls
key: std
POSTGRES_USER: "{{ .Values.cnpg.main.user }}"
# PG* variables are for the psql client
PGPORT: "5432"
PGPASSWORD:
secretKeyRef:
name: cnpg-main-user
key: password
command: ["sh", "-c"]
args:
- |
echo "Starting DB Seed..."
mkdir -p invidious && cd invidious
echo "Fetching seed files..."
git init && \
git remote add invidious https://github.com/iv-org/invidious.git && \
git fetch invidious && \
# Fetch config and docker dirs
git checkout invidious/master -- docker config
# Move config into docker dir
echo "Preparing directory structure..."
mv -fv config docker
echo "Performing the seed..."
cd docker
./init-invidious-db.sh
containers:
main:
probes:
liveness:
type: http
readiness:
type: http
startup:
type: http
envFrom:
- configMapRef:
name: invidious-config
invidious:
network:
inbound:
external_port: 10594
https_only: false
domain: ""
hsts: true
outbound:
disable_proxy: false
pool_size: 100
use_quic: false
cookies: []
force_resolve: "ipv4"
logging:
output: STDOUT
log_level: "Info"
features:
popular_enabled: true
statistics_enabled: false
users_accounts:
registration_enabled: true
login_enabled: true
captcha_enabled: true
admins: []
background_jobs:
channel_threads: 1
channel_refresh_interval: 30m
full_refresh: false
feed_threads: 1
decrypt_polling: false
jobs:
clear_expired_items:
enable: true
refresh_channels:
enable: true
refresh_feeds:
enable: true
captcha:
captcha_api_url: "https://api.anti-captcha.com"
captcha_key: ""
miscellaneous:
banner: ""
use_pubsub_feeds: false
hmac_key: ""
dmca_content: []
cache_annotations: false
playlist_length_limit: 500
default_user_preferences:
internationalization:
locale: en-US
region: US
captions: []
interface:
dark_mode: dark
thin_mode: false
feed_menu: []
default_home: Popular
max_results: 40
annotations: false
annotations_subscribed: false
comments: []
player_style: invidious
related_videos: true
video_player_behavior:
autoplay: false
continue: false
continue_autoplay: true
listen: false
video_loop: false
video_playback_settings:
quality: hd720
quality_dash: auto
speed: 1.00
volume: 100
vr_mode: true
subscription_feed:
latest_only: false
notifications_only: false
unseen_only: false
sort: published
miscellaneous:
local: false
show_nick: true
automatic_instance_redirect: false
extend_desc: false
cnpg:
main:
enabled: true
database: invidious
# DB User cannot be changed
# hardcoded from upstream
username: kemal
portal:
open:
enabled: true

File diff suppressed because it is too large Load Diff

View File

@ -1,175 +0,0 @@
{{/* Define the configmap */}}
{{- define "invidious.config" -}}
{{- $vNet := .Values.invidious.network }}
{{- $vLog := .Values.invidious.logging }}
{{- $vFeat := .Values.invidious.features }}
{{- $vUserAcc := .Values.invidious.users_accounts }}
{{- $vBgJobs := .Values.invidious.background_jobs }}
{{- $vJobs := .Values.invidious.jobs }}
{{- $vCaptca := .Values.invidious.captcha }}
{{- $vMisc := .Values.invidious.miscellaneous }}
{{- $vLoc := .Values.invidious.default_user_preferences.internationalization }}
{{- $vUI := .Values.invidious.default_user_preferences.interface }}
{{- $vVidBeh := .Values.invidious.default_user_preferences.video_player_behavior }}
{{- $vVidPlay := .Values.invidious.default_user_preferences.video_playback_settings }}
{{- $vSubFeed := .Values.invidious.default_user_preferences.subscription_feed }}
{{- $vUserMisc := .Values.invidious.default_user_preferences.miscellaneous }}
enabled: true
data:
INVIDIOUS_CONFIG: |
# Database
check_tables: true
db:
user: {{ .Values.cnpg.main.user }}
dbname: {{ .Values.cnpg.main.database }}
password: {{ .Values.cnpg.main.creds.password }}
host: {{ .Values.cnpg.main.creds.host }}
port: 5432
# Network
host_binding: 0.0.0.0
port: {{ .Values.service.main.ports.main.port }}
external_port: {{ $vNet.inbound.external_port }}
https_only: {{ $vNet.inbound.https_only }}
domain: {{ $vNet.inbound.domain }}
hsts: {{ $vNet.inbound.hsts }}
disable_proxy: {{ $vNet.outbound.disable_proxy }}
pool_size: {{ $vNet.outbound.pool_size }}
use_quic: {{ $vNet.outbound.use_quic }}
cookies: {{ join "; " $vNet.outbound.cookies }}
force_resolve: {{ $vNet.outbound.force_resolve }}
# Logging
output: {{ $vLog.output }}
log_level: {{ $vLog.log_level }}
# Features
popular_enabled: {{ $vFeat.popular_enabled }}
statistics_enabled: {{ $vFeat.statistics_enabled }}
# Users and Accounts
registration_enabled: {{ $vUserAcc.registration_enabled }}
login_enabled: {{ $vUserAcc.login_enabled }}
captcha_enabled: {{ $vUserAcc.captcha_enabled }}
{{- if $vUserAcc.admins }}
admins:
{{- range $vUserAcc.admins }}
- {{ . }}
{{- end }}
{{- else }}
admins: [""]
{{- end }}
# Background Jobs
channel_threads: {{ $vBgJobs.channel_threads }}
channel_refresh_interval: {{ $vBgJobs.channel_refresh_interval }}
full_refresh: {{ $vBgJobs.full_refresh }}
feed_threads: {{ $vBgJobs.feed_threads }}
decrypt_polling: {{ $vBgJobs.decrypt_polling }}
# Jobs
jobs:
clear_expired_items:
enable: {{ $vJobs.clear_expired_items.enable }}
refresh_channels:
enable: {{ $vJobs.refresh_channels.enable }}
refresh_feeds:
enable: {{ $vJobs.refresh_feeds.enable }}
# Captcha
captcha_api_url: {{ $vCaptca.captca_api_url }}
captcha_key: {{ $vCaptca.captca_key }}
# Miscellaneaous
banner: {{ $vMisc.banner }}
use_pubsub_feeds: {{ $vMisc.use_pubsub_feeds }}
hmac_key: {{ $vMisc.hmac_key }}
{{- if $vMisc.dmca_content }}
dmca_content:
{{- range $vMisc.dmca_content }}
- {{ . }}
{{- end }}
{{- else }}
dmca_content: [""]
{{- end }}
cache_annotations: {{ $vMisc.cache_annotations }}
playlist_length_limit: {{ $vMisc.playlist_length_limit }}
modified_source_code_url: ""
# Default User Preferences
default_user_preferences:
# Internationalization
locale: {{ $vLoc.locale }}
region: {{ $vLoc.region }}
{{- with $vLoc.captions -}}
{{- if ne (len .) 3 -}}
{{- fail "Exactly 3 entries are required for Captions" -}}
{{- end }}
captions:
{{- range $c := . }}
- {{ $c }}
{{- end -}}
{{- else }}
captions: ["","",""]
{{- end }}
# Interface
dark_mode: {{ $vUI.dark_mode }}
thin_mode: {{ $vUI.thin_mode }}
{{- with $vUI.feed_menu }}
{{- if gt (len . ) 4 -}}
{{- fail "Max 4 Feed menu items are accepted" -}}
{{- end }}
feed_menu:
{{- range $f := . }}
- {{ $f }}
{{- end -}}
{{- else }}
feed_menu: ["Popular", "Trending", "Subscriptions", "Playlists"]
{{- end }}
default_home: {{ $vUI.default_home }}
max_results: {{ $vUI.max_results }}
annotations: {{ $vUI.annotations }}
annotations_subscribed: {{ $vUI.annotations_subscribed }}
{{- with $vUI.comments }}
{{- if ne (len .) 2 -}}
{{- fail "Exactly 2 entries are required for comments" -}}
{{- end }}
comments:
{{- range $c := . }}
- {{ $c }}
{{- end }}
{{- else }}
comments: ["youtube", ""]
{{- end }}
player_style: {{ $vUI.player_style }}
related_videos: {{ $vUI.related_videos }}
# Video Player Behaviour
autoplay: {{ $vVidBeh.autoplay }}
continue: {{ $vVidBeh.continue }}
continue_autoplay: {{ $vVidBeh.continue_autoplay }}
listen: {{ $vVidBeh.listen }}
video_loop: {{ $vVidBeh.video_loop }}
# Video Playback Settigns
quality: {{ $vVidPlay.quality }}
quality_dash: {{ $vVidPlay.quality_dash }}
speed: {{ printf "%.2f" ($vVidPlay.speed | float64) }}
volume: {{ $vVidPlay.volume }}
vr_mode: {{ $vVidPlay.vr_mode }}
# Subscription Feed
latest_only: {{ $vSubFeed.latest_only }}
notifications_only: {{ $vSubFeed.notifications_only }}
unseen_only: {{ $vSubFeed.unseen_only }}
sort: {{ $vSubFeed.sort }}
# Miscellaneous
local: {{ $vUserMisc.local }}
show_nick: {{ $vUserMisc.show_nick }}
automatic_instance_redirect: {{ $vUserMisc.automatic_instance_redirect }}
extend_desc: {{ $vUserMisc.extend_desc }}
{{- end -}}

View File

@ -1,11 +0,0 @@
{{/* Make sure all variables are set properly */}}
{{- include "tc.v1.common.loader.init" . }}
{{/* Render configmap for invidious */}}
{{- $configmapFile := include "invidious.config" . | fromYaml -}}
{{- if $configmapFile -}}
{{- $_ := set .Values.configmap "invidious-config" $configmapFile -}}
{{- end -}}
{{/* Render the templates */}}
{{ include "tc.v1.common.loader.apply" . }}

View File

@ -1,4 +0,0 @@
icon_url: https://truecharts.org/img/hotlink-ok/chart-icons/invidious.png
categories:
- media

View File

@ -1,8 +0,0 @@
**Important:**
*for the complete changelog, please refer to the website*
## [mc-router-0.0.1]mc-router-0.0.1 (2023-06-27)

View File

@ -1,28 +0,0 @@
apiVersion: v2
appVersion: "1.18.1"
dependencies:
- name: common
repository: https://library-charts.truecharts.org
version: 12.14.6
deprecated: false
description: Routes Minecraft client connections to backend servers.
home: https://truecharts.org/charts/incubator/mc-router
icon: https://truecharts.org/img/hotlink-ok/chart-icons/mc-router.png
keywords:
- mc-router
- minecraft
kubeVersion: ">=1.16.0-0"
maintainers:
- email: info@truecharts.org
name: TrueCharts
url: https://truecharts.org
name: mc-router
sources:
- https://github.com/truecharts/charts/tree/master/charts/incubator/mc-router
- https://github.com/itzg/mc-router
type: application
version: 0.0.1
annotations:
truecharts.org/catagories: |
- minecraft
truecharts.org/SCALE-support: "true"

View File

@ -1 +0,0 @@
# README

View File

@ -1,4 +0,0 @@
## [mc-router-0.0.1]mc-router-0.0.1 (2023-06-27)

View File

@ -1,8 +0,0 @@
Routes Minecraft client connections to backend servers.
This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/charts/incubator/mc-router](https://truecharts.org/charts/incubator/mc-router)
---
TrueCharts can only exist due to the incredible effort of our staff.
Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can!

View File

@ -1,43 +0,0 @@
image:
repository: tccr.io/truecharts/mc-router
pullPolicy: IfNotPresent
tag: v1.18.1@sha256:24c0c3e65c62a54eabf1a461ad8d0789d444f9b93c130d5720c249b703dafc23
service:
main:
ports:
main:
port: 25564
minecraft:
enabled: true
ports:
minecraft:
enabled: true
port: 25565
mcrouter:
host_minecraft:
- "minecraft.local=localhost:25566"
workload:
main:
podSpec:
containers:
main:
probes:
liveness:
enabled: false
readiness:
enabled: false
startup:
enabled: false
envFrom:
- secretRef:
name: "secrets"
env:
API_BINDING: ":{{ .Values.service.main.ports.main.port }}"
PORT: "{{ .Values.service.minecraft.ports.minecraft.port }}"
portal:
open:
enabled: false

File diff suppressed because it is too large Load Diff

View File

@ -1 +0,0 @@
{{- include "tc.v1.common.lib.chart.notes" $ -}}

View File

@ -1,8 +0,0 @@
{{/* Define the secrets */}}
{{- define "mcrouter.secrets" -}}
{{- $mcrouter := .Values.mcrouter }}
enabled: true
data:
MAPPING: {{ join "," $mcrouter.host_minecraft }}
{{- end -}}

View File

@ -1,11 +0,0 @@
{{/* Make sure all variables are set properly */}}
{{- include "tc.v1.common.loader.init" . }}
{{/* Render secrets for mcrouter */}}
{{- $secrets := include "mcrouter.secrets" . | fromYaml -}}
{{- if $secrets -}}
{{- $_ := set .Values.secret "secrets" $secrets -}}
{{- end -}}
{{/* Render the templates */}}
{{ include "tc.v1.common.loader.apply" . }}

View File

@ -1,5 +0,0 @@
icon_url: https://truecharts.org/img/hotlink-ok/chart-icons/mc-router.png
categories:
- minecraft
screenshots: []

View File

@ -1,32 +0,0 @@
**Important:**
*for the complete changelog, please refer to the website*
## [nextcloud-20.0.0](https://github.com/truecharts/charts/compare/nextcloud-19.0.52...nextcloud-20.0.0) (2023-06-16)
### Feat
- BREAKING CHANGE - rework fully ([#9169](https://github.com/truecharts/charts/issues/9169))
## [nextcloud-20.0.0](https://github.com/truecharts/charts/compare/nextcloud-19.0.52...nextcloud-20.0.0) (2023-05-24)
## [nextcloud-20.0.0](https://github.com/truecharts/charts/compare/nextcloud-19.0.52...nextcloud-20.0.0) (2023-05-24)
## [nextcloud-20.0.0](https://github.com/truecharts/charts/compare/nextcloud-19.0.52...nextcloud-20.0.0) (2023-05-24)
## [nextcloud-20.0.0](https://github.com/truecharts/charts/compare/nextcloud-19.0.52...nextcloud-20.0.0) (2023-05-24)

View File

@ -1,36 +0,0 @@
apiVersion: v2
appVersion: "25.0.2"
dependencies:
- name: common
repository: https://library-charts.truecharts.org
version: 12.14.1
- condition: redis.enabled
name: redis
repository: https://deps.truecharts.org
version: 6.0.48
deprecated: false
description: A private cloud server that puts the control and security of your own data back into your hands.
home: https://truecharts.org/charts/stable/nextcloud
icon: https://truecharts.org/img/hotlink-ok/chart-icons/nextcloud.png
keywords:
- nextcloud
- storage
- http
- web
- php
kubeVersion: ">=1.16.0-0"
maintainers:
- email: info@truecharts.org
name: TrueCharts
url: https://truecharts.org
name: nextcloud
sources:
- https://github.com/truecharts/charts/tree/master/charts/stable/nextcloud
- https://github.com/nextcloud/docker
- https://github.com/nextcloud/helm
type: application
version: 20.0.0
annotations:
truecharts.org/catagories: |
- cloud
truecharts.org/SCALE-support: "true"

View File

@ -1,106 +0,0 @@
Business Source License 1.1
Parameters
Licensor: The TrueCharts Project, it's owner and it's contributors
Licensed Work: The TrueCharts "Blocky" Helm Chart
Additional Use Grant: You may use the licensed work in production, as long
as it is directly sourced from a TrueCharts provided
official repository, catalog or source. You may also make private
modification to the directly sourced licenced work,
when used in production.
The following cases are, due to their nature, also
defined as 'production use' and explicitly prohibited:
- Bundling, including or displaying the licensed work
with(in) another work intended for production use,
with the apparent intend of facilitating and/or
promoting production use by third parties in
violation of this license.
Change Date: 2050-01-01
Change License: 3-clause BSD license
For information about alternative licensing arrangements for the Software,
please contact: legal@truecharts.org
Notice
The Business Source License (this document, or the “License”) is not an Open
Source license. However, the Licensed Work will eventually be made available
under an Open Source License, as stated in this License.
License text copyright (c) 2017 MariaDB Corporation Ab, All Rights Reserved.
“Business Source License” is a trademark of MariaDB Corporation Ab.
-----------------------------------------------------------------------------
Business Source License 1.1
Terms
The Licensor hereby grants you the right to copy, modify, create derivative
works, redistribute, and make non-production use of the Licensed Work. The
Licensor may make an Additional Use Grant, above, permitting limited
production use.
Effective on the Change Date, or the fourth anniversary of the first publicly
available distribution of a specific version of the Licensed Work under this
License, whichever comes first, the Licensor hereby grants you rights under
the terms of the Change License, and the rights granted in the paragraph
above terminate.
If your use of the Licensed Work does not comply with the requirements
currently in effect as described in this License, you must purchase a
commercial license from the Licensor, its affiliated entities, or authorized
resellers, or you must refrain from using the Licensed Work.
All copies of the original and modified Licensed Work, and derivative works
of the Licensed Work, are subject to this License. This License applies
separately for each version of the Licensed Work and the Change Date may vary
for each version of the Licensed Work released by Licensor.
You must conspicuously display this License on each original or modified copy
of the Licensed Work. If you receive the Licensed Work in original or
modified form from a third party, the terms and conditions set forth in this
License apply to your use of that work.
Any use of the Licensed Work in violation of this License will automatically
terminate your rights under this License for the current and all other
versions of the Licensed Work.
This License does not grant you any right in any trademark or logo of
Licensor or its affiliates (provided that you may use a trademark or logo of
Licensor as expressly required by this License).
TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON
AN “AS IS” BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS,
EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND
TITLE.
MariaDB hereby grants you permission to use this Licenses text to license
your works, and to refer to it using the trademark “Business Source License”,
as long as you comply with the Covenants of Licensor below.
Covenants of Licensor
In consideration of the right to use this Licenses text and the “Business
Source License” name and trademark, Licensor covenants to MariaDB, and to all
other recipients of the licensed work to be provided by Licensor:
1. To specify as the Change License the GPL Version 2.0 or any later version,
or a license that is compatible with GPL Version 2.0 or a later version,
where “compatible” means that software provided under the Change License can
be included in a program with software provided under GPL Version 2.0 or a
later version. Licensor may specify additional Change Licenses without
limitation.
2. To either: (a) specify an additional grant of rights to use that does not
impose any additional restriction on the right granted in this License, as
the Additional Use Grant; or (b) insert the text “None”.
3. To specify a Change Date.
4. Not to modify this License in any other way.

View File

@ -1,27 +0,0 @@
# README
## General Info
TrueCharts can be installed as both *normal* Helm Charts or as Apps on TrueNAS SCALE.
However only installations using the TrueNAS SCALE Apps system are supported.
For more information about this App, please check the docs on the TrueCharts [website](https://truecharts.org/charts/stable/)
**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)**
## Support
- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE%20Apps/Important-MUST-READ).
- See the [Website](https://truecharts.org)
- Check our [Discord](https://discord.gg/tVsPTHWTtr)
- Open a [issue](https://github.com/truecharts/charts/issues/new/choose)
---
## Sponsor TrueCharts
TrueCharts can only exist due to the incredible effort of our staff.
Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can!
*All Rights Reserved - The TrueCharts Project*

View File

@ -1,9 +0,0 @@
## [nextcloud-20.0.0](https://github.com/truecharts/charts/compare/nextcloud-19.0.52...nextcloud-20.0.0) (2023-06-16)
### Feat
- BREAKING CHANGE - rework fully ([#9169](https://github.com/truecharts/charts/issues/9169))

View File

@ -1,8 +0,0 @@
A private cloud server that puts the control and security of your own data back into your hands.
This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/charts/incubator/nextcloud](https://truecharts.org/charts/incubator/nextcloud)
---
TrueCharts can only exist due to the incredible effort of our staff.
Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can!

View File

@ -1,430 +0,0 @@
image:
repository: tccr.io/truecharts/nextcloud-fpm
pullPolicy: IfNotPresent
tag: v2.0.0@sha256:c3ff63fa9613fbad94c7950743482c8bb2a2a659ac42b3daac8963e0bbaf5129
nginxImage:
repository: tccr.io/truecharts/nginx-unprivileged
pullPolicy: IfNotPresent
tag: v1.24.0@sha256:f6386a703b6a0679b6274cc366a6efe7a06b8b5b3391353465d9d1649b4584ef
imaginaryImage:
repository: tccr.io/truecharts/nextcloud-imaginary
pullPolicy: IfNotPresent
tag: v20230401@sha256:4f5e3895987a9d12336f772a64a77dd662c6c9bb2b96820b19ffbab58f3ff982
hpbImage:
repository: tccr.io/truecharts/nextcloud-push-notify
pullPolicy: IfNotPresent
tag: v0.6.3@sha256:25c0a2f0c3eeb64e26be102cc3be09d8ce19b8d05397e188f73f94de8359d339
clamavImage:
repository: tccr.io/truecharts/clamav
pullPolicy: IfNotPresent
tag: v1.1.0@sha256:ab196d867fcfddedc8dc965d67a2e6824ca65488cf616cc707e9c36efd54e086
nextcloud:
# Initial Credentials
credentials:
initialAdminUser: admin
initialAdminPassword: adminpass
# General settings
general:
# Custom Nextcloud Scripts
run_optimize: true
default_phone_region: GR
# IP used for exposing nextcloud,
# often the loadbalancer IP
accessIP: ""
# File settings
files:
shared_folder_name: Shared
max_chunk_size: 10485760
# Expiration settings
expirations:
activity_expire_days: 90
trash_retention_obligation: auto
versions_retention_obligation: auto
# Previews settings
previews:
enabled: true
# It will also deploy the container
imaginary: true
cron: true
schedule: "*/30 * * * *"
max_x: 2048
max_y: 2048
max_memory: 1024
max_file_size_image: 50
jpeg_quality: 60
square_sizes: 32 256
width_sizes: 256 384
height_sizes: 256
# Casings are important
# https://github.com/nextcloud/server/blob/master/config/config.sample.php#L1269
# Only the last part of the provider is needed
providers:
- PNG
- JPEG
# Logging settings
logging:
log_level: 2
log_file: /var/www/html/data/logs/nextcloud.log
log_audit_file: /var/www/html/data/logs/audit.log
log_date_format: d/m/Y H:i:s
# ClamAV settings
clamav:
# It will also deploy the container
# Note that this runs as root
enabled: false
stream_max_length: 26214400
file_max_size: -1
infected_action: only_log
# Notify Push settings
notify_push:
# It will also deploy the container
enabled: true
# Collabora settings
collabora:
# It will not deploy the container
# Only add the Collabora settings
enabled: false
url: ""
allow_list:
- 0.0.0.0/0
onlyoffice:
# It will not deploy the container
# Only add the OnlyOffice settings
enabled: false
url: ""
jwt: ""
jwt_header: Authorization
# PHP settings
php:
memory_limit: 1G
upload_limit: 10G
pm_max_children: 180
pm_start_servers: 18
pm_min_spare_servers: 12
pm_max_spare_servers: 30
# Do NOT edit below this line
workload:
# Nextcloud php-fpm
main:
type: Deployment
podSpec:
containers:
main:
enabled: true
primary: true
envFrom:
- configMapRef:
name: nextcloud-config
probes:
liveness:
enabled: true
type: exec
command: /healthcheck.sh
readiness:
enabled: true
type: exec
command: /healthcheck.sh
startup:
enabled: true
type: tcp
port: "{{ .Values.service.nextcloud.ports.nextcloud.targetPort }}"
nginx:
enabled: true
type: Deployment
strategy: RollingUpdate
replicas: 1
podSpec:
containers:
nginx:
enabled: true
primary: true
imageSelector: nginxImage
probes:
readiness:
enabled: true
path: /robots.txt
port: "{{ .Values.service.main.ports.main.port }}"
httpHeaders:
Host: kube.internal.healthcheck
liveness:
enabled: true
path: /robots.txt
port: "{{ .Values.service.main.ports.main.port }}"
httpHeaders:
Host: kube.internal.healthcheck
startup:
enabled: true
type: tcp
port: "{{ .Values.service.main.ports.main.port }}"
notify:
enabled: true
type: Deployment
strategy: RollingUpdate
replicas: 1
podSpec:
containers:
notify:
primary: true
enabled: true
imageSelector: hpbImage
envFrom:
- configMapRef:
name: hpb-config
probes:
readiness:
enabled: true
path: /push/test/cookie
port: 7867
httpHeaders:
Host: kube.internal.healthcheck
liveness:
enabled: true
path: /push/test/cookie
port: 7867
httpHeaders:
Host: kube.internal.healthcheck
startup:
enabled: true
type: tcp
port: 7867
imaginary:
enabled: true
type: Deployment
strategy: RollingUpdate
replicas: 1
podSpec:
containers:
imaginary:
primary: true
enabled: true
imageSelector: imaginaryImage
command: imaginary
args:
- -p
- "{{ .Values.service.imaginary.ports.imaginary.port }}"
- -concurrency
- "10"
- -enable-url-source
- -return-size
probes:
readiness:
enabled: true
path: /health
port: "{{ .Values.service.imaginary.ports.imaginary.port }}"
liveness:
enabled: true
path: /health
port: "{{ .Values.service.imaginary.ports.imaginary.port }}"
startup:
enabled: true
type: tcp
port: "{{ .Values.service.imaginary.ports.imaginary.port }}"
clamav:
enabled: true
type: Deployment
strategy: RollingUpdate
replicas: 1
podSpec:
containers:
clamav:
primary: true
enabled: true
imageSelector: clamavImage
# FIXME: https://github.com/Cisco-Talos/clamav/issues/478
securityContext:
runAsUser: 0
runAsGroup: 0
runAsNonRoot: false
readOnlyRootFilesystem: false
envFrom:
- configMapRef:
name: clamav-config
probes:
readiness:
enabled: true
type: exec
command: clamdcheck.sh
liveness:
enabled: true
type: exec
command: clamdcheck.sh
startup:
enabled: true
type: tcp
port: "{{ .Values.service.clamav.ports.clamav.targetPort }}"
cronjobs:
# Don't change names, it's used in the persistence
- name: nextcloud-cron
enabled: true
schedule: "*/5 * * * *"
cmd:
- echo "Running [php -f /var/www/html/cron.php] ..."
- php -f /var/www/html/cron.php
- echo "Finished [php -f /var/www/html/cron.php]"
- name: preview-cron
enabled: "{{ .Values.nextcloud.previews.cron }}"
schedule: "{{ .Values.nextcloud.previews.schedule }}"
cmd:
- echo "Running [occ preview:pre-generate] ..."
- occ preview:pre-generate
- echo "Finished [occ preview:pre-generate]"
service:
# Main service links to ingress easier
# That's why the nginx is swapped with nextcloud
main:
targetSelector: nginx
ports:
main:
targetSelector: nginx
port: 8080
nextcloud:
enabled: true
targetSelector: main
ports:
nextcloud:
enabled: true
targetSelector: main
port: 9000
targetPort: 9000
notify:
enabled: true
targetSelector: notify
ports:
notify:
enabled: true
primary: true
port: 7867
targetPort: 7867
targetSelector: notify
metrics:
enabled: true
port: 7868
targetSelector: notify
imaginary:
enabled: true
targetSelector: imaginary
ports:
imaginary:
enabled: true
port: 9090
targetSelector: imaginary
clamav:
enabled: true
targetSelector: clamav
ports:
clamav:
enabled: true
port: 3310
targetPort: 3310
targetSelector: clamav
persistence:
php-tune:
enabled: true
type: configmap
objectName: php-tune
targetSelector:
main:
main:
mountPath: /usr/local/etc/php-fpm.d/zz-tune.conf
subPath: zz-tune.conf
readOnly: true
redis-session:
enabled: true
type: configmap
objectName: redis-session
targetSelector:
main:
main:
mountPath: /usr/local/etc/php/conf.d/redis-session.ini
subPath: redis-session.ini
readOnly: true
nginx:
enabled: true
type: configmap
objectName: nginx-config
targetSelector:
nginx:
nginx:
mountPath: /etc/nginx/nginx.conf
subPath: nginx.conf
readOnly: true
nginx-temp:
enabled: true
type: emptyDir
targetSelector:
nginx:
nginx:
mountPath: /tmp/nginx
html:
enabled: true
targetSelector:
main:
main:
mountPath: /var/www/html
nextcloud-cron:
nextcloud-cron:
mountPath: /var/www/html
preview-cron:
preview-cron:
mountPath: /var/www/html
nginx:
nginx:
mountPath: /var/www/html
readOnly: true
config:
enabled: true
targetSelector:
main:
main:
mountPath: /var/www/html/config
nextcloud-cron:
nextcloud-cron:
mountPath: /var/www/html/config
preview-cron:
preview-cron:
mountPath: /var/www/html/config
notify:
notify:
mountPath: /var/www/html/config
readOnly: true
nginx:
nginx:
mountPath: /var/www/html/config
readOnly: true
data:
enabled: true
targetSelector:
main:
main:
mountPath: /var/www/html/data
init-perms:
mountPath: /var/www/html/data
nextcloud-cron:
nextcloud-cron:
mountPath: /var/www/html/data
preview-cron:
preview-cron:
mountPath: /var/www/html/data
nginx:
nginx:
mountPath: /var/www/html/data
readOnly: true
cnpg:
main:
enabled: true
user: nextcloud
database: nextcloud
redis:
enabled: true
username: default
portal:
open:
enabled: true

File diff suppressed because it is too large Load Diff

View File

@ -1 +0,0 @@
{{- include "tc.v1.common.lib.chart.notes" $ -}}

View File

@ -1,387 +0,0 @@
{{/* Define the configmap */}}
{{- define "nextcloud.configmaps" -}}
{{- $fullname := (include "tc.v1.common.lib.chart.names.fullname" $) -}}
{{- $urlNoProtocol := regexReplaceAll ".*://(.*)" .Values.chartContext.APPURL "${1}" -}}
{{- $protocolOnly := regexReplaceAll "(.*)://.*" .Values.chartContext.APPURL "${1}" -}}
{{- $redisHost := .Values.redis.creds.plainhost | trimAll "\"" -}}
{{- $redisPass := .Values.redis.creds.redisPassword | trimAll "\"" -}}
{{- $healthHost := "kube.internal.healthcheck" -}}
php-tune:
enabled: true
data:
zz-tune.conf: |
[www]
pm.max_children = {{ .Values.nextcloud.php.pm_max_children }}
pm.start_servers = {{ .Values.nextcloud.php.pm_start_servers }}
pm.min_spare_servers = {{ .Values.nextcloud.php.pm_min_spare_servers }}
pm.max_spare_servers = {{ .Values.nextcloud.php.pm_max_spare_servers }}
redis-session:
enabled: true
data:
redis-session.ini: |
session.save_path = {{ printf "tcp://%v:6379?auth=%v" $redisHost $redisPass | quote }}
redis.session.locking_enabled = 1
redis.session.lock_retries = -1
redis.session.lock_wait_time = 10000
hpb-config:
enabled: {{ .Values.nextcloud.notify_push.enabled }}
data:
NEXTCLOUD_URL: {{ printf "http://%v:%v" $fullname .Values.service.main.ports.main.port }}
HPB_HOST: {{ $healthHost }}
CONFIG_FILE: {{ printf "%v/config.php" .Values.persistence.config.targetSelector.notify.notify.mountPath }}
METRICS_PORT: {{ .Values.service.notify.ports.metrics.port | quote }}
clamav-config:
enabled: {{ .Values.nextcloud.clamav.enabled }}
data:
CLAMAV_NO_CLAMD: "false"
CLAMAV_NO_FRESHCLAMD: "true"
CLAMAV_NO_MILTERD: "true"
CLAMD_STARTUP_TIMEOUT: "1800"
nextcloud-config:
enabled: true
data:
{{/* Database */}}
POSTGRES_DB: {{ .Values.cnpg.main.database | quote }}
POSTGRES_USER: {{ .Values.cnpg.main.user | quote }}
POSTGRES_PASSWORD: {{ .Values.cnpg.main.creds.password | trimAll "\"" }}
POSTGRES_HOST: {{ .Values.cnpg.main.creds.host | trimAll "\"" }}
{{/* Redis */}}
NX_REDIS_HOST: {{ $redisHost }}
NX_REDIS_PASS: {{ $redisPass }}
{{/* Nextcloud INITIAL credentials */}}
NEXTCLOUD_ADMIN_USER: {{ .Values.nextcloud.credentials.initialAdminUser | quote }}
NEXTCLOUD_ADMIN_PASSWORD: {{ .Values.nextcloud.credentials.initialAdminPassword | quote }}
{{/* PHP Variables */}}
{{- if not (mustRegexMatch "^[0-9]+(M|G){1}$" .Values.nextcloud.php.memory_limit) -}}
{{- fail (printf "Nextcloud - Expected Memory Limit to be in format [1M, 1G] but got [%v]" .Values.nextcloud.php.memory_limit) -}}
{{- end -}}
{{- if not (mustRegexMatch "^[0-9]+(M|G){1}$" .Values.nextcloud.php.upload_limit) -}}
{{- fail (printf "Nextcloud - Expected Memory Limit to be in format [1M, 1G] but got [%v]" .Values.nextcloud.php.upload_limit) -}}
{{- end }}
PHP_MEMORY_LIMIT: {{ .Values.nextcloud.php.memory_limit | quote }}
PHP_UPLOAD_LIMIT: {{ .Values.nextcloud.php.upload_limit | quote }}
{{/* Notify Push */}}
NX_NOTIFY_PUSH: {{ .Values.nextcloud.notify_push.enabled | quote }}
{{- if .Values.nextcloud.notify_push.enabled }}
{{- $endpoint := .Values.chartContext.APPURL -}}
{{- if or (contains "127.0.0.1" $endpoint) (contains "localhost" $endpoint) -}}
{{- $endpoint = printf "http://%v:%v" $fullname .Values.service.main.ports.main.port -}}
{{- end }}
NX_NOTIFY_PUSH_ENDPOINT: {{ $endpoint }}/push
{{- end }}
{{/* Previews */}}
NX_PREVIEWS: {{ .Values.nextcloud.previews.enabled | quote }}
{{- if not (deepEqual .Values.nextcloud.previews.providers (uniq .Values.nextcloud.previews.providers)) }}
{{- fail (printf "Nextcloud - Expected preview providers to be unique but got [%v]" .Values.nextcloud.previews.providers) }}
{{- end }}
NX_PREVIEW_PROVIDERS: {{ join " " .Values.nextcloud.previews.providers }}
NX_PREVIEW_MAX_X: {{ .Values.nextcloud.previews.max_x | quote }}
NX_PREVIEW_MAX_Y: {{ .Values.nextcloud.previews.max_y | quote }}
NX_PREVIEW_MAX_MEMORY: {{ .Values.nextcloud.previews.max_memory | quote }}
NX_PREVIEW_MAX_FILESIZE_IMAGE: {{ .Values.nextcloud.previews.max_file_size_image | quote }}
NX_JPEG_QUALITY: {{ .Values.nextcloud.previews.jpeg_quality | quote }}
NX_PREVIEW_SQUARE_SIZES: {{ .Values.nextcloud.previews.square_sizes | quote }}
NX_PREVIEW_WIDTH_SIZES: {{ .Values.nextcloud.previews.width_sizes | quote }}
NX_PREVIEW_HEIGHT_SIZES: {{ .Values.nextcloud.previews.height_sizes | quote }}
{{/* Imaginary */}}
NX_IMAGINARY: {{ and .Values.nextcloud.previews.enabled .Values.nextcloud.previews.imaginary | quote }}
{{- if and .Values.nextcloud.previews.enabled .Values.nextcloud.previews.imaginary }}
NX_IMAGINARY_URL: {{ printf "http://%v-imaginary:%v" $fullname .Values.service.imaginary.ports.imaginary.port }}
{{- end }}
{{/* Expirations */}}
NX_ACTIVITY_EXPIRE_DAYS: {{ .Values.nextcloud.expirations.activity_expire_days | quote }}
NX_TRASH_RETENTION: {{ .Values.nextcloud.expirations.trash_retention_obligation | quote }}
NX_VERSIONS_RETENTION: {{ .Values.nextcloud.expirations.versions_retention_obligation | quote }}
{{/* General */}}
NX_RUN_OPTIMIZE: {{ .Values.nextcloud.general.run_optimize | quote }}
NX_DEFAULT_PHONE_REGION: {{ .Values.nextcloud.general.default_phone_region | quote }}
NEXTCLOUD_DATA_DIR: {{ .Values.persistence.data.targetSelector.main.main.mountPath }}
{{/* Files */}}
NX_SHARED_FOLDER_NAME: {{ .Values.nextcloud.files.shared_folder_name | quote }}
NX_MAX_CHUNKSIZE: {{ .Values.nextcloud.files.max_chunk_size | mul 1 | quote }}
{{/* Logging */}}
NX_LOG_LEVEL: {{ .Values.nextcloud.logging.log_level | quote }}
NX_LOG_FILE: {{ .Values.nextcloud.logging.log_file | quote }}
NX_LOG_FILE_AUDIT: {{ .Values.nextcloud.logging.log_audit_file | quote }}
NX_LOG_DATE_FORMAT: {{ .Values.nextcloud.logging.log_date_format | quote }}
NX_LOG_TIMEZONE: {{ .Values.TZ | quote }}
{{/* ClamAV */}}
NX_CLAMAV: {{ .Values.nextcloud.clamav.enabled | quote }}
{{- if .Values.nextcloud.clamav.enabled }}
NX_CLAMAV_HOST: {{ printf "%v-clamav" $fullname }}
NX_CLAMAV_PORT: {{ .Values.service.clamav.ports.clamav.targetPort | quote }}
NX_CLAMAV_STREAM_MAX_LENGTH: {{ .Values.nextcloud.clamav.stream_max_length | mul 1 | quote }}
NX_CLAMAV_FILE_MAX_SIZE: {{ .Values.nextcloud.clamav.file_max_size | quote }}
NX_CLAMAV_INFECTED_ACTION: {{ .Values.nextcloud.clamav.infected_action | quote }}
{{- end }}
{{- if and .Values.nextcloud.collabora.enabled .Values.nextcloud.onlyoffice.enabled -}}
{{- fail "Nextcloud - Expected only one of [Collabora, OnlyOffice] to be enabled" -}}
{{- end }}
{{/* Collabora */}}
NX_COLLABORA: {{ .Values.nextcloud.collabora.enabled | quote }}
{{- if .Values.nextcloud.collabora.enabled }}
NX_COLLABORA_URL: {{ .Values.nextcloud.collabora.url | quote }}
NX_COLLABORA_ALLOWLIST: {{ join "," .Values.nextcloud.collabora.allow_list | quote }}
{{- end }}
{{/* Only Office */}}
NX_ONLYOFFICE: {{ .Values.nextcloud.onlyoffice.enabled | quote }}
{{- if .Values.nextcloud.onlyoffice.enabled }}
NX_ONLYOFFICE_URL: {{ .Values.nextcloud.onlyoffice.url | quote }}
NX_ONLYOFFICE_JWT: {{ .Values.nextcloud.onlyoffice.jwt | quote }}
NX_ONLYOFFICE_JWT_HEADER: {{ .Values.nextcloud.onlyoffice.jwt_header | quote }}
{{- end }}
{{/* URLs */}}
NX_OVERWRITE_HOST: {{ $urlNoProtocol }}
NX_OVERWRITE_CLI_URL: {{ .Values.chartContext.APPURL }}
# Return the protocol part of the URL
NX_OVERWRITE_PROTOCOL: {{ $protocolOnly | lower }}
# IP (or range in this case) of the proxy(ies)
NX_TRUSTED_PROXIES: |
{{ .Values.chartContext.svcCIDR }}
# fullname-* will allow access from the
# other services in the same namespace
NX_TRUSTED_DOMAINS: |
127.0.0.1
localhost
{{ $fullname }}
{{ printf "%v-*" $fullname }}
{{ $healthHost }}
{{- if ne $urlNoProtocol "127.0.0.1" }}
{{- $urlNoProtocol | nindent 6 }}
{{- end -}}
{{- with .Values.nextcloud.general.accessIP }}
{{- . | nindent 6 }}
{{- end }}
# TODO: Replace locations with ingress
# like /push, /.well-known/carddav, /.well-known/caldav
# needs some work as nginx converts urls to pretty urls
# before matching them to locations, so ingress needs to
# take that into consideration.
nginx-config:
enabled: true
data:
nginx.conf: |
worker_processes auto;
error_log /var/log/nginx/error.log warn;
# Set to /tmp so it can run as non-root
pid /tmp/nginx.pid;
events {
worker_connections 1024;
}
http {
# Set to /tmp so it can run as non-root
client_body_temp_path /tmp/nginx/client_temp;
proxy_temp_path /tmp/nginx/proxy_temp_path;
fastcgi_temp_path /tmp/nginx/fastcgi_temp;
uwsgi_temp_path /tmp/nginx/uwsgi_temp;
scgi_temp_path /tmp/nginx/scgi_temp;
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
# Prevent nginx HTTP Server Detection
server_tokens off;
keepalive_timeout 65;
#gzip on;
upstream php-handler {
server {{ printf "%v-nextcloud" $fullname }}:{{ .Values.service.nextcloud.ports.nextcloud.targetPort }};
}
server {
listen {{ .Values.service.main.ports.main.port }};
absolute_redirect off;
{{- if .Values.nextcloud.notify_push.enabled }}
# Forward Notify_Push "High Performance Backend" to it's own container
location ^~ /push/ {
# The trailing "/" is important!
proxy_pass http://{{ printf "%v-notify" $fullname }}:{{ .Values.service.notify.ports.notify.targetPort }}/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
{{- end }}
# HSTS settings
# WARNING: Only add the preload option once you read about
# the consequences in https://hstspreload.org/. This option
# will add the domain to a hardcoded list that is shipped
# in all major browsers and getting removed from this list
# could take several months.
#add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;" always;
# Set max upload size
client_max_body_size {{ .Values.nextcloud.php.upload_limit | default "512M" }};
fastcgi_buffers 64 4K;
# Enable gzip but do not remove ETag headers
gzip on;
gzip_vary on;
gzip_comp_level 4;
gzip_min_length 256;
gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;
# Pagespeed is not supported by Nextcloud, so if your server is built
# with the `ngx_pagespeed` module, uncomment this line to disable it.
#pagespeed off;
# HTTP response headers borrowed from Nextcloud `.htaccess`
add_header Referrer-Policy "no-referrer" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Download-Options "noopen" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Permitted-Cross-Domain-Policies "none" always;
add_header X-Robots-Tag "noindex, nofollow" always;
add_header X-XSS-Protection "1; mode=block" always;
# Remove X-Powered-By, which is an information leak
fastcgi_hide_header X-Powered-By;
# Path to the root of your installation
root {{ .Values.persistence.html.targetSelector.nginx.nginx.mountPath }};
# Specify how to handle directories -- specifying `/index.php$request_uri`
# here as the fallback means that Nginx always exhibits the desired behaviour
# when a client requests a path that corresponds to a directory that exists
# on the server. In particular, if that directory contains an index.php file,
# that file is correctly served; if it doesn't, then the request is passed to
# the front-end controller. This consistent behaviour means that we don't need
# to specify custom rules for certain paths (e.g. images and other assets,
# `/updater`, `/ocm-provider`, `/ocs-provider`), and thus
# `try_files $uri $uri/ /index.php$request_uri`
# always provides the desired behaviour.
index index.php index.html /index.php$request_uri;
# Rule borrowed from `.htaccess` to handle Microsoft DAV clients
location = / {
if ( $http_user_agent ~ ^DavClnt ) {
return 302 /remote.php/webdav/$is_args$args;
}
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
# Make a regex exception for `/.well-known` so that clients can still
# access it despite the existence of the regex rule
# `location ~ /(\.|autotest|...)` which would otherwise handle requests
# for `/.well-known`.
location ^~ /.well-known {
# The rules in this block are an adaptation of the rules
# in `.htaccess` that concern `/.well-known`.
location = /.well-known/carddav { return 301 /remote.php/dav/; }
location = /.well-known/caldav { return 301 /remote.php/dav/; }
# According to the documentation these two lines are not necessary,
# but some users are still receiving errors
location = /.well-known/webfinger { return 301 /index.php$uri; }
location = /.well-known/nodeinfo { return 301 /index.php$uri; }
location /.well-known/acme-challenge { try_files $uri $uri/ =404; }
location /.well-known/pki-validation { try_files $uri $uri/ =404; }
# Let Nextcloud's API for `/.well-known` URIs handle all other
# requests by passing them to the front-end controller.
return 301 /index.php$request_uri;
}
# Rules borrowed from `.htaccess` to hide certain paths from clients
location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/) { return 404; }
location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) { return 404; }
# Ensure this block, which passes PHP files to the PHP process, is above the blocks
# which handle static assets (as seen below). If this block is not declared first,
# then Nginx will encounter an infinite rewriting loop when it prepends `/index.php`
# to the URI, resulting in a HTTP 500 error response.
location ~ \.php(?:$|/) {
# Required for legacy support
rewrite ^/(?!index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|oc[ms]-provider\/.+|.+\/richdocumentscode\/proxy) /index.php$request_uri;
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
set $path_info $fastcgi_path_info;
try_files $fastcgi_script_name =404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $path_info;
#fastcgi_param HTTPS on;
fastcgi_param modHeadersAvailable true; # Avoid sending the security headers twice
fastcgi_param front_controller_active true; # Enable pretty urls
fastcgi_pass php-handler;
fastcgi_intercept_errors on;
fastcgi_request_buffering off;
proxy_send_timeout 3600s;
proxy_read_timeout 3600s;
fastcgi_send_timeout 3600s;
fastcgi_read_timeout 3600s;
}
location ~ \.(?:css|js|svg|gif)$ {
try_files $uri /index.php$request_uri;
expires 6M; # Cache-Control policy borrowed from `.htaccess`
access_log off; # Optional: Don't log access to assets
}
location ~ \.woff2?$ {
try_files $uri /index.php$request_uri;
expires 7d; # Cache-Control policy borrowed from `.htaccess`
access_log off; # Optional: Don't log access to assets
}
# Rule borrowed from `.htaccess`
location /remote {
return 301 /remote.php$request_uri;
}
location / {
try_files $uri $uri/ /index.php$request_uri;
}
}
}
{{- end -}}

View File

@ -1,34 +0,0 @@
{{- define "nextcloud.cronjobs" -}}
{{- range $cj := .Values.cronjobs }}
{{- $name := $cj.name | required "Nextcloud - Expected non-empty name in cronjob" -}}
{{- $schedule := $cj.schedule | required "Nextcloud - Expected non-empty schedule in cronjob" }}
{{ $name }}:
enabled: {{ $cj.enabled | quote }}
type: CronJob
schedule: {{ $schedule | quote }}
podSpec:
restartPolicy: Never
containers:
{{ $name }}:
enabled: true
primary: true
imageSelector: image
command:
- /bin/bash
- -c
- |
{{- range $cj.cmd }}
{{- . | nindent 12 }}
{{- else -}}
{{- fail "Nextcloud - Expected non-empty cmd in cronjob" -}}
{{- end }}
probes:
liveness:
enabled: false
readiness:
enabled: false
startup:
enabled: false
{{- end }}
{{- end -}}

View File

@ -1,29 +0,0 @@
{{- define "nextcloud.init.perms" -}}
{{- $uid := .Values.securityContext.container.runAsUser -}}
{{- $gid := .Values.securityContext.container.runAsGroup -}}
{{- $path := .Values.persistence.data.targetSelector.main.main.mountPath }}
enabled: true
type: install
imageSelector: alpineImage
securityContext:
runAsUser: 0
runAsGroup: 0
runAsNonRoot: false
capabilities:
disableS6Caps: true
add:
- DAC_OVERRIDE
- FOWNER
- CHOWN
command: /bin/sh
args:
- -c
- |
echo "Setting permissions to 700 on data directory [{{ $path }}] ..."
chmod 770 {{ $path }} | echo "Failed to set permissions on data directory [{{ $path }}]"
echo "Setting ownership to {{ $uid }}:{{ $gid }} on data directory [{{ $path }}] ..."
chown {{ $uid }}:{{ $gid }} {{ $path }} | echo "Failed to set ownership on data directory [{{ $path }}]"
echo "Finished."
{{- end -}}

View File

@ -1,25 +0,0 @@
{{- define "nextcloud.wait.nextcloud" -}}
{{- $fullname := (include "tc.v1.common.lib.chart.names.fullname" $) -}}
{{- $ncURL := printf "%v-nextcloud:%v" $fullname .Values.service.nextcloud.ports.nextcloud.targetPort }}
enabled: true
type: init
imageSelector: image
securityContext:
command: /bin/sh
args:
- -c
- |
echo "Waiting Nextcloud [{{ $ncURL }}] to be ready and installed..."
until \
REQUEST_METHOD="GET" \
SCRIPT_NAME="status.php" \
SCRIPT_FILENAME="status.php" \
cgi-fcgi -bind -connect "{{ $ncURL }}" | grep -q '"installed":true';
do
echo "Waiting Nextcloud [{{ $ncURL }}] to be ready and installed..."
sleep 3
done
echo "Nextcloud is ready and installed..."
echo "Starting Nginx..."
{{- end -}}

View File

@ -1,57 +0,0 @@
{{/* Make sure all variables are set properly */}}
{{- include "tc.v1.common.loader.init" . -}}
{{/* Render configmaps for all pods */}}
{{- $configmaps := include "nextcloud.configmaps" . | fromYaml -}}
{{- if $configmaps -}}
{{- $_ := mustMergeOverwrite .Values.configmap $configmaps -}}
{{- end -}}
{{/* Add [init perms] container to nextcloud */}}
{{- if not (get .Values.workload.main.podSpec "initContainers") -}}
{{- $_ := set .Values.workload.main.podSpec "initContainers" dict -}}
{{- end -}}
{{- $initPerms := (include "nextcloud.init.perms" . | fromYaml) -}}
{{- $_ := set .Values.workload.main.podSpec.initContainers "init-perms" $initPerms -}}
{{/* Add [wait nextcloud] container to nginx */}}
{{- if not (get .Values.workload.nginx.podSpec "initContainers") -}}
{{- $_ := set .Values.workload.nginx.podSpec "initContainers" dict -}}
{{- end -}}
{{- $waitNextcloud := (include "nextcloud.wait.nextcloud" . | fromYaml) -}}
{{- $_ := set .Values.workload.nginx.podSpec.initContainers "wait-nextcloud" $waitNextcloud -}}
{{/* Disable [notify push] if requested */}}
{{- if not .Values.nextcloud.notify_push.enabled -}}
{{- $_ := set .Values.workload.notify "enabled" false -}}
{{- $_ := set .Values.service.notify "enabled" false -}}
{{- else -}}
{{/* Add [wait nextcloud] container to notify push */}}
{{- if not (get .Values.workload.notify.podSpec "initContainers") -}}
{{- $_ := set .Values.workload.notify.podSpec "initContainers" dict -}}
{{- end -}}
{{- $waitNextcloud := (include "nextcloud.wait.nextcloud" . | fromYaml) -}}
{{- $_ := set .Values.workload.notify.podSpec.initContainers "wait-nextcloud" $waitNextcloud -}}
{{- end -}}
{{/* Disable [clamav] if requested */}}
{{- if not .Values.nextcloud.clamav.enabled -}}
{{- $_ := set .Values.workload.clamav "enabled" false -}}
{{- $_ := set .Values.service.clamav "enabled" false -}}
{{- end -}}
{{/* Disable [previews] if requested */}}
{{- if or (not .Values.nextcloud.previews.imaginary) (not .Values.nextcloud.previews.enabled) -}}
{{- $_ := set .Values.workload.imaginary "enabled" false -}}
{{- $_ := set .Values.service.imaginary "enabled" false -}}
{{- end -}}
{{/* Create [cronjobs] defined */}}
{{- $cronjobs := include "nextcloud.cronjobs" . | fromYaml -}}
{{- if $cronjobs -}}
{{- $_ := mustMergeOverwrite .Values.workload $cronjobs -}}
{{- end -}}
{{/* Render the templates */}}
{{- include "tc.v1.common.loader.apply" . -}}

View File

@ -1,41 +0,0 @@
**Important:**
*for the complete changelog, please refer to the website*
## [nextcloud-20.0.1](https://github.com/truecharts/charts/compare/nextcloud-20.0.0...nextcloud-20.0.1) (2023-06-17)
### Fix
- Correctly make use of accessIP when no ingress is enabled ([#9720](https://github.com/truecharts/charts/issues/9720))
## [nextcloud-20.0.0](https://github.com/truecharts/charts/compare/nextcloud-19.0.52...nextcloud-20.0.0) (2023-06-16)
### Feat
- BREAKING CHANGE - rework fully ([#9169](https://github.com/truecharts/charts/issues/9169))
## [nextcloud-20.0.0](https://github.com/truecharts/charts/compare/nextcloud-19.0.52...nextcloud-20.0.0) (2023-05-24)
## [nextcloud-20.0.0](https://github.com/truecharts/charts/compare/nextcloud-19.0.52...nextcloud-20.0.0) (2023-05-24)
## [nextcloud-20.0.0](https://github.com/truecharts/charts/compare/nextcloud-19.0.52...nextcloud-20.0.0) (2023-05-24)
## [nextcloud-20.0.0](https://github.com/truecharts/charts/compare/nextcloud-19.0.52...nextcloud-20.0.0) (2023-05-24)

View File

@ -1,36 +0,0 @@
apiVersion: v2
appVersion: "2.0.0"
dependencies:
- name: common
repository: https://library-charts.truecharts.org
version: 12.14.1
- condition: redis.enabled
name: redis
repository: https://deps.truecharts.org
version: 6.0.48
deprecated: false
description: A private cloud server that puts the control and security of your own data back into your hands.
home: https://truecharts.org/charts/incubator/nextcloud
icon: https://truecharts.org/img/hotlink-ok/chart-icons/nextcloud.png
keywords:
- nextcloud
- storage
- http
- web
- php
kubeVersion: ">=1.16.0-0"
maintainers:
- email: info@truecharts.org
name: TrueCharts
url: https://truecharts.org
name: nextcloud
sources:
- https://github.com/truecharts/charts/tree/master/charts/incubator/nextcloud
- https://github.com/nextcloud/docker
- https://github.com/nextcloud/helm
type: application
version: 20.0.1
annotations:
truecharts.org/catagories: |
- cloud
truecharts.org/SCALE-support: "true"

View File

@ -1,106 +0,0 @@
Business Source License 1.1
Parameters
Licensor: The TrueCharts Project, it's owner and it's contributors
Licensed Work: The TrueCharts "Blocky" Helm Chart
Additional Use Grant: You may use the licensed work in production, as long
as it is directly sourced from a TrueCharts provided
official repository, catalog or source. You may also make private
modification to the directly sourced licenced work,
when used in production.
The following cases are, due to their nature, also
defined as 'production use' and explicitly prohibited:
- Bundling, including or displaying the licensed work
with(in) another work intended for production use,
with the apparent intend of facilitating and/or
promoting production use by third parties in
violation of this license.
Change Date: 2050-01-01
Change License: 3-clause BSD license
For information about alternative licensing arrangements for the Software,
please contact: legal@truecharts.org
Notice
The Business Source License (this document, or the “License”) is not an Open
Source license. However, the Licensed Work will eventually be made available
under an Open Source License, as stated in this License.
License text copyright (c) 2017 MariaDB Corporation Ab, All Rights Reserved.
“Business Source License” is a trademark of MariaDB Corporation Ab.
-----------------------------------------------------------------------------
Business Source License 1.1
Terms
The Licensor hereby grants you the right to copy, modify, create derivative
works, redistribute, and make non-production use of the Licensed Work. The
Licensor may make an Additional Use Grant, above, permitting limited
production use.
Effective on the Change Date, or the fourth anniversary of the first publicly
available distribution of a specific version of the Licensed Work under this
License, whichever comes first, the Licensor hereby grants you rights under
the terms of the Change License, and the rights granted in the paragraph
above terminate.
If your use of the Licensed Work does not comply with the requirements
currently in effect as described in this License, you must purchase a
commercial license from the Licensor, its affiliated entities, or authorized
resellers, or you must refrain from using the Licensed Work.
All copies of the original and modified Licensed Work, and derivative works
of the Licensed Work, are subject to this License. This License applies
separately for each version of the Licensed Work and the Change Date may vary
for each version of the Licensed Work released by Licensor.
You must conspicuously display this License on each original or modified copy
of the Licensed Work. If you receive the Licensed Work in original or
modified form from a third party, the terms and conditions set forth in this
License apply to your use of that work.
Any use of the Licensed Work in violation of this License will automatically
terminate your rights under this License for the current and all other
versions of the Licensed Work.
This License does not grant you any right in any trademark or logo of
Licensor or its affiliates (provided that you may use a trademark or logo of
Licensor as expressly required by this License).
TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON
AN “AS IS” BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS,
EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND
TITLE.
MariaDB hereby grants you permission to use this Licenses text to license
your works, and to refer to it using the trademark “Business Source License”,
as long as you comply with the Covenants of Licensor below.
Covenants of Licensor
In consideration of the right to use this Licenses text and the “Business
Source License” name and trademark, Licensor covenants to MariaDB, and to all
other recipients of the licensed work to be provided by Licensor:
1. To specify as the Change License the GPL Version 2.0 or any later version,
or a license that is compatible with GPL Version 2.0 or a later version,
where “compatible” means that software provided under the Change License can
be included in a program with software provided under GPL Version 2.0 or a
later version. Licensor may specify additional Change Licenses without
limitation.
2. To either: (a) specify an additional grant of rights to use that does not
impose any additional restriction on the right granted in this License, as
the Additional Use Grant; or (b) insert the text “None”.
3. To specify a Change Date.
4. Not to modify this License in any other way.

View File

@ -1,27 +0,0 @@
# README
## General Info
TrueCharts can be installed as both *normal* Helm Charts or as Apps on TrueNAS SCALE.
However only installations using the TrueNAS SCALE Apps system are supported.
For more information about this App, please check the docs on the TrueCharts [website](https://truecharts.org/charts/incubator/)
**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)**
## Support
- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE%20Apps/Important-MUST-READ).
- See the [Website](https://truecharts.org)
- Check our [Discord](https://discord.gg/tVsPTHWTtr)
- Open a [issue](https://github.com/truecharts/charts/issues/new/choose)
---
## Sponsor TrueCharts
TrueCharts can only exist due to the incredible effort of our staff.
Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can!
*All Rights Reserved - The TrueCharts Project*

View File

@ -1,9 +0,0 @@
## [nextcloud-20.0.1](https://github.com/truecharts/charts/compare/nextcloud-20.0.0...nextcloud-20.0.1) (2023-06-17)
### Fix
- Correctly make use of accessIP when no ingress is enabled ([#9720](https://github.com/truecharts/charts/issues/9720))

View File

@ -1,8 +0,0 @@
A private cloud server that puts the control and security of your own data back into your hands.
This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/charts/incubator/nextcloud](https://truecharts.org/charts/incubator/nextcloud)
---
TrueCharts can only exist due to the incredible effort of our staff.
Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can!

View File

@ -1,430 +0,0 @@
image:
repository: tccr.io/truecharts/nextcloud-fpm
pullPolicy: IfNotPresent
tag: v2.0.0@sha256:c3ff63fa9613fbad94c7950743482c8bb2a2a659ac42b3daac8963e0bbaf5129
nginxImage:
repository: tccr.io/truecharts/nginx-unprivileged
pullPolicy: IfNotPresent
tag: v1.24.0@sha256:f6386a703b6a0679b6274cc366a6efe7a06b8b5b3391353465d9d1649b4584ef
imaginaryImage:
repository: tccr.io/truecharts/nextcloud-imaginary
pullPolicy: IfNotPresent
tag: v20230401@sha256:4f5e3895987a9d12336f772a64a77dd662c6c9bb2b96820b19ffbab58f3ff982
hpbImage:
repository: tccr.io/truecharts/nextcloud-push-notify
pullPolicy: IfNotPresent
tag: v0.6.3@sha256:25c0a2f0c3eeb64e26be102cc3be09d8ce19b8d05397e188f73f94de8359d339
clamavImage:
repository: tccr.io/truecharts/clamav
pullPolicy: IfNotPresent
tag: v1.1.0@sha256:ab196d867fcfddedc8dc965d67a2e6824ca65488cf616cc707e9c36efd54e086
nextcloud:
# Initial Credentials
credentials:
initialAdminUser: admin
initialAdminPassword: adminpass
# General settings
general:
# Custom Nextcloud Scripts
run_optimize: true
default_phone_region: GR
# IP used for exposing nextcloud,
# often the loadbalancer IP
accessIP: ""
# File settings
files:
shared_folder_name: Shared
max_chunk_size: 10485760
# Expiration settings
expirations:
activity_expire_days: 90
trash_retention_obligation: auto
versions_retention_obligation: auto
# Previews settings
previews:
enabled: true
# It will also deploy the container
imaginary: true
cron: true
schedule: "*/30 * * * *"
max_x: 2048
max_y: 2048
max_memory: 1024
max_file_size_image: 50
jpeg_quality: 60
square_sizes: 32 256
width_sizes: 256 384
height_sizes: 256
# Casings are important
# https://github.com/nextcloud/server/blob/master/config/config.sample.php#L1269
# Only the last part of the provider is needed
providers:
- PNG
- JPEG
# Logging settings
logging:
log_level: 2
log_file: /var/www/html/data/logs/nextcloud.log
log_audit_file: /var/www/html/data/logs/audit.log
log_date_format: d/m/Y H:i:s
# ClamAV settings
clamav:
# It will also deploy the container
# Note that this runs as root
enabled: false
stream_max_length: 26214400
file_max_size: -1
infected_action: only_log
# Notify Push settings
notify_push:
# It will also deploy the container
enabled: true
# Collabora settings
collabora:
# It will not deploy the container
# Only add the Collabora settings
enabled: false
url: ""
allow_list:
- 0.0.0.0/0
onlyoffice:
# It will not deploy the container
# Only add the OnlyOffice settings
enabled: false
url: ""
jwt: ""
jwt_header: Authorization
# PHP settings
php:
memory_limit: 1G
upload_limit: 10G
pm_max_children: 180
pm_start_servers: 18
pm_min_spare_servers: 12
pm_max_spare_servers: 30
# Do NOT edit below this line
workload:
# Nextcloud php-fpm
main:
type: Deployment
podSpec:
containers:
main:
enabled: true
primary: true
envFrom:
- configMapRef:
name: nextcloud-config
probes:
liveness:
enabled: true
type: exec
command: /healthcheck.sh
readiness:
enabled: true
type: exec
command: /healthcheck.sh
startup:
enabled: true
type: tcp
port: "{{ .Values.service.nextcloud.ports.nextcloud.targetPort }}"
nginx:
enabled: true
type: Deployment
strategy: RollingUpdate
replicas: 1
podSpec:
containers:
nginx:
enabled: true
primary: true
imageSelector: nginxImage
probes:
readiness:
enabled: true
path: /robots.txt
port: "{{ .Values.service.main.ports.main.port }}"
httpHeaders:
Host: kube.internal.healthcheck
liveness:
enabled: true
path: /robots.txt
port: "{{ .Values.service.main.ports.main.port }}"
httpHeaders:
Host: kube.internal.healthcheck
startup:
enabled: true
type: tcp
port: "{{ .Values.service.main.ports.main.port }}"
notify:
enabled: true
type: Deployment
strategy: RollingUpdate
replicas: 1
podSpec:
containers:
notify:
primary: true
enabled: true
imageSelector: hpbImage
envFrom:
- configMapRef:
name: hpb-config
probes:
readiness:
enabled: true
path: /push/test/cookie
port: 7867
httpHeaders:
Host: kube.internal.healthcheck
liveness:
enabled: true
path: /push/test/cookie
port: 7867
httpHeaders:
Host: kube.internal.healthcheck
startup:
enabled: true
type: tcp
port: 7867
imaginary:
enabled: true
type: Deployment
strategy: RollingUpdate
replicas: 1
podSpec:
containers:
imaginary:
primary: true
enabled: true
imageSelector: imaginaryImage
command: imaginary
args:
- -p
- "{{ .Values.service.imaginary.ports.imaginary.port }}"
- -concurrency
- "10"
- -enable-url-source
- -return-size
probes:
readiness:
enabled: true
path: /health
port: "{{ .Values.service.imaginary.ports.imaginary.port }}"
liveness:
enabled: true
path: /health
port: "{{ .Values.service.imaginary.ports.imaginary.port }}"
startup:
enabled: true
type: tcp
port: "{{ .Values.service.imaginary.ports.imaginary.port }}"
clamav:
enabled: true
type: Deployment
strategy: RollingUpdate
replicas: 1
podSpec:
containers:
clamav:
primary: true
enabled: true
imageSelector: clamavImage
# FIXME: https://github.com/Cisco-Talos/clamav/issues/478
securityContext:
runAsUser: 0
runAsGroup: 0
runAsNonRoot: false
readOnlyRootFilesystem: false
envFrom:
- configMapRef:
name: clamav-config
probes:
readiness:
enabled: true
type: exec
command: clamdcheck.sh
liveness:
enabled: true
type: exec
command: clamdcheck.sh
startup:
enabled: true
type: tcp
port: "{{ .Values.service.clamav.ports.clamav.targetPort }}"
cronjobs:
# Don't change names, it's used in the persistence
- name: nextcloud-cron
enabled: true
schedule: "*/5 * * * *"
cmd:
- echo "Running [php -f /var/www/html/cron.php] ..."
- php -f /var/www/html/cron.php
- echo "Finished [php -f /var/www/html/cron.php]"
- name: preview-cron
enabled: "{{ .Values.nextcloud.previews.cron }}"
schedule: "{{ .Values.nextcloud.previews.schedule }}"
cmd:
- echo "Running [occ preview:pre-generate] ..."
- occ preview:pre-generate
- echo "Finished [occ preview:pre-generate]"
service:
# Main service links to ingress easier
# That's why the nginx is swapped with nextcloud
main:
targetSelector: nginx
ports:
main:
targetSelector: nginx
port: 8080
nextcloud:
enabled: true
targetSelector: main
ports:
nextcloud:
enabled: true
targetSelector: main
port: 9000
targetPort: 9000
notify:
enabled: true
targetSelector: notify
ports:
notify:
enabled: true
primary: true
port: 7867
targetPort: 7867
targetSelector: notify
metrics:
enabled: true
port: 7868
targetSelector: notify
imaginary:
enabled: true
targetSelector: imaginary
ports:
imaginary:
enabled: true
port: 9090
targetSelector: imaginary
clamav:
enabled: true
targetSelector: clamav
ports:
clamav:
enabled: true
port: 3310
targetPort: 3310
targetSelector: clamav
persistence:
php-tune:
enabled: true
type: configmap
objectName: php-tune
targetSelector:
main:
main:
mountPath: /usr/local/etc/php-fpm.d/zz-tune.conf
subPath: zz-tune.conf
readOnly: true
redis-session:
enabled: true
type: configmap
objectName: redis-session
targetSelector:
main:
main:
mountPath: /usr/local/etc/php/conf.d/redis-session.ini
subPath: redis-session.ini
readOnly: true
nginx:
enabled: true
type: configmap
objectName: nginx-config
targetSelector:
nginx:
nginx:
mountPath: /etc/nginx/nginx.conf
subPath: nginx.conf
readOnly: true
nginx-temp:
enabled: true
type: emptyDir
targetSelector:
nginx:
nginx:
mountPath: /tmp/nginx
html:
enabled: true
targetSelector:
main:
main:
mountPath: /var/www/html
nextcloud-cron:
nextcloud-cron:
mountPath: /var/www/html
preview-cron:
preview-cron:
mountPath: /var/www/html
nginx:
nginx:
mountPath: /var/www/html
readOnly: true
config:
enabled: true
targetSelector:
main:
main:
mountPath: /var/www/html/config
nextcloud-cron:
nextcloud-cron:
mountPath: /var/www/html/config
preview-cron:
preview-cron:
mountPath: /var/www/html/config
notify:
notify:
mountPath: /var/www/html/config
readOnly: true
nginx:
nginx:
mountPath: /var/www/html/config
readOnly: true
data:
enabled: true
targetSelector:
main:
main:
mountPath: /var/www/html/data
init-perms:
mountPath: /var/www/html/data
nextcloud-cron:
nextcloud-cron:
mountPath: /var/www/html/data
preview-cron:
preview-cron:
mountPath: /var/www/html/data
nginx:
nginx:
mountPath: /var/www/html/data
readOnly: true
cnpg:
main:
enabled: true
user: nextcloud
database: nextcloud
redis:
enabled: true
username: default
portal:
open:
enabled: true

File diff suppressed because it is too large Load Diff

View File

@ -1 +0,0 @@
{{- include "tc.v1.common.lib.chart.notes" $ -}}

View File

@ -1,396 +0,0 @@
{{/* Define the configmap */}}
{{- define "nextcloud.configmaps" -}}
{{- $fullname := (include "tc.v1.common.lib.chart.names.fullname" $) -}}
{{- $accessUrl := .Values.chartContext.APPURL -}}
{{- if or (contains "127.0.0.1" $accessUrl) (contains "localhost" $accessUrl) -}}
{{- if .Values.nextcloud.general.accessIP -}}
{{- $prot := "http" -}}
{{- $host := .Values.nextcloud.general.accessIP -}}
{{- $port := .Values.service.main.ports.main.port -}}
{{/*
Allowing here to override protocol and port
should be enough to make it work with any rev proxy
*/}}
{{- $accessUrl = printf "%v://%v:%v" $prot $host $port -}}
{{- end -}}
{{- end -}}
{{- $accessHostPort := regexReplaceAll ".*://(.*)" $accessUrl "${1}" -}}
{{- $accessProtocol := regexReplaceAll "(.*)://.*" $accessUrl "${1}" -}}
{{- $redisHost := .Values.redis.creds.plainhost | trimAll "\"" -}}
{{- $redisPass := .Values.redis.creds.redisPassword | trimAll "\"" -}}
{{- $healthHost := "kube.internal.healthcheck" -}}
php-tune:
enabled: true
data:
zz-tune.conf: |
[www]
pm.max_children = {{ .Values.nextcloud.php.pm_max_children }}
pm.start_servers = {{ .Values.nextcloud.php.pm_start_servers }}
pm.min_spare_servers = {{ .Values.nextcloud.php.pm_min_spare_servers }}
pm.max_spare_servers = {{ .Values.nextcloud.php.pm_max_spare_servers }}
redis-session:
enabled: true
data:
redis-session.ini: |
session.save_path = {{ printf "tcp://%v:6379?auth=%v" $redisHost $redisPass | quote }}
redis.session.locking_enabled = 1
redis.session.lock_retries = -1
redis.session.lock_wait_time = 10000
hpb-config:
enabled: {{ .Values.nextcloud.notify_push.enabled }}
data:
NEXTCLOUD_URL: {{ printf "http://%v:%v" $fullname .Values.service.main.ports.main.port }}
HPB_HOST: {{ $healthHost }}
CONFIG_FILE: {{ printf "%v/config.php" .Values.persistence.config.targetSelector.notify.notify.mountPath }}
METRICS_PORT: {{ .Values.service.notify.ports.metrics.port | quote }}
clamav-config:
enabled: {{ .Values.nextcloud.clamav.enabled }}
data:
CLAMAV_NO_CLAMD: "false"
CLAMAV_NO_FRESHCLAMD: "true"
CLAMAV_NO_MILTERD: "true"
CLAMD_STARTUP_TIMEOUT: "1800"
nextcloud-config:
enabled: true
data:
{{/* Database */}}
POSTGRES_DB: {{ .Values.cnpg.main.database | quote }}
POSTGRES_USER: {{ .Values.cnpg.main.user | quote }}
POSTGRES_PASSWORD: {{ .Values.cnpg.main.creds.password | trimAll "\"" }}
POSTGRES_HOST: {{ .Values.cnpg.main.creds.host | trimAll "\"" }}
{{/* Redis */}}
NX_REDIS_HOST: {{ $redisHost }}
NX_REDIS_PASS: {{ $redisPass }}
{{/* Nextcloud INITIAL credentials */}}
NEXTCLOUD_ADMIN_USER: {{ .Values.nextcloud.credentials.initialAdminUser | quote }}
NEXTCLOUD_ADMIN_PASSWORD: {{ .Values.nextcloud.credentials.initialAdminPassword | quote }}
{{/* PHP Variables */}}
{{- if not (mustRegexMatch "^[0-9]+(M|G){1}$" .Values.nextcloud.php.memory_limit) -}}
{{- fail (printf "Nextcloud - Expected Memory Limit to be in format [1M, 1G] but got [%v]" .Values.nextcloud.php.memory_limit) -}}
{{- end -}}
{{- if not (mustRegexMatch "^[0-9]+(M|G){1}$" .Values.nextcloud.php.upload_limit) -}}
{{- fail (printf "Nextcloud - Expected Memory Limit to be in format [1M, 1G] but got [%v]" .Values.nextcloud.php.upload_limit) -}}
{{- end }}
PHP_MEMORY_LIMIT: {{ .Values.nextcloud.php.memory_limit | quote }}
PHP_UPLOAD_LIMIT: {{ .Values.nextcloud.php.upload_limit | quote }}
{{/* Notify Push */}}
NX_NOTIFY_PUSH: {{ .Values.nextcloud.notify_push.enabled | quote }}
{{- if .Values.nextcloud.notify_push.enabled }}
NX_NOTIFY_PUSH_ENDPOINT: {{ $accessUrl }}/push
{{- end }}
{{/* Previews */}}
NX_PREVIEWS: {{ .Values.nextcloud.previews.enabled | quote }}
{{- if not (deepEqual .Values.nextcloud.previews.providers (uniq .Values.nextcloud.previews.providers)) }}
{{- fail (printf "Nextcloud - Expected preview providers to be unique but got [%v]" .Values.nextcloud.previews.providers) }}
{{- end }}
NX_PREVIEW_PROVIDERS: {{ join " " .Values.nextcloud.previews.providers }}
NX_PREVIEW_MAX_X: {{ .Values.nextcloud.previews.max_x | quote }}
NX_PREVIEW_MAX_Y: {{ .Values.nextcloud.previews.max_y | quote }}
NX_PREVIEW_MAX_MEMORY: {{ .Values.nextcloud.previews.max_memory | quote }}
NX_PREVIEW_MAX_FILESIZE_IMAGE: {{ .Values.nextcloud.previews.max_file_size_image | quote }}
NX_JPEG_QUALITY: {{ .Values.nextcloud.previews.jpeg_quality | quote }}
NX_PREVIEW_SQUARE_SIZES: {{ .Values.nextcloud.previews.square_sizes | quote }}
NX_PREVIEW_WIDTH_SIZES: {{ .Values.nextcloud.previews.width_sizes | quote }}
NX_PREVIEW_HEIGHT_SIZES: {{ .Values.nextcloud.previews.height_sizes | quote }}
{{/* Imaginary */}}
NX_IMAGINARY: {{ and .Values.nextcloud.previews.enabled .Values.nextcloud.previews.imaginary | quote }}
{{- if and .Values.nextcloud.previews.enabled .Values.nextcloud.previews.imaginary }}
NX_IMAGINARY_URL: {{ printf "http://%v-imaginary:%v" $fullname .Values.service.imaginary.ports.imaginary.port }}
{{- end }}
{{/* Expirations */}}
NX_ACTIVITY_EXPIRE_DAYS: {{ .Values.nextcloud.expirations.activity_expire_days | quote }}
NX_TRASH_RETENTION: {{ .Values.nextcloud.expirations.trash_retention_obligation | quote }}
NX_VERSIONS_RETENTION: {{ .Values.nextcloud.expirations.versions_retention_obligation | quote }}
{{/* General */}}
NX_RUN_OPTIMIZE: {{ .Values.nextcloud.general.run_optimize | quote }}
NX_DEFAULT_PHONE_REGION: {{ .Values.nextcloud.general.default_phone_region | quote }}
NEXTCLOUD_DATA_DIR: {{ .Values.persistence.data.targetSelector.main.main.mountPath }}
{{/* Files */}}
NX_SHARED_FOLDER_NAME: {{ .Values.nextcloud.files.shared_folder_name | quote }}
NX_MAX_CHUNKSIZE: {{ .Values.nextcloud.files.max_chunk_size | mul 1 | quote }}
{{/* Logging */}}
NX_LOG_LEVEL: {{ .Values.nextcloud.logging.log_level | quote }}
NX_LOG_FILE: {{ .Values.nextcloud.logging.log_file | quote }}
NX_LOG_FILE_AUDIT: {{ .Values.nextcloud.logging.log_audit_file | quote }}
NX_LOG_DATE_FORMAT: {{ .Values.nextcloud.logging.log_date_format | quote }}
NX_LOG_TIMEZONE: {{ .Values.TZ | quote }}
{{/* ClamAV */}}
NX_CLAMAV: {{ .Values.nextcloud.clamav.enabled | quote }}
{{- if .Values.nextcloud.clamav.enabled }}
NX_CLAMAV_HOST: {{ printf "%v-clamav" $fullname }}
NX_CLAMAV_PORT: {{ .Values.service.clamav.ports.clamav.targetPort | quote }}
NX_CLAMAV_STREAM_MAX_LENGTH: {{ .Values.nextcloud.clamav.stream_max_length | mul 1 | quote }}
NX_CLAMAV_FILE_MAX_SIZE: {{ .Values.nextcloud.clamav.file_max_size | quote }}
NX_CLAMAV_INFECTED_ACTION: {{ .Values.nextcloud.clamav.infected_action | quote }}
{{- end }}
{{- if and .Values.nextcloud.collabora.enabled .Values.nextcloud.onlyoffice.enabled -}}
{{- fail "Nextcloud - Expected only one of [Collabora, OnlyOffice] to be enabled" -}}
{{- end }}
{{/* Collabora */}}
NX_COLLABORA: {{ .Values.nextcloud.collabora.enabled | quote }}
{{- if .Values.nextcloud.collabora.enabled }}
NX_COLLABORA_URL: {{ .Values.nextcloud.collabora.url | quote }}
NX_COLLABORA_ALLOWLIST: {{ join "," .Values.nextcloud.collabora.allow_list | quote }}
{{- end }}
{{/* Only Office */}}
NX_ONLYOFFICE: {{ .Values.nextcloud.onlyoffice.enabled | quote }}
{{- if .Values.nextcloud.onlyoffice.enabled }}
NX_ONLYOFFICE_URL: {{ .Values.nextcloud.onlyoffice.url | quote }}
NX_ONLYOFFICE_JWT: {{ .Values.nextcloud.onlyoffice.jwt | quote }}
NX_ONLYOFFICE_JWT_HEADER: {{ .Values.nextcloud.onlyoffice.jwt_header | quote }}
{{- end }}
{{/* URLs */}}
NX_OVERWRITE_HOST: {{ $accessHostPort }}
NX_OVERWRITE_CLI_URL: {{ $accessUrl }}
# Return the protocol part of the URL
NX_OVERWRITE_PROTOCOL: {{ $accessProtocol | lower }}
# IP (or range in this case) of the proxy(ies)
NX_TRUSTED_PROXIES: |
{{ .Values.chartContext.svcCIDR }}
# fullname-* will allow access from the
# other services in the same namespace
NX_TRUSTED_DOMAINS: |
127.0.0.1
localhost
{{ $fullname }}
{{ printf "%v-*" $fullname }}
{{ $healthHost }}
{{- if not (contains "127.0.0.1" $accessHostPort) }}
{{- $accessHostPort | nindent 6 }}
{{- end -}}
{{- with .Values.nextcloud.general.accessIP }}
{{- . | nindent 6 }}
{{- end }}
# TODO: Replace locations with ingress
# like /push, /.well-known/carddav, /.well-known/caldav
# needs some work as nginx converts urls to pretty urls
# before matching them to locations, so ingress needs to
# take that into consideration.
nginx-config:
enabled: true
data:
nginx.conf: |
worker_processes auto;
error_log /var/log/nginx/error.log warn;
# Set to /tmp so it can run as non-root
pid /tmp/nginx.pid;
events {
worker_connections 1024;
}
http {
# Set to /tmp so it can run as non-root
client_body_temp_path /tmp/nginx/client_temp;
proxy_temp_path /tmp/nginx/proxy_temp_path;
fastcgi_temp_path /tmp/nginx/fastcgi_temp;
uwsgi_temp_path /tmp/nginx/uwsgi_temp;
scgi_temp_path /tmp/nginx/scgi_temp;
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
# Prevent nginx HTTP Server Detection
server_tokens off;
keepalive_timeout 65;
#gzip on;
upstream php-handler {
server {{ printf "%v-nextcloud" $fullname }}:{{ .Values.service.nextcloud.ports.nextcloud.targetPort }};
}
server {
listen {{ .Values.service.main.ports.main.port }};
absolute_redirect off;
{{- if .Values.nextcloud.notify_push.enabled }}
# Forward Notify_Push "High Performance Backend" to it's own container
location ^~ /push/ {
# The trailing "/" is important!
proxy_pass http://{{ printf "%v-notify" $fullname }}:{{ .Values.service.notify.ports.notify.targetPort }}/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
{{- end }}
# HSTS settings
# WARNING: Only add the preload option once you read about
# the consequences in https://hstspreload.org/. This option
# will add the domain to a hardcoded list that is shipped
# in all major browsers and getting removed from this list
# could take several months.
#add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;" always;
# Set max upload size
client_max_body_size {{ .Values.nextcloud.php.upload_limit | default "512M" }};
fastcgi_buffers 64 4K;
# Enable gzip but do not remove ETag headers
gzip on;
gzip_vary on;
gzip_comp_level 4;
gzip_min_length 256;
gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;
# Pagespeed is not supported by Nextcloud, so if your server is built
# with the `ngx_pagespeed` module, uncomment this line to disable it.
#pagespeed off;
# HTTP response headers borrowed from Nextcloud `.htaccess`
add_header Referrer-Policy "no-referrer" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Download-Options "noopen" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Permitted-Cross-Domain-Policies "none" always;
add_header X-Robots-Tag "noindex, nofollow" always;
add_header X-XSS-Protection "1; mode=block" always;
# Remove X-Powered-By, which is an information leak
fastcgi_hide_header X-Powered-By;
# Path to the root of your installation
root {{ .Values.persistence.html.targetSelector.nginx.nginx.mountPath }};
# Specify how to handle directories -- specifying `/index.php$request_uri`
# here as the fallback means that Nginx always exhibits the desired behaviour
# when a client requests a path that corresponds to a directory that exists
# on the server. In particular, if that directory contains an index.php file,
# that file is correctly served; if it doesn't, then the request is passed to
# the front-end controller. This consistent behaviour means that we don't need
# to specify custom rules for certain paths (e.g. images and other assets,
# `/updater`, `/ocm-provider`, `/ocs-provider`), and thus
# `try_files $uri $uri/ /index.php$request_uri`
# always provides the desired behaviour.
index index.php index.html /index.php$request_uri;
# Rule borrowed from `.htaccess` to handle Microsoft DAV clients
location = / {
if ( $http_user_agent ~ ^DavClnt ) {
return 302 /remote.php/webdav/$is_args$args;
}
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
# Make a regex exception for `/.well-known` so that clients can still
# access it despite the existence of the regex rule
# `location ~ /(\.|autotest|...)` which would otherwise handle requests
# for `/.well-known`.
location ^~ /.well-known {
# The rules in this block are an adaptation of the rules
# in `.htaccess` that concern `/.well-known`.
location = /.well-known/carddav { return 301 /remote.php/dav/; }
location = /.well-known/caldav { return 301 /remote.php/dav/; }
# According to the documentation these two lines are not necessary,
# but some users are still receiving errors
location = /.well-known/webfinger { return 301 /index.php$uri; }
location = /.well-known/nodeinfo { return 301 /index.php$uri; }
location /.well-known/acme-challenge { try_files $uri $uri/ =404; }
location /.well-known/pki-validation { try_files $uri $uri/ =404; }
# Let Nextcloud's API for `/.well-known` URIs handle all other
# requests by passing them to the front-end controller.
return 301 /index.php$request_uri;
}
# Rules borrowed from `.htaccess` to hide certain paths from clients
location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/) { return 404; }
location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) { return 404; }
# Ensure this block, which passes PHP files to the PHP process, is above the blocks
# which handle static assets (as seen below). If this block is not declared first,
# then Nginx will encounter an infinite rewriting loop when it prepends `/index.php`
# to the URI, resulting in a HTTP 500 error response.
location ~ \.php(?:$|/) {
# Required for legacy support
rewrite ^/(?!index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|oc[ms]-provider\/.+|.+\/richdocumentscode\/proxy) /index.php$request_uri;
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
set $path_info $fastcgi_path_info;
try_files $fastcgi_script_name =404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $path_info;
#fastcgi_param HTTPS on;
fastcgi_param modHeadersAvailable true; # Avoid sending the security headers twice
fastcgi_param front_controller_active true; # Enable pretty urls
fastcgi_pass php-handler;
fastcgi_intercept_errors on;
fastcgi_request_buffering off;
proxy_send_timeout 3600s;
proxy_read_timeout 3600s;
fastcgi_send_timeout 3600s;
fastcgi_read_timeout 3600s;
}
location ~ \.(?:css|js|svg|gif)$ {
try_files $uri /index.php$request_uri;
expires 6M; # Cache-Control policy borrowed from `.htaccess`
access_log off; # Optional: Don't log access to assets
}
location ~ \.woff2?$ {
try_files $uri /index.php$request_uri;
expires 7d; # Cache-Control policy borrowed from `.htaccess`
access_log off; # Optional: Don't log access to assets
}
# Rule borrowed from `.htaccess`
location /remote {
return 301 /remote.php$request_uri;
}
location / {
try_files $uri $uri/ /index.php$request_uri;
}
}
}
{{- end -}}

View File

@ -1,34 +0,0 @@
{{- define "nextcloud.cronjobs" -}}
{{- range $cj := .Values.cronjobs }}
{{- $name := $cj.name | required "Nextcloud - Expected non-empty name in cronjob" -}}
{{- $schedule := $cj.schedule | required "Nextcloud - Expected non-empty schedule in cronjob" }}
{{ $name }}:
enabled: {{ $cj.enabled | quote }}
type: CronJob
schedule: {{ $schedule | quote }}
podSpec:
restartPolicy: Never
containers:
{{ $name }}:
enabled: true
primary: true
imageSelector: image
command:
- /bin/bash
- -c
- |
{{- range $cj.cmd }}
{{- . | nindent 12 }}
{{- else -}}
{{- fail "Nextcloud - Expected non-empty cmd in cronjob" -}}
{{- end }}
probes:
liveness:
enabled: false
readiness:
enabled: false
startup:
enabled: false
{{- end }}
{{- end -}}

View File

@ -1,29 +0,0 @@
{{- define "nextcloud.init.perms" -}}
{{- $uid := .Values.securityContext.container.runAsUser -}}
{{- $gid := .Values.securityContext.container.runAsGroup -}}
{{- $path := .Values.persistence.data.targetSelector.main.main.mountPath }}
enabled: true
type: install
imageSelector: alpineImage
securityContext:
runAsUser: 0
runAsGroup: 0
runAsNonRoot: false
capabilities:
disableS6Caps: true
add:
- DAC_OVERRIDE
- FOWNER
- CHOWN
command: /bin/sh
args:
- -c
- |
echo "Setting permissions to 700 on data directory [{{ $path }}] ..."
chmod 770 {{ $path }} | echo "Failed to set permissions on data directory [{{ $path }}]"
echo "Setting ownership to {{ $uid }}:{{ $gid }} on data directory [{{ $path }}] ..."
chown {{ $uid }}:{{ $gid }} {{ $path }} | echo "Failed to set ownership on data directory [{{ $path }}]"
echo "Finished."
{{- end -}}

View File

@ -1,25 +0,0 @@
{{- define "nextcloud.wait.nextcloud" -}}
{{- $fullname := (include "tc.v1.common.lib.chart.names.fullname" $) -}}
{{- $ncURL := printf "%v-nextcloud:%v" $fullname .Values.service.nextcloud.ports.nextcloud.targetPort }}
enabled: true
type: init
imageSelector: image
securityContext:
command: /bin/sh
args:
- -c
- |
echo "Waiting Nextcloud [{{ $ncURL }}] to be ready and installed..."
until \
REQUEST_METHOD="GET" \
SCRIPT_NAME="status.php" \
SCRIPT_FILENAME="status.php" \
cgi-fcgi -bind -connect "{{ $ncURL }}" | grep -q '"installed":true';
do
echo "Waiting Nextcloud [{{ $ncURL }}] to be ready and installed..."
sleep 3
done
echo "Nextcloud is ready and installed..."
echo "Starting Nginx..."
{{- end -}}

View File

@ -1,57 +0,0 @@
{{/* Make sure all variables are set properly */}}
{{- include "tc.v1.common.loader.init" . -}}
{{/* Render configmaps for all pods */}}
{{- $configmaps := include "nextcloud.configmaps" . | fromYaml -}}
{{- if $configmaps -}}
{{- $_ := mustMergeOverwrite .Values.configmap $configmaps -}}
{{- end -}}
{{/* Add [init perms] container to nextcloud */}}
{{- if not (get .Values.workload.main.podSpec "initContainers") -}}
{{- $_ := set .Values.workload.main.podSpec "initContainers" dict -}}
{{- end -}}
{{- $initPerms := (include "nextcloud.init.perms" . | fromYaml) -}}
{{- $_ := set .Values.workload.main.podSpec.initContainers "init-perms" $initPerms -}}
{{/* Add [wait nextcloud] container to nginx */}}
{{- if not (get .Values.workload.nginx.podSpec "initContainers") -}}
{{- $_ := set .Values.workload.nginx.podSpec "initContainers" dict -}}
{{- end -}}
{{- $waitNextcloud := (include "nextcloud.wait.nextcloud" . | fromYaml) -}}
{{- $_ := set .Values.workload.nginx.podSpec.initContainers "wait-nextcloud" $waitNextcloud -}}
{{/* Disable [notify push] if requested */}}
{{- if not .Values.nextcloud.notify_push.enabled -}}
{{- $_ := set .Values.workload.notify "enabled" false -}}
{{- $_ := set .Values.service.notify "enabled" false -}}
{{- else -}}
{{/* Add [wait nextcloud] container to notify push */}}
{{- if not (get .Values.workload.notify.podSpec "initContainers") -}}
{{- $_ := set .Values.workload.notify.podSpec "initContainers" dict -}}
{{- end -}}
{{- $waitNextcloud := (include "nextcloud.wait.nextcloud" . | fromYaml) -}}
{{- $_ := set .Values.workload.notify.podSpec.initContainers "wait-nextcloud" $waitNextcloud -}}
{{- end -}}
{{/* Disable [clamav] if requested */}}
{{- if not .Values.nextcloud.clamav.enabled -}}
{{- $_ := set .Values.workload.clamav "enabled" false -}}
{{- $_ := set .Values.service.clamav "enabled" false -}}
{{- end -}}
{{/* Disable [previews] if requested */}}
{{- if or (not .Values.nextcloud.previews.imaginary) (not .Values.nextcloud.previews.enabled) -}}
{{- $_ := set .Values.workload.imaginary "enabled" false -}}
{{- $_ := set .Values.service.imaginary "enabled" false -}}
{{- end -}}
{{/* Create [cronjobs] defined */}}
{{- $cronjobs := include "nextcloud.cronjobs" . | fromYaml -}}
{{- if $cronjobs -}}
{{- $_ := mustMergeOverwrite .Values.workload $cronjobs -}}
{{- end -}}
{{/* Render the templates */}}
{{- include "tc.v1.common.loader.apply" . -}}

View File

@ -1,50 +0,0 @@
**Important:**
*for the complete changelog, please refer to the website*
## [nextcloud-20.0.2](https://github.com/truecharts/charts/compare/nextcloud-20.0.1...nextcloud-20.0.2) (2023-06-17)
### Fix
- make sure no port is added in the trusted domains ([#9731](https://github.com/truecharts/charts/issues/9731))
## [nextcloud-20.0.1](https://github.com/truecharts/charts/compare/nextcloud-20.0.0...nextcloud-20.0.1) (2023-06-17)
### Fix
- Correctly make use of accessIP when no ingress is enabled ([#9720](https://github.com/truecharts/charts/issues/9720))
## [nextcloud-20.0.0](https://github.com/truecharts/charts/compare/nextcloud-19.0.52...nextcloud-20.0.0) (2023-06-16)
### Feat
- BREAKING CHANGE - rework fully ([#9169](https://github.com/truecharts/charts/issues/9169))
## [nextcloud-20.0.0](https://github.com/truecharts/charts/compare/nextcloud-19.0.52...nextcloud-20.0.0) (2023-05-24)
## [nextcloud-20.0.0](https://github.com/truecharts/charts/compare/nextcloud-19.0.52...nextcloud-20.0.0) (2023-05-24)
## [nextcloud-20.0.0](https://github.com/truecharts/charts/compare/nextcloud-19.0.52...nextcloud-20.0.0) (2023-05-24)
## [nextcloud-20.0.0](https://github.com/truecharts/charts/compare/nextcloud-19.0.52...nextcloud-20.0.0) (2023-05-24)

View File

@ -1,36 +0,0 @@
apiVersion: v2
appVersion: "2.0.0"
dependencies:
- name: common
repository: https://library-charts.truecharts.org
version: 12.14.1
- condition: redis.enabled
name: redis
repository: https://deps.truecharts.org
version: 6.0.48
deprecated: false
description: A private cloud server that puts the control and security of your own data back into your hands.
home: https://truecharts.org/charts/incubator/nextcloud
icon: https://truecharts.org/img/hotlink-ok/chart-icons/nextcloud.png
keywords:
- nextcloud
- storage
- http
- web
- php
kubeVersion: ">=1.16.0-0"
maintainers:
- email: info@truecharts.org
name: TrueCharts
url: https://truecharts.org
name: nextcloud
sources:
- https://github.com/truecharts/charts/tree/master/charts/incubator/nextcloud
- https://github.com/nextcloud/docker
- https://github.com/nextcloud/helm
type: application
version: 20.0.2
annotations:
truecharts.org/catagories: |
- cloud
truecharts.org/SCALE-support: "true"

Some files were not shown because too many files have changed in this diff Show More