Compare commits

..

1 Commits

35 changed files with 106 additions and 78 deletions

View File

@@ -1,5 +0,0 @@
# SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
d86aa09feb6ce2ad244926aff7adcb36 lint-php.yml
a965b7d4820a97cc232a24f6caf90d95 psalm.yml
9dc6b717be0006fc7974a50351686fd7 sync-workflow-templates.yml

View File

@@ -8,7 +8,15 @@
name: Lint php
on: pull_request
on:
pull_request:
paths:
- 'php/**'
push:
branches:
- main
paths:
- 'php/**'
permissions:
contents: read
@@ -18,27 +26,11 @@ concurrency:
cancel-in-progress: true
jobs:
matrix:
runs-on: ubuntu-latest-low
outputs:
php-min: ${{ steps.versions.outputs.php-min }}
php-max: ${{ steps.versions.outputs.php-max }}
steps:
- name: Checkout app
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Get version matrix
id: versions
uses: icewind1991/nextcloud-version-matrix@8a7bac6300b2f0f3100088b297995a229558ddba # v1.3.2
php-lint:
runs-on: ubuntu-latest
needs: matrix
strategy:
matrix:
php-versions: ['${{ needs.matrix.outputs.php-min }}', '${{ needs.matrix.outputs.php-max }}']
php-versions: [ "8.5" ]
name: php-lint
@@ -49,17 +41,16 @@ jobs:
persist-credentials: false
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f # 2.37.0
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f # v2.37.0
with:
php-version: ${{ matrix.php-versions }}
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: none
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Lint
run: composer run lint
run: cd php && composer run lint
summary:
permissions:

View File

@@ -8,7 +8,15 @@
name: Static analysis
on: pull_request
on:
pull_request:
paths:
- 'php/**'
push:
branches:
- main
paths:
- 'php/**'
concurrency:
group: psalm-${{ github.head_ref || github.run_id }}
@@ -28,32 +36,20 @@ jobs:
with:
persist-credentials: false
- name: Get php version
id: versions
uses: icewind1991/nextcloud-version-matrix@8a7bac6300b2f0f3100088b297995a229558ddba # v1.3.2
- name: Check enforcement of minimum PHP version ${{ steps.versions.outputs.php-min }} in psalm.xml
run: grep 'phpVersion="${{ steps.versions.outputs.php-min }}' psalm.xml
- name: Set up php${{ steps.versions.outputs.php-available }}
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f # 2.37.0
- name: Set up php
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f # v2.37.0
with:
php-version: ${{ steps.versions.outputs.php-available }}
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
php-version: 8.5
extensions: apcu
coverage: none
ini-file: development
# Temporary workaround for missing pcntl_* in PHP 8.3
ini-values: disable_functions=
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Install dependencies
- name: Install dependencies and run psalm
run: |
composer remove nextcloud/ocp --dev --no-scripts
composer i
- name: Install nextcloud/ocp
run: composer require --dev nextcloud/ocp:dev-${{ steps.versions.outputs.branches-max }} --ignore-platform-reqs --with-dependencies
- name: Run coding standards check
run: composer run psalm -- --threads=1 --monochrome --no-progress --output-format=github
set -x
cd php
composer install
composer run psalm

View File

@@ -26,7 +26,6 @@ jobs:
matrix:
branches:
- ${{ github.event.repository.default_branch }}
- 'stable34'
- 'stable33'
- 'stable32'
@@ -123,7 +122,7 @@ jobs:
- name: Create Pull Request
uses: peter-evans/create-pull-request@5f6978faf089d4d20b00c7766989d076bb2fc7f1 # v8.1.1
with:
token: ${{ secrets.COMMAND_BOT_WORKFLOWS }}
token: ${{ secrets.COMMAND_BOT_WORKFLOWS }} # zizmor: ignore[secrets-outside-env]
commit-message: 'ci(actions): Update workflow templates from organization template repository'
committer: GitHub <noreply@github.com>
author: nextcloud-command <nextcloud-command@users.noreply.github.com>

View File

@@ -31,5 +31,4 @@ LABEL com.centurylinklabs.watchtower.enable="false" \
org.opencontainers.image.source="https://github.com/nextcloud/all-in-one" \
org.opencontainers.image.vendor="Nextcloud" \
org.opencontainers.image.documentation="https://github.com/nextcloud/all-in-one/blob/main/readme.md"
ENV BORG_RETENTION_POLICY="--keep-within=7d --keep-weekly=4 --keep-monthly=6" \
AIO_LOG_LEVEL="warn"
ENV BORG_RETENTION_POLICY="--keep-within=7d --keep-weekly=4 --keep-monthly=6"

View File

