Compare commits

...

47 Commits

Author SHA1 Message Date
Simon L
7bb713eaaa increase to 4.4.0
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-16 19:17:04 +01:00
Simon L
0df1db6b8f Merge pull request #2005 from nextcloud/enh/2004/add-spinner-loader
add loader to login template
2023-02-16 19:16:11 +01:00
Simon L
5b2b60841d add loader to login template
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-16 19:14:09 +01:00
Simon L
e638aa3b89 Merge pull request #2002 from nextcloud/aio-helm-update
Helm Chart updates
2023-02-16 17:43:10 +01:00
szaimen
42c0dadb11 Helm Chart updates
Signed-off-by: GitHub <noreply@github.com>
2023-02-16 16:39:25 +00:00
Simon L
4362406587 fix the helm-update job
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-16 17:38:45 +01:00
Simon L
f1dff9b3e2 Merge pull request #2001 from nextcloud/aio-yaml-update
Yaml updates
2023-02-16 17:32:41 +01:00
szaimen
a6667496c7 Yaml updates
Signed-off-by: GitHub <noreply@github.com>
2023-02-16 16:31:28 +00:00
Simon L
355175cc36 Merge pull request #1990 from nextcloud/fix/1984/fix-docker-networks
connect containers only to custom network
2023-02-16 17:28:11 +01:00
Simon L
2ade84e7ab connect containers only to custom network
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-16 17:26:35 +01:00
Simon L
244424efee Merge pull request #1982 from nextcloud/enh/noid/improve-restore
also restore configuration.json even if the former restore failed
2023-02-16 17:25:09 +01:00
Simon L
775889edc4 Merge pull request #1981 from nextcloud/enh/noid/increase-free-disk-check
check size of config and only write back if space is sufficient
2023-02-16 17:24:35 +01:00
Simon L
8a23a1cb6b Merge pull request #1969 from nextcloud/enh/noid/improve-caddy
fix and hide a few caddy warnings
2023-02-16 17:23:43 +01:00
Simon L
e17dfd9e66 Merge pull request #1968 from nextcloud/enh/noid/fix-session-deletion
rm does not work if there are too many sessions
2023-02-16 17:21:59 +01:00
Simon L
de2c915bba update OO
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-16 17:19:02 +01:00
Simon L
40be1e1d07 Merge pull request #1999 from nextcloud/dependabot/docker/Containers/clamav/clamav/clamav-1.0.1-1
Bump clamav/clamav from 0.105.1-8 to 1.0.1-1 in /Containers/clamav
2023-02-16 17:17:44 +01:00
Simon L
e60dcdc2b3 Merge pull request #1998 from nextcloud/dependabot/docker/Containers/mastercontainer/caddy-2.6.4-alpine
Bump caddy from 2.6.3-alpine to 2.6.4-alpine in /Containers/mastercontainer
2023-02-16 17:17:26 +01:00
Simon L
90f49b128e Merge pull request #1997 from nextcloud/dependabot/docker/Containers/apache/caddy-2.6.4-alpine
Bump caddy from 2.6.3-alpine to 2.6.4-alpine in /Containers/apache
2023-02-16 17:17:10 +01:00
Simon L
2115e1dcf7 Merge pull request #1995 from nextcloud/dependabot/docker/Containers/nextcloud/php-8.0.28-fpm-alpine3.16
Bump php from 8.0.27-fpm-alpine3.16 to 8.0.28-fpm-alpine3.16 in /Containers/nextcloud
2023-02-16 17:16:55 +01:00
Simon L
554745ac13 Merge pull request #1994 from nextcloud/dependabot/docker/Containers/mastercontainer/php-8.1.16-fpm-alpine3.17
Bump php from 8.1.15-fpm-alpine3.17 to 8.1.16-fpm-alpine3.17 in /Containers/mastercontainer
2023-02-16 17:15:33 +01:00
Simon L
4f91809d41 Merge pull request #1980 from nextcloud/dependabot/docker/Containers/mastercontainer/docker-23.0.1-dind
Bump docker from 20.10.23-dind to 23.0.1-dind in /Containers/mastercontainer
2023-02-16 17:15:18 +01:00
Simon L
e52647caf3 Merge pull request #1979 from nextcloud/dependabot/docker/Containers/watchtower/alpine-3.17.2
Bump alpine from 3.17.1 to 3.17.2 in /Containers/watchtower
2023-02-16 17:14:56 +01:00
Simon L
c1f882b95f Merge pull request #1978 from nextcloud/dependabot/docker/Containers/borgbackup/alpine-3.17.2
Bump alpine from 3.17.1 to 3.17.2 in /Containers/borgbackup
2023-02-16 17:14:41 +01:00
Simon L
0710b64899 Merge pull request #1977 from nextcloud/dependabot/docker/Containers/postgresql/postgres-15.2-alpine
Bump postgres from 15.1-alpine to 15.2-alpine in /Containers/postgresql
2023-02-16 17:14:19 +01:00
Simon L
e7e3de0335 Merge pull request #1976 from nextcloud/dependabot/docker/Containers/domaincheck/alpine-3.17.2
Bump alpine from 3.17.1 to 3.17.2 in /Containers/domaincheck
2023-02-16 17:14:04 +01:00
Simon L
88c95e292b Merge pull request #2000 from nextcloud/enh/noid/multiarch
document multiarch containers
2023-02-16 17:03:57 +01:00
Simon L
73674c6167 document multiarch containers
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-16 17:02:44 +01:00
Simon L
e9497634b6 migration.md - adjust db-creation docs for psql 15
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-16 16:44:35 +01:00
dependabot[bot]
cf69a3114a Bump clamav/clamav from 0.105.1-8 to 1.0.1-1 in /Containers/clamav
Bumps clamav/clamav from 0.105.1-8 to 1.0.1-1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-16 12:59:25 +00:00
dependabot[bot]
f7ec7da366 Bump caddy in /Containers/mastercontainer
Bumps caddy from 2.6.3-alpine to 2.6.4-alpine.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-16 12:59:11 +00:00
dependabot[bot]
2e9a908d07 Bump caddy from 2.6.3-alpine to 2.6.4-alpine in /Containers/apache
Bumps caddy from 2.6.3-alpine to 2.6.4-alpine.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-16 12:59:08 +00:00
Simon L
849c0c4c89 disable the tls-alpn challenge
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-15 19:36:26 +01:00
Simon L
43ef6cb056 traefik - the x-robots-tag should be set by nextcloud. dont overwrite it
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-15 18:30:01 +01:00
Simon L
194446fc71 check size of config and only write back if space is sufficient
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-15 17:11:23 +01:00
dependabot[bot]
63f2b4a3d9 Bump php in /Containers/nextcloud
Bumps php from 8.0.27-fpm-alpine3.16 to 8.0.28-fpm-alpine3.16.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-15 13:02:06 +00:00
dependabot[bot]
285aee962b Bump php in /Containers/mastercontainer
Bumps php from 8.1.15-fpm-alpine3.17 to 8.1.16-fpm-alpine3.17.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-15 13:01:00 +00:00
Simon L
6787d322cc also restore configuration.json even if the former restore failed
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-13 17:00:20 +01:00
dependabot[bot]
b7e593a64d Bump docker in /Containers/mastercontainer
Bumps docker from 20.10.23-dind to 23.0.1-dind.

