Skip to content

Commit 4c3e928

Browse files
committed
Merge remote-tracking branch 'refs/remotes/origin/main'
# Conflicts: # charts/nextcloud/Chart.lock # charts/nextcloud/Chart.yaml
2 parents b00c11e + 8c88ee2 commit 4c3e928

9 files changed

Lines changed: 187 additions & 44 deletions

File tree

CODE_OF_CONDUCT.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@ Our code of conduct offers some guidance to ensure Nextcloud participants can co
44

55
The Code of Conduct is shared by all contributors and users who engage with the Nextcloud team and its community services. It presents a summary of the shared values and “common sense” thinking in our community.
66

7-
You can find our full code of conduct on our website: https://nextcloud.com/code-of-conduct/
7+
You can find our full code of conduct on our website: https://nextcloud.com/contribute/code-of-conduct/
88

99
Please, keep our CoC in mind when you contribute! That way, everyone can be a part of our community in a productive, positive, creative and fun way.

charts/nextcloud/CHANGELOG.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Changelog
2+
3+
This Helm-Chart increase there major version on every breaking change (or major version of Nextcloud itself) inspired by semantic releases.
4+
5+
Here we list all major versions and their breaking changes for migration.
6+
7+
## v7
8+
9+
- update redis to v20 (see [CHANGELOG](https://github.com/bitnami/charts/blob/main/bitnami/redis/CHANGELOG.md#2000-2024-08-09))
10+
- update redis to v21 (see [CHANGELOG](https://github.com/bitnami/charts/blob/main/bitnami/redis/CHANGELOG.md#2100-2025-05-06)
11+
- update postgresql to v16 (see [CHANGELOG](https://github.com/bitnami/charts/blob/main/bitnami/postgresql/CHANGELOG.md#1600-2024-10-02))
12+
- maybe use [pgautoupgrade](https://github.com/pgautoupgrade/docker-pgautoupgrade) to update to v17 (helm v16), with:
13+
```yaml
14+
postgresql:
15+
primary:
16+
initContainers:
17+
- name: upgrade
18+
image: "pgautoupgrade/pgautoupgrade:17-alpine"
19+
env:
20+
- name: "PGAUTO_ONESHOT"
21+
value: "yes"
22+
volumeMounts:
23+
- mountPath: "/bitnami/postgresql"
24+
name: "data"
25+
```
26+
- update mariadb to v19 (see [CHANGELOG](https://github.com/bitnami/charts/blob/main/bitnami/mariadb/CHANGELOG.md#1900-2024-07-11))
27+
- update mariadb to v20 (see [CHANGELOG](https://github.com/bitnami/charts/blob/main/bitnami/mariadb/CHANGELOG.md#2000-2024-11-08))
28+
- update nextcloud to v31 (see [CHANGELOG](https://nextcloud.com/changelog/#31-0-0))

charts/nextcloud/Chart.lock

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
dependencies:
22
- name: postgresql
33
repository: oci://registry-1.docker.io/bitnamicharts
4-
version: 16.3.5
4+
version: 16.7.4
55
- name: mariadb
66
repository: oci://registry-1.docker.io/bitnamicharts
7-
version: 19.1.0
7+
version: 20.5.5
88
- name: redis
99
repository: oci://registry-1.docker.io/bitnamicharts
10-
version: 20.6.1
10+
version: 21.1.3
1111
- name: collabora-online
1212
repository: https://collaboraonline.github.io/online
13-
version: 1.1.37
14-
digest: sha256:86ab70cb28abb7f15d6dc12d58b39a80d5325bf9ceb0959073d0129fd7ad0205
15-
generated: "2025-04-11T15:44:26.237465393Z"
13+
version: 1.1.20
14+
digest: sha256:47979e007ed8bb4a53ec00c5e457da110573a6e067f24da505144f475b26981c
15+
generated: "2025-05-18T15:22:37.968306345+02:00"

charts/nextcloud/Chart.yaml

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
apiVersion: v2
22
name: nextcloud
3-
version: 6.6.10
3+
version: 7.0.0
44
# renovate: image=docker.io/library/nextcloud
5-
appVersion: 30.0.10
5+
appVersion: 31.0.7
66
description: A file sharing server that puts the control and security of your own data back into your hands.
77
keywords:
88
- nextcloud
@@ -27,20 +27,20 @@ maintainers:
2727
- name: jessebot
2828
url: https://jessebot.work
2929
dependencies:
30-
- name: postgresql
31-
version: 16.3.5
32-
repository: oci://registry-1.docker.io/bitnamicharts
33-
condition: postgresql.enabled
34-
- name: mariadb
35-
version: 19.1.0
36-
repository: oci://registry-1.docker.io/bitnamicharts
37-
condition: mariadb.enabled
38-
- name: redis
39-
version: 20.6.1
40-
repository: oci://registry-1.docker.io/bitnamicharts
41-
condition: redis.enabled
42-
- name: collabora-online
43-
version: 1.1.37
44-
repository: https://collaboraonline.github.io/online
45-
condition: collabora.enabled
46-
alias: collabora
30+
- name: postgresql
31+
version: 16.7.4
32+
repository: oci://registry-1.docker.io/bitnamicharts
33+
condition: postgresql.enabled
34+
- name: mariadb
35+
version: 20.5.5
36+
repository: oci://registry-1.docker.io/bitnamicharts
37+
condition: mariadb.enabled
38+
- name: redis
39+
version: 21.1.3
40+
repository: oci://registry-1.docker.io/bitnamicharts
41+
condition: redis.enabled
42+
- name: collabora-online
43+
version: 1.1.20
44+
repository: https://collaboraonline.github.io/online
45+
condition: collabora.enabled
46+
alias: collabora

charts/nextcloud/README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ helm install my-release nextcloud/nextcloud
1515
* [Prerequisites](#prerequisites)
1616
* [Installing the Chart](#installing-the-chart)
1717
* [Uninstalling the Chart](#uninstalling-the-chart)
18+
* [Upgrade / Breaking Changes](#upgrade--breaking-changes)
1819
* [Configuration](#configuration)
1920
* [Ingress](#ingress)
2021
* [Ingress Sticky-Sessions](#ingress-sticky-sessions)
@@ -97,6 +98,11 @@ helm delete my-release
9798

9899
The command removes all the Kubernetes components associated with the chart and deletes the release.
99100

101+
## Upgrade / Breaking Changes
102+
103+
There is a Changelog of breaking changes here: [CHANGELOG.md](./CHANGELOG.md).
104+
You should read it bevore updating.
105+
100106
## Configuration
101107

102108
The following table lists the configurable parameters of the nextcloud chart and their default values.

charts/nextcloud/files/nginx.config.tpl

Lines changed: 41 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,15 @@
1+
# Version 2024-07-17
2+
13
upstream php-handler {
24
server 127.0.0.1:9000;
35
}
46

7+
# Set the `immutable` cache control options only for assets with a cache busting `v` argument
8+
map $arg_v $asset_immutable {
9+
"" "";
10+
default ", immutable";
11+
}
12+
513
server {
614
{{- if and (has "IPv4" .Values.nginx.ipFamilies) (has "IPv6" .Values.nginx.ipFamilies) }}
715
# Both IPv4 and IPv6 are enabled
@@ -14,6 +22,12 @@ server {
1422
listen {{ .Values.nginx.containerPort }};
1523
{{- end }}
1624

25+
# Path to the root of your installation
26+
root /var/www/html;
27+
28+
# Prevent nginx HTTP Server Detection
29+
server_tokens off;
30+
1731
# HSTS settings
1832
# WARNING: Only add the preload option once you read about
1933
# the consequences in https://hstspreload.org/. This option
@@ -26,8 +40,9 @@ server {
2640
{{- end }}
2741
{{- end }}
2842

29-
# set max upload size
30-
client_max_body_size 10G;
43+
# set max upload size and increase upload timeout:
44+
client_max_body_size 512M;
45+
client_body_timeout 300s;
3146
fastcgi_buffers 64 4K;
3247

3348
# Enable gzip but do not remove ETag headers
@@ -36,27 +51,30 @@ server {
3651
gzip_comp_level 4;
3752
gzip_min_length 256;
3853
gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
39-
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;
54+
gzip_types application/atom+xml text/javascript application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm 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;
4055

4156
# Pagespeed is not supported by Nextcloud, so if your server is built
4257
# with the `ngx_pagespeed` module, uncomment this line to disable it.
4358
#pagespeed off;
4459

60+
# The settings allows you to optimize the HTTP2 bandwidth.
61+
# See https://blog.cloudflare.com/delivering-http-2-upload-speed-improvements/
62+
# for tuning hints
63+
client_body_buffer_size 512k;
64+
4565
# Remove X-Powered-By, which is an information leak
4666
fastcgi_hide_header X-Powered-By;
4767

48-
# Add .mjs as a file extension for javascript
68+
# Set .mjs and .wasm MIME types
4969
# Either include it in the default mime.types list
50-
# or include you can include that list explicitly and add the file extension
70+
# and include that list explicitly or add the file extension
5171
# only for Nextcloud like below:
5272
include mime.types;
5373
types {
5474
text/javascript js mjs;
75+
application/wasm wasm;
5576
}
5677

57-
# Path to the root of your installation
58-
root /var/www/html;
59-
6078
# Specify how to handle directories -- specifying `/index.php$request_uri`
6179
# here as the fallback means that Nginx always exhibits the desired behaviour
6280
# when a client requests a path that corresponds to a directory that exists
@@ -91,10 +109,10 @@ server {
91109

92110
location = /.well-known/carddav { return 301 /remote.php/dav/; }
93111
location = /.well-known/caldav { return 301 /remote.php/dav/; }
94-
# Anything else is dynamically handled by Nextcloud
95-
location ^~ /.well-known { return 301 /index.php$uri; }
96112

97-
try_files $uri $uri/ =404;
113+
# Let Nextcloud's API for `/.well-known` URIs handle all other
114+
# requests by passing them to the front-end controller.
115+
return 301 /index.php$request_uri;
98116
}
99117

100118
# Rules borrowed from `.htaccess` to hide certain paths from clients
@@ -106,8 +124,8 @@ server {
106124
# then Nginx will encounter an infinite rewriting loop when it prepends `/index.php`
107125
# to the URI, resulting in a HTTP 500 error response.
108126
location ~ \.php(?:$|/) {
109-
# Required for legacy support
110-
rewrite ^/(?!index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|oc[ms]-provider\/.+|.+\/richdocumentscode(_arm64)?\/proxy) /index.php$request_uri;
127+
# Required for legacy support
128+
rewrite ^/(?!index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|ocs-provider\/.+|.+\/richdocumentscode(_arm64)?\/proxy) /index.php$request_uri;
111129

112130
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
113131
set $path_info $fastcgi_path_info;
@@ -117,28 +135,35 @@ server {
117135
include fastcgi_params;
118136
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
119137
fastcgi_param PATH_INFO $path_info;
120-
#fastcgi_param HTTPS on;
138+
fastcgi_param HTTPS on;
121139

122140
fastcgi_param modHeadersAvailable true; # Avoid sending the security headers twice
123141
fastcgi_param front_controller_active true; # Enable pretty urls
124142
fastcgi_pass php-handler;
125143

126144
fastcgi_intercept_errors on;
127145
fastcgi_request_buffering off;
146+
147+
fastcgi_max_temp_file_size 0;
128148
}
129149

130-
location ~ \.(?:css|js|svg|gif)$ {
150+
location ~ \.(?:css|js|mjs|svg|gif|ico|jpg|png|webp|wasm|tflite|map|ogg|flac)$ {
131151
try_files $uri /index.php$request_uri;
132152
expires 6M; # Cache-Control policy borrowed from `.htaccess`
133153
access_log off; # Optional: Don't log access to assets
134154
}
135155

136-
location ~ \.woff2?$ {
156+
location ~ \.(otf|woff2?)$ {
137157
try_files $uri /index.php$request_uri;
138158
expires 7d; # Cache-Control policy borrowed from `.htaccess`
139159
access_log off; # Optional: Don't log access to assets
140160
}
141161

162+
# Rule borrowed from `.htaccess`
163+
location /remote {
164+
return 301 /remote.php$request_uri;
165+
}
166+
142167
location / {
143168
try_files $uri $uri/ /index.php$request_uri;
144169
}

charts/nextcloud/templates/metrics/deployment.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@ spec:
6464
value: {{ .Values.metrics.tlsSkipVerify | quote }}
6565
- name: NEXTCLOUD_INFO_APPS
6666
value: {{ .Values.metrics.info.apps | quote }}
67+
- name: NEXTCLOUD_INFO_UPDATE
68+
value: {{ .Values.metrics.info.update | quote }}
6769
ports:
6870
- name: metrics
6971
containerPort: 9205
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
{{- if .Values.metrics.rules.enabled }}
2+
{{- $fullname := include "nextcloud.fullname" . }}
3+
apiVersion: monitoring.coreos.com/v1
4+
kind: PrometheusRule
5+
metadata:
6+
name: {{ $fullname }}
7+
labels:
8+
{{- include "nextcloud.labels" ( dict "rootContext" $ ) | nindent 4 }}
9+
{{- with .Values.metrics.rules.labels }}
10+
{{- toYaml . | nindent 4 }}
11+
{{- end }}
12+
spec:
13+
groups:
14+
{{- with .Values.metrics.rules.defaults }}
15+
{{- if .enabled }}
16+
{{- $filter := .filter | default (printf `namespace="%s",job=~"^%s.*"` $.Release.Namespace $fullname) }}
17+
- name: {{ $fullname }}-Defaults
18+
rules:
19+
- alert: "nextcloud: not reachable"
20+
expr: 'avg(nextcloud_up{ {{ $filter }} }) without(endpoint,container,pod,instance) < 1'
21+
for: 5m
22+
labels:
23+
severity: "critical"
24+
{{- with .labels }}
25+
{{- toYaml . | nindent 12 }}
26+
{{- end }}
27+
annotations:
28+
{{`
29+
summary: "Nextcloud in {{ $labels.namespace }} is not reachable by exporter"
30+
`}}
31+
- alert: "nextcloud: outdated version"
32+
expr: 'sum(nextcloud_system_update_available{ {{ $filter }} }) without(endpoint,container,pod,instance) > 0'
33+
labels:
34+
severity: "warning"
35+
{{- with .labels }}
36+
{{- toYaml . | nindent 12 }}
37+
{{- end }}
38+
annotations:
39+
{{`
40+
summary: "Nextcloud in {{ $labels.namespace }} is outdated"
41+
`}}
42+
- alert: "nextcloud: outdated apps"
43+
expr: 'sum(nextcloud_apps_updates_available_total{ {{ $filter }} }) without(endpoint,container,pod,instance) > 0'
44+
labels:
45+
severity: "warning"
46+
{{- with .labels }}
47+
{{- toYaml . | nindent 12 }}
48+
{{- end }}
49+
annotations:
50+
{{`
51+
summary: "Nextcloud in {{ $labels.namespace }} has {{ $value }} outdated Apps"
52+
`}}
53+
{{- end }}
54+
{{- end }}{{/* end-with prometheus.rules.default */}}
55+
{{- with .Values.metrics.rules.additionalRules }}
56+
- name: {{ $fullname }}-Additional
57+
rules:
58+
{{- toYaml . | nindent 8 }}
59+
{{- end }}
60+
{{- end }}
61+

charts/nextcloud/values.yaml

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -347,7 +347,6 @@ nginx:
347347
"Strict-Transport-Security": ""
348348
"Referrer-Policy": "no-referrer"
349349
"X-Content-Type-Options": "nosniff"
350-
"X-Download-Options": "noopen"
351350
"X-Frame-Options": "SAMEORIGIN"
352351
"X-Permitted-Cross-Domain-Policies": "none"
353352
"X-Robots-Tag": "noindex, nofollow"
@@ -778,10 +777,11 @@ metrics:
778777
# Optional: becomes NEXTCLOUD_INFO_APPS env var in the nextcloud-exporter container.
779778
# Enables gathering of apps-related metrics. Defaults to false
780779
apps: false
780+
update: false
781781

782782
image:
783783
repository: xperimental/nextcloud-exporter
784-
tag: 0.6.2
784+
tag: 0.8.0
785785
pullPolicy: IfNotPresent
786786
# pullSecrets:
787787
# - myRegistrKeySecretName
@@ -863,6 +863,27 @@ metrics:
863863
##
864864
labels: {}
865865

866+
rules:
867+
# -- Deploy Prometheus Rules (Alerts) for the exporter
868+
# @section -- Metrics
869+
enabled: false
870+
# -- Label on Prometheus Rules CRD Manifest
871+
# @section -- Metrics
872+
labels: {}
873+
defaults:
874+
# -- Add Default Rules
875+
# @section -- Metrics
876+
enabled: true
877+
# -- Label on the rules (the severity is already set)
878+
# @section -- Metrics
879+
labels: {}
880+
# -- Filter on metrics on alerts (default just for this helm-chart)
881+
# @section -- Metrics
882+
filter: ""
883+
# -- Add own Rules to Prometheus Rules
884+
# @section -- Metrics
885+
additionalRules: []
886+
866887

867888
rbac:
868889
enabled: false

0 commit comments

Comments
 (0)