@@ -4,6 +4,9 @@ if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x
fi
# Defensive default: ensure AIO_LOG_LEVEL is never empty so log-level mappings below always resolve correctly
AIO_LOG_LEVEL="${AIO_LOG_LEVEL:-warn}"
if [ "$AIO_LOG_LEVEL" = "warn" ]; then
BORG_LOG_LEVEL_FLAG="--warning"
else

View File

@@ -4,6 +4,9 @@ if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x
fi
# Defensive default: ensure AIO_LOG_LEVEL is never empty so log-level mappings below always resolve correctly
AIO_LOG_LEVEL="${AIO_LOG_LEVEL:-warn}"
if [ "$AIO_LOG_LEVEL" = "warn" ]; then
COLLABORA_LOG_LEVEL="warning"
elif [ "$AIO_LOG_LEVEL" = "info" ]; then

View File

@@ -4,6 +4,9 @@ if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x
fi
# Defensive default: ensure AIO_LOG_LEVEL is never empty so log-level mappings below always resolve correctly
AIO_LOG_LEVEL="${AIO_LOG_LEVEL:-warn}"
ELASTIC_LOG_LEVEL="$(echo "$AIO_LOG_LEVEL" | tr '[:lower:]' '[:upper:]')"
exec env "logger.level=$ELASTIC_LOG_LEVEL" /usr/local/bin/docker-entrypoint.sh "$@"

View File

@@ -4,11 +4,15 @@ if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x
fi
# Defensive default: ensure AIO_LOG_LEVEL is never empty so log-level mappings below always resolve correctly
AIO_LOG_LEVEL="${AIO_LOG_LEVEL:-warn}"
GOLANG_LOG="$(case "$AIO_LOG_LEVEL" in
debug) printf 'info' ;;
info) printf 'info' ;;
warn) printf 'warning' ;;
error) printf 'error' ;;
*) printf 'warning' ;;
esac)"
export GOLANG_LOG
if [ "$AIO_LOG_LEVEL" = "debug" ]; then

View File

@@ -59,6 +59,15 @@ fi
# Wait for watchtower to stop
if [ "$AUTOMATIC_UPDATES" = 1 ]; then
# Give Docker time to register the container as running before checking for it.
# Without this, there is a race condition where the check below runs before watchtower
# appears in `docker ps`, causing the script to skip the wait and continue with
# the potentially outdated mastercontainer code while watchtower is still updating it.
count=0
while ! docker ps --format "{{.Names}}" | grep -q "^nextcloud-aio-watchtower$" && [ "$count" -lt 12 ]; do
sleep 5
count=$((count + 1))
done
if ! docker ps --format "{{.Names}}" | grep -q "^nextcloud-aio-watchtower$"; then
echo "Something seems to be wrong: Watchtower should be started at this step."
fi

View File

@@ -14,6 +14,9 @@ if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x
fi
# Defensive default: ensure AIO_LOG_LEVEL is never empty so log-level mappings below always resolve correctly
AIO_LOG_LEVEL="${AIO_LOG_LEVEL:-warn}"
run_upgrade_if_needed_due_to_app_update() {
if php /var/www/html/occ status | grep maintenance | grep -q true; then
php /var/www/html/occ maintenance:mode --off
@@ -29,6 +32,7 @@ NEXTCLOUD_LOG_LEVEL="$(case "$AIO_LOG_LEVEL" in
info) printf '1' ;;
warn) printf '2' ;;
error) printf '3' ;;
*) printf '2' ;;
esac)"
export NEXTCLOUD_LOG_LEVEL

View File

@@ -4,6 +4,9 @@ if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x
fi
# Defensive default: ensure AIO_LOG_LEVEL is never empty so log-level mappings below always resolve correctly
AIO_LOG_LEVEL="${AIO_LOG_LEVEL:-warn}"
export RUST_LOG="$AIO_LOG_LEVEL"
if [ -z "$NEXTCLOUD_HOST" ]; then

View File

@@ -4,11 +4,15 @@ if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x
fi
# Defensive default: ensure AIO_LOG_LEVEL is never empty so log-level mappings below always resolve correctly
AIO_LOG_LEVEL="${AIO_LOG_LEVEL:-warn}"
POSTGRES_LOG_MIN_MESSAGES="$(case "$AIO_LOG_LEVEL" in
debug) printf 'debug1' ;;
info) printf 'info' ;;
warn) printf 'warning' ;;
error) printf 'error' ;;
*) printf 'warning' ;;
esac)"
export POSTGRES_LOG_MIN_MESSAGES

View File

@@ -4,6 +4,9 @@ if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x
fi
# Defensive default: ensure AIO_LOG_LEVEL is never empty so log-level mappings below always resolve correctly
AIO_LOG_LEVEL="${AIO_LOG_LEVEL:-warn}"
# Redis only supports [debug, verbose, notice, warning, nothing] as log level
if [ "$AIO_LOG_LEVEL" = "warn" ] || [ "$AIO_LOG_LEVEL" = "error" ]; then
REDIS_LOG_LEVEL="warning"