---
updated-dependencies:
- dependency-name: docker
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-13 13:04:15 +00:00
dependabot[bot]
eb52264f3b Bump alpine from 3.17.1 to 3.17.2 in /Containers/watchtower
Bumps alpine from 3.17.1 to 3.17.2.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-13 13:04:15 +00:00
dependabot[bot]
93de08cd54 Bump alpine from 3.17.1 to 3.17.2 in /Containers/borgbackup
Bumps alpine from 3.17.1 to 3.17.2.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-13 13:04:00 +00:00
dependabot[bot]
d65e94b3b2 Bump postgres from 15.1-alpine to 15.2-alpine in /Containers/postgresql
Bumps postgres from 15.1-alpine to 15.2-alpine.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-13 13:03:56 +00:00
dependabot[bot]
0f38928dd8 Bump alpine from 3.17.1 to 3.17.2 in /Containers/domaincheck
Bumps alpine from 3.17.1 to 3.17.2.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-13 13:03:53 +00:00
Simon L
1dc69dca29 Match only host names and not ip-addresses
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-11 21:26:07 +01:00
Simon L
96f3ca2506 fix and hide a few caddy warnings
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-11 20:49:30 +01:00
Simon L
9c63e9707f rm does not work if there are too many sessions
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-11 19:30:02 +01:00
Simon L
feffba739a Helm Chart updates
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-11 15:18:13 +01:00
Simon L
8a0dda3002 add an additional step about removing the containers
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-11 15:14:16 +01:00
42 changed files with 105 additions and 109 deletions

View File

@@ -15,7 +15,7 @@ jobs:
- name: update helm chart
run: |
DOCKER_TAG="$(curl -L -s 'https://registry.hub.docker.com/v2/repositories/nextcloud/all-in-one/tags?page_size=1024' | jq '."results"[]["name"]' | sed 's|"||g' | grep '^20' | sort -r | head -1)"
DOCKER_TAG="${DOCKER_TAG%%latest*}"
DOCKER_TAG="${DOCKER_TAG%%-latest*}"
export DOCKER_TAG
if [ -n "$DOCKER_TAG" ] && ! grep -q "$DOCKER_TAG" ./helm-chart/templates/nextcloud-aio-nextcloud-deployment.yaml; then
sudo bash helm-chart/update-helm.sh "$DOCKER_TAG"

View File

@@ -4,6 +4,10 @@
storage file_system {
root /mnt/data/caddy
}
log {
level ERROR
}
}
{$PROTOCOL}://{$NC_DOMAIN}:{$APACHE_PORT} {

View File

@@ -1,5 +1,5 @@
# Caddy is a requirement
FROM caddy:2.6.3-alpine as caddy
FROM caddy:2.6.4-alpine as caddy
FROM httpd:2.4.55-alpine3.17

View File

@@ -45,6 +45,9 @@ else
fi
echo "$CADDYFILE" > /Caddyfile
# Fix the Caddyfile format
caddy fmt --overwrite /Caddyfile
# Add caddy path
mkdir -p /mnt/data/caddy/

