Compare commits

...

61 Commits

Author SHA1 Message Date
Simon L
90c2328400 increase to 4.6.1
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-08 14:54:23 +01:00
Simon L
f5ee38247c Merge pull request #2122 from nextcloud/enh/noid/fix-borg-globbing
borg script - disable globbing
2023-03-08 14:53:33 +01:00
Simon L
f51029270b Merge pull request #2123 from nextcloud/enh/noid/imaginary-prevent-memory-issues
imaginary - try to prevent possible memory issues
2023-03-08 14:52:59 +01:00
Simon L
d27aa357db Merge pull request #2125 from nextcloud/dependabot/docker/Containers/apache/httpd-2.4.56-alpine3.17
Bump httpd from 2.4.55-alpine3.17 to 2.4.56-alpine3.17 in /Containers/apache
2023-03-08 14:09:07 +01:00
dependabot[bot]
4b3e192ee6 Bump httpd in /Containers/apache
Bumps httpd from 2.4.55-alpine3.17 to 2.4.56-alpine3.17.

---
updated-dependencies:
- dependency-name: httpd
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-08 13:00:51 +00:00
Simon L
d974023c8d imaginary - try to prevent possible memory issues
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-08 11:08:03 +01:00
Simon L
204aa5649c fix typo
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-08 00:12:54 +01:00
Simon L
8cd5f604c4 Nextcloud_mount is actually supported on windows now
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-07 23:26:42 +01:00
Simon L
fdb0330959 add an example for NEXTCLOUD_MOUNT on macOS
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-07 23:16:17 +01:00
Simon L
4f5062080b borg script - disable globbing
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-07 23:15:15 +01:00
Simon L
39b669ae83 fix typo
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-07 11:27:07 +01:00
Simon L
671a73a6c4 fix typo
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-07 10:57:51 +01:00
Simon L
a4f0852bdf increase to 4.6.0
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-07 10:43:04 +01:00
Simon L
46ae99e36b Merge pull request #2109 from nextcloud/enh/noid/change-permission-check
change how permission check setting works
2023-03-07 10:41:22 +01:00
Simon L
07054d869b Merge pull request #2114 from nextcloud/enh/noid/update-imaginary-dependencies
update some imaginary dependencies to improve performance
2023-03-07 10:23:23 +01:00
Simon L
ebbcb998ce address review
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-07 10:04:11 +01:00
Simon L
9f8d17d888 Merge pull request #2113 from nextcloud/enh/noid/cap_add
fix set_memory for imaginary and move cap_add to containers.json
2023-03-07 09:59:45 +01:00
Simon L
56a95182c7 change to bookworm
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-07 09:56:03 +01:00
Simon L
e218c1d041 Merge pull request #2107 from nextcloud/enh/noid/add-another-volume-check
add a check if the mastercontainer volume is really connected to the mastercontainer
2023-03-07 09:53:20 +01:00
Simon L
356792ec68 Merge pull request #2106 from nextcloud/enh/noid/rm-tzdata-master
remove tzdata from mastercontainer
2023-03-07 09:46:55 +01:00
Simon L
30ae4eeecd Merge pull request #2098 from nextcloud/enh/noid/exclude-some-logs
exclude nextcloud and audit log in backup due to GPDR reasons
2023-03-07 09:46:38 +01:00
Simon L
8685107e2e Merge pull request #2118 from nextcloud/enh/noid/send-update-notification-on-saturdays
only send update notifications on saturdays
2023-03-07 09:44:43 +01:00
Simon L
f01a5841b9 only send update notifications on saturdays
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-07 09:29:04 +01:00
Simon L
2a01e9683b exclude nextcloud and audit log in backup due to GPDR reasons
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-07 09:22:02 +01:00
Simon L
0873e526b4 Merge pull request #2115 from spatterIight/patch-1
Update migration.md
2023-03-07 08:57:46 +01:00
spatterlight
2306587a7d Update migration.md
Fixed typo

Signed-off-by: spatterlight <81454789+spatterIight@users.noreply.github.com>
2023-03-06 21:14:45 +00:00
Simon L
69b0911db1 add two options to cifs mount
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-06 15:14:04 +01:00
Simon L
6587530242 fix set_memory for imaginary and move cap_add to containers.json
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-06 11:45:07 +01:00
Simon L
cf3f1f04cd update some imaginary dependencies to improve performance
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-06 11:42:00 +01:00
Simon L
ba6efd2a9c change how permission check setting works
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-05 14:36:21 +01:00
Simon L
1e96eed341 add a check if the mastercontainer volume is really connected to the mastercontainer
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-04 20:17:19 +01:00
Simon L
c54395aa4c update snap migration advice
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-04 18:02:05 +01:00
Simon L
4590b28b50 remove tzdata from mastercontainer
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-04 17:26:57 +01:00
Simon L
a77ae20e5d Merge pull request #2102 from shaan7/patch-1
Fix directory path example
2023-03-03 23:23:14 +01:00
Shantanu Tushar
c5e481b767 Fix directory path example
`/run/desktop/mnt/host/c/ncdata` does not really contain the word `backup`, so I'm guessing `C:\backup` is a typo.