View File

@@ -4,11 +4,15 @@ if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x
fi
# Defensive default: ensure AIO_LOG_LEVEL is never empty so log-level mappings below always resolve correctly
AIO_LOG_LEVEL="${AIO_LOG_LEVEL:-warn}"
TALK_RECORDING_LOG_LEVEL="$(case "$AIO_LOG_LEVEL" in
debug) printf '10' ;;
info) printf '20' ;;
warn) printf '30' ;;
error) printf '40' ;;
*) printf '30' ;;
esac)"
export TALK_RECORDING_LOG_LEVEL

View File

@@ -4,6 +4,9 @@ if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x
fi
# Defensive default: ensure AIO_LOG_LEVEL is never empty so log-level mappings below always resolve correctly
AIO_LOG_LEVEL="${AIO_LOG_LEVEL:-warn}"
if [ "$AIO_LOG_LEVEL" = "warn" ]; then
ETURNAL_LOG_LEVEL="warning"
else
@@ -15,6 +18,7 @@ JANUS_LOG_LEVEL="$(case "$AIO_LOG_LEVEL" in
info) printf '4' ;;
warn) printf '3' ;;
error) printf '1' ;;
*) printf '3' ;;
esac)"
export JANUS_LOG_LEVEL

View File

@@ -22,8 +22,6 @@ COPY --chmod=775 start.sh /start.sh
# hadolint ignore=DL3002
USER root
ENV AIO_LOG_LEVEL="warn"
ENTRYPOINT ["/start.sh"]
LABEL com.centurylinklabs.watchtower.enable="false" \
wud.watch="false" \

View File

@@ -4,6 +4,9 @@ if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x
fi
# Defensive default: ensure AIO_LOG_LEVEL is never empty so log-level mappings below always resolve correctly
AIO_LOG_LEVEL="${AIO_LOG_LEVEL:-warn}"
# Check if socket is available and readable
if ! [ -e "/var/run/docker.sock" ]; then
echo "Docker socket is not available. Cannot continue."

View File

@@ -4,6 +4,9 @@ if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x
fi
# Defensive default: ensure AIO_LOG_LEVEL is never empty so log-level mappings below always resolve correctly
AIO_LOG_LEVEL="${AIO_LOG_LEVEL:-warn}"
export LOG_LEVEL="$AIO_LOG_LEVEL"
# Only start container if nextcloud is accessible

View File