View File

@@ -1,4 +1,4 @@
FROM alpine:3.17.1
FROM alpine:3.17.2
RUN set -ex; \
\

View File

@@ -272,9 +272,8 @@ if [ "$BORG_MODE" = restore ]; then
--exclude "nextcloud_aio_mastercontainer/data/session_date_file" \
--exclude "nextcloud_aio_mastercontainer/session/"** \
/tmp/borg/nextcloud_aio_volumes/ /nextcloud_aio_volumes; then
RESTORE_FAILED=1
echo "Something failed while restoring from backup."
umount /tmp/borg
exit 1
fi
# Save current aio password
@@ -294,9 +293,8 @@ if [ "$BORG_MODE" = restore ]; then
if ! rsync --archive --human-readable -vv \
/tmp/borg/nextcloud_aio_volumes/nextcloud_aio_mastercontainer/data/configuration.json \
/nextcloud_aio_volumes/nextcloud_aio_mastercontainer/data/configuration.json; then
RESTORE_FAILED=1
echo "Something failed while restoring the configuration.json."
umount /tmp/borg
exit 1
fi
# Set backup-mode to restore since it was a restore
@@ -331,6 +329,10 @@ if [ "$BORG_MODE" = restore ]; then
umount /tmp/borg
if [ "$RESTORE_FAILED" = 1 ]; then
exit 1
fi
# Inform user
get_expiration_time
echo "Restore finished successfully on $END_DATE_READABLE ($DURATION_READABLE)"

View File

@@ -1,5 +1,5 @@
# Probably from this file: https://github.com/Cisco-Talos/clamav-docker/blob/main/clamav/0.105/alpine/Dockerfile
FROM clamav/clamav:0.105.1-8
FROM clamav/clamav:1.0.1-1
RUN apk add --no-cache tzdata
COPY clamav.conf /tmp/

View File

@@ -1,4 +1,4 @@
FROM alpine:3.17.1
FROM alpine:3.17.2
RUN apk add --no-cache lighttpd bash netcat-openbsd
RUN adduser -S www-data -G www-data

View File

@@ -6,17 +6,29 @@
storage file_system {
root /mnt/docker-aio-config/caddy/
}
log {
level ERROR
}
}
http://:80 {
redir https://{host}{uri}
}
https://:8443 {
# Match only host names and not ip-addresses:
https://*.*:8443,
https://*.*.*:8443,
https://*.*.*.*:8443,
https://*.*.*.*.*:8443,
https://*.*.*.*.*.*:8443 {
reverse_proxy localhost:8000
tls {
on_demand
issuer acme {
disable_tlsalpn_challenge
}
}
}

View File

@@ -1,11 +1,11 @@
# Docker CLI is a requirement
FROM docker:20.10.23-dind as dind
FROM docker:23.0.1-dind as dind
# Caddy is a requirement
FROM caddy:2.6.3-alpine as caddy
FROM caddy:2.6.4-alpine as caddy
# From https://github.com/docker-library/php/blob/master/8.1/alpine3.17/fpm/Dockerfile
FROM php:8.1.15-fpm-alpine3.17
FROM php:8.1.16-fpm-alpine3.17
RUN set -ex; \
apk add --no-cache shadow; \

View File

@@ -11,7 +11,7 @@ fi
# Delete all active sessions and create a lock file
# But don't kick out the user if the mastercontainer was just updated since we block the interface either way with the lock file
if [ "$LOCK_FILE_PRESENT" = 0 ] || ! [ -f "/mnt/docker-aio-config/data/daily_backup_running" ]; then
rm -f "/mnt/docker-aio-config/session/"*
find "/mnt/docker-aio-config/session/" -mindepth 1 -delete
fi
sudo -u www-data touch "/mnt/docker-aio-config/data/daily_backup_running"

View File

@@ -280,4 +280,10 @@ export TZ=UTC
# Fix apache startup
rm -f /var/run/apache2/httpd.pid
# Fix the Caddyfile format
caddy fmt --overwrite /Caddyfile
# Fix caddy log
chmod 777 /root
exec "$@"

View File

@@ -1,5 +1,5 @@
# From https://github.com/nextcloud/docker/blob/master/23/fpm-alpine/Dockerfile
FROM php:8.0.27-fpm-alpine3.16
FROM php:8.0.28-fpm-alpine3.16
# Custom: change id of www-data user as it needs to be the same like on old installations
RUN set -ex; \

View File

@@ -1,5 +1,5 @@
# From https://github.com/ONLYOFFICE/Docker-DocumentServer/blob/master/Dockerfile
FROM onlyoffice/documentserver:7.2.2.56
FROM onlyoffice/documentserver:7.3.2.8
HEALTHCHECK CMD nc -z localhost 80 || exit 1
LABEL com.centurylinklabs.watchtower.monitor-only="true"

View File

@@ -1,5 +1,5 @@
# From https://github.com/docker-library/postgres/blob/master/15/alpine/Dockerfile
FROM postgres:15.1-alpine
FROM postgres:15.2-alpine
RUN apk add --no-cache bash openssl shadow netcat-openbsd grep mawk