Signed-off-by: Shantanu Tushar <shaan7in@gmail.com>
2023-03-04 03:17:33 +05:30
Simon L
c23b7aa396 increase to 4.5.1
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-02 15:48:51 +01:00
Simon L
a12022f290 Merge pull request #2096 from nextcloud/dependabot/docker/Containers/collabora/collabora/code-22.05.10.8.1
Bump collabora/code from 22.05.10.7.1 to 22.05.10.8.1 in /Containers/collabora
2023-03-02 15:44:22 +01:00
Simon L
01291bbcce Merge pull request #2097 from nextcloud/dependabot/docker/Containers/talk/ubuntu-focal-20230301
Bump ubuntu from focal-20230126 to focal-20230301 in /Containers/talk
2023-03-02 15:43:56 +01:00
Simon L
97b0622cc3 fix typo
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-02 14:50:50 +01:00
dependabot[bot]
f67cae35fa Bump ubuntu from focal-20230126 to focal-20230301 in /Containers/talk
Bumps ubuntu from focal-20230126 to focal-20230301.

---
updated-dependencies:
- dependency-name: ubuntu
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-02 13:00:49 +00:00
dependabot[bot]
50aa368169 Bump collabora/code in /Containers/collabora
Bumps collabora/code from 22.05.10.7.1 to 22.05.10.8.1.

---
updated-dependencies:
- dependency-name: collabora/code
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-02 13:00:44 +00:00
Simon L
5748f111d3 Merge pull request #2094 from nextcloud/aio-helm-update
Helm Chart updates
2023-03-02 12:22:11 +01:00
szaimen
aec815119e Helm Chart updates
Signed-off-by: GitHub <noreply@github.com>
2023-03-02 11:20:49 +00:00
Simon L
6463ea368a Merge pull request #2080 from nextcloud/fix/2077/fix-datadir-permission-check
fix datadir permission check
2023-03-02 11:49:42 +01:00
Simon L
2aef10ce47 Merge pull request #2092 from nextcloud/enh/2089/clamav-timeout
don't wait for clamav until forever
2023-03-02 11:46:30 +01:00
Simon L
81dff779b6 Merge pull request #2091 from nextcloud/enh/noid/improve-volume-check
improve the volume and container name check
2023-03-02 11:43:16 +01:00
Simon L
a34d6c1726 Merge pull request #2087 from nextcloud/dependabot/docker/Containers/imaginary/nextcloud/imaginary-20230301
Bump nextcloud/imaginary from 20230201 to 20230301 in /Containers/imaginary
2023-03-02 10:35:42 +01:00
Simon L
9bddac5937 Merge pull request #2086 from nextcloud/dependabot/docker/Containers/redis/redis-7.0.9-alpine
Bump redis from 7.0.8-alpine to 7.0.9-alpine in /Containers/redis
2023-03-02 10:35:12 +01:00
Simon L
fba13e8824 Merge pull request #2085 from nextcloud/aio-dependency-update
Dependency updates
2023-03-02 10:34:53 +01:00
Simon L
bc3e13bf69 Merge pull request #2084 from nextcloud/dependabot/docker/Containers/collabora/collabora/code-22.05.10.7.1
Bump collabora/code from 22.05.10.2.1 to 22.05.10.7.1 in /Containers/collabora
2023-03-02 10:34:31 +01:00
Simon L
ee06a04f51 fix datadir permission check
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-02 10:33:51 +01:00
Simon L
1f66f4c9ca Merge pull request #2067 from nextcloud/aio-yaml-update
Yaml updates
2023-03-02 09:58:57 +01:00
Simon L
6a22d5443b don't wait for clamav until forever
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-02 09:46:21 +01:00
Simon L
98078cbe0a improve the volume and container name check
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-02 09:25:14 +01:00
dependabot[bot]
de9b2bba0e Bump nextcloud/imaginary in /Containers/imaginary
Bumps nextcloud/imaginary from 20230201 to 20230301.

---
updated-dependencies:
- dependency-name: nextcloud/imaginary
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-01 13:06:33 +00:00
dependabot[bot]
5fbe902145 Bump redis from 7.0.8-alpine to 7.0.9-alpine in /Containers/redis
Bumps redis from 7.0.8-alpine to 7.0.9-alpine.

---
updated-dependencies:
- dependency-name: redis
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-01 13:03:34 +00:00
szaimen
0dcdbf8be2 dependency updates
Signed-off-by: GitHub <noreply@github.com>
2023-03-01 12:17:25 +00:00
dependabot[bot]
9758c12491 Bump collabora/code in /Containers/collabora
Bumps collabora/code from 22.05.10.2.1 to 22.05.10.7.1.

---
updated-dependencies:
- dependency-name: collabora/code
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-28 13:00:41 +00:00
szaimen
d9ec23e0f8 Yaml updates
Signed-off-by: GitHub <noreply@github.com>
2023-02-28 12:17:26 +00:00
Simon L
a06add045c Merge pull request #2079 from nextcloud/automated/noid/psalm-baseline-update-1677471769
[Automated] Update psalm-baseline.xml
2023-02-28 09:14:57 +01:00
nextcloud-command
5fd0b3294e Update psalm baseline
Signed-off-by: GitHub <noreply@github.com>
2023-02-27 04:22:49 +00:00
36 changed files with 140 additions and 61 deletions

View File

@@ -1,7 +1,7 @@
# Caddy is a requirement
FROM caddy:2.6.4-alpine as caddy
FROM httpd:2.4.55-alpine3.17
FROM httpd:2.4.56-alpine3.17
RUN set -ex; \
apk add --no-cache shadow; \