@@ -4,8 +4,8 @@
"container_name": "nextcloud-aio-lldap",
"display_name": "Light LDAP implementation",
"documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/lldap",
"image": "ghcr.io/lldap/lldap",
"image_tag": "latest-alpine",
"image": "lldap/lldap",
"image_tag": "v0-alpine",
"internal_port": "17170",
"restart": "unless-stopped",
"ports": [

View File

@@ -1,6 +1,6 @@
name: nextcloud-aio-helm-chart
description: A generated Helm Chart for Nextcloud AIO from Skippbox Kompose
version: 13.0.4
version: 13.0.3-1
apiVersion: v2
keywords:
- latest

View File

@@ -65,7 +65,7 @@ spec:
value: "{{ .Values.TIMEZONE }}"
- name: WHITEBOARD_HOST
value: nextcloud-aio-whiteboard
image: ghcr.io/nextcloud-releases/aio-apache:20260515_145717
image: ghcr.io/nextcloud-releases/aio-apache:20260513_090235
readinessProbe:
exec:
command:

View File

@@ -36,7 +36,7 @@ spec:
{{- end }}
initContainers:
- name: init-subpath
image: ghcr.io/nextcloud-releases/aio-alpine:20260515_145717
image: ghcr.io/nextcloud-releases/aio-alpine:20260513_090235
command:
- mkdir
- "-p"
@@ -61,7 +61,7 @@ spec:
value: "{{ .Values.NEXTCLOUD_UPLOAD_LIMIT }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: ghcr.io/nextcloud-releases/aio-clamav:20260515_145717
image: ghcr.io/nextcloud-releases/aio-clamav:20260513_090235
readinessProbe:
exec:
command:

View File

@@ -38,9 +38,9 @@ spec:
- name: server_name
value: "{{ .Values.NC_DOMAIN }}"
{{- if contains "--o:support_key=" (join " " (.Values.ADDITIONAL_COLLABORA_OPTIONS | default list)) }}
image: ghcr.io/nextcloud-releases/aio-collabora-online:20260515_145717
image: ghcr.io/nextcloud-releases/aio-collabora-online:20260513_090235
{{- else }}
image: ghcr.io/nextcloud-releases/aio-collabora:20260515_145717
image: ghcr.io/nextcloud-releases/aio-collabora:20260513_090235
{{- end }}
readinessProbe:
exec:

View File

@@ -35,7 +35,7 @@ spec:
{{- end }}
initContainers:
- name: init-subpath
image: ghcr.io/nextcloud-releases/aio-alpine:20260515_145717
image: ghcr.io/nextcloud-releases/aio-alpine:20260513_090235
command:
- mkdir
- "-p"
@@ -66,7 +66,7 @@ spec:
value: nextcloud
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: ghcr.io/nextcloud-releases/aio-postgresql:20260515_145717
image: ghcr.io/nextcloud-releases/aio-postgresql:20260513_090235
readinessProbe:
exec:
command:

View File

@@ -24,7 +24,7 @@ spec:
spec:
initContainers:
- name: init-volumes
image: ghcr.io/nextcloud-releases/aio-alpine:20260515_145717
image: ghcr.io/nextcloud-releases/aio-alpine:20260513_090235
command:
- chmod
- "777"
@@ -60,7 +60,7 @@ spec:
value: basic
- name: xpack.security.enabled
value: "false"
image: ghcr.io/nextcloud-releases/aio-fulltextsearch:20260515_145717
image: ghcr.io/nextcloud-releases/aio-fulltextsearch:20260513_090235
readinessProbe:
exec:
command:

View File

@@ -40,7 +40,7 @@ spec:
value: "{{ .Values.IMAGINARY_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: ghcr.io/nextcloud-releases/aio-imaginary:20260515_145717
image: ghcr.io/nextcloud-releases/aio-imaginary:20260513_090235
readinessProbe:
exec:
command:

View File

@@ -38,7 +38,7 @@ spec:
# AIO settings start # Do not remove or change this line!
initContainers:
- name: init-volumes
image: ghcr.io/nextcloud-releases/aio-alpine:20260515_145717
image: ghcr.io/nextcloud-releases/aio-alpine:20260513_090235
command:
- chmod
- "777"
@@ -192,7 +192,7 @@ spec:
value: "{{ .Values.WHITEBOARD_ENABLED }}"
- name: WHITEBOARD_SECRET
value: "{{ .Values.WHITEBOARD_SECRET }}"
image: ghcr.io/nextcloud-releases/aio-nextcloud:20260515_145717
image: ghcr.io/nextcloud-releases/aio-nextcloud:20260513_090235
{{- if eq (.Values.RPSS_ENABLED | default "no") "yes" }} # AIO-config - do not change this comment!
securityContext:
# The items below only work in container context

View File

@@ -41,7 +41,7 @@ spec:
value: nextcloud-aio-nextcloud
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: ghcr.io/nextcloud-releases/aio-notify-push:20260515_145717
image: ghcr.io/nextcloud-releases/aio-notify-push:20260513_090235
readinessProbe:
exec:
command:

View File

@@ -24,7 +24,7 @@ spec:
spec:
initContainers:
- name: init-volumes
image: ghcr.io/nextcloud-releases/aio-alpine:20260515_145717
image: ghcr.io/nextcloud-releases/aio-alpine:20260513_090235
command:
- chmod
- "777"
@@ -46,7 +46,7 @@ spec:
value: "{{ .Values.AIO_LOG_LEVEL }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: ghcr.io/nextcloud-releases/aio-onlyoffice:20260515_145717
image: ghcr.io/nextcloud-releases/aio-onlyoffice:20260513_090235
readinessProbe:
exec:
command:

View File

@@ -41,7 +41,7 @@ spec:
value: "{{ .Values.REDIS_PASSWORD }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: ghcr.io/nextcloud-releases/aio-redis:20260515_145717
image: ghcr.io/nextcloud-releases/aio-redis:20260513_090235
readinessProbe:
exec:
command:

View File

@@ -56,7 +56,7 @@ spec:
value: "{{ .Values.TURN_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: ghcr.io/nextcloud-releases/aio-talk:20260515_145717
image: ghcr.io/nextcloud-releases/aio-talk:20260513_090235
readinessProbe:
exec:
command:

View File

@@ -46,7 +46,7 @@ spec:
value: "{{ .Values.RECORDING_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: ghcr.io/nextcloud-releases/aio-talk-recording:20260515_145717
image: ghcr.io/nextcloud-releases/aio-talk-recording:20260513_090235
readinessProbe:
exec:
command:

View File

@@ -52,7 +52,7 @@ spec:
value: redis
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: ghcr.io/nextcloud-releases/aio-whiteboard:20260515_145717
image: ghcr.io/nextcloud-releases/aio-whiteboard:20260513_090235
readinessProbe:
exec:
command:

View File

@@ -1 +1 @@
13.0.4
13.0.3