View File

@@ -1,7 +1,7 @@
# From https://github.com/containrrr/watchtower/blob/main/dockerfiles/Dockerfile.self-contained
FROM containrrr/watchtower:1.5.3 as watchtower
FROM alpine:3.17.1
FROM alpine:3.17.2
RUN apk add --no-cache bash
COPY --from=watchtower /watchtower /

View File

@@ -6,7 +6,7 @@ volumes:
services:
nextcloud:
image: nextcloud/all-in-one:latest # Must be changed to 'nextcloud/all-in-one:latest-arm64' when used with an arm64 CPU
image: nextcloud/all-in-one:latest
restart: always
container_name: nextcloud-aio-mastercontainer # This line is not allowed to be changed
volumes:

View File

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

View File

@@ -54,7 +54,7 @@ spec:
value: nextcloud-aio-talk
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-apache:20230124_100035-{{ .Values.IMAGE_TAG }}
image: nextcloud/aio-apache:20230216_152733-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:20230124_100035-{{ .Values.IMAGE_TAG }}
image: nextcloud/aio-clamav:20230216_152733-latest
name: nextcloud-aio-clamav
ports:
- containerPort: 3310

View File

@@ -42,7 +42,9 @@ spec:
value: "{{ .Values.COLLABORA_DICTIONARIES }}"
- name: extra_params
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
image: nextcloud/aio-collabora:20230124_100035-{{ .Values.IMAGE_TAG }}
- name: server_name
value: "{{ .Values.NC_DOMAIN }}"
image: nextcloud/aio-collabora:20230216_152733-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:20230124_100035-{{ .Values.IMAGE_TAG }}
image: nextcloud/aio-postgresql:20230216_152733-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:20230124_100035-{{ .Values.IMAGE_TAG }}
image: nextcloud/aio-fulltextsearch:20230216_152733-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:20230124_100035-{{ .Values.IMAGE_TAG }}
image: nextcloud/aio-imaginary:20230216_152733-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:20230124_100035-{{ .Values.IMAGE_TAG }}
image: nextcloud/aio-nextcloud:20230216_152733-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:20230124_100035-{{ .Values.IMAGE_TAG }}
image: nextcloud/aio-onlyoffice:20230216_152733-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:20230124_100035-{{ .Values.IMAGE_TAG }}
image: nextcloud/aio-redis:20230216_152733-latest
name: nextcloud-aio-redis
ports:
- containerPort: 6379

View File

@@ -36,7 +36,7 @@ spec:
value: "{{ .Values.TURN_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-talk:20230124_100035-{{ .Values.IMAGE_TAG }}
image: nextcloud/aio-talk:20230216_152733-latest
name: nextcloud-aio-talk
ports:
- containerPort: {{ .Values.TALK_PORT }}

View File

@@ -22,7 +22,7 @@ sed -i 's|^|export |' /tmp/sample.conf
# shellcheck disable=SC1091
source /tmp/sample.conf
rm /tmp/sample.conf
sed -i "s|\${IMAGE_TAG}|$DOCKER_TAG\${IMAGE_TAG}|" latest.yml
sed -i "s|:latest$|:$DOCKER_TAG-latest|" latest.yml
sed -i "s|\${APACHE_IP_BINDING}:||" latest.yml
sed -i "s|\${APACHE_PORT}:\${APACHE_PORT}/|$APACHE_PORT:$APACHE_PORT/|" latest.yml
sed -i "s|\${TALK_PORT}:\${TALK_PORT}/|$TALK_PORT:$TALK_PORT/|g" latest.yml

View File

@@ -1,15 +1,14 @@
IMAGE_TAG: latest # Version of docker images, should be latest or latest-arm64. Note: latest-arm64 has no clamav support
AIO_TOKEN: 123456 # Has no function but needs to be set!
AIO_URL: localhost # Has no function but needs to be set!
APACHE_MAX_SIZE: 10737418240 # This needs to be an integer and in sync with NEXTCLOUD_UPLOAD_LIMIT
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).
CLAMAV_ENABLED: no # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically. Note: latest-arm64 has no clamav support
CLAMAV_ENABLED: "no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.
COLLABORA_DICTIONARIES: de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru # You can change this in order to enable other dictionaries for collabora
COLLABORA_ENABLED: "yes" # Setting this to yes (with quotes) enables the option in Nextcloud automatically.
COLLABORA_ENABLED: "no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.
COLLABORA_SECCOMP_POLICY: --o:security.seccomp=true # Changing the value to false allows to disable the seccomp feature of the Collabora container.
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.
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.
@@ -20,11 +19,11 @@ NEXTCLOUD_PASSWORD: # TODO! This is the password of the initially crea
NEXTCLOUD_STARTUP_APPS: deck twofactor_totp tasks calendar contacts # Allows to modify the Nextcloud apps that are installed on starting AIO the first time
NEXTCLOUD_TRUSTED_CACERTS_DIR: # Setting this to any value allows to automatically import root certificates into the Nextcloud container
NEXTCLOUD_UPLOAD_LIMIT: 10G # This allows to change the upload limit of the Nextcloud container
ONLYOFFICE_ENABLED: no # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.
ONLYOFFICE_ENABLED: "no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.
ONLYOFFICE_SECRET: # TODO! This needs to be a unique and good password!
REDIS_PASSWORD: # TODO! This needs to be a unique and good password!
SIGNALING_SECRET: # TODO! This needs to be a unique and good password!
TALK_ENABLED: "yes" # Setting this to yes (with quotes) enables the option in Nextcloud automatically.
TALK_ENABLED: "no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.
TALK_PORT: 3478 # This allows to adjust the port that the talk container is using.
TIMEZONE: Europe/Berlin # TODO! This is the timezone that your containers will use.
TURN_SECRET: # TODO! This needs to be a unique and good password!