View File

@@ -129,10 +129,13 @@ if [ "$BORG_MODE" = backup ]; then
# https://forum.level1techs.com/t/optimal-compression-for-borg-backups/145870/6
BORG_OPTS=(-v --stats --compression "auto,zstd" --exclude-caches --checkpoint-interval 86400)
# Exclude the nextcloud log and audit log for GDPR reasons
BORG_EXCLUDE=(--exclude "/nextcloud_aio_volumes/nextcloud_aio_nextcloud/data/nextcloud.log*" --exclude "/nextcloud_aio_volumes/nextcloud_aio_nextcloud/data/audit.log")
# Create the backup
echo "Starting the backup..."
get_start_time
if ! borg create "${BORG_OPTS[@]}" "$BORG_BACKUP_DIRECTORY::$CURRENT_DATE-nextcloud-aio" "/nextcloud_aio_volumes/"; then
if ! borg create "${BORG_OPTS[@]}" "${BORG_EXCLUDE[@]}" "$BORG_BACKUP_DIRECTORY::$CURRENT_DATE-nextcloud-aio" "/nextcloud_aio_volumes/"; then
echo "Deleting the failed backup archive..."
borg delete --stats "$BORG_BACKUP_DIRECTORY::$CURRENT_DATE-nextcloud-aio"
echo "Backup failed!"
@@ -264,13 +267,15 @@ if [ "$BORG_MODE" = restore ]; then
# Restore everything except the configuration file
if ! rsync --stats --archive --human-readable -vv --delete \
--exclude "nextcloud_aio_apache/caddy/"** \
--exclude "nextcloud_aio_mastercontainer/caddy/"** \
--exclude "nextcloud_aio_mastercontainer/certs/"** \
--exclude "nextcloud_aio_apache/caddy/**" \
--exclude "nextcloud_aio_mastercontainer/caddy/**" \
--exclude "nextcloud_aio_nextcloud/data/nextcloud.log*" \
--exclude "nextcloud_aio_nextcloud/data/audit.log" \
--exclude "nextcloud_aio_mastercontainer/certs/**" \
--exclude "nextcloud_aio_mastercontainer/data/configuration.json" \
--exclude "nextcloud_aio_mastercontainer/data/daily_backup_running" \
--exclude "nextcloud_aio_mastercontainer/data/session_date_file" \
--exclude "nextcloud_aio_mastercontainer/session/"** \
--exclude "nextcloud_aio_mastercontainer/session/**" \
/tmp/borg/nextcloud_aio_volumes/ /nextcloud_aio_volumes; then
RESTORE_FAILED=1
echo "Something failed while restoring from backup."

View File

@@ -1,5 +1,5 @@
# From a file located probably somewhere here: https://github.com/CollaboraOnline/online/tree/master/docker
FROM collabora/code:22.05.10.2.1
FROM collabora/code:22.05.10.8.1
USER root

View File

