mirror of
https://github.com/nextcloud/all-in-one.git
synced 2026-05-21 19:00:33 +00:00
Compare commits
222 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
622a927a8c | ||
|
|
fedb214387 | ||
|
|
d4245da813 | ||
|
|
f46b0c489f | ||
|
|
5e86d7baaf | ||
|
|
93dd64f5ee | ||
|
|
f0210e8594 | ||
|
|
c61261a0a1 | ||
|
|
1ac7d7866e | ||
|
|
4a121ed613 | ||
|
|
dacd48cfd0 | ||
|
|
0befd813d9 | ||
|
|
d3fba3134c | ||
|
|
e04a47a143 | ||
|
|
3899428161 | ||
|
|
15e3fd1f5e | ||
|
|
1e17a21e48 | ||
|
|
fba263e671 | ||
|
|
5dba923eff | ||
|
|
41b58ddc5e | ||
|
|
11de100d50 | ||
|
|
d76da00211 | ||
|
|
e2e613038f | ||
|
|
bbbd553300 | ||
|
|
df8a6c4ca2 | ||
|
|
c9b5814bde | ||
|
|
9ba0dbf6a3 | ||
|
|
7a1459fa84 | ||
|
|
f2d5cfab35 | ||
|
|
999f0c1bf5 | ||
|
|
255895e219 | ||
|
|
bd1ec4fd81 | ||
|
|
aeac2b54fc | ||
|
|
9d58723998 | ||
|
|
c504e32142 | ||
|
|
8e532d4a6d | ||
|
|
511c433549 | ||
|
|
e30a96dc31 | ||
|
|
7cadc15c82 | ||
|
|
4a2092b0f5 | ||
|
|
1c594ec74b | ||
|
|
68bef922fb | ||
|
|
56673bdee2 | ||
|
|
81f4a59a73 | ||
|
|
ce2a09df5e | ||
|
|
dbed6cef0c | ||
|
|
0f8f9dd222 | ||
|
|
383305e6d6 | ||
|
|
796260705b | ||
|
|
4df3cf176d | ||
|
|
9cfd5c261f | ||
|
|
af85381476 | ||
|
|
67eb251a7f | ||
|
|
84530a8938 | ||
|
|
ae14cf39c6 | ||
|
|
c16cb7265a | ||
|
|
1939d6aee7 | ||
|
|
22fcc55089 | ||
|
|
5cbbe1bab8 | ||
|
|
4a9328a9eb | ||
|
|
987dc3e729 | ||
|
|
1d70c439b7 | ||
|
|
82116bceb8 | ||
|
|
4dfd72daa7 | ||
|
|
1f3002a862 | ||
|
|
be4d76d318 | ||
|
|
44dd15d093 | ||
|
|
9fd556c079 | ||
|
|
a46f6583b7 | ||
|
|
84ab32dd44 | ||
|
|
827ad7ff70 | ||
|
|
19e564ae84 | ||
|
|
3d9fea9a0a | ||
|
|
094cb9400e | ||
|
|
5491527921 | ||
|
|
99d3bb9831 | ||
|
|
05b9c03a3d | ||
|
|
368d9d4d18 | ||
|
|
533b8785b1 | ||
|
|
59d5f839b0 | ||
|
|
322304d1ef | ||
|
|
81c0cf8aaa | ||
|
|
8d27a0bc51 | ||
|
|
0ad7aeb362 | ||
|
|
a74f50bcdb | ||
|
|
3b73da1904 | ||
|
|
44464fc1d7 | ||
|
|
431c4a3531 | ||
|
|
2faba57d34 | ||
|
|
a7c64ed986 | ||
|
|
f3bf447447 | ||
|
|
67daa0f16d | ||
|
|
f50ddfb9d8 | ||
|
|
0e6682bd4f | ||
|
|
1f419bf45f | ||
|
|
f378bc3a82 | ||
|
|
4e96085574 | ||
|
|
ef30ecae8f | ||
|
|
ec0c70e361 | ||
|
|
db5290f603 | ||
|
|
75b2bd3c75 | ||
|
|
b079734daa | ||
|
|
8cec66d34a | ||
|
|
da878302d1 | ||
|
|
ffb4f6b7a2 | ||
|
|
3b957792fe | ||
|
|
afab35175d | ||
|
|
f9bcbff151 | ||
|
|
54a06b7b23 | ||
|
|
a9c1c5fe11 | ||
|
|
7e24002e6d | ||
|
|
b079c4690f | ||
|
|
ca1b736cf7 | ||
|
|
c5b5300e9c | ||
|
|
c991fe55ce | ||
|
|
d1804260b3 | ||
|
|
1cce2e535f | ||
|
|
2aa4b4aa11 | ||
|
|
9dff8f756c | ||
|
|
f2b661dc91 | ||
|
|
35e62f2f0d | ||
|
|
1c8e46708f | ||
|
|
488a77ebdf | ||
|
|
1b4a00735c | ||
|
|
27e8fc9092 | ||
|
|
b4a380c1b2 | ||
|
|
378fe1d313 | ||
|
|
101e165720 | ||
|
|
3d6dae0093 | ||
|
|
17ec79f33e | ||
|
|
03c7051c9a | ||
|
|
977f1d1d90 | ||
|
|
ad7248358c | ||
|
|
11b1ecbd30 | ||
|
|
85d5b6890d | ||
|
|
5303ff2927 | ||
|
|
c2bfe1d37d | ||
|
|
5ec3fd2d3d | ||
|
|
b17561d41e | ||
|
|
a6727c629a | ||
|
|
8cf535e187 | ||
|
|
b43e8e56a2 | ||
|
|
2f9645f50d | ||
|
|
731c09fc74 | ||
|
|
80c0e94c0c | ||
|
|
2c951a784b | ||
|
|
852798d37a | ||
|
|
fca8a08fa7 | ||
|
|
faf88fe7f0 | ||
|
|
21e1523f38 | ||
|
|
df40476f6b | ||
|
|
7b396db59d | ||
|
|
5adb903eb9 | ||
|
|
c75c3a052a | ||
|
|
18237f59a7 | ||
|
|
b3d0624627 | ||
|
|
d393edd926 | ||
|
|
e1381ed0a0 | ||
|
|
205d1f0e26 | ||
|
|
010685a984 | ||
|
|
ee5666c973 | ||
|
|
daef535a26 | ||
|
|
29399df295 | ||
|
|
27d98c0d75 | ||
|
|
5f04e41488 | ||
|
|
61caa08b10 | ||
|
|
93de170c38 | ||
|
|
7644b5f453 | ||
|
|
72fe749644 | ||
|
|
36a67eb749 | ||
|
|
6518217d2b | ||
|
|
cf54794be2 | ||
|
|
b0b771e946 | ||
|
|
d045a00453 | ||
|
|
27d4f793e5 | ||
|
|
e56bab9d59 | ||
|
|
e0ca3bdfd6 | ||
|
|
bff4772ad8 | ||
|
|
f0e206b60d | ||
|
|
d9c90afd00 | ||
|
|
e06f22e01b | ||
|
|
6b47d8dce1 | ||
|
|
031d4cd19c | ||
|
|
6e8fee9d9e | ||
|
|
40062e6fb7 | ||
|
|
a7d915b40d | ||
|
|
0be0c00a2c | ||
|
|
a8cbdbf19f | ||
|
|
2dc4358b9f | ||
|
|
b04fd9c07c | ||
|
|
0c14a7d222 | ||
|
|
2d4dd545e0 | ||
|
|
8e1884e832 | ||
|
|
9a30bd1527 | ||
|
|
592e910da6 | ||
|
|
a126cfceaf | ||
|
|
8fc41130a0 | ||
|
|
2197a3bdbf | ||
|
|
bd3fc82923 | ||
|
|
5ca8025dcd | ||
|
|
53a9012b43 | ||
|
|
7fcc519d44 | ||
|
|
8bf71c1052 | ||
|
|
df49342fb1 | ||
|
|
a13be4c09a | ||
|
|
a46cbc0974 | ||
|
|
cde30ac81d | ||
|
|
28c6ba50fc | ||
|
|
7c6574f389 | ||
|
|
c1dab5790c | ||
|
|
12b914f731 | ||
|
|
2cd8eaa269 | ||
|
|
8a296415fd | ||
|
|
507b17d8a9 | ||
|
|
5c5c66cedd | ||
|
|
ef257bbce9 | ||
|
|
055c55ebfd | ||
|
|
275e6099dd | ||
|
|
d38468d0b4 | ||
|
|
66a04cb436 | ||
|
|
f9601276f0 | ||
|
|
5c3be60532 |
4
.github/workflows/command-rebase.yml
vendored
4
.github/workflows/command-rebase.yml
vendored
@@ -23,7 +23,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Add reaction on start
|
||||
uses: peter-evans/create-or-update-comment@23ff15729ef2fc348714a3bb66d2f655ca9066f2 # v3.1.0
|
||||
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
|
||||
with:
|
||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
repository: ${{ github.event.repository.full_name }}
|
||||
@@ -42,7 +42,7 @@ jobs:
|
||||
GITHUB_TOKEN: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
|
||||
- name: Add reaction on failure
|
||||
uses: peter-evans/create-or-update-comment@23ff15729ef2fc348714a3bb66d2f655ca9066f2 # v3.1.0
|
||||
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
|
||||
if: failure()
|
||||
with:
|
||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
|
||||
2
.github/workflows/dependency-updates.yml
vendored
2
.github/workflows/dependency-updates.yml
vendored
@@ -44,7 +44,7 @@ jobs:
|
||||
)"
|
||||
sed -i "s|pecl install APCu.*\;|pecl install APCu-$apcu_version\;|" ./Containers/mastercontainer/Dockerfile
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@v5
|
||||
uses: peter-evans/create-pull-request@v6
|
||||
with:
|
||||
commit-message: php dependency updates
|
||||
signoff: true
|
||||
|
||||
2
.github/workflows/imaginary-update.yml
vendored
2
.github/workflows/imaginary-update.yml
vendored
@@ -22,7 +22,7 @@ jobs:
|
||||
sed -i "s|^ENV IMAGINARY_HASH.*$|ENV IMAGINARY_HASH $imaginary_version|" ./Containers/imaginary/Dockerfile
|
||||
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@v5
|
||||
uses: peter-evans/create-pull-request@v6
|
||||
with:
|
||||
commit-message: imaginary-update automated change
|
||||
signoff: true
|
||||
|
||||
2
.github/workflows/lint-helm.yml
vendored
2
.github/workflows/lint-helm.yml
vendored
@@ -28,7 +28,7 @@ jobs:
|
||||
run: ct lint --target-branch ${{ github.event.repository.default_branch }} --debug --chart-dirs nextcloud-aio-helm-chart
|
||||
|
||||
- name: Create kind cluster
|
||||
uses: helm/kind-action@v1.8.0
|
||||
uses: helm/kind-action@v1.9.0
|
||||
|
||||
- name: Run chart-testing (install)
|
||||
id: install
|
||||
|
||||
2
.github/workflows/nextcloud-update.yml
vendored
2
.github/workflows/nextcloud-update.yml
vendored
@@ -68,7 +68,7 @@ jobs:
|
||||
fi
|
||||
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@v5
|
||||
uses: peter-evans/create-pull-request@v6
|
||||
with:
|
||||
commit-message: nextcloud-update automated change
|
||||
signoff: true
|
||||
|
||||
2
.github/workflows/psalm-update-baseline.yml
vendored
2
.github/workflows/psalm-update-baseline.yml
vendored
@@ -31,7 +31,7 @@ jobs:
|
||||
continue-on-error: true
|
||||
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@v5
|
||||
uses: peter-evans/create-pull-request@v6
|
||||
with:
|
||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
commit-message: Update psalm baseline
|
||||
|
||||
2
.github/workflows/talk.yml
vendored
2
.github/workflows/talk.yml
vendored
@@ -45,7 +45,7 @@ jobs:
|
||||
sed -i "s|^ARG JANUS_VERSION=.*$|ARG JANUS_VERSION=$janus_version|" ./Containers/talk/Dockerfile
|
||||
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@v5
|
||||
uses: peter-evans/create-pull-request@v6
|
||||
with:
|
||||
commit-message: talk-update automated change
|
||||
signoff: true
|
||||
|
||||
2
.github/workflows/update-helm.yml
vendored
2
.github/workflows/update-helm.yml
vendored
@@ -21,7 +21,7 @@ jobs:
|
||||
sudo bash nextcloud-aio-helm-chart/update-helm.sh "$DOCKER_TAG"
|
||||
fi
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@v5
|
||||
uses: peter-evans/create-pull-request@v6
|
||||
with:
|
||||
commit-message: Helm Chart updates
|
||||
signoff: true
|
||||
|
||||
2
.github/workflows/update-yaml.yml
vendored
2
.github/workflows/update-yaml.yml
vendored
@@ -16,7 +16,7 @@ jobs:
|
||||
run: |
|
||||
sudo bash manual-install/update-yaml.sh
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@v5
|
||||
uses: peter-evans/create-pull-request@v6
|
||||
with:
|
||||
commit-message: Yaml updates
|
||||
signoff: true
|
||||
|
||||
@@ -14,7 +14,10 @@
|
||||
}
|
||||
}
|
||||
|
||||
https://{$ADDITIONAL_TRUSTED_DOMAIN}:443,
|
||||
{$PROTOCOL}://{$NC_DOMAIN}:{$APACHE_PORT} {
|
||||
header -Server
|
||||
header -X-Powered-By
|
||||
|
||||
# Collabora
|
||||
route /browser/* {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# syntax=docker/dockerfile:latest
|
||||
FROM caddy:2.7.6-alpine as caddy
|
||||
|
||||
FROM httpd:2.4.58-alpine3.18
|
||||
FROM httpd:2.4.58-alpine3.19
|
||||
|
||||
COPY --from=caddy /usr/bin/caddy /usr/bin/caddy
|
||||
|
||||
@@ -53,6 +54,12 @@ RUN set -ex; \
|
||||
/usr/local/apache2/conf/httpd.conf; \
|
||||
echo "Include conf/nextcloud.conf" | tee -a /usr/local/apache2/conf/httpd.conf; \
|
||||
echo "ServerName localhost" | tee -a /usr/local/apache2/conf/httpd.conf; \
|
||||
# Sync this with max db connections and pm.max_children
|
||||
# We don't actually expect so many workers but don't want to limit it artificially because people will report issues otherwise.
|
||||
sed -i 's|MaxRequestWorkers.*|MaxRequestWorkers 5000|' /usr/local/apache2/conf/extra/httpd-mpm.conf; \
|
||||
grep -q '<IfModule mpm_event_module>' /usr/local/apache2/conf/extra/httpd-mpm.conf; \
|
||||
# ServerLimit needs to be set to MaxRequestWorkers divided by ThreadsPerChild which is set to 25 by default
|
||||
sed -i '/<IfModule mpm_event_module>/a\ \ \ \ ServerLimit 200' /usr/local/apache2/conf/extra/httpd-mpm.conf; \
|
||||
\
|
||||
rm -rf /usr/local/apache2/conf/original /var/www; \
|
||||
mkdir -p /var/www; \
|
||||
|
||||
@@ -51,6 +51,12 @@ else
|
||||
fi
|
||||
echo "$CADDYFILE" > /tmp/Caddyfile
|
||||
|
||||
# Remove additional domain if not given
|
||||
if [ -z "$ADDITIONAL_TRUSTED_DOMAIN" ]; then
|
||||
CADDYFILE="$(sed '/ADDITIONAL_TRUSTED_DOMAIN/d' /tmp/Caddyfile)"
|
||||
fi
|
||||
echo "$CADDYFILE" > /tmp/Caddyfile
|
||||
|
||||
# Fix the Caddyfile format
|
||||
caddy fmt --overwrite /tmp/Caddyfile
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
FROM alpine:3.18.5
|
||||
# syntax=docker/dockerfile:latest
|
||||
FROM alpine:3.19.1
|
||||
|
||||
RUN set -ex; \
|
||||
\
|
||||
|
||||
@@ -69,6 +69,11 @@ if [ "$BORG_MODE" = backup ]; then
|
||||
exit 1
|
||||
elif ! [ -f "/nextcloud_aio_volumes/nextcloud_aio_database_dump/database-dump.sql" ]; then
|
||||
echo "database-dump is missing. Cannot perform backup!"
|
||||
echo "Please check the database container logs!"
|
||||
exit 1
|
||||
elif ! [ -f "/nextcloud_aio_volumes/nextcloud_aio_nextcloud_data/.ocdata" ]; then
|
||||
echo "The .ocdata file is missing in Nextcloud datadir which means it is invalid!"
|
||||
echo "Is the drive where the datadir is located on still mounted?"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
# syntax=docker/dockerfile:latest
|
||||
# Probably from this file: https://github.com/Cisco-Talos/clamav-docker/blob/main/clamav/1.1/alpine/Dockerfile
|
||||
FROM clamav/clamav:1.2.1-21
|
||||
FROM clamav/clamav:1.3.0-39
|
||||
|
||||
COPY clamav.conf /tmp/clamav.conf
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
# syntax=docker/dockerfile:latest
|
||||
# From a file located probably somewhere here: https://github.com/CollaboraOnline/online/tree/master/docker
|
||||
FROM collabora/code:23.05.5.4.1
|
||||
FROM collabora/code:23.05.9.1.1
|
||||
|
||||
USER root
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
FROM haproxy:2.9.0-alpine3.18
|
||||
# syntax=docker/dockerfile:latest
|
||||
FROM haproxy:2.9.5-alpine3.19
|
||||
|
||||
# hadolint ignore=DL3002
|
||||
USER root
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
FROM alpine:3.18.5
|
||||
# syntax=docker/dockerfile:latest
|
||||
FROM alpine:3.19.1
|
||||
RUN set -ex; \
|
||||
apk add --no-cache bash lighttpd netcat-openbsd; \
|
||||
adduser -S www-data -G www-data; \
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
# syntax=docker/dockerfile:latest
|
||||
# Probably from here https://github.com/elastic/elasticsearch/blob/main/distribution/docker/src/docker/Dockerfile
|
||||
FROM elasticsearch:8.11.0
|
||||
FROM elasticsearch:8.12.1
|
||||
|
||||
USER root
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
FROM golang:1.21.5-alpine3.18 as go
|
||||
# syntax=docker/dockerfile:latest
|
||||
FROM golang:1.22.0-alpine3.18 as go
|
||||
|
||||
ENV IMAGINARY_HASH 6cd9edd1d3fb151eb773c14552886e4fc8e50138
|
||||
|
||||
@@ -12,7 +13,7 @@ RUN set -ex; \
|
||||
build-base; \
|
||||
go install github.com/h2non/imaginary@"$IMAGINARY_HASH";
|
||||
|
||||
FROM alpine:3.18.5
|
||||
FROM alpine:3.18.6
|
||||
RUN set -ex; \
|
||||
apk add --no-cache \
|
||||
tzdata \
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
# syntax=docker/dockerfile:latest
|
||||
# Docker CLI is a requirement
|
||||
FROM docker:24.0.7-cli as docker
|
||||
FROM docker:25.0.3-cli as docker
|
||||
|
||||
# Caddy is a requirement
|
||||
FROM caddy:2.7.6-alpine as caddy
|
||||
|
||||
# From https://github.com/docker-library/php/blob/master/8.2/alpine3.18/fpm/Dockerfile
|
||||
FROM php:8.2.13-fpm-alpine3.18
|
||||
# From https://github.com/docker-library/php/blob/master/8.2/alpine3.19/fpm/Dockerfile
|
||||
FROM php:8.2.16-fpm-alpine3.19
|
||||
|
||||
EXPOSE 80
|
||||
EXPOSE 8080
|
||||
|
||||
@@ -70,6 +70,7 @@ fi
|
||||
# Check if api version is supported
|
||||
if ! sudo -u www-data docker info &>/dev/null; then
|
||||
print_red "Cannot connect to the docker socket. Cannot proceed."
|
||||
echo "Did you maybe remove group read permissions for the docker socket? AIO needs them in order to access the docker socket."
|
||||
echo "If SELinux is enabled on your host, see https://github.com/nextcloud/all-in-one#are-there-known-problems-when-selinux-is-enabled"
|
||||
echo "If you are on TrueNas SCALE, see https://github.com/nextcloud/all-in-one#can-i-run-aio-on-truenas-scale"
|
||||
exit 1
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
FROM php:8.1.26-fpm-alpine3.18
|
||||
# syntax=docker/dockerfile:latest
|
||||
FROM php:8.1.27-fpm-alpine3.19
|
||||
|
||||
ENV PHP_MEMORY_LIMIT 512M
|
||||
ENV PHP_UPLOAD_LIMIT 10G
|
||||
@@ -38,6 +39,7 @@ RUN set -ex; \
|
||||
gmp-dev \
|
||||
icu-dev \
|
||||
imagemagick-dev \
|
||||
imagemagick-svg \
|
||||
libevent-dev \
|
||||
libjpeg-turbo-dev \
|
||||
libmcrypt-dev \
|
||||
@@ -191,11 +193,13 @@ RUN set -ex; \
|
||||
grep \
|
||||
nodejs \
|
||||
bind-tools \
|
||||
imagemagick \
|
||||
imagemagick-svg \
|
||||
coreutils; \
|
||||
\
|
||||
grep -q '^pm = dynamic' /usr/local/etc/php-fpm.d/www.conf; \
|
||||
sed -i 's/^pm = dynamic/pm = ondemand/' /usr/local/etc/php-fpm.d/www.conf; \
|
||||
# Sync this with max db connections
|
||||
# Sync this with max db connections and MaxRequestWorkers
|
||||
# We don't actually expect so many children but don't want to limit it artificially because people will report issues otherwise.
|
||||
# Also children will usually be terminated again after the process is done due to the ondemand setting
|
||||
sed -i 's/^pm.max_children =.*/pm.max_children = 5000/' /usr/local/etc/php-fpm.d/www.conf; \
|
||||
|
||||
@@ -12,5 +12,5 @@ $CONFIG = array (
|
||||
'writable' => true,
|
||||
),
|
||||
),
|
||||
'appsallowlist' => getenv('APPS_ALLOWLIST') ? explode(" ", getenv('APPS_ALLOWLIST')) : [],
|
||||
'appsallowlist' => getenv('APPS_ALLOWLIST') ? explode(" ", getenv('APPS_ALLOWLIST')) : false,
|
||||
);
|
||||
|
||||
@@ -528,6 +528,9 @@ php /var/www/html/occ config:system:set trusted_proxies 1 --value="::1"
|
||||
if [ -n "$ADDITIONAL_TRUSTED_PROXY" ]; then
|
||||
php /var/www/html/occ config:system:set trusted_proxies 2 --value="$ADDITIONAL_TRUSTED_PROXY"
|
||||
fi
|
||||
if [ -n "$ADDITIONAL_TRUSTED_DOMAIN" ]; then
|
||||
php /var/www/html/occ config:system:set trusted_domains 2 --value="$ADDITIONAL_TRUSTED_DOMAIN"
|
||||
fi
|
||||
php /var/www/html/occ config:app:set notify_push base_endpoint --value="https://$NC_DOMAIN/push"
|
||||
|
||||
# Collabora
|
||||
|
||||
@@ -54,11 +54,17 @@ sudo -u www-data rm -f "$NEXTCLOUD_DATA_DIR/this-is-a-test-file"
|
||||
# Install additional dependencies
|
||||
if [ -n "$ADDITIONAL_APKS" ]; then
|
||||
if ! [ -f "/additional-apks-are-installed" ]; then
|
||||
# Allow to disable imagemagick without having to download it each time
|
||||
if ! echo "$ADDITIONAL_APKS" | grep -q imagemagick; then
|
||||
apk del imagemagick imagemagick-svg;
|
||||
fi
|
||||
read -ra ADDITIONAL_APKS_ARRAY <<< "$ADDITIONAL_APKS"
|
||||
for app in "${ADDITIONAL_APKS_ARRAY[@]}"; do
|
||||
echo "Installing $app via apk..."
|
||||
if ! apk add --no-cache "$app" >/dev/null; then
|
||||
echo "The packet $app was not installed!"
|
||||
if [ "$app" != imagemagick ]; then
|
||||
echo "Installing $app via apk..."
|
||||
if ! apk add --no-cache "$app" >/dev/null; then
|
||||
echo "The packet $app was not installed!"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
FROM alpine:3.18.5
|
||||
# syntax=docker/dockerfile:latest
|
||||
FROM alpine:3.19.1
|
||||
|
||||
COPY --chmod=775 start.sh /start.sh
|
||||
COPY --chmod=775 healthcheck.sh /healthcheck.sh
|
||||
|
||||
@@ -45,7 +45,7 @@ fi
|
||||
echo "notify-push was started"
|
||||
|
||||
# Set sensitive values as env
|
||||
export DATABASE_URL="postgres://$POSTGRES_USER:$POSTGRES_PASSWORD@$POSTGRES_HOST/$POSTGRES_DB"
|
||||
export DATABASE_URL="postgres://oc_$POSTGRES_USER:$POSTGRES_PASSWORD@$POSTGRES_HOST/$POSTGRES_DB"
|
||||
export REDIS_URL="redis://:$REDIS_HOST_PASSWORD@$REDIS_HOST"
|
||||
|
||||
# Run it
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# syntax=docker/dockerfile:latest
|
||||
# From https://github.com/ONLYOFFICE/Docker-DocumentServer/blob/master/Dockerfile
|
||||
FROM onlyoffice/documentserver:7.5.1.1
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
# syntax=docker/dockerfile:latest
|
||||
# From https://github.com/docker-library/postgres/blob/master/15/alpine/Dockerfile
|
||||
FROM postgres:15.5-alpine
|
||||
FROM postgres:15.6-alpine
|
||||
|
||||
COPY --chmod=775 start.sh /start.sh
|
||||
COPY --chmod=775 healthcheck.sh /healthcheck.sh
|
||||
|
||||
@@ -150,6 +150,7 @@ fi
|
||||
if [ -f "/var/lib/postgresql/data/postgresql.conf" ]; then
|
||||
echo "Setting postgres values..."
|
||||
|
||||
# Sync this with max pm.max_children and MaxRequestWorkers
|
||||
# 5000 connections is apparently the highest possible value with postgres so set it to that so that we don't run into a limit here.
|
||||
# We don't actually expect so many connections but don't want to limit it artificially because people will report issues otherwise
|
||||
# Also connections should usually be closed again after the process is done
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
# syntax=docker/dockerfile:latest
|
||||
# From https://github.com/docker-library/redis/blob/master/7.0/alpine/Dockerfile
|
||||
FROM redis:7.2.3-alpine
|
||||
FROM redis:7.2.4-alpine
|
||||
|
||||
COPY --chmod=775 start.sh /start.sh
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
FROM python:3.12.1-alpine3.18
|
||||
# syntax=docker/dockerfile:latest
|
||||
FROM python:3.12.2-alpine3.19
|
||||
|
||||
COPY --chmod=775 start.sh /start.sh
|
||||
|
||||
|
||||
@@ -26,6 +26,8 @@ listen = 0.0.0.0:1234
|
||||
|
||||
[backend]
|
||||
allowall = ${ALLOW_ALL}
|
||||
# The secret below is still needed if allowall is set to true, also it doesn't hurt to be here
|
||||
secret = ${RECORDING_SECRET}
|
||||
backends = backend-1
|
||||
skipverify = ${SKIP_VERIFY}
|
||||
maxmessagesize = 1024
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
FROM nats:2.10.7-scratch as nats
|
||||
# syntax=docker/dockerfile:latest
|
||||
FROM nats:2.10.11-scratch as nats
|
||||
FROM eturnal/eturnal:1.12.0 AS eturnal
|
||||
FROM strukturag/nextcloud-spreed-signaling:1.2.2 as signaling
|
||||
FROM alpine:3.18.5 as janus
|
||||
FROM strukturag/nextcloud-spreed-signaling:1.2.3 as signaling
|
||||
FROM alpine:3.19.1 as janus
|
||||
|
||||
ARG JANUS_VERSION=v0.14.1
|
||||
WORKDIR /src
|
||||
@@ -33,7 +34,7 @@ RUN set -ex; \
|
||||
make configs; \
|
||||
rename -v ".jcfg.sample" ".jcfg" /usr/local/etc/janus/*.jcfg.sample
|
||||
|
||||
FROM alpine:3.18.5
|
||||
FROM alpine:3.19.1
|
||||
ENV ETURNAL_ETC_DIR="/conf"
|
||||
COPY --from=janus --chmod=777 --chown=1000:1000 /usr/local /usr/local
|
||||
COPY --from=eturnal --chmod=777 --chown=1000:1000 /opt/eturnal /opt/eturnal
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
# syntax=docker/dockerfile:latest
|
||||
# From https://github.com/containrrr/watchtower/blob/main/dockerfiles/Dockerfile.self-contained
|
||||
FROM containrrr/watchtower:1.7.1 as watchtower
|
||||
|
||||
FROM alpine:3.18.5
|
||||
FROM alpine:3.19.1
|
||||
|
||||
RUN apk add --no-cache bash
|
||||
COPY --from=watchtower /watchtower /watchtower
|
||||
|
||||
35
community-containers/facerecognition/facerecognition.json
Normal file
35
community-containers/facerecognition/facerecognition.json
Normal file
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"aio_services_v1": [
|
||||
{
|
||||
"container_name": "nextcloud-aio-facerecognition",
|
||||
"display_name": "Computing container for facerecognition",
|
||||
"documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/facerecognition",
|
||||
"image": "matiasdelellis/facerecognition-external-model",
|
||||
"image_tag": "v1",
|
||||
"internal_port": "5000",
|
||||
"restart": "unless-stopped",
|
||||
"environment": [
|
||||
"TZ=%TIMEZONE%",
|
||||
"API_KEY=some-super-secret-api-key"
|
||||
],
|
||||
"aio_variables": [
|
||||
"nextcloud_memory_limit=4096M"
|
||||
],
|
||||
"nextcloud_exec_commands": [
|
||||
"php /var/www/html/occ app:install facerecognition",
|
||||
"php /var/www/html/occ app:enable facerecognition",
|
||||
"php /var/www/html/occ config:system:set facerecognition.external_model_url --value nextcloud-aio-facerecognition:5000",
|
||||
"php /var/www/html/occ config:system:set facerecognition.external_model_api_key --value some-super-secret-api-key",
|
||||
"php /var/www/html/occ face:setup -m 5",
|
||||
"php /var/www/html/occ face:setup -M 4G",
|
||||
"php /var/www/html/occ config:app:set facerecognition analysis_image_area --value 4320000",
|
||||
"php /var/www/html/occ config:system:set enabledFaceRecognitionMimetype 0 --value image/jpeg",
|
||||
"php /var/www/html/occ config:system:set enabledFaceRecognitionMimetype 1 --value image/png",
|
||||
"php /var/www/html/occ config:system:set enabledFaceRecognitionMimetype 2 --value image/heic",
|
||||
"php /var/www/html/occ config:system:set enabledFaceRecognitionMimetype 3 --value image/tiff",
|
||||
"php /var/www/html/occ config:system:set enabledFaceRecognitionMimetype 4 --value image/webp",
|
||||
"php /var/www/html/occ face:background_job --defer-clustering &"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
31
community-containers/facerecognition/readme.md
Normal file
31
community-containers/facerecognition/readme.md
Normal file
@@ -0,0 +1,31 @@
|
||||
## Facerecognition
|
||||
This container bundles the external model of facerecognition and auto-configures it for you.
|
||||
|
||||
### Notes
|
||||
- This container needs imaginary in order to analyze modern file format images. Make sure to enable imaginary in the AIO interface before adding this container.
|
||||
- Facerecognition is by default disabled for all users, if you want to enable facerecognition for all users, you can run the following before adding this container:
|
||||
```bash
|
||||
# Go into the container
|
||||
sudo docker exec --user www-data -it nextcloud-aio-nextcloud bash
|
||||
```
|
||||
Now inside the container:
|
||||
```bash
|
||||
NC_USERS_NEW=$(php occ user:list | sed 's|^ - ||g' | sed 's|:.*||')
|
||||
mapfile -t NC_USERS_NEW <<< "$NC_USERS_NEW"
|
||||
for user in "${NC_USERS_NEW[@]}"
|
||||
do
|
||||
php occ user:setting "$user" facerecognition full_image_scan_done false
|
||||
php occ user:setting "$user" facerecognition enabled true
|
||||
done
|
||||
|
||||
# Exit the container shell
|
||||
exit
|
||||
```
|
||||
- If facerecognition shall analyze shared files & folders (`sudo docker exec --user www-data -it nextcloud-aio-nextcloud php occ config:app:set facerecognition handle_shared_files --value true`), groupfolders (`sudo docker exec --user www-data -it nextcloud-aio-nextcloud php occ config:app:set facerecognition handle_group_files --value true`) and/or external storages (`sudo docker exec --user www-data -it nextcloud-aio-nextcloud php occ config:app:set facerecognition handle_external_files --value true`) in Nextcloud, you need to enable support for it manually first by running the mentioned commands before adding this container. See https://github.com/matiasdelellis/facerecognition/wiki/Settings#hidden-settings for further notes on each of these settings.
|
||||
- See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack
|
||||
|
||||
### Repository
|
||||
https://github.com/matiasdelellis/facerecognition-external-model
|
||||
|
||||
### Maintainer
|
||||
https://github.com/matiasdelellis
|
||||
@@ -6,7 +6,7 @@ This container bundles pi-hole and auto-configures it for you.
|
||||
- Make sure that no dns server is already running by checking with `sudo netstat -tulpn | grep 53`. Otherwise the container will not be able to start!
|
||||
- The DHCP functionality of Pi-hole has been disabled!
|
||||
- The data of pi-hole will be automatically included in AIOs backup solution!
|
||||
- After adding and starting the container, you can visit `http://ip.address.of.this.server:8573` in order to log in with the admin key that you can retrieve when running `sudo docker inspect nextcloud-aio-pihole | grep WEBPASSWORD`. There you can configure the pi-hole setup. Also you can add local dns records.
|
||||
- After adding and starting the container, you can visit `http://ip.address.of.this.server:8573/admin` in order to log in with the admin key that you can retrieve when running `sudo docker inspect nextcloud-aio-pihole | grep WEBPASSWORD`. There you can configure the pi-hole setup. Also you can add local dns records.
|
||||
- You can configure your home network now to use pi-hole as its dns server by configuring your router.
|
||||
- Additionally, you can configure the docker daemon to use that by editing `/etc/docker/daemon.json` and adding ` { "dns" : [ "ip.address.of.this.server" , "8.8.8.8" ] } `.
|
||||
- See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack
|
||||
|
||||
@@ -3,7 +3,7 @@ This container bundles stalwart mail server and auto-configures it for you.
|
||||
|
||||
### Notes
|
||||
- This is only intended to run on a VPS with static ip-address.
|
||||
- Check with `sudo netstat -tulpn` that no other service is using port 25, 143, 465, 578, 993 nor 4190 yet as otherwise the container will fail to start.
|
||||
- Check with `sudo netstat -tulpn` that no other service is using port 25, 143, 465, 587, 993 nor 4190 yet as otherwise the container will fail to start.
|
||||
- You need to configure a reverse proxy in order to run this container since stalwart needs a dedicated (sub)domain! For that, you might have a look at https://github.com/nextcloud/all-in-one/tree/main/community-containers/caddy.
|
||||
- Currently, only `mail.$NC_DOMAIN` is supported as subdomain! So if Nextcloud is using `your-domain.com`, Stalwart will use `mail.your-domain.com`.
|
||||
- The data of Stalwart will be automatically included in AIOs backup solution!
|
||||
|
||||
@@ -40,6 +40,7 @@ sed -i 's|- ip_binding: |- |' containers.yml
|
||||
sed -i '/AIO_TOKEN/d' containers.yml
|
||||
sed -i '/AIO_URL/d' containers.yml
|
||||
sed -i '/DOCKER_SOCKET_PROXY_ENABLED/d' containers.yml
|
||||
sed -i '/ADDITIONAL_TRUSTED_PROXY/d' containers.yml
|
||||
|
||||
TCP="$(grep -oP '[%A-Z0-9_]+/tcp' containers.yml | sort -u)"
|
||||
mapfile -t TCP <<< "$TCP"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
name: nextcloud-aio-helm-chart
|
||||
description: A generated Helm Chart for Nextcloud AIO from Skippbox Kompose
|
||||
version: 7.8.1
|
||||
version: 7.12.0-beta
|
||||
apiVersion: v2
|
||||
keywords:
|
||||
- latest
|
||||
|
||||
@@ -3,7 +3,7 @@ kind: Deployment
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
kompose.version: 1.32.0 (765fde254)
|
||||
labels:
|
||||
io.kompose.service: nextcloud-aio-apache
|
||||
name: nextcloud-aio-apache
|
||||
@@ -17,7 +17,7 @@ spec:
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
kompose.version: 1.32.0 (765fde254)
|
||||
labels:
|
||||
io.kompose.network/nextcloud-aio: "true"
|
||||
io.kompose.service: nextcloud-aio-apache
|
||||
@@ -37,6 +37,8 @@ spec:
|
||||
mountPath: /nextcloud-aio-nextcloud
|
||||
containers:
|
||||
- env:
|
||||
- name: ADDITIONAL_TRUSTED_DOMAIN
|
||||
value: "{{ .Values.ADDITIONAL_TRUSTED_DOMAIN }}"
|
||||
- name: APACHE_MAX_SIZE
|
||||
value: "{{ .Values.APACHE_MAX_SIZE }}"
|
||||
- name: APACHE_MAX_TIME
|
||||
@@ -57,7 +59,8 @@ spec:
|
||||
value: nextcloud-aio-talk
|
||||
- name: TZ
|
||||
value: "{{ .Values.TIMEZONE }}"
|
||||
image: nextcloud/aio-apache:20231212_115941-latest
|
||||
image: nextcloud/aio-apache:beta
|
||||
imagePullPolicy: Always
|
||||
name: nextcloud-aio-apache
|
||||
ports:
|
||||
- containerPort: {{ .Values.APACHE_PORT }}
|
||||
|
||||
@@ -3,7 +3,7 @@ kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
kompose.version: 1.32.0 (765fde254)
|
||||
labels:
|
||||
io.kompose.service: nextcloud-aio-apache
|
||||
name: nextcloud-aio-apache
|
||||
|
||||
@@ -4,7 +4,7 @@ kind: Deployment
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
kompose.version: 1.32.0 (765fde254)
|
||||
labels:
|
||||
io.kompose.service: nextcloud-aio-clamav
|
||||
name: nextcloud-aio-clamav
|
||||
@@ -18,7 +18,7 @@ spec:
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
kompose.version: 1.32.0 (765fde254)
|
||||
labels:
|
||||
io.kompose.network/nextcloud-aio: "true"
|
||||
io.kompose.service: nextcloud-aio-clamav
|
||||
@@ -50,7 +50,7 @@ spec:
|
||||
value: "90"
|
||||
- name: TZ
|
||||
value: "{{ .Values.TIMEZONE }}"
|
||||
image: nextcloud/aio-clamav:20231212_115941-latest
|
||||
image: nextcloud/aio-clamav:20240201_120631-latest
|
||||
name: nextcloud-aio-clamav
|
||||
ports:
|
||||
- containerPort: 3310
|
||||
|
||||
@@ -4,7 +4,7 @@ kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
kompose.version: 1.32.0 (765fde254)
|
||||
labels:
|
||||
io.kompose.service: nextcloud-aio-clamav
|
||||
name: nextcloud-aio-clamav
|
||||
|
||||
@@ -4,7 +4,7 @@ kind: Deployment
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
kompose.version: 1.32.0 (765fde254)
|
||||
labels:
|
||||
io.kompose.service: nextcloud-aio-collabora
|
||||
name: nextcloud-aio-collabora
|
||||
@@ -18,7 +18,7 @@ spec:
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
kompose.version: 1.32.0 (765fde254)
|
||||
labels:
|
||||
io.kompose.network/nextcloud-aio: "true"
|
||||
io.kompose.service: nextcloud-aio-collabora
|
||||
@@ -37,7 +37,7 @@ spec:
|
||||
value: --o:ssl.enable=false --o:ssl.termination=true --o:mount_jail_tree=false --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:20231212_115941-latest
|
||||
image: nextcloud/aio-collabora:20240201_120631-latest
|
||||
name: nextcloud-aio-collabora
|
||||
ports:
|
||||
- containerPort: 9980
|
||||
|
||||
@@ -4,7 +4,7 @@ kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
kompose.version: 1.32.0 (765fde254)
|
||||
labels:
|
||||
io.kompose.service: nextcloud-aio-collabora
|
||||
name: nextcloud-aio-collabora
|
||||
|
||||
@@ -3,7 +3,7 @@ kind: Deployment
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
kompose.version: 1.32.0 (765fde254)
|
||||
labels:
|
||||
io.kompose.service: nextcloud-aio-database
|
||||
name: nextcloud-aio-database
|
||||
@@ -17,7 +17,7 @@ spec:
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
kompose.version: 1.32.0 (765fde254)
|
||||
labels:
|
||||
io.kompose.network/nextcloud-aio: "true"
|
||||
io.kompose.service: nextcloud-aio-database
|
||||
@@ -61,7 +61,7 @@ spec:
|
||||
value: nextcloud
|
||||
- name: TZ
|
||||
value: "{{ .Values.TIMEZONE }}"
|
||||
image: nextcloud/aio-postgresql:20231212_115941-latest
|
||||
image: nextcloud/aio-postgresql:20240201_120631-latest
|
||||
name: nextcloud-aio-database
|
||||
ports:
|
||||
- containerPort: 5432
|
||||
|
||||
@@ -3,7 +3,7 @@ kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
kompose.version: 1.32.0 (765fde254)
|
||||
labels:
|
||||
io.kompose.service: nextcloud-aio-database
|
||||
name: nextcloud-aio-database
|
||||
|
||||
@@ -4,7 +4,7 @@ kind: Deployment
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
kompose.version: 1.32.0 (765fde254)
|
||||
labels:
|
||||
io.kompose.service: nextcloud-aio-fulltextsearch
|
||||
name: nextcloud-aio-fulltextsearch
|
||||
@@ -18,7 +18,7 @@ spec:
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
kompose.version: 1.32.0 (765fde254)
|
||||
labels:
|
||||
io.kompose.network/nextcloud-aio: "true"
|
||||
io.kompose.service: nextcloud-aio-fulltextsearch
|
||||
@@ -55,7 +55,7 @@ spec:
|
||||
value: basic
|
||||
- name: xpack.security.enabled
|
||||
value: "false"
|
||||
image: nextcloud/aio-fulltextsearch:20231212_115941-latest
|
||||
image: nextcloud/aio-fulltextsearch:20240201_120631-latest
|
||||
name: nextcloud-aio-fulltextsearch
|
||||
ports:
|
||||
- containerPort: 9200
|
||||
|
||||
@@ -4,7 +4,7 @@ kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
kompose.version: 1.32.0 (765fde254)
|
||||
labels:
|
||||
io.kompose.service: nextcloud-aio-fulltextsearch
|
||||
name: nextcloud-aio-fulltextsearch
|
||||
|
||||
@@ -4,7 +4,7 @@ kind: Deployment
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
kompose.version: 1.32.0 (765fde254)
|
||||
labels:
|
||||
io.kompose.service: nextcloud-aio-imaginary
|
||||
name: nextcloud-aio-imaginary
|
||||
@@ -18,7 +18,7 @@ spec:
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
kompose.version: 1.32.0 (765fde254)
|
||||
labels:
|
||||
io.kompose.network/nextcloud-aio: "true"
|
||||
io.kompose.service: nextcloud-aio-imaginary
|
||||
@@ -27,7 +27,7 @@ spec:
|
||||
- env:
|
||||
- name: TZ
|
||||
value: "{{ .Values.TIMEZONE }}"
|
||||
image: nextcloud/aio-imaginary:20231212_115941-latest
|
||||
image: nextcloud/aio-imaginary:20240201_120631-latest
|
||||
name: nextcloud-aio-imaginary
|
||||
ports:
|
||||
- containerPort: 9000
|
||||
|
||||
@@ -4,7 +4,7 @@ kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
kompose.version: 1.32.0 (765fde254)
|
||||
labels:
|
||||
io.kompose.service: nextcloud-aio-imaginary
|
||||
name: nextcloud-aio-imaginary
|
||||
|
||||
@@ -3,4 +3,3 @@ kind: Namespace
|
||||
metadata:
|
||||
name: {{ .Values.NAMESPACE }}
|
||||
namespace: {{ .Values.NAMESPACE }}
|
||||
spec: {}
|
||||
|
||||
@@ -3,7 +3,7 @@ kind: Deployment
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
kompose.version: 1.32.0 (765fde254)
|
||||
labels:
|
||||
io.kompose.service: nextcloud-aio-nextcloud
|
||||
name: nextcloud-aio-nextcloud
|
||||
@@ -17,7 +17,7 @@ spec:
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
kompose.version: 1.32.0 (765fde254)
|
||||
labels:
|
||||
io.kompose.network/nextcloud-aio: "true"
|
||||
io.kompose.service: nextcloud-aio-nextcloud
|
||||
@@ -70,6 +70,8 @@ spec:
|
||||
value: "{{ .Values.APPS_ALLOWLIST }}"
|
||||
- name: ADDITIONAL_TRUSTED_PROXY
|
||||
value: "{{ .Values.ADDITIONAL_TRUSTED_PROXY }}"
|
||||
- name: ADDITIONAL_TRUSTED_DOMAIN
|
||||
value: "{{ .Values.ADDITIONAL_TRUSTED_DOMAIN }}"
|
||||
- name: SERVERINFO_TOKEN
|
||||
value: "{{ .Values.SERVERINFO_TOKEN }}"
|
||||
- name: ADDITIONAL_APKS
|
||||
@@ -112,8 +114,6 @@ spec:
|
||||
value: nextcloud-aio-onlyoffice
|
||||
- name: ONLYOFFICE_SECRET
|
||||
value: "{{ .Values.ONLYOFFICE_SECRET }}"
|
||||
- name: OVERWRITEHOST
|
||||
value: "{{ .Values.NC_DOMAIN }}"
|
||||
- name: OVERWRITEPROTOCOL
|
||||
value: https
|
||||
- name: PHP_MAX_TIME
|
||||
@@ -158,7 +158,8 @@ spec:
|
||||
value: "{{ .Values.TIMEZONE }}"
|
||||
- name: UPDATE_NEXTCLOUD_APPS
|
||||
value: "{{ .Values.UPDATE_NEXTCLOUD_APPS }}"
|
||||
image: nextcloud/aio-nextcloud:20231212_115941-latest
|
||||
image: nextcloud/aio-nextcloud:beta
|
||||
imagePullPolicy: Always
|
||||
name: nextcloud-aio-nextcloud
|
||||
ports:
|
||||
- containerPort: 9000
|
||||
|
||||
@@ -3,7 +3,7 @@ kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
kompose.version: 1.32.0 (765fde254)
|
||||
labels:
|
||||
io.kompose.service: nextcloud-aio-nextcloud
|
||||
name: nextcloud-aio-nextcloud
|
||||
|
||||
@@ -3,7 +3,7 @@ kind: Deployment
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
kompose.version: 1.32.0 (765fde254)
|
||||
labels:
|
||||
io.kompose.service: nextcloud-aio-notify-push
|
||||
name: nextcloud-aio-notify-push
|
||||
@@ -17,7 +17,7 @@ spec:
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
kompose.version: 1.32.0 (765fde254)
|
||||
labels:
|
||||
io.kompose.network/nextcloud-aio: "true"
|
||||
io.kompose.service: nextcloud-aio-notify-push
|
||||
@@ -50,7 +50,7 @@ spec:
|
||||
value: nextcloud-aio-redis
|
||||
- name: REDIS_HOST_PASSWORD
|
||||
value: "{{ .Values.REDIS_PASSWORD }}"
|
||||
image: nextcloud/aio-notify-push:20231212_115941-latest
|
||||
image: nextcloud/aio-notify-push:20240201_120631-latest
|
||||
name: nextcloud-aio-notify-push
|
||||
ports:
|
||||
- containerPort: 7867
|
||||
|
||||
@@ -3,7 +3,7 @@ kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
kompose.version: 1.32.0 (765fde254)
|
||||
labels:
|
||||
io.kompose.service: nextcloud-aio-notify-push
|
||||
name: nextcloud-aio-notify-push
|
||||
|
||||
@@ -4,7 +4,7 @@ kind: Deployment
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
kompose.version: 1.32.0 (765fde254)
|
||||
labels:
|
||||
io.kompose.service: nextcloud-aio-onlyoffice
|
||||
name: nextcloud-aio-onlyoffice
|
||||
@@ -18,7 +18,7 @@ spec:
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
kompose.version: 1.32.0 (765fde254)
|
||||
labels:
|
||||
io.kompose.network/nextcloud-aio: "true"
|
||||
io.kompose.service: nextcloud-aio-onlyoffice
|
||||
@@ -43,7 +43,7 @@ spec:
|
||||
value: "{{ .Values.ONLYOFFICE_SECRET }}"
|
||||
- name: TZ
|
||||
value: "{{ .Values.TIMEZONE }}"
|
||||
image: nextcloud/aio-onlyoffice:20231212_115941-latest
|
||||
image: nextcloud/aio-onlyoffice:20240201_120631-latest
|
||||
name: nextcloud-aio-onlyoffice
|
||||
ports:
|
||||
- containerPort: 80
|
||||
|
||||
@@ -4,7 +4,7 @@ kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
kompose.version: 1.32.0 (765fde254)
|
||||
labels:
|
||||
io.kompose.service: nextcloud-aio-onlyoffice
|
||||
name: nextcloud-aio-onlyoffice
|
||||
|
||||
@@ -3,7 +3,7 @@ kind: Deployment
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
kompose.version: 1.32.0 (765fde254)
|
||||
labels:
|
||||
io.kompose.service: nextcloud-aio-redis
|
||||
name: nextcloud-aio-redis
|
||||
@@ -17,7 +17,7 @@ spec:
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
kompose.version: 1.32.0 (765fde254)
|
||||
labels:
|
||||
io.kompose.network/nextcloud-aio: "true"
|
||||
io.kompose.service: nextcloud-aio-redis
|
||||
@@ -38,7 +38,7 @@ spec:
|
||||
value: "{{ .Values.REDIS_PASSWORD }}"
|
||||
- name: TZ
|
||||
value: "{{ .Values.TIMEZONE }}"
|
||||
image: nextcloud/aio-redis:20231212_115941-latest
|
||||
image: nextcloud/aio-redis:20240201_120631-latest
|
||||
name: nextcloud-aio-redis
|
||||
ports:
|
||||
- containerPort: 6379
|
||||
|
||||
@@ -3,7 +3,7 @@ kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
kompose.version: 1.32.0 (765fde254)
|
||||
labels:
|
||||
io.kompose.service: nextcloud-aio-redis
|
||||
name: nextcloud-aio-redis
|
||||
|
||||
@@ -4,7 +4,7 @@ kind: Deployment
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
kompose.version: 1.32.0 (765fde254)
|
||||
labels:
|
||||
io.kompose.service: nextcloud-aio-talk
|
||||
name: nextcloud-aio-talk
|
||||
@@ -18,7 +18,7 @@ spec:
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
kompose.version: 1.32.0 (765fde254)
|
||||
labels:
|
||||
io.kompose.network/nextcloud-aio: "true"
|
||||
io.kompose.service: nextcloud-aio-talk
|
||||
@@ -37,7 +37,7 @@ spec:
|
||||
value: "{{ .Values.TURN_SECRET }}"
|
||||
- name: TZ
|
||||
value: "{{ .Values.TIMEZONE }}"
|
||||
image: nextcloud/aio-talk:20231212_115941-latest
|
||||
image: nextcloud/aio-talk:20240201_120631-latest
|
||||
name: nextcloud-aio-talk
|
||||
ports:
|
||||
- containerPort: {{ .Values.TALK_PORT }}
|
||||
|
||||
@@ -4,7 +4,7 @@ kind: Deployment
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
kompose.version: 1.32.0 (765fde254)
|
||||
labels:
|
||||
io.kompose.service: nextcloud-aio-talk-recording
|
||||
name: nextcloud-aio-talk-recording
|
||||
@@ -18,7 +18,7 @@ spec:
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
kompose.version: 1.32.0 (765fde254)
|
||||
labels:
|
||||
io.kompose.network/nextcloud-aio: "true"
|
||||
io.kompose.service: nextcloud-aio-talk-recording
|
||||
@@ -33,7 +33,7 @@ spec:
|
||||
value: "{{ .Values.RECORDING_SECRET }}"
|
||||
- name: TZ
|
||||
value: "{{ .Values.TIMEZONE }}"
|
||||
image: nextcloud/aio-talk-recording:20231212_115941-latest
|
||||
image: nextcloud/aio-talk-recording:20240201_120631-latest
|
||||
name: nextcloud-aio-talk-recording
|
||||
ports:
|
||||
- containerPort: 1234
|
||||
|
||||
@@ -4,7 +4,7 @@ kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
kompose.version: 1.32.0 (765fde254)
|
||||
labels:
|
||||
io.kompose.service: nextcloud-aio-talk-recording
|
||||
name: nextcloud-aio-talk-recording
|
||||
|
||||
@@ -5,7 +5,7 @@ kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
kompose.version: 1.32.0 (765fde254)
|
||||
labels:
|
||||
io.kompose.service: nextcloud-aio-talk
|
||||
name: nextcloud-aio-talk-public
|
||||
@@ -30,7 +30,7 @@ kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
|
||||
kompose.version: 1.31.2 (a92241f79)
|
||||
kompose.version: 1.32.0 (765fde254)
|
||||
labels:
|
||||
io.kompose.service: nextcloud-aio-talk
|
||||
name: nextcloud-aio-talk
|
||||
|
||||
@@ -27,6 +27,7 @@ sed -i 's|^|export |' /tmp/sample.conf
|
||||
# shellcheck disable=SC1091
|
||||
source /tmp/sample.conf
|
||||
rm /tmp/sample.conf
|
||||
sed -i '/OVERWRITEHOST/d' latest.yml
|
||||
sed -i "s|:latest$|:$DOCKER_TAG-latest|" latest.yml
|
||||
sed -i "s|\${APACHE_IP_BINDING}:||" latest.yml
|
||||
sed -i '/APACHE_IP_BINDING/d' latest.yml
|
||||
@@ -255,12 +256,23 @@ cat << EOL > /tmp/additional.config
|
||||
value: "{{ .Values.APPS_ALLOWLIST }}"
|
||||
- name: ADDITIONAL_TRUSTED_PROXY
|
||||
value: "{{ .Values.ADDITIONAL_TRUSTED_PROXY }}"
|
||||
- name: ADDITIONAL_TRUSTED_DOMAIN
|
||||
value: "{{ .Values.ADDITIONAL_TRUSTED_DOMAIN }}"
|
||||
- name: SERVERINFO_TOKEN
|
||||
value: "{{ .Values.SERVERINFO_TOKEN }}"
|
||||
EOL
|
||||
# shellcheck disable=SC1083
|
||||
find ./ -name '*nextcloud-deployment.yaml' -exec sed -i "/^.*\- env:/r /tmp/additional.config" \{} \;
|
||||
|
||||
# Additional config
|
||||
cat << EOL > /tmp/additional-apache.config
|
||||
- name: ADDITIONAL_TRUSTED_DOMAIN
|
||||
value: "{{ .Values.ADDITIONAL_TRUSTED_DOMAIN }}"
|
||||
EOL
|
||||
# shellcheck disable=SC1083
|
||||
find ./ -name '*apache-deployment.yaml' -exec sed -i "/^.*\- env:/r /tmp/additional-apache.config" \{} \;
|
||||
|
||||
|
||||
cd ../
|
||||
mkdir -p ../helm-chart/
|
||||
rm latest/Chart.yaml
|
||||
@@ -305,6 +317,7 @@ SUBSCRIPTION_KEY: # This allows to set the Nextcloud Enterprise key via E
|
||||
SERVERINFO_TOKEN: # This allows to set the serverinfo app token for monitoring your Nextcloud via the serverinfo app
|
||||
APPS_ALLOWLIST: # This allows to configure allowed apps that will be shown in Nextcloud's Appstore. You need to enter the app-IDs of the apps here and separate them with spaces. E.g. 'files richdocuments'
|
||||
ADDITIONAL_TRUSTED_PROXY: # Allows to add one additional ip-address to Nextcloud's trusted proxies and to the Office WOPI-allowlist automatically. Set it e.g. like this: 'your.public.ip-address'. You can also use an ip-range here.
|
||||
ADDITIONAL_TRUSTED_DOMAIN: # Allows to add one domain to Nextcloud's trusted domains and also generates a certificate automatically for it
|
||||
SMTP_HOST: # (empty by default): The hostname of the SMTP server.
|
||||
SMTP_SECURE: # (empty by default): Set to 'ssl' to use SSL, or 'tls' to use STARTTLS.
|
||||
SMTP_PORT: # (default: '465' for SSL and '25' for non-secure connections): Optional port for the SMTP connection. Use '587' for an alternative port for STARTTLS.
|
||||
|
||||
@@ -51,6 +51,7 @@ SUBSCRIPTION_KEY: # This allows to set the Nextcloud Enterprise key via E
|
||||
SERVERINFO_TOKEN: # This allows to set the serverinfo app token for monitoring your Nextcloud via the serverinfo app
|
||||
APPS_ALLOWLIST: # This allows to configure allowed apps that will be shown in Nextcloud's Appstore. You need to enter the app-IDs of the apps here and separate them with spaces. E.g. 'files richdocuments'
|
||||
ADDITIONAL_TRUSTED_PROXY: # Allows to add one additional ip-address to Nextcloud's trusted proxies and to the Office WOPI-allowlist automatically. Set it e.g. like this: 'your.public.ip-address'. You can also use an ip-range here.
|
||||
ADDITIONAL_TRUSTED_DOMAIN: # Allows to add one domain to Nextcloud's trusted domains and also generates a certificate automatically for it
|
||||
SMTP_HOST: # (empty by default): The hostname of the SMTP server.
|
||||
SMTP_SECURE: # (empty by default): Set to 'ssl' to use SSL, or 'tls' to use STARTTLS.
|
||||
SMTP_PORT: # (default: '465' for SSL and '25' for non-secure connections): Optional port for the SMTP connection. Use '587' for an alternative port for STARTTLS.
|
||||
|
||||
80
php/composer.lock
generated
80
php/composer.lock
generated
@@ -1090,16 +1090,16 @@
|
||||
},
|
||||
{
|
||||
"name": "slim/csrf",
|
||||
"version": "1.3.0",
|
||||
"version": "1.4.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/slimphp/Slim-Csrf.git",
|
||||
"reference": "ebaaf295fd6d7224078d8ae3bba45329b31798c7"
|
||||
"reference": "f66be9740283ed4f432535aff3623540e178013a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/slimphp/Slim-Csrf/zipball/ebaaf295fd6d7224078d8ae3bba45329b31798c7",
|
||||
"reference": "ebaaf295fd6d7224078d8ae3bba45329b31798c7",
|
||||
"url": "https://api.github.com/repos/slimphp/Slim-Csrf/zipball/f66be9740283ed4f432535aff3623540e178013a",
|
||||
"reference": "f66be9740283ed4f432535aff3623540e178013a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -1110,10 +1110,10 @@
|
||||
"psr/http-server-middleware": "^1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpspec/prophecy": "^1.15",
|
||||
"phpspec/prophecy-phpunit": "^2.0",
|
||||
"phpunit/phpunit": "^9.5",
|
||||
"squizlabs/php_codesniffer": "^3.7"
|
||||
"phpspec/prophecy": "^1.18",
|
||||
"phpspec/prophecy-phpunit": "^2.1",
|
||||
"phpunit/phpunit": "^9.6",
|
||||
"squizlabs/php_codesniffer": "^3.8"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
@@ -1142,9 +1142,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/slimphp/Slim-Csrf/issues",
|
||||
"source": "https://github.com/slimphp/Slim-Csrf/tree/1.3.0"
|
||||
"source": "https://github.com/slimphp/Slim-Csrf/tree/1.4.0"
|
||||
},
|
||||
"time": "2022-11-05T19:27:53+00:00"
|
||||
"time": "2024-01-22T09:08:27+00:00"
|
||||
},
|
||||
{
|
||||
"name": "slim/slim",
|
||||
@@ -1395,16 +1395,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-ctype",
|
||||
"version": "v1.28.0",
|
||||
"version": "v1.29.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-ctype.git",
|
||||
"reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb"
|
||||
"reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb",
|
||||
"reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ef4d7e442ca910c4764bce785146269b30cb5fc4",
|
||||
"reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -1418,9 +1418,6 @@
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.28-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
@@ -1457,7 +1454,7 @@
|
||||
"portable"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0"
|
||||
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.29.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -1473,20 +1470,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-01-26T09:26:14+00:00"
|
||||
"time": "2024-01-29T20:11:03+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-mbstring",
|
||||
"version": "v1.28.0",
|
||||
"version": "v1.29.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-mbstring.git",
|
||||
"reference": "42292d99c55abe617799667f454222c54c60e229"
|
||||
"reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229",
|
||||
"reference": "42292d99c55abe617799667f454222c54c60e229",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec",
|
||||
"reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -1500,9 +1497,6 @@
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.28-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
@@ -1540,7 +1534,7 @@
|
||||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0"
|
||||
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.29.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -1556,20 +1550,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-07-28T09:04:16+00:00"
|
||||
"time": "2024-01-29T20:11:03+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-php80",
|
||||
"version": "v1.28.0",
|
||||
"version": "v1.29.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-php80.git",
|
||||
"reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5"
|
||||
"reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/6caa57379c4aec19c0a12a38b59b26487dcfe4b5",
|
||||
"reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b",
|
||||
"reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -1577,9 +1571,6 @@
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.28-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
@@ -1623,7 +1614,7 @@
|
||||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-php80/tree/v1.28.0"
|
||||
"source": "https://github.com/symfony/polyfill-php80/tree/v1.29.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -1639,20 +1630,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-01-26T09:26:14+00:00"
|
||||
"time": "2024-01-29T20:11:03+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-php81",
|
||||
"version": "v1.28.0",
|
||||
"version": "v1.29.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-php81.git",
|
||||
"reference": "7581cd600fa9fd681b797d00b02f068e2f13263b"
|
||||
"reference": "c565ad1e63f30e7477fc40738343c62b40bc672d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/7581cd600fa9fd681b797d00b02f068e2f13263b",
|
||||
"reference": "7581cd600fa9fd681b797d00b02f068e2f13263b",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/c565ad1e63f30e7477fc40738343c62b40bc672d",
|
||||
"reference": "c565ad1e63f30e7477fc40738343c62b40bc672d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -1660,9 +1651,6 @@
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.28-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
@@ -1702,7 +1690,7 @@
|
||||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-php81/tree/v1.28.0"
|
||||
"source": "https://github.com/symfony/polyfill-php81/tree/v1.29.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -1718,7 +1706,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-01-26T09:26:14+00:00"
|
||||
"time": "2024-01-29T20:11:03+00:00"
|
||||
},
|
||||
{
|
||||
"name": "twig/twig",
|
||||
|
||||
@@ -213,6 +213,7 @@
|
||||
"REMOVE_DISABLED_APPS=%REMOVE_DISABLED_APPS%",
|
||||
"APACHE_PORT=%APACHE_PORT%",
|
||||
"APACHE_IP_BINDING=%APACHE_IP_BINDING%",
|
||||
"ADDITIONAL_TRUSTED_PROXY=%CADDY_IP_ADDRESS%",
|
||||
"THIS_IS_AIO=true"
|
||||
],
|
||||
"stop_grace_period": 600,
|
||||
|
||||
@@ -8,7 +8,7 @@ if (strpos($domain, '.') === false) {
|
||||
http_response_code(400);
|
||||
} elseif (strpos($domain, ':') !== false) {
|
||||
http_response_code(400);
|
||||
} elseif (!filter_var($domain, FILTER_VALIDATE_DOMAIN, FILTER_FLAG_HOSTNAME)) {
|
||||
} elseif (filter_var($domain, FILTER_VALIDATE_DOMAIN, FILTER_FLAG_HOSTNAME) === false) {
|
||||
http_response_code(400);
|
||||
} elseif (filter_var($domain, FILTER_VALIDATE_IP)) {
|
||||
http_response_code(400);
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<files psalm-version="5.17.0@c620f6e80d0abfca532b00bda366062aaedf6e5d"/>
|
||||
<files psalm-version="5.22.1@e9dad66e11274315dac27e08349c628c7d6a1a43"/>
|
||||
|
||||
@@ -48,6 +48,15 @@ class DockerController
|
||||
}
|
||||
}
|
||||
|
||||
// Check if docker hub is reachable in order to make sure that we do not try to pull an image if it is down
|
||||
// and try to mitigate issues that are arising due to that
|
||||
if ($pullImage) {
|
||||
if (!$this->dockerActionManager->isDockerHubReachable($container)) {
|
||||
$pullImage = false;
|
||||
error_log('Not pulling the image for the ' . $container->GetContainerName() . ' container because docker hub does not seem to be reachable.');
|
||||
}
|
||||
}
|
||||
|
||||
$this->dockerActionManager->DeleteContainer($container);
|
||||
$this->dockerActionManager->CreateVolumes($container);
|
||||
if ($pullImage) {
|
||||
|
||||
@@ -30,7 +30,7 @@ class LoginController
|
||||
return $response->withHeader('Location', '/')->withStatus(201);
|
||||
}
|
||||
|
||||
$response->getBody()->write("The password is false.");
|
||||
$response->getBody()->write("The password is incorrect.");
|
||||
return $response->withHeader('Location', '/')->withStatus(422);
|
||||
}
|
||||
|
||||
|
||||
@@ -286,7 +286,7 @@ class ConfigurationManager
|
||||
}
|
||||
|
||||
// Validate domain
|
||||
if (!filter_var($domain, FILTER_VALIDATE_DOMAIN, FILTER_FLAG_HOSTNAME)) {
|
||||
if (filter_var($domain, FILTER_VALIDATE_DOMAIN, FILTER_FLAG_HOSTNAME) === false) {
|
||||
throw new InvalidSettingConfigurationException("Domain is not a valid domain!");
|
||||
}
|
||||
|
||||
@@ -305,7 +305,7 @@ class ConfigurationManager
|
||||
|
||||
if (empty($dnsRecordIP)) {
|
||||
$record = dns_get_record($domain, DNS_AAAA);
|
||||
if (!empty($record)) {
|
||||
if (!empty($record[0]['ipv6'])) {
|
||||
$dnsRecordIP = $record[0]['ipv6'];
|
||||
}
|
||||
}
|
||||
@@ -320,7 +320,7 @@ class ConfigurationManager
|
||||
|
||||
if (!filter_var($dnsRecordIP, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)) {
|
||||
if ($port === '443') {
|
||||
throw new InvalidSettingConfigurationException("It seems like the ip-address is set to an internal or reserved ip-address. This is not supported. (It was found to be set to '" . $dnsRecordIP . "')");
|
||||
throw new InvalidSettingConfigurationException("It seems like the ip-address of the domain is set to an internal or reserved ip-address. This is not supported. (It was found to be set to '" . $dnsRecordIP . "'). Please set it to a public ip-address so that the domain validation can work!");
|
||||
} else {
|
||||
error_log("It seems like the ip-address of " . $domain . " is set to an internal or reserved ip-address. (It was found to be set to '" . $dnsRecordIP . "')");
|
||||
}
|
||||
@@ -331,7 +331,7 @@ class ConfigurationManager
|
||||
if ($connection) {
|
||||
fclose($connection);
|
||||
} else {
|
||||
throw new InvalidSettingConfigurationException("The server is not reachable on Port 443. You can verify this e.g. with 'https://portchecker.co/' by entering your domain there as ip-address and port 443 as port.");
|
||||
throw new InvalidSettingConfigurationException("The domain is not reachable on Port 443 from within this container. Have you opened port 443/tcp in your router/firewall? If yes is the problem most likely that the router or firewall forbids local access to your domain. You can work around that by setting up a local DNS-server.");
|
||||
}
|
||||
|
||||
// Get Instance ID
|
||||
@@ -359,7 +359,13 @@ class ConfigurationManager
|
||||
error_log('The response of the connection attempt to "' . $testUrl . '" was: ' . $response);
|
||||
error_log('Expected was: ' . $instanceID);
|
||||
error_log('The error message was: ' . curl_error($ch));
|
||||
throw new InvalidSettingConfigurationException("Domain does not point to this server or the reverse proxy is not configured correctly. See the mastercontainer logs for more details. ('sudo docker logs -f nextcloud-aio-mastercontainer')");
|
||||
$notice = "Domain does not point to this server or the reverse proxy is not configured correctly. See the mastercontainer logs for more details. ('sudo docker logs -f nextcloud-aio-mastercontainer')";
|
||||
if ($port === '443') {
|
||||
$notice .= " If you should be using Cloudflare, make sure to disable the Cloudflare Proxy feature as it might block the domain validation. Same for any other firewall or service that blocks unencrypted access on port 443.";
|
||||
} else {
|
||||
error_log('Please follow https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md#6-how-to-debug-things in order to debug things!');
|
||||
}
|
||||
throw new InvalidSettingConfigurationException($notice);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -186,7 +186,11 @@ class DockerActionManager
|
||||
|
||||
public function StartContainer(Container $container) : void {
|
||||
$url = $this->BuildApiUrl(sprintf('containers/%s/start', urlencode($container->GetIdentifier())));
|
||||
$this->guzzleClient->post($url);
|
||||
try {
|
||||
$this->guzzleClient->post($url);
|
||||
} catch (RequestException $e) {
|
||||
throw new \Exception("Could not start container " . $container->GetIdentifier() . ": " . $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public function CreateVolumes(Container $container): void
|
||||
@@ -406,6 +410,13 @@ class DockerActionManager
|
||||
// Allow to get local ip-address of database container which allows to talk to it even in host mode (the container that requires this needs to be started first then)
|
||||
} elseif ($out[1] === 'AIO_DATABASE_HOST') {
|
||||
$replacements[1] = gethostbyname('nextcloud-aio-database');
|
||||
// Allow to get local ip-address of caddy container and add it to trusted proxies automatically
|
||||
} elseif ($out[1] === 'CADDY_IP_ADDRESS') {
|
||||
$replacements[1] = '';
|
||||
$communityContainers = $this->configurationManager->GetEnabledCommunityContainers();
|
||||
if (in_array('caddy', $communityContainers, true)) {
|
||||
$replacements[1] = gethostbyname('nextcloud-aio-caddy');
|
||||
}
|
||||
} else {
|
||||
$secret = $this->configurationManager->GetSecret($out[1]);
|
||||
if ($secret === "") {
|
||||
@@ -518,8 +529,10 @@ class DockerActionManager
|
||||
$requestBody['HostConfig']['CapDrop'] = ['NET_RAW'];
|
||||
}
|
||||
|
||||
// Disable SELinux for AIO containers so that it does not break them
|
||||
$requestBody['HostConfig']['SecurityOpt'] = ["label:disable"];
|
||||
if ($container->isApparmorUnconfined()) {
|
||||
$requestBody['HostConfig']['SecurityOpt'] = ["apparmor:unconfined"];
|
||||
$requestBody['HostConfig']['SecurityOpt'] = ["apparmor:unconfined", "label:disable"];
|
||||
}
|
||||
|
||||
$mounts = [];
|
||||
@@ -553,9 +566,6 @@ class DockerActionManager
|
||||
}
|
||||
$mounts[] = ["Type" => "bind", "Source" => $volume->name, "Target" => $volume->mountPoint, "ReadOnly" => !$volume->isWritable, "BindOptions" => [ "Propagation" => "rshared"]];
|
||||
}
|
||||
// Special things for the watchtower and docker-socket-proxy container which should not be exposed in the containers.json
|
||||
} elseif ($container->GetIdentifier() === 'nextcloud-aio-watchtower' || $container->GetIdentifier() === 'nextcloud-aio-docker-socket-proxy') {
|
||||
$requestBody['HostConfig']['SecurityOpt'] = ["label:disable"];
|
||||
}
|
||||
|
||||
if (count($mounts) > 0) {
|
||||
@@ -572,22 +582,44 @@ class DockerActionManager
|
||||
]
|
||||
);
|
||||
} catch (RequestException $e) {
|
||||
throw new \Exception("Could not start container " . $container->GetIdentifier() . ": " . $e->getMessage());
|
||||
throw new \Exception("Could not create container " . $container->GetIdentifier() . ": " . $e->getMessage());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function isDockerHubReachable(Container $container) : bool {
|
||||
$tag = $container->GetImageTag();
|
||||
if ($tag === '%AIO_CHANNEL%') {
|
||||
$tag = $this->GetCurrentChannel();
|
||||
}
|
||||
|
||||
$remoteDigest = $this->dockerHubManager->GetLatestDigestOfTag($container->GetContainerName(), $tag);
|
||||
|
||||
if ($remoteDigest === null) {
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public function PullImage(Container $container) : void
|
||||
{
|
||||
$imageName = $this->BuildImageName($container);
|
||||
$encodedImageName = urlencode($imageName);
|
||||
$url = $this->BuildApiUrl(sprintf('images/create?fromImage=%s', $encodedImageName));
|
||||
$imageIsThere = true;
|
||||
try {
|
||||
$this->guzzleClient->post($url);
|
||||
$imageUrl = $this->BuildApiUrl(sprintf('images/%s/json', $encodedImageName));
|
||||
$this->guzzleClient->get($imageUrl)->getBody()->getContents();
|
||||
} catch (\Throwable $e) {
|
||||
throw new \Exception("Could not pull image " . $imageName . ". Please run 'sudo docker exec -it nextcloud-aio-mastercontainer docker pull " . $imageName . "' in order to find out why it failed.");
|
||||
$imageIsThere = false;
|
||||
}
|
||||
try {
|
||||
$this->guzzleClient->post($url);
|
||||
} catch (RequestException $e) {
|
||||
if ($imageIsThere === false) {
|
||||
throw new \Exception("Could not pull image " . $imageName . ". Please run 'sudo docker exec -it nextcloud-aio-mastercontainer docker pull " . $imageName . "' in order to find out why it failed.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
</header>
|
||||
|
||||
<div class="content">
|
||||
<h1>Nextcloud AIO v7.9.0</h1>
|
||||
<h1>Nextcloud AIO v7.13.0</h1>
|
||||
|
||||
{# Add 2nd tab warning #}
|
||||
<script type="text/javascript" src="second-tab-warning.js"></script>
|
||||
|
||||
38
readme.md
38
readme.md
@@ -3,14 +3,14 @@ The official Nextcloud installation method. Nextcloud AIO provides easy deployme
|
||||
|
||||
Included are:
|
||||
- Nextcloud
|
||||
- Nextcloud Office
|
||||
- High performance backend for Nextcloud Files
|
||||
- High performance backend for Nextcloud Talk and TURN-server
|
||||
- Nextcloud Talk Recording-server
|
||||
- Backup solution (based on [BorgBackup](https://github.com/borgbackup/borg#what-is-borgbackup))
|
||||
- Imaginary (for previews of heic, heif, illustrator, pdf, svg, tiff and webp)
|
||||
- ClamAV (Antivirus backend for Nextcloud)
|
||||
- Fulltextsearch
|
||||
- Nextcloud Office (optional)
|
||||
- High performance backend for Nextcloud Talk and TURN-server (optional)
|
||||
- Nextcloud Talk Recording-server (optional)
|
||||
- Backup solution (optional, based on [BorgBackup](https://github.com/borgbackup/borg#what-is-borgbackup))
|
||||
- Imaginary (optional, for previews of heic, heif, illustrator, pdf, svg, tiff and webp)
|
||||
- ClamAV (optional, Antivirus backend for Nextcloud)
|
||||
- Fulltextsearch (optional)
|
||||
<details><summary>And much more:</summary>
|
||||
|
||||
- Simple web interface included that enables easy installation and maintenance
|
||||
@@ -222,7 +222,10 @@ Another but untested way is to install Portainer on your TrueNAS SCALE from here
|
||||
Although it does not seems like it is the case but from AIO perspective a Cloudflare Tunnel works like a reverse proxy. So please follow the [reverse proxy documentation](./reverse-proxy.md) where is documented how to make it run behind a Cloudflare Tunnel. However please see the [caveats](https://github.com/nextcloud/all-in-one#notes-on-cloudflare-proxytunnel) before proceeding.
|
||||
|
||||
### Disrecommended VPS providers
|
||||
- Stratos VPS crash/freeze/make errors when they reach an extremely low PID limit, which is very quickly reached by AIO, see [here](https://github.com/nextcloud/all-in-one/discussions/1747#discussioncomment-4716164), Strato does normally not increase this limit.
|
||||
- *Older* Strato VPS using Virtuozzo caused problems though ones from Q3 2023 and later should work.
|
||||
If your VPS has a `/proc/user_beancounters` file and a low `numproc` limit set in it
|
||||
your server will likely misbehave once it reaches this limit
|
||||
which is very quickly reached by AIO, see [here](https://github.com/nextcloud/all-in-one/discussions/1747#discussioncomment-4716164).
|
||||
- Hostingers VPS seem to miss a specific Kernel feature which is required for AIO to run correctly. See [here](https://help.nextcloud.com/t/help-installing-nc-via-aio-on-vps/153956).
|
||||
|
||||
### Recommended VPS
|
||||
@@ -388,7 +391,7 @@ Not directly but you have multiple options to achieve this:
|
||||
---
|
||||
|
||||
#### Failure of the backup container in LXC containers
|
||||
If you are running AIO in a LXC container, you need to make sure that FUSE is enabled in the LXC container settings. Otherwise the backup container will not be able to start as FUSE is required for it to work.
|
||||
If you are running AIO in a LXC container, you need to make sure that FUSE is enabled in the LXC container settings. Also, if using Alpine Linux as host OS, make sure to add fuse via `apk add fuse`. Otherwise the backup container will not be able to start as FUSE is required for it to work.
|
||||
|
||||
---
|
||||
|
||||
@@ -655,7 +658,7 @@ You might want to adjust the Nextcloud apps that are installed upon the first st
|
||||
### How to add OS packages permanently to the Nextcloud container?
|
||||
Some Nextcloud apps require additional external dependencies that must be bundled within Nextcloud container in order to work correctly. As we cannot put each and every dependency for all apps into the container - as this would make the project quickly unmaintainable - there is an official way in which you can add additional dependencies into the Nextcloud container. However note that doing this is disrecommended since we do not test Nextcloud apps that require external dependencies.
|
||||
|
||||
You can do so by adding `--env NEXTCLOUD_ADDITIONAL_APKS="imagemagick dependency2 dependency3"` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) and customize the value to your fitting. It must be a string with small letters a-z, digits 0-9, spaces, dots and hyphens or '_'. You can find available packages here: https://pkgs.alpinelinux.org/packages?branch=v3.18. By default `imagemagick` is added. If you want to keep it, you need to specify it as well.
|
||||
You can do so by adding `--env NEXTCLOUD_ADDITIONAL_APKS="imagemagick dependency2 dependency3"` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) and customize the value to your fitting. It must be a string with small letters a-z, digits 0-9, spaces, dots and hyphens or '_'. You can find available packages here: https://pkgs.alpinelinux.org/packages?branch=v3.19. By default `imagemagick` is added. If you want to keep it, you need to specify it as well.
|
||||
|
||||
### How to add PHP extensions permanently to the Nextcloud container?
|
||||
Some Nextcloud apps require additional php extensions that must be bundled within Nextcloud container in order to work correctly. As we cannot put each and every dependency for all apps into the container - as this would make the project quickly unmaintainable - there is an official way in which you can add additional php extensions into the Nextcloud container. However note that doing this is disrecommended since we do not test Nextcloud apps that require additional php extensions.
|
||||
@@ -663,7 +666,7 @@ Some Nextcloud apps require additional php extensions that must be bundled withi
|
||||
You can do so by adding `--env NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS="imagick extension1 extension2"` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) and customize the value to your fitting. It must be a string with small letters a-z, digits 0-9, spaces, dots and hyphens or '_'. You can find available extensions here: https://pecl.php.net/packages.php. By default `imagick` is added. If you want to keep it, you need to specify it as well.
|
||||
|
||||
### What about the pdlib PHP extension for the facerecognition app?
|
||||
The [facerecognition app](https://apps.nextcloud.com/apps/facerecognition) requires the pdlib PHP extension to be installed. Unfortunately, it is not available on PECL nor via PHP core, so there is no way to add this into AIO currently. However you can vote up [this issue](https://github.com/goodspb/pdlib/issues/56) to bring it to PECL and there is the [recognize app](https://apps.nextcloud.com/apps/recognize) that also allows to do face-recognition.
|
||||
The [facerecognition app](https://apps.nextcloud.com/apps/facerecognition) requires the pdlib PHP extension to be installed. Unfortunately, it is not available on PECL nor via PHP core, so there is no way to add this into AIO currently. However you can use [this community container](https://github.com/nextcloud/all-in-one/tree/main/community-containers/facerecognition) in order to run facerecognition.
|
||||
|
||||
### How to enable hardware-transcoding for Nextcloud?
|
||||
⚠️⚠️⚠️ Warning: this only works if the `/dev/dri` device is present on the host! If it does not exists on your host, don't proceed as otherwise the Nextcloud container will fail to start! If you are unsure about this, better do not proceed with the instructions below.
|
||||
@@ -685,11 +688,20 @@ After you are done modifying/adding/deleting files/folders, don't forget to appl
|
||||
You can move the whole docker library and all its files including all Nextcloud AIO files and folders to a separate drive by first mounting the drive in the host OS (NTFS is not supported and ext4 is recommended as FS) and then following this tutorial: https://www.guguweb.com/2019/02/07/how-to-move-docker-data-directory-to-another-location-on-ubuntu/<br>
|
||||
(Of course docker needs to be installed first for this to work.)
|
||||
|
||||
⚠️ If you encounter errors from richdocuments in your Nextcloud logs, check in your Collabora container if the message "Capabilities are not set for the coolforkit program." appears. If so, follow these steps:
|
||||
|
||||
1. Stop all the containers from the AIO Interface.
|
||||
2. Go to your terminal and delete the Collabora container (`docker rm nextcloud-aio-collabora`) AND the Collabora image (`docker image rm nextcloud/aio-collabora`).
|
||||
3. You might also want to prune your Docker (`docker system prune`) (no data will be lost).
|
||||
4. Restart your containers from the AIO Interface.
|
||||
|
||||
This should solve the problem.
|
||||
|
||||
### How to edit Nextclouds config.php file with a texteditor?
|
||||
You can edit Nextclouds config.php file directly from the host with your favorite text editor. E.g. like this: `sudo docker run -it --rm --volume nextcloud_aio_nextcloud:/var/www/html:rw alpine sh -c "apk add --no-cache nano && nano /var/www/html/config/config.php"`. Make sure to not break the file though which might corrupt your Nextcloud instance otherwise. In best case, create a backup using the built-in backup solution before editing the file.
|
||||
|
||||
### Custom skeleton directory
|
||||
If you want to define a custom skeleton directory, you can do so by copying your skeleton files `sudo docker cp --follow-link /path/to/nextcloud/skeleton/ nextcloud-aio-nextcloud:/mnt/ncdata/skeleton/`, applying the correct permissions with `sudo docker exec nextcloud-aio-nextcloud chown -R 33:0 /mnt/ncdata/skeleton/` and `sudo docker exec nextcloud-aio-nextcloud chmod -R 750 /mnt/ncdata/skeleton/` and setting the skeleton directory option with `sudo docker exec --user www-data -it nextcloud-aio-nextcloud php occ config:system:set skeletondirectory --value="/mnt/ncdata/skeleton"`. You can read further on this option here: [click here](https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html?highlight=skeletondir#:~:text=adding%20%3Fdirect%3D1-,'skeletondirectory',-%3D%3E%20'%2Fpath%2Fto%2Fnextcloud)
|
||||
### How to change default files by creating a custom skeleton directory?
|
||||
All users see a set of [default files and folders](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/default_files_configuration.html) as dictated by Nextcloud's configuration. To change these default files and folders a custom skeleton directory must first be created; this can be accomplished by copying your skeleton files `sudo docker cp --follow-link /path/to/nextcloud/skeleton/ nextcloud-aio-nextcloud:/mnt/ncdata/skeleton/`, applying the correct permissions with `sudo docker exec nextcloud-aio-nextcloud chown -R 33:0 /mnt/ncdata/skeleton/` and `sudo docker exec nextcloud-aio-nextcloud chmod -R 750 /mnt/ncdata/skeleton/` and setting the skeleton directory option with `sudo docker exec --user www-data -it nextcloud-aio-nextcloud php occ config:system:set skeletondirectory --value="/mnt/ncdata/skeleton"`. Further information is available in the Nextcloud documentation on [configuration parameters for the skeleton directory](https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#skeletondirectory).
|
||||
|
||||
### Fail2ban
|
||||
You can configure your server to block certain ip-addresses using fail2ban as bruteforce protection. Here is how to set it up: https://docs.nextcloud.com/server/stable/admin_manual/installation/harden_server.html#setup-fail2ban. The logpath of AIO is by default `/var/lib/docker/volumes/nextcloud_aio_nextcloud/_data/data/nextcloud.log`. Do not forget to add `chain=DOCKER-USER` to your nextcloud jail config (`nextcloud.local`) otherwise the nextcloud service running on docker will still be accessible even if the IP is banned. Also, you may change the blocked ports to cover all AIO ports: by default `80,443,8080,8443,3478` (see [this](https://github.com/nextcloud/all-in-one#explanation-of-used-ports)). Apart from that there is now a community container that can be added to the AIO stack: https://github.com/nextcloud/all-in-one/tree/main/community-containers/fail2ban
|
||||
|
||||
@@ -505,7 +505,7 @@ myNextcloudApp.use((req, res) => {
|
||||
proxy.web(req, res, {}, onProxyError);
|
||||
});
|
||||
|
||||
vhost.use(vhostFunc('<your-nextcloud-domain>', myNextcloudApp));
|
||||
vhost.use(vhostFunc('<your-nc-domain>', myNextcloudApp));
|
||||
|
||||
const httpServer = http.createServer(app);
|
||||
httpServer.listen('80');
|
||||
@@ -556,61 +556,67 @@ The examples below define the dynamic configuration in YAML files. If you rather
|
||||
# STATIC CONFIGURATION
|
||||
|
||||
entryPoints:
|
||||
https:
|
||||
address: ":443" # Create an entrypoint called "https" that uses port 443
|
||||
https:
|
||||
address: ":443" # Create an entrypoint called "https" that uses port 443
|
||||
# If you want to enable HTTP/3 support, uncomment the line below
|
||||
# http3: {}
|
||||
|
||||
certificatesResolvers:
|
||||
# Define "letsencrypt" certificate resolver
|
||||
letsencrypt:
|
||||
acme:
|
||||
storage: /letsencrypt/acme.json # Defines the path where certificates should be stored
|
||||
email: <your-email-address> # Where LE sends notification about certificates expiring
|
||||
tlschallenge: true
|
||||
# Define "letsencrypt" certificate resolver
|
||||
letsencrypt:
|
||||
acme:
|
||||
storage: /letsencrypt/acme.json # Defines the path where certificates should be stored
|
||||
email: <your-email-address> # Where LE sends notification about certificates expiring
|
||||
tlschallenge: true
|
||||
|
||||
providers:
|
||||
file:
|
||||
directory: "/path/to/dynamic/conf" # Adjust the path according your needs.
|
||||
watch: true
|
||||
file:
|
||||
directory: "/path/to/dynamic/conf" # Adjust the path according your needs.
|
||||
watch: true
|
||||
|
||||
# Enable HTTP/3 feature by uncommenting the lines below. Don't forget to route 443 UDP to Traefik (Firewall\NAT\Traefik Container)
|
||||
# experimental:
|
||||
# http3: true
|
||||
```
|
||||
|
||||
1. Declare the router, service and middlewares for Nextcloud in `/path/to/dynamic/conf/nextcloud.yml`:
|
||||
|
||||
```yml
|
||||
http:
|
||||
routers:
|
||||
nextcloud:
|
||||
rule: "Host(`<your-nextcloud-domain>`)"
|
||||
entrypoints:
|
||||
- "https"
|
||||
service: nextcloud
|
||||
middlewares:
|
||||
- nextcloud-chain
|
||||
tls:
|
||||
certresolver: "letsencrypt"
|
||||
routers:
|
||||
nextcloud:
|
||||
rule: "Host(`<your-nc-domain>`)"
|
||||
entrypoints:
|
||||
- "https"
|
||||
service: nextcloud
|
||||
middlewares:
|
||||
- nextcloud-chain
|
||||
tls:
|
||||
certresolver: "letsencrypt"
|
||||
|
||||
services:
|
||||
nextcloud:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://localhost:11000" # Use the host's IP address if Traefik runs outside the host network
|
||||
services:
|
||||
nextcloud:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://localhost:11000" # Use the host's IP address if Traefik runs outside the host network
|
||||
|
||||
middlewares:
|
||||
nextcloud-secure-headers:
|
||||
headers:
|
||||
hostsProxyHeaders:
|
||||
- "X-Forwarded-Host"
|
||||
referrerPolicy: "same-origin"
|
||||
middlewares:
|
||||
nextcloud-secure-headers:
|
||||
headers:
|
||||
hostsProxyHeaders:
|
||||
- "X-Forwarded-Host"
|
||||
referrerPolicy: "same-origin"
|
||||
|
||||
https-redirect:
|
||||
redirectscheme:
|
||||
scheme: https
|
||||
|
||||
nextcloud-chain:
|
||||
chain:
|
||||
middlewares:
|
||||
# - ... (e.g. rate limiting middleware)
|
||||
- https-redirect
|
||||
- nextcloud-secure-headers
|
||||
https-redirect:
|
||||
redirectscheme:
|
||||
scheme: https
|
||||
|
||||
nextcloud-chain:
|
||||
chain:
|
||||
middlewares:
|
||||
# - ... (e.g. rate limiting middleware)
|
||||
- https-redirect
|
||||
- nextcloud-secure-headers
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user