View File

@@ -7,7 +7,7 @@ services:
- nextcloud-aio-collabora
- nextcloud-aio-talk
- nextcloud-aio-nextcloud
image: nextcloud/aio-apache:${IMAGE_TAG}
image: nextcloud/aio-apache:latest
ports:
- ${APACHE_IP_BINDING}:${APACHE_PORT}:${APACHE_PORT}/tcp
environment:
@@ -28,7 +28,7 @@ services:
- nextcloud-aio
nextcloud-aio-database:
image: nextcloud/aio-postgresql:${IMAGE_TAG}
image: nextcloud/aio-postgresql:latest
expose:
- "5432"
volumes:
@@ -52,7 +52,7 @@ services:
- nextcloud-aio-clamav
- nextcloud-aio-fulltextsearch
- nextcloud-aio-imaginary
image: nextcloud/aio-nextcloud:${IMAGE_TAG}
image: nextcloud/aio-nextcloud:latest
expose:
- "9000"
- "7867"
@@ -106,7 +106,7 @@ services:
- nextcloud-aio
nextcloud-aio-redis:
image: nextcloud/aio-redis:${IMAGE_TAG}
image: nextcloud/aio-redis:latest
expose:
- "6379"
environment:
@@ -120,7 +120,7 @@ services:
nextcloud-aio-collabora:
profiles: ["collabora"]
image: nextcloud/aio-collabora:${IMAGE_TAG}
image: nextcloud/aio-collabora:latest
expose:
- "9980"
environment:
@@ -137,7 +137,7 @@ services:
nextcloud-aio-talk:
profiles: ["talk"]
image: nextcloud/aio-talk:${IMAGE_TAG}
image: nextcloud/aio-talk:latest
ports:
- ${TALK_PORT}:${TALK_PORT}/tcp
- ${TALK_PORT}:${TALK_PORT}/udp
@@ -156,7 +156,7 @@ services:
nextcloud-aio-clamav:
profiles: ["clamav"]
image: nextcloud/aio-clamav:${IMAGE_TAG}
image: nextcloud/aio-clamav:latest
expose:
- "3310"
environment:
@@ -170,7 +170,7 @@ services:
nextcloud-aio-onlyoffice:
profiles: ["onlyoffice"]
image: nextcloud/aio-onlyoffice:${IMAGE_TAG}
image: nextcloud/aio-onlyoffice:latest
expose:
- "80"
environment:
@@ -186,7 +186,7 @@ services:
nextcloud-aio-imaginary:
profiles: ["imaginary"]
image: nextcloud/aio-imaginary:${IMAGE_TAG}
image: nextcloud/aio-imaginary:latest
expose:
- "9000"
environment:
@@ -197,7 +197,7 @@ services:
nextcloud-aio-fulltextsearch:
profiles: ["fulltextsearch"]
image: nextcloud/aio-fulltextsearch:${IMAGE_TAG}
image: nextcloud/aio-fulltextsearch:latest
expose:
- "9200"
environment:

View File

@@ -21,16 +21,16 @@ First, install docker and docker-compose if not already done. Then simply run th
git clone https://github.com/nextcloud/all-in-one.git
cd all-in-one/manual-install
```
Then copy the sample.conf to default environment file, e.g. `cp sample.conf .env`, open the new conf file, e.g. with `nano .env`, edit all values that are marked with `# TODO!`, close and save the file. For arm64 support use `IMAGE_TAG=latest-arm64` (Note: there is no clamav image for arm64).
Then copy the sample.conf to default environment file, e.g. `cp sample.conf .env`, open the new conf file, e.g. with `nano .env`, edit all values that are marked with `# TODO!`, close and save the file. (Note: there is no clamav image for arm64).
Now copy the provided yaml file to a docker-compose file by running `cp latest.yml docker-compose.yml`.
Now you should be ready to go with `sudo docker-compose up`.
## Docker profiles
The default profile of `latest.yml` only provide the minimum necessary services: nextcloud, database, redis and apache. To get optional services collabora, onlyoffice, talk, clamav, imaginary or fulltextsearch use additional arguments for each of them, for example `--profile collabora`.
The default profile of `latest.yml` only provide the minimum necessary services: nextcloud, database, redis and apache. To get optional services collabora, onlyoffice, talk, clamav, imaginary or fulltextsearch use additional arguments for each of them, for example `--profile collabora`. (Note: there is no clamav image for arm64).
For a complete all-in-one with collabora use `sudo docker-compose --profile collabora --profile talk --profile clamav --profile imaginary --profile fulltextsearch up`.
For a complete all-in-one with collabora use `sudo docker-compose --profile collabora --profile talk --profile clamav --profile imaginary --profile fulltextsearch up`. (Note: there is no clamav image for arm64).
## How to update?
Since the AIO containers may change in the future, it is highly recommended to strictly follow the following procedure whenever you want to upgrade your containers.

View File

@@ -1,4 +1,3 @@
IMAGE_TAG=latest # Version of docker images, should be latest or latest-arm64. Note: latest-arm64 has no clamav support
AIO_TOKEN=123456 # Has no function but needs to be set!
AIO_URL=localhost # Has no function but needs to be set!
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

View File

@@ -48,7 +48,6 @@ do
done
rm -f sample.conf
echo 'IMAGE_TAG=latest # Version of docker images, should be latest or latest-arm64. Note: latest-arm64 has no clamav support' >> sample.conf
VARIABLES="$(grep -oP '%[A-Z_a-z0-6]+%' containers.yml | sort -u)"
mapfile -t VARIABLES <<< "$VARIABLES"
for variable in "${VARIABLES[@]}"
@@ -60,7 +59,7 @@ do
done
sed -i 's|_ENABLED=|_ENABLED="no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.|' sample.conf
sed -i 's|CLAMAV_ENABLED=no.*|CLAMAV_ENABLED="no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically. Note: latest-arm64 has no clamav support|' sample.conf
sed -i 's|CLAMAV_ENABLED=no.*|CLAMAV_ENABLED="no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically. Note: arm64 has no clamav support|' sample.conf
sed -i 's|TALK_ENABLED=no|TALK_ENABLED="yes"|' sample.conf
sed -i 's|COLLABORA_ENABLED=no|COLLABORA_ENABLED="yes"|' sample.conf
sed -i 's|COLLABORA_DICTIONARIES=|COLLABORA_DICTIONARIES="de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru" # You can change this in order to enable other dictionaries for collabora|' sample.conf
@@ -133,7 +132,7 @@ networks:
NETWORK
cat containers.yml > latest.yml
sed -i "/image:/s/$/:\${IMAGE_TAG}/" latest.yml
sed -i "/image:/s/$/:latest/" latest.yml
rm containers.yml

View File

@@ -16,7 +16,7 @@ The only way to fix this on your side is upgrading regularly (e.g. by enabling d
sudo docker run --rm -v /var/run/docker.sock:/var/run/docker.sock assaflavie/runlike -p nextcloud-aio-nextcloud >> /tmp/nextcloud-aio-nextcloud
sudo chown root:root /tmp/nextcloud-aio-nextcloud
```
1. Now open the file with e.g. nano: `sudo nano /tmp/nextcloud-aio-nextcloud` and change the line that should probably be `nextcloud/aio-nextcloud:latest` on x64 or `nextcloud/aio-nextcloud:latest-arm64` on arm64 to the highest compatible PHP version: E.g. `nextcloud/aio-nextcloud:php8.0-latest` on x64 or `nextcloud/aio-nextcloud:php8.0-latest-arm64` on arm64. Then save the file and close it with `[Ctrl]+[o]` -> `[Enter]` and `[Ctrl]+[x]`.
1. Now open the file with e.g. nano: `sudo nano /tmp/nextcloud-aio-nextcloud` and change the line that should probably be `nextcloud/aio-nextcloud:latest` on x64 or `nextcloud/aio-nextcloud:latest-arm64` on arm64 to the highest compatible PHP version: E.g. `nextcloud/aio-nextcloud:php8.0-latest`. Then save the file and close it with `[Ctrl]+[o]` -> `[Enter]` and `[Ctrl]+[x]`.
1. After doing so, remove the Nextcloud container with `sudo docker rm nextcloud-aio-nextcloud`.
1. Now start the Nextcloud container with the new tag by simply running `sudo bash /tmp/nextcloud-aio-nextcloud` which at startup should automatically upgrade Nextcloud to a more recent version. If not, make sure that there is no `skip.update` file in the Nextcloud datadir. If there is such a file, simply delete the file and restart the container again.<br>
**Info**: You can open the Nextcloud container logs with `sudo docker logs -f nextcloud-aio-nextcloud`.

View File

@@ -36,8 +36,10 @@ The procedure for migrating the files and the database works like this:
export PG_PASSWORD="my-temporary-password"
export PG_DATABASE="nextcloud_db"
sudo -u postgres psql <<END
CREATE USER $PG_USER WITH PASSWORD '$PG_PASSWORD';
CREATE USER $PG_USER WITH PASSWORD '$PG_PASSWORD' CREATEDB;
CREATE DATABASE $PG_DATABASE WITH OWNER $PG_USER TEMPLATE template0 ENCODING 'UTF8';
GRANT ALL PRIVILEGES ON DATABASE $PG_DATABASE TO $PG_USER;
GRANT ALL PRIVILEGES ON SCHEMA public TO $PG_USER;
END
```
1. Run the following command to start the conversion:

View File

@@ -453,10 +453,12 @@ class ConfigurationManager
throw new InvalidSettingConfigurationException(DataConst::GetDataDirectory() . " does not exist! Something was set up falsely!");
}
$df = disk_free_space(DataConst::GetDataDirectory());
if ($df !== false && (int)$df < 10240) {
$content = json_encode($config, JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT);
$size = strlen($content) + 10240;
if ($df !== false && (int)$df < $size) {
throw new InvalidSettingConfigurationException(DataConst::GetDataDirectory() . " does not have enough space for writing the config file! Not writing it back!");
}
file_put_contents(DataConst::GetConfigFile(), json_encode($config, JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT));
file_put_contents(DataConst::GetConfigFile(), $content);
}
private function GetEnvironmentalVariableOrConfig(string $envVariableName, string $configName, string $defaultValue) : string {

View File

@@ -372,6 +372,7 @@ class DockerActionManager
$portWithProtocol = $value->port . '/' . $value->protocol;
$exposedPorts[$portWithProtocol] = null;
}
$requestBody['HostConfig']['NetworkMode'] = 'nextcloud-aio';
} else {
$requestBody['HostConfig']['NetworkMode'] = 'host';
}
@@ -622,11 +623,11 @@ class DockerActionManager
}
}
public function DisconnectContainerFromNetwork(Container $container) : void
private function DisconnectContainerFromBridgeNetwork(string $id) : void
{
$url = $this->BuildApiUrl(
sprintf('networks/%s/disconnect', 'nextcloud-aio')
sprintf('networks/%s/disconnect', 'bridge')
);
try {
@@ -635,12 +636,11 @@ class DockerActionManager
$url,
[
'json' => [
'container' => $container->GetIdentifier(),
'container' => $id,
],
]
);
} catch (RequestException $e) {
error_log('Could not disconnect container from network ' . $e->getMessage());
}
}
@@ -699,6 +699,7 @@ class DockerActionManager
public function ConnectMasterContainerToNetwork() : void
{
$this->ConnectContainerIdToNetwork('nextcloud-aio-mastercontainer', '');
$this->DisconnectContainerFromBridgeNetwork('nextcloud-aio-mastercontainer');
}
public function ConnectContainerToNetwork(Container $container) : void

View File

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

View File

@@ -19,5 +19,9 @@
{% endif %}
</div>
</div>
<script type="text/javascript" src="before-unload.js"></script>
<div id="overlay">
<div class="loader"></div>
</div>
{% endblock %}

View File

@@ -21,7 +21,7 @@ The following instructions are meant for installations without a web server or r
2. Run the command below in order to start the container:<br><br>
(For people that cannot use ports 80 and/or 443 on this server e.g. because it is already taken by a different web server, please follow the [reverse proxy documentation](https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md) because port 443 is used by this project and opened on the host by default even though it does not look like this is the case. Otherwise please run the command below!)
```
# For x64 CPUs and without a web server or reverse proxy (like Apache, Nginx and else) already in place:
# For Linux and without a web server or reverse proxy (like Apache, Nginx and else) already in place:
sudo docker run \
--sig-proxy=false \
--name nextcloud-aio-mastercontainer \
@@ -33,25 +33,6 @@ The following instructions are meant for installations without a web server or r
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
nextcloud/all-in-one:latest
```
<details>
<summary>Command for arm64 CPUs like the Raspberry Pi 4</summary>
```
# For arm64 CPUs and without a web server or reverse proxy (like Apache, Nginx and else) already in place:
sudo docker run \
--sig-proxy=false \
--name nextcloud-aio-mastercontainer \
--restart always \
--publish 80:80 \
--publish 8080:8080 \
--publish 8443:8443 \
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
nextcloud/all-in-one:latest-arm64
```
</details>
<details>
<summary>Explanation of the command</summary>
@@ -64,7 +45,7 @@ The following instructions are meant for installations without a web server or r
- `--publish 8443:8443` This means that port 8443 of the container should get published on the host using port 8443. If you publish port 80 and 8443 to the public internet, you can access the AIO interface via this port with a valid certificate. It is not needed if you run AIO behind a web server or reverse proxy and can get removed in that case as you can simply use port 8080 for the AIO interface then.
- `--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config` This means that the files that are created by the mastercontainer will be stored in a docker volume that is called `nextcloud_aio_mastercontainer`. This line is not allowed to be changed, since built-in backups would fail later on.
- `--volume /var/run/docker.sock:/var/run/docker.sock:ro` The docker socket is mounted into the container which is used for spinning up all the other containers and for further features. It needs to be adjusted on Windows/macOS and on docker rootless. See the applicable documentation on this. If adjusting, don't forget to also set `DOCKER_SOCKET_PATH`! If you dislike this, see https://github.com/nextcloud/all-in-one/discussions/500#discussioncomment-2740767 and the whole thread for options.
- `nextcloud/all-in-one:latest` or `nextcloud/all-in-one:latest-arm64` This is the docker container image that is used. See https://github.com/nextcloud/all-in-one/discussions/490 for why there are different images for the different CPU architectures.
- `nextcloud/all-in-one:latest` This is the docker container image that is used.
- Further options can be set using environment variables, for example `-e NEXTCLOUD_DATADIR="/mnt/ncdata"` (This is an example for Linux. See [this](https://github.com/nextcloud/all-in-one#how-to-change-the-default-location-of-nextclouds-datadir) for other OS' and for an explanation of what this value does. This specific one needs to be specified upon the first startup if you want to change it to a specific path instead of the default Docker volume). To see explanations and examples for further variables (like changing the location of Nextcloud's datadir or mounting some locations as external storage into the Nextcloud container), read through this readme and look at the docker-compose file: https://github.com/nextcloud/all-in-one/blob/main/docker-compose.yml
</details>
@@ -217,7 +198,7 @@ Nextcloud features a built-in bruteforce protection which may get triggered and
This project values stability over new features. That means that when a new major Nextcloud update gets introduced, we will wait at least until the first patch release, e.g. `24.0.1` is out before upgrading to it. Also we will wait with the upgrade until all important apps are compatible with the new major version. Minor or patch releases for Nextcloud and all dependencies as well as all containers will be updated to new versions as soon as possible but we try to give all updates first a good test round before pushing them. That means that it can take around 2 weeks before new updates reach the `latest` channel. If you want to help testing, you can switch to the `beta` channel by following [this documentation](#how-to-switch-the-channel) which will also give you the updates earlier.
### How to switch the channel?
You can switch to a different channel like e.g. the beta channel or from the beta channel back to the latest channel by stopping the mastercontainer, removing it (no data will be lost) and recreating the container using the same command that you used initially to create the mastercontainer. For the beta channel on x64 you need to change the last line `nextcloud/all-in-one:latest` to `nextcloud/all-in-one:beta` and vice versa. For arm64 it is `nextcloud/all-in-one:latest-arm64` and `nextcloud/all-in-one:beta-arm64`, respectively.
You can switch to a different channel like e.g. the beta channel or from the beta channel back to the latest channel by stopping the mastercontainer, removing it (no data will be lost) and recreating the container using the same command that you used initially to create the mastercontainer. You simply need to change the last line `nextcloud/all-in-one:latest` to `nextcloud/all-in-one:beta` and vice versa.
### How to update the containers?
If we push new containers to `latest`, you will see in the AIO interface below the `containers` section that new container updates were found. In this case, just press `Stop containers` and `Start containers` in order to update the containers. The mastercontainer has its own update procedure though. See below. And don't forget to back up the current state of your instance using the built-in backup solution before starting the containers again! Otherwise you won't be able to restore your instance easily if something should break during the update.
@@ -244,6 +225,7 @@ Here is how to reset the AIO instance properly:
1. Stop all containers if they are running from the AIO interface
1. Stop the mastercontainer with `sudo docker stop nextcloud-aio-mastercontainer`
1. If the domaincheck container is still running, stop it with `sudo docker stop nextcloud-aio-domaincheck`
1. Check that no AIO containers are running anymore by running `sudo docker ps --format {{.Names}}`. If no `nextcloud-aio` containers are listed, you can proceed with the steps below. If there should be some, you will need to stop them with `sudo docker stop <container_name>` until no one is listed anymore.
1. Check which containers are stopped: `sudo docker ps --filter "status=exited"`
1. Now remove all these stopped containers with `sudo docker container prune`
1. Delete the docker network with `sudo docker network rm nextcloud-aio`

View File

@@ -430,8 +430,6 @@ The examples below define the dynamic configuration in YAML files. If you rather
hostsProxyHeaders:
- "X-Forwarded-Host"
referrerPolicy: "same-origin"
customResponseHeaders:
X-Robots-Tag: "none"
https-redirect:
redirectscheme:
@@ -470,7 +468,7 @@ After adjusting your reverse proxy config, use the following command to start AI
(For an docker-compose example, see the example further [below](#inspiration-for-a-docker-compose-file).)
```
# For x64 CPUs:
# For Linux:
sudo docker run \
--sig-proxy=false \
--name nextcloud-aio-mastercontainer \
@@ -482,26 +480,7 @@ sudo docker run \
nextcloud/all-in-one:latest
```
You should also think about limiting the apache container to listen only on localhost in case the reverse proxy is running on the same host by providing an additional environmental variable to this docker run command. See [point 3](#3-if-the-reverse-proxy-is-installed-on-the-same-host-you-should-configure-the-apache-container-to-only-listen-on-localhost).
<details>
<summary>Command for arm64 CPUs like the Raspberry Pi 4</summary>
```
# For arm64 CPUs:
sudo docker run \
--sig-proxy=false \
--name nextcloud-aio-mastercontainer \
--restart always \
--publish 8080:8080 \
-e APACHE_PORT=11000 \
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
nextcloud/all-in-one:latest-arm64
```
</details>
You should also think about limiting the apache container to listen only on localhost in case the reverse proxy is running on the same host and if localhost is used, by providing an additional environmental variable to this docker run command. See [point 3](#3-if-the-reverse-proxy-is-installed-on-the-same-host-you-should-configure-the-apache-container-to-only-listen-on-localhost).
On macOS see https://github.com/nextcloud/all-in-one#how-to-run-aio-on-macos.