@@ -1,5 +1,5 @@
# From https://github.com/h2non/imaginary/blob/master/Dockerfile
FROM nextcloud/imaginary:20230201
FROM nextcloud/imaginary:20230301
USER root
RUN set -ex; \
@@ -8,6 +8,15 @@ RUN set -ex; \
apt-get install -y --no-install-recommends \
netcat \
; \
echo "deb http://deb.debian.org/debian bookworm main" > /etc/apt/sources.list.d/bookworm.list; \
apt-get update; \
apt-get install -t bookworm -y --no-install-recommends \
libheif1 \
libde265-0 \
libx265-199 \
libvips \
; \
rm /etc/apt/sources.list.d/bookworm.list; \
rm -rf /var/lib/apt/lists/*
USER nobody
@@ -15,3 +24,6 @@ ENTRYPOINT ["/usr/local/bin/imaginary", "-return-size", "-max-allowed-resolution
HEALTHCHECK CMD nc -z localhost 9000 || exit 1
LABEL com.centurylinklabs.watchtower.monitor-only="true"
# https://github.com/h2non/imaginary#memory-issues
ENV MALLOC_ARENA_MAX=2

View File

@@ -27,7 +27,6 @@ RUN set -ex; \
util-linux-misc \
ca-certificates \
wget \
tzdata \
bash \
apache2 \
apache2-proxy \

View File

@@ -38,8 +38,10 @@ while true; do
# Make sure to delete the lock file always
rm -f "/mnt/docker-aio-config/data/daily_backup_running"
# Check for updates and send notification if yes
sudo -u www-data php /var/www/docker-aio/php/src/Cron/UpdateNotification.php
# Check for updates and send notification if yes on saturdays
if [ "$(date +%u)" = 6 ]; then
sudo -u www-data php /var/www/docker-aio/php/src/Cron/UpdateNotification.php
fi
# Check if AIO is outdated
sudo -u www-data php /var/www/docker-aio/php/src/Cron/OutdatedNotification.php

View File

@@ -77,14 +77,18 @@ elif echo "$STORAGE_DRIVER" | grep -q fuse-overlayfs; then
fi
# Check if startup command was executed correctly
if ! sudo -u www-data docker ps | grep -q "nextcloud-aio-mastercontainer"; then
if ! sudo -u www-data docker ps --format "{{.Names}}" | grep -q "^nextcloud-aio-mastercontainer$"; then
echo "It seems like you did not give the mastercontainer the correct name?
Using a different name is not supported!"
exit 1
elif ! sudo -u www-data docker volume ls | grep -q "nextcloud_aio_mastercontainer"; then
elif ! sudo -u www-data docker volume ls --format "{{.Name}}" | grep -q "^nextcloud_aio_mastercontainer$"; then
echo "It seems like you did not give the mastercontainer volume the correct name?
Using a different name is not supported!"
exit 1
elif ! sudo -u www-data docker inspect nextcloud-aio-mastercontainer | grep -q "nextcloud_aio_mastercontainer"; then
echo "It seems like you did not attach the nextcloud_aio_mastercontainer volume to the mastercontainer?
This is not supported!"
exit 1
fi
# Check for other options

View File

@@ -212,6 +212,9 @@ if ! [ -f "$NEXTCLOUD_DATA_DIR/skip.update" ]; then
exit 1
fi
# We do our own permission check so the permission check is not needed
php /var/www/html/occ config:system:set check_data_directory_permissions --value=false --type=bool
# Try to force generation of appdata dir:
php /var/www/html/occ maintenance:repair
@@ -293,6 +296,11 @@ if ! [ -f "$NEXTCLOUD_DATA_DIR/skip.update" ]; then
done
fi
# Set the permission check to its default value again if not set
if [ "$SKIP_DATA_DIRECTORY_PERMISSION_CHECK" != yes ]; then
php /var/www/html/occ config:system:set check_data_directory_permissions --value=true --type=bool
fi
#upgrade
else
touch "$NEXTCLOUD_DATA_DIR/update.failed"
@@ -534,23 +542,30 @@ fi
# Clamav
if [ "$CLAMAV_ENABLED" = 'yes' ]; then
while ! nc -z "$CLAMAV_HOST" 3310; do
count=0
while ! nc -z "$CLAMAV_HOST" 3310 && [ "$count" -lt 90 ]; do
echo "waiting for clamav to become available..."
count=$((count+5))
sleep 5
done
if ! [ -d "/var/www/html/custom_apps/files_antivirus" ]; then
php /var/www/html/occ app:install files_antivirus
elif [ "$(php /var/www/html/occ config:app:get files_antivirus enabled)" != "yes" ]; then
php /var/www/html/occ app:enable files_antivirus
elif [ "$SKIP_UPDATE" != 1 ]; then
php /var/www/html/occ app:update files_antivirus
if [ "$count" -ge 90 ]; then
echo "Clamav did not start in time. Skipping initialization and disabling files_antivirus app."
php /var/www/html/occ app:disable files_antivirus
else
if ! [ -d "/var/www/html/custom_apps/files_antivirus" ]; then
php /var/www/html/occ app:install files_antivirus
elif [ "$(php /var/www/html/occ config:app:get files_antivirus enabled)" != "yes" ]; then
php /var/www/html/occ app:enable files_antivirus
elif [ "$SKIP_UPDATE" != 1 ]; then
php /var/www/html/occ app:update files_antivirus
fi
php /var/www/html/occ config:app:set files_antivirus av_mode --value="daemon"
php /var/www/html/occ config:app:set files_antivirus av_port --value="3310"
php /var/www/html/occ config:app:set files_antivirus av_host --value="$CLAMAV_HOST"
php /var/www/html/occ config:app:set files_antivirus av_stream_max_length --value="104857600"
php /var/www/html/occ config:app:set files_antivirus av_max_file_size --value="-1"
php /var/www/html/occ config:app:set files_antivirus av_infected_action --value="only_log"
fi
php /var/www/html/occ config:app:set files_antivirus av_mode --value="daemon"
php /var/www/html/occ config:app:set files_antivirus av_port --value="3310"
php /var/www/html/occ config:app:set files_antivirus av_host --value="$CLAMAV_HOST"
php /var/www/html/occ config:app:set files_antivirus av_stream_max_length --value="104857600"
php /var/www/html/occ config:app:set files_antivirus av_max_file_size --value="-1"
php /var/www/html/occ config:app:set files_antivirus av_infected_action --value="only_log"
else
if [ -d "/var/www/html/custom_apps/files_antivirus" ]; then
php /var/www/html/occ app:remove files_antivirus

View File

@@ -1,5 +1,5 @@
# From https://github.com/docker-library/redis/blob/master/7.0/alpine/Dockerfile
FROM redis:7.0.8-alpine
FROM redis:7.0.9-alpine
RUN apk add --no-cache openssl bash

View File

@@ -1,4 +1,4 @@
FROM ubuntu:focal-20230126
FROM ubuntu:focal-20230301
RUN set -ex; \
\

View File

@@ -1,6 +1,6 @@
name: Nextcloud AIO Helm Chart
description: A generated Helm Chart for Nextcloud AIO from Skippbox Kompose
version: 4.4.1
version: 4.5.0
apiVersion: v2
keywords:
- latest

View File

@@ -54,7 +54,7 @@ spec:
value: nextcloud-aio-talk
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-apache:20230223_085216-latest
image: nextcloud/aio-apache:20230302_085724-latest
name: nextcloud-aio-apache
ports:
- containerPort: {{ .Values.APACHE_PORT }}

View File

@@ -38,7 +38,7 @@ spec:
value: "90"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-clamav:20230223_085216-latest
image: nextcloud/aio-clamav:20230302_085724-latest
name: nextcloud-aio-clamav
ports:
- containerPort: 3310

View File

@@ -44,7 +44,7 @@ spec:
value: --o:ssl.enable=false --o:ssl.termination=true --o:logging.level=warning --o:home_mode.enable=true {{ .Values.COLLABORA_SECCOMP_POLICY }} --o:remote_font_config.url=https://{{ .Values.NC_DOMAIN }}/apps/richdocuments/settings/fonts.json
- name: server_name
value: "{{ .Values.NC_DOMAIN }}"
image: nextcloud/aio-collabora:20230223_085216-latest
image: nextcloud/aio-collabora:20230302_085724-latest
name: nextcloud-aio-collabora
ports:
- containerPort: 9980

View File

@@ -46,7 +46,7 @@ spec:
value: nextcloud
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-postgresql:20230223_085216-latest
image: nextcloud/aio-postgresql:20230302_085724-latest
name: nextcloud-aio-database
ports:
- containerPort: 5432

View File

@@ -42,7 +42,7 @@ spec:
value: "{{ .Values.TIMEZONE }}"
- name: discovery.type
value: single-node
image: nextcloud/aio-fulltextsearch:20230223_085216-latest
image: nextcloud/aio-fulltextsearch:20230302_085724-latest
name: nextcloud-aio-fulltextsearch
ports:
- containerPort: 9200

View File

@@ -26,7 +26,7 @@ spec:
- env:
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-imaginary:20230223_085216-latest
image: nextcloud/aio-imaginary:20230302_085724-latest
name: nextcloud-aio-imaginary
ports:
- containerPort: 9000

View File

@@ -112,7 +112,7 @@ spec:
value: "{{ .Values.TIMEZONE }}"
- name: UPDATE_NEXTCLOUD_APPS
value: "{{ .Values.UPDATE_NEXTCLOUD_APPS }}"
image: nextcloud/aio-nextcloud:20230223_085216-latest
image: nextcloud/aio-nextcloud:20230302_085724-latest
name: nextcloud-aio-nextcloud
ports:
- containerPort: 9000

View File

@@ -42,7 +42,7 @@ spec:
value: "{{ .Values.ONLYOFFICE_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-onlyoffice:20230223_085216-latest
image: nextcloud/aio-onlyoffice:20230302_085724-latest
name: nextcloud-aio-onlyoffice
ports:
- containerPort: 80

View File

@@ -37,7 +37,7 @@ spec:
value: "{{ .Values.REDIS_PASSWORD }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-redis:20230223_085216-latest
image: nextcloud/aio-redis:20230302_085724-latest
name: nextcloud-aio-redis
ports:
- containerPort: 6379

View File

@@ -24,8 +24,6 @@ spec:
spec:
containers:
- env:
- name: JANUS_API_KEY
value: "{{ .Values.JANUS_API_KEY }}"
- name: NC_DOMAIN
value: "{{ .Values.NC_DOMAIN }}"
- name: SIGNALING_SECRET
@@ -36,7 +34,7 @@ spec:
value: "{{ .Values.TURN_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-talk:20230223_085216-latest
image: nextcloud/aio-talk:20230302_085724-latest
name: nextcloud-aio-talk
ports:
- containerPort: {{ .Values.TALK_PORT }}

View File

@@ -9,7 +9,6 @@ COLLABORA_SECCOMP_POLICY: --o:security.seccomp=true # Changing the valu
DATABASE_PASSWORD: # TODO! This needs to be a unique and good password!
FULLTEXTSEARCH_ENABLED: "no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.
IMAGINARY_ENABLED: "no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.
JANUS_API_KEY: # TODO! This needs to be a unique and good password!
NC_DOMAIN: yourdomain.com # TODO! Needs to be changed to the domain that you want to use for Nextcloud.
NEXTCLOUD_ADDITIONAL_APKS: imagemagick # This allows to add additional packages to the Nextcloud container permanently. Default is imagemagick but can be overwritten by modifying this value.
NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS: imagick # This allows to add additional php extensions to the Nextcloud container permanently. Default is imagick but can be overwritten by modifying this value.

View File

@@ -147,7 +147,6 @@ services:
- NC_DOMAIN=${NC_DOMAIN}
- TURN_SECRET=${TURN_SECRET}
- SIGNALING_SECRET=${SIGNALING_SECRET}
- JANUS_API_KEY=${JANUS_API_KEY}
- TZ=${TIMEZONE}
- TALK_PORT=${TALK_PORT}
restart: unless-stopped

View File

@@ -10,7 +10,6 @@ COLLABORA_SECCOMP_POLICY=--o:security.seccomp=true # Changing the value
DATABASE_PASSWORD= # TODO! This needs to be a unique and good password!
FULLTEXTSEARCH_ENABLED="no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.
IMAGINARY_ENABLED="no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.
JANUS_API_KEY= # TODO! This needs to be a unique and good password!
NC_DOMAIN=yourdomain.com # TODO! Needs to be changed to the domain that you want to use for Nextcloud.
NEXTCLOUD_ADDITIONAL_APKS=imagemagick # This allows to add additional packages to the Nextcloud container permanently. Default is imagemagick but can be overwritten by modifying this value.
NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS=imagick # This allows to add additional php extensions to the Nextcloud container permanently. Default is imagick but can be overwritten by modifying this value.

View File

@@ -71,6 +71,7 @@ sed -i 's|APACHE_MAX_SIZE=|APACHE_MAX_SIZE=10737418240 # This needs to
sed -i 's|NEXTCLOUD_MAX_TIME=|NEXTCLOUD_MAX_TIME=3600 # This allows to change the upload time limit of the Nextcloud container|' sample.conf
sed -i 's|NEXTCLOUD_TRUSTED_CACERTS_DIR=|NEXTCLOUD_TRUSTED_CACERTS_DIR=/usr/local/share/ca-certificates/my-custom-ca # Nextcloud container will trust all the Certification Authorities, whose certificates are included in the given directory.|' sample.conf
sed -i 's|UPDATE_NEXTCLOUD_APPS=|UPDATE_NEXTCLOUD_APPS="no" # When setting to "yes" (with quotes), it will automatically update all installed Nextcloud apps upon container startup on saturdays.|' sample.conf
sed -i 's|SKIP_DATA_DIRECTORY_PERMISSION_CHECK=|SKIP_DATA_DIRECTORY_PERMISSION_CHECK="no" # When setting to "yes" (with quotes), it will skip the datadir permission check upon the initial Nextcloud installation.|' sample.conf
sed -i 's|APACHE_PORT=|APACHE_PORT=443 # Changing this to a different value than 443 will allow you to run it behind a web server or reverse proxy (like Apache, Nginx and else).|' sample.conf
sed -i 's|APACHE_IP_BINDING=|APACHE_IP_BINDING=0.0.0.0 # This can be changed to e.g. 127.0.0.1 if you want to run AIO behind a web server or reverse proxy (like Apache, Nginx and else) and if that is running on the same host and using localhost to connect|' sample.conf
sed -i 's|TALK_PORT=|TALK_PORT=3478 # This allows to adjust the port that the talk container is using.|' sample.conf

View File

@@ -15,12 +15,12 @@ The procedure for migrating only the files works like this:
1. Recreate all users that were present on your former installation
1. Take a backup using Nextcloud AIO's built-in backup solution (so that you can easily restore to this state again) (Note: this will stop all containers and is expected: don't start the container again at this point!)
1. Restore the datadirectory of your former instance: for `/path/to/nextcloud/data/` run `sudo docker cp --follow-link /path/to/nextcloud/data/ nextcloud-aio-nextcloud:/mnt/ncdata/` Note: the `/` at the end are necessary.
1. Next, run `sudo docker run --rm --volume nextcloud_aio_nextcloud_data:/mnt/ncdata:rw alpine chown -R 33:0 /mnt/ncdata/"` and `sudo docker run --rm --volume nextcloud_aio_nextcloud_data:/mnt/ncdata:rw alpine chmod -R 750 /mnt/ncdata/` to apply the correct permissions. (Or if `NEXTCLOUD_DATADIR` was provided, apply `chown -R 33:0` and `chmod -R 750` to the chosen path.)
1. Next, run `sudo docker run --rm --volume nextcloud_aio_nextcloud_data:/mnt/ncdata:rw alpine chown -R 33:0 /mnt/ncdata/` and `sudo docker run --rm --volume nextcloud_aio_nextcloud_data:/mnt/ncdata:rw alpine chmod -R 750 /mnt/ncdata/` to apply the correct permissions. (Or if `NEXTCLOUD_DATADIR` was provided, apply `chown -R 33:0` and `chmod -R 750` to the chosen path.)
1. Start the containers again and wait until all containers are running
1. Run `sudo docker exec --user www-data -it nextcloud-aio-nextcloud php occ files:scan-app-data && sudo docker exec --user www-data -it nextcloud-aio-nextcloud php occ files:scan --all` in order to scan all files in the datadirectory.
## Migrate the files and the database
**Please note**: this is much more complicated than migrating only the files and also not as failproof so be warned! Also, this will not work on former snap installations as the snap is read-only and thus you cannot install the necessary `pdo_pgsql` PHP extension.
**Please note**: this is much more complicated than migrating only the files and also not as failproof so be warned! Also, this will not work on former snap installations as the snap is read-only and thus you cannot install the necessary `pdo_pgsql` PHP extension. So if migrating from snap, you will need to use one of the other methods. However you could try to ask if the snaps maintainer could add this one small PHP extension to the snap here: https://github.com/nextcloud-snap/nextcloud-snap/issues which would allow for an easy migration.
The procedure for migrating the files and the database works like this:
1. Make sure that your old instance is on exactly the same version like the version used in Nextcloud AIO. (e.g. 23.0.0) You can find the used version here: [click here](https://github.com/nextcloud/all-in-one/search?l=Dockerfile&q=NEXTCLOUD_VERSION&type=). If not, simply upgrade your former installation to that version or wait until the version used in Nextcloud AIO got updated to the same version of your former installation or the other way around.

12
php/composer.lock generated
View File

@@ -1335,16 +1335,16 @@
},
{
"name": "symfony/deprecation-contracts",
"version": "v3.2.0",
"version": "v3.2.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git",
"reference": "1ee04c65529dea5d8744774d474e7cbd2f1206d3"
"reference": "e2d1534420bd723d0ef5aec58a22c5fe60ce6f5e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/1ee04c65529dea5d8744774d474e7cbd2f1206d3",
"reference": "1ee04c65529dea5d8744774d474e7cbd2f1206d3",
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e2d1534420bd723d0ef5aec58a22c5fe60ce6f5e",
"reference": "e2d1534420bd723d0ef5aec58a22c5fe60ce6f5e",
"shasum": ""
},
"require": {
@@ -1382,7 +1382,7 @@
"description": "A generic function and convention to trigger deprecation notices",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/deprecation-contracts/tree/v3.2.0"
"source": "https://github.com/symfony/deprecation-contracts/tree/v3.2.1"
},
"funding": [
{
@@ -1398,7 +1398,7 @@
"type": "tidelift"
}
],
"time": "2022-11-25T10:21:52+00:00"
"time": "2023-03-01T10:25:55+00:00"
},
{
"name": "symfony/polyfill-ctype",

View File

@@ -21,6 +21,12 @@
"type": "string"
}
},
"cap_add": {
"type": "array",
"items": {
"type": "string"
}
},
"depends_on": {
"type": "array",
"items": {

View File

@@ -160,7 +160,8 @@
"TRUSTED_CACERTS_DIR=%NEXTCLOUD_TRUSTED_CACERTS_DIR%",
"STARTUP_APPS=%NEXTCLOUD_STARTUP_APPS%",
"ADDITIONAL_APKS=%NEXTCLOUD_ADDITIONAL_APKS%",
"ADDITIONAL_PHP_EXTENSIONS=%NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS%"
"ADDITIONAL_PHP_EXTENSIONS=%NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS%",
"SKIP_DATA_DIRECTORY_PERMISSION_CHECK=%SKIP_DATA_DIRECTORY_PERMISSION_CHECK%"
],
"restart": "unless-stopped",
"devices": [
@@ -317,6 +318,9 @@
],
"devices": [
"/dev/fuse"
],
"cap_add": [
"SYS_ADMIN"
]
},
{
@@ -410,7 +414,10 @@
"environment": [
"TZ=%TIMEZONE%"
],
"restart": "unless-stopped"
"restart": "unless-stopped",
"cap_add": [
"SYS_NICE"
]
},
{
"container_name": "nextcloud-aio-fulltextsearch",

View File

@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<files psalm-version="5.7.5@5390c212bab06ee230c8720c2e9c54b823db00c8"/>
<files psalm-version="5.7.7@e028ba46ba0d7f9a78bc3201c251e137383e145f"/>

View File

@@ -23,6 +23,8 @@ class Container {
private array $secrets;
/** @var string[] */
private array $devices;
/** @var string[] */
private array $capAdd;
private DockerActionManager $dockerActionManager;
public function __construct(
@@ -38,6 +40,7 @@ class Container {
array $dependsOn,
array $secrets,
array $devices,
array $capAdd,
DockerActionManager $dockerActionManager
) {
$this->identifier = $identifier;
@@ -52,6 +55,7 @@ class Container {
$this->dependsOn = $dependsOn;
$this->secrets = $secrets;
$this->devices = $devices;
$this->capAdd = $capAdd;
$this->dockerActionManager = $dockerActionManager;
}
@@ -83,6 +87,10 @@ class Container {
return $this->devices;
}
public function GetCapAdds() : array {
return $this->capAdd;
}
public function GetPorts() : ContainerPorts {
return $this->ports;
}

View File

@@ -213,6 +213,11 @@ class ContainerDefinitionFetcher
$devices = $entry['devices'];
}
$capAdd = [];
if (isset($entry['cap_add'])) {
$capAdd = $entry['cap_add'];
}
$containers[] = new Container(
$entry['container_name'],
$displayName,
@@ -226,6 +231,7 @@ class ContainerDefinitionFetcher
$dependsOn,
$secrets,
$devices,
$capAdd,
$this->container->get(DockerActionManager::class)
);
}

View File

@@ -736,6 +736,14 @@ class ConfigurationManager
return false;
}
public function shouldDataDirectoryPermissionCheckGetSkipped() : bool {
$datadir = $this->GetNextcloudDatadirMount();
if ($datadir === 'nextcloud_aio_nextcloud_datadir' || str_starts_with($datadir, '/run/desktop/mnt/host/')) {
return true;
}
return false;
}
public function GetNextcloudStartupApps() : string {
$apps = getenv('NEXTCLOUD_STARTUP_APPS');
if (is_string($apps)) {

View File

@@ -348,6 +348,12 @@ class DockerActionManager
$replacements[1] = $this->configurationManager->GetNextcloudAdditionalApks();
} elseif ($out[1] === 'NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS') {
$replacements[1] = $this->configurationManager->GetNextcloudAdditionalPhpExtensions();
} elseif ($out[1] === 'SKIP_DATA_DIRECTORY_PERMISSION_CHECK') {
if ($this->configurationManager->shouldDataDirectoryPermissionCheckGetSkipped()) {
$replacements[1] = 'yes';
} else {
$replacements[1] = '';
}
} else {
$secret = $this->configurationManager->GetSecret($out[1]);
if ($secret === "") {
@@ -405,9 +411,13 @@ class DockerActionManager
$requestBody['HostConfig']['Devices'] = $devices;
}
$capAdds = $container->GetCapAdds();
if (count($capAdds) > 0) {
$requestBody['HostConfig']['CapAdd'] = $capAdds;
}
// Special things for the backup container which should not be exposed in the containers.json
if ($container->GetIdentifier() === 'nextcloud-aio-borgbackup') {
$requestBody['HostConfig']['CapAdd'] = ["SYS_ADMIN"];
$requestBody['HostConfig']['SecurityOpt'] = ["apparmor:unconfined"];
// Additional backup directories

View File

@@ -16,7 +16,7 @@
</header>
<div class="content">
<h1>Nextcloud AIO v4.5.0</h1>
<h1>Nextcloud AIO v4.6.1</h1>
{# Add 2nd tab warning #}
<script type="text/javascript" src="second-tab-warning.js"></script>

View File

@@ -445,7 +445,7 @@ You can configure the Nextcloud container to use a specific directory on your ho
- An example for Linux is `-e NEXTCLOUD_DATADIR="/mnt/ncdata"`.
- On macOS it might be `-e NEXTCLOUD_DATADIR="/var/nextcloud-data"`
- For Synology it may be `-e NEXTCLOUD_DATADIR="/volume1/docker/nextcloud/data"`.
- On Windows it might be `-e NEXTCLOUD_DATADIR="/run/desktop/mnt/host/c/ncdata"`. (This path is equivalent to `C:\backup` on your Windows host so you need to translate the path accordingly. Hint: the path that you enter needs to start with `/run/desktop/mnt/host/`. Append to that the exact location on your windows host, e.g. `c/ncdata` which is equivalent to `C:\ncdata`.)
- On Windows it might be `-e NEXTCLOUD_DATADIR="/run/desktop/mnt/host/c/ncdata"`. (This path is equivalent to `C:\ncdata` on your Windows host so you need to translate the path accordingly. Hint: the path that you enter needs to start with `/run/desktop/mnt/host/`. Append to that the exact location on your windows host, e.g. `c/ncdata` which is equivalent to `C:\ncdata`.)
- Another option is to provide a specific volume name here with: `-e NEXTCLOUD_DATADIR="nextcloud_aio_nextcloud_datadir"`. This volume needs to be created beforehand manually by you in order to be able to use it. e.g. with:
```
docker volume create ^
@@ -459,7 +459,7 @@ You can configure the Nextcloud container to use a specific directory on your ho
### Can I use a CIFS/SMB share as Nextcloud's datadir?
Sure. Add this to the `/etc/fstab` file: <br>
`<your-storage-host-and-subpath> <your-mount-dir> cifs rw,credentials=<your-credentials-file>,uid=33,gid=0,file_mode=0770,dir_mode=0770 0 0`<br>
`<your-storage-host-and-subpath> <your-mount-dir> cifs rw,mfsymlinks,seal,credentials=<your-credentials-file>,uid=33,gid=0,file_mode=0770,dir_mode=0770 0 0`<br>
(Of course you need to modify `<your-storage-host-and-subpath>`, `<your-mount-dir>` and `<your-credentials-file>` for your specific case.)
One example could look like this:<br>
@@ -477,10 +477,11 @@ Now you can use `/mnt/storagebox` as Nextcloud's datadir like described in the s
By default, the Nextcloud container is confined and cannot access directories on the host OS. You might want to change this when you are planning to use local external storage in Nextcloud to store some files outside the data directory and can do so by adding the environmental variable `NEXTCLOUD_MOUNT` to the initial startup of the mastercontainer. Allowed values for that variable are strings that start with `/` and are not equal to `/`.
- Two examples for Linux are `-e NEXTCLOUD_MOUNT="/mnt/"` and `-e NEXTCLOUD_MOUNT="/media/"`.
- On macOS it might be `-e NEXTCLOUD_MOUNT="/Volumes/your_drive/"`
- For Synology it may be `-e NEXTCLOUD_MOUNT="/volume1/"`.
- On Windows is this option not supported.
- On Windows it might be `-e NEXTCLOUD_MOUNT="/run/desktop/mnt/host/d/your-folder/"`. (This path is equivalent to `D:\your-folder` on your Windows host so you need to translate the path accordingly. Hint: the path that you enter needs to start with `/run/desktop/mnt/host/`. Append to that the exact location on your windows host, e.g. `d/your-folder/` which is equivalent to `D:\your-folder`.)
After using this option, please make sure to apply the correct permissions to the directories that you want to use in Nextcloud. E.g. `sudo chown -R 33:0 /mnt/your-drive-mountpoint` and `sudo chmod -R 750 /mnt/your-drive-mountpoint` should make it work on Linux when you have used `-e NEXTCLOUD_MOUNT="/mnt/"`.
After using this option, please make sure to apply the correct permissions to the directories that you want to use in Nextcloud. E.g. `sudo chown -R 33:0 /mnt/your-drive-mountpoint` and `sudo chmod -R 750 /mnt/your-drive-mountpoint` should make it work on Linux when you have used `-e NEXTCLOUD_MOUNT="/mnt/"`. On Windows you could do this e.g. with `docker exec -it nextcloud-aio-nextcloud chown -R 33:0 /run/desktop/mnt/host/d/your-folder/` and `docker exec -it nextcloud-aio-nextcloud chmod -R 750 /run/desktop/mnt/host/d/your-folder/`.
You can then navigate to the apps management page, activate the external storage app, navigate to `https://your-nc-domain.com/settings/admin/externalstorages` and add a local external storage directory that will be accessible inside the container at the same place that you've entered. E.g. `/mnt/your-drive-mountpoint` will be mounted to `/mnt/your-drive-mountpoint` inside the container, etc.