Compare commits

..

93 Commits

Author SHA1 Message Date
Simon L
3eb2b164e1 Merge pull request #1579 from nextcloud/revert-1572-enh/noid/add-files_lock-app
Revert "the files_lock app should get installed by default as well"
2022-12-22 18:47:12 +01:00
Simon L
ed62ff1ff5 Revert "the files_lock app should get installed by default as well"
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-22 18:45:44 +01:00
Simon L
d6208a0b18 fix the comment
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-22 10:16:47 +01:00
Simon L
e8e01f8687 increase to 4.0.1
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-22 09:44:23 +01:00
Simon L
f2cd2b9fbd Merge pull request #1572 from nextcloud/enh/noid/add-files_lock-app
the files_lock app should get installed by default as well
2022-12-22 09:43:43 +01:00
Simon L
2ddd9406aa the files_lock app should get installed by default as well
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-22 01:02:08 +01:00
Simon L
35b87eee9b typo
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-22 00:14:19 +01:00
Simon L
1a7dbb4dab fix small detail
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-22 00:12:50 +01:00
Simon L
73e029ec23 improve the reverse proxy documentation further
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-22 00:08:53 +01:00
Simon L
d8f78e186c Merge pull request #1499 from nextcloud/enh/noid/fix-collabora
make collabora more safe
2022-12-21 23:31:34 +01:00
Simon L
be6bcfe997 Merge pull request #1557 from nextcloud/enh/1553/improve-import
improve database import
2022-12-21 23:29:16 +01:00
Simon L
502b39a354 Merge pull request #1566 from nextcloud/enh/noid/turn-server
make the turnserver more reliable
2022-12-21 23:29:00 +01:00
Simon L
ffd970352e Merge pull request #1558 from nextcloud/enh/1547/fix-turn-add-syntax
fix the turn:add syntax
2022-12-21 23:28:49 +01:00
Simon L
ce54d6d70d Merge pull request #1569 from nextcloud/enh/noid/add-gcompat
add gcompat for the recognize app
2022-12-21 23:21:36 +01:00
Simon L
5f68d55672 update OO
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-21 23:19:19 +01:00
Simon L
afb3734000 Merge pull request #1559 from nextcloud/dependabot/docker/Containers/collabora/collabora/code-22.05.9.2.1
Bump collabora/code from 22.05.8.4.1 to 22.05.9.2.1 in /Containers/collabora
2022-12-21 23:18:24 +01:00
Simon L
48795c3911 Merge pull request #1568 from nextcloud/dependabot/docker/Containers/apache/debian-bullseye-20221219-slim
Bump debian from bullseye-20221205-slim to bullseye-20221219-slim in /Containers/apache
2022-12-21 23:16:59 +01:00
Simon L
c0bf69f5dd Merge pull request #1567 from nextcloud/dependabot/docker/Containers/borgbackup/debian-bullseye-20221219-slim
Bump debian from bullseye-20221205-slim to bullseye-20221219-slim in /Containers/borgbackup
2022-12-21 23:16:33 +01:00
Simon L
9184aab3ec add gcompat for the recognize app
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-21 16:10:15 +01:00
dependabot[bot]
f4f717c929 Bump debian in /Containers/apache
Bumps debian from bullseye-20221205-slim to bullseye-20221219-slim.

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-21 12:10:40 +00:00
dependabot[bot]
a12b1c0e56 Bump debian in /Containers/borgbackup
Bumps debian from bullseye-20221205-slim to bullseye-20221219-slim.

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-21 12:10:04 +00:00
Simon L
0239788c78 make the turnserver more reliable
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-21 11:36:32 +01:00
Simon L
70a03ba1ae add facerecognition notice to the readme
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-20 23:54:30 +01:00
Simon L
edb616b18c add logging to database import
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-20 17:07:43 +01:00
dependabot[bot]
730d4e1bee Bump collabora/code in /Containers/collabora
Bumps collabora/code from 22.05.8.4.1 to 22.05.9.2.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-20 12:06:41 +00:00
Simon L
e70bc8c5f7 fix the turn:add syntax
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-20 11:16:50 +01:00
Simon L
e47b58312a improve database import
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-20 10:59:01 +01:00
Simon L
aea0cf7382 Merge pull request #1556 from nextcloud/automated/noid/psalm-baseline-update-1671510103
[Automated] Update psalm-baseline.xml
2022-12-20 09:51:15 +01:00
nextcloud-command
01ea8900cc Update psalm baseline
Signed-off-by: GitHub <noreply@github.com>
2022-12-20 04:21:42 +00:00
Simon L
14c90cdd9e Merge pull request #1544 from thigg/patch-1
Added cifs/smb config help to readme
2022-12-19 14:20:03 +01:00
Simon L
f3bfc2beb7 a few improvements
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-19 14:18:03 +01:00
Simon L
c5749defc8 Merge pull request #1548 from nextcloud/automated/noid/psalm-baseline-update-1671423723
[Automated] Update psalm-baseline.xml
2022-12-19 10:59:27 +01:00
nextcloud-command
42c7e86ee9 Update psalm baseline
Signed-off-by: GitHub <noreply@github.com>
2022-12-19 04:22:03 +00:00
thigg
6a509513a3 Added cifs/smb config help to readme
Signed-off-by: thigg <thigg@users.noreply.github.com>
2022-12-18 18:17:43 +01:00
Simon L
65b6d7e6b1 make more clear which FS is recommended for docker
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-18 15:02:26 +01:00
Simon L
756511f16a This does not work
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-17 16:46:24 +01:00
Simon L
4ab3520d10 another one
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-17 16:38:58 +01:00
Simon L
de01850279 another attempt
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-17 16:20:58 +01:00
Simon L
70b87ed9f8 try to fix it
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-17 16:14:11 +01:00
Simon L
e389a17a74 try to fix the elasticsearch inclusion
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-17 16:03:03 +01:00
Simon L
331442fe38 add two more points to manual-install
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-17 15:43:34 +01:00
Simon L
1208000234 Merge pull request #1541 from nextcloud/enh/1538/clamd-timeout
change clamd startup timeout to 90s
2022-12-17 15:36:43 +01:00
Simon L
083150bfb3 Merge pull request #1540 from nextcloud/enh/noid/revert-clamav-trap
Revert "fix Clamav starting trap"
2022-12-17 15:34:23 +01:00
Simon L
f4944fbf92 change clamd startup timeout to 90s
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-17 15:33:28 +01:00
Simon L
3f775653a0 Revert "fix Clamav starting trap"
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-17 15:30:45 +01:00
Simon L
c16d59f9e4 Merge pull request #1532 from nextcloud/enh/1531/add-stdbuf
add stdbuf
2022-12-17 15:28:56 +01:00
Simon L
605f8c87fb Merge pull request #1539 from nextcloud/enh/noid/reload-always
reload in case of undefined response
2022-12-17 15:27:45 +01:00
Simon L
1dee9c465c reload in case of undefined response
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-17 15:26:51 +01:00
Simon L
ec1f5aa129 Merge pull request #1506 from nextcloud/enh/noid/disable-borg-compact
make more clear what to do when borg check fails
2022-12-16 20:06:58 +01:00
Simon L
17fe0db050 Merge pull request #1534 from nextcloud/enh/noid/fix-clamav-daemon-starting-trap
fix Clamav starting trap
2022-12-16 18:53:14 +01:00
Simon L
3c40abbb60 make more clear what to do when borg check fails
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-16 18:46:08 +01:00
Simon L
163f6ea10a Merge pull request #1533 from nextcloud/enh/noid/dont-start-nextcloud-if-install-failed
Don't start the Nextcloud container if the installation failed
2022-12-16 18:12:41 +01:00
Simon L
1bd3c2cb4c add a further hint
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-16 18:12:03 +01:00
Simon L
b90226282a add stdbuf
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-16 17:53:38 +01:00
Simon L
08aa2eece3 fix Clamav starting trap
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-16 12:36:51 +01:00
Simon L
e18f8308ed Don't start the Nextcloud container if the installation failed
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-16 10:57:42 +01:00
Simon L
0b961c9dfc try - catch is not needed for onlyoffice js
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-16 10:36:13 +01:00
Simon L
9b3ad32764 fix restoring of elasticsearch volume
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-15 15:09:39 +01:00
Simon L
fb6668755c make rsync less verbose
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-15 14:32:03 +01:00
Simon L
71231b9b8b increase to 4.0.0
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-15 12:20:04 +01:00
Simon L
e53281610d Merge pull request #1495 from nextcloud/enh/1280/nc25
update to Nextcloud 25
2022-12-15 12:17:47 +01:00
Simon L
3568adf8c6 Merge pull request #1498 from nextcloud/enh/1032/add-collabora-volume
add a volume for collabora fonts
2022-12-15 12:14:29 +01:00
Simon L
b1d5204078 Merge pull request #1497 from nextcloud/enh/1156/add-redis-volume
add a volume for redis
2022-12-15 12:13:11 +01:00
Simon L
79946a876c remove the redis database once a backup gets restored
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-15 12:10:55 +01:00
Simon L
882fd3be26 add a volume for redis
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-15 12:09:31 +01:00
Simon L
7eb59374a2 Merge pull request #1496 from nextcloud/enh/1191/remove-mysql
remove pdo_mysql
2022-12-15 12:08:56 +01:00
Simon L
28919e27f3 Merge pull request #1513 from nextcloud/enh/noid/back-up-fts-volume
also back up the fulltextsearch volume
2022-12-15 12:08:48 +01:00
Simon L
098a6c4b29 Merge pull request #1432 from nextcloud/enh/1280/remove-appporder
remove the apporder and twofactor_totp app
2022-12-15 12:08:37 +01:00
Simon L
d20cf5777f remove the twofactor_totp app since it is bundled now
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-15 12:06:57 +01:00
Simon L
6b3be9d6e8 remove the apporder app
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-15 12:06:27 +01:00
Simon L
03e2ffb3c9 Merge pull request #1520 from nextcloud/dependabot/docker/Containers/redis/redis-6.2.8-alpine
Bump redis from 6.2.7-alpine to 6.2.8-alpine in /Containers/redis
2022-12-15 11:14:46 +01:00
Simon L
1e3dccf976 Merge pull request #1516 from nextcloud/enh/noid/fix-spaces
fix spaces in env file
2022-12-15 11:14:08 +01:00
Simon L
84a5e28784 Merge pull request #1515 from nextcloud/enh/noid/remove-container-name
manual-install - remove container_name so that it should run using do…
2022-12-15 11:13:40 +01:00
Simon L
4de666eba4 Merge pull request #1514 from nextcloud/enh/noid/sync-autoconfig
also sync autoconfig files
2022-12-15 11:13:08 +01:00
Simon L
e061a16cb7 Merge pull request #1512 from nextcloud/dependabot/docker/Containers/fulltextsearch/elasticsearch-7.17.8
Bump elasticsearch from 7.17.7 to 7.17.8 in /Containers/fulltextsearch
2022-12-15 11:11:40 +01:00
Simon L
f5e36c854e Merge pull request #1500 from nextcloud/dependabot/docker/Containers/talk/ubuntu-focal-20221130
Bump ubuntu from focal-20221019 to focal-20221130 in /Containers/talk
2022-12-15 11:11:20 +01:00
Simon L
ab384f6e29 Merge pull request #1521 from nextcloud/dependabot/github_actions/cirrus-actions/rebase-1.8
Bump cirrus-actions/rebase from 1.7 to 1.8
2022-12-14 13:10:57 +01:00
dependabot[bot]
e5ca49356c Bump cirrus-actions/rebase from 1.7 to 1.8
Bumps [cirrus-actions/rebase](https://github.com/cirrus-actions/rebase) from 1.7 to 1.8.
- [Release notes](https://github.com/cirrus-actions/rebase/releases)
- [Commits](https://github.com/cirrus-actions/rebase/compare/1.7...1.8)

---
updated-dependencies:
- dependency-name: cirrus-actions/rebase
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-14 12:06:35 +00:00
Simon L
bd81c3133f also sync autoconfig files
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-13 23:45:01 +01:00
Simon L
c6e45ef378 add exception for elasticsearch and re-order the exceptions
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-13 15:06:47 +01:00
Simon L
52b8bf0696 make collabora more safe
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-13 14:52:01 +01:00
Simon L
bea8ca86dd add a volume for collabora fonts
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-13 14:42:02 +01:00
Simon L
ab5369023b update to Nextcloud 25
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-13 14:11:11 +01:00
dependabot[bot]
f9290e49c8 Bump redis from 6.2.7-alpine to 6.2.8-alpine in /Containers/redis
Bumps redis from 6.2.7-alpine to 6.2.8-alpine.

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-13 12:04:55 +00:00
Simon L
becfb3cc16 Merge pull request #1517 from nextcloud/automated/noid/psalm-baseline-update-1670905372
[Automated] Update psalm-baseline.xml
2022-12-13 09:14:46 +01:00
nextcloud-command
7cf9fe8dec Update psalm baseline
Signed-off-by: GitHub <noreply@github.com>
2022-12-13 04:22:52 +00:00
Simon L
aa32d496e6 Update sample.conf
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-13 00:48:08 +01:00
Simon L
d9f994fc5d fix spaces in env file
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-13 00:45:48 +01:00
Simon L
df9457bd91 manual-install - remove container_name so that it should run using docker-swarm too
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-13 00:33:57 +01:00
Simon L
85999c297c also back up the fulltextsearch volume
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-12 18:16:24 +01:00
dependabot[bot]
af1612cda1 Bump elasticsearch from 7.17.7 to 7.17.8 in /Containers/fulltextsearch
Bumps elasticsearch from 7.17.7 to 7.17.8.

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-12 12:14:04 +00:00
dependabot[bot]
211ce3c69b Bump ubuntu from focal-20221019 to focal-20221130 in /Containers/talk
Bumps ubuntu from focal-20221019 to focal-20221130.

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-09 12:06:33 +00:00
Simon L
7b4d0baa6c remove pdo_mysql
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-09 11:33:46 +01:00
28 changed files with 195 additions and 65 deletions

View File

@@ -37,7 +37,7 @@ jobs:
token: ${{ secrets.COMMAND_BOT_PAT }}
- name: Automatic Rebase
uses: cirrus-actions/rebase@1.7
uses: cirrus-actions/rebase@1.8
env:
GITHUB_TOKEN: ${{ secrets.COMMAND_BOT_PAT }}

View File

@@ -1,7 +1,7 @@
# Caddy is a requirement
FROM caddy:2.6.2-alpine as caddy
FROM debian:bullseye-20221205-slim
FROM debian:bullseye-20221219-slim
RUN mkdir -p /mnt/data; \
chown www-data:www-data /mnt/data;

View File

@@ -1,4 +1,4 @@
FROM debian:bullseye-20221205-slim
FROM debian:bullseye-20221219-slim
RUN set -ex; \
\

View File

@@ -66,7 +66,7 @@ if [ "$BORG_MODE" = backup ]; then
# Test that nothing is empty
for directory in "${VOLUME_DIRS[@]}"; do
if [ -z "$(ls -A "$directory")" ]; then
if [ -z "$(ls -A "$directory")" ] && [ "$directory" != "/nextcloud_aio_volumes/nextcloud_aio_elasticsearch" ]; then
echo "$directory is empty which is not allowed."
exit 1
fi
@@ -258,13 +258,13 @@ if [ "$BORG_MODE" = restore ]; then
# Restore everything except the configuration file
if ! rsync --stats --archive --human-readable -vv --delete \
--exclude "nextcloud_aio_mastercontainer/session/"** \
--exclude "nextcloud_aio_mastercontainer/certs/"** \
--exclude "nextcloud_aio_mastercontainer/data/daily_backup_running" \
--exclude "nextcloud_aio_mastercontainer/data/session_date_file" \
--exclude "nextcloud_aio_mastercontainer/data/configuration.json" \
--exclude "nextcloud_aio_apache/caddy/"** \
--exclude "nextcloud_aio_mastercontainer/caddy/"** \
--exclude "nextcloud_aio_mastercontainer/certs/"** \
--exclude "nextcloud_aio_mastercontainer/data/configuration.json" \
--exclude "nextcloud_aio_mastercontainer/data/daily_backup_running" \
--exclude "nextcloud_aio_mastercontainer/data/session_date_file" \
--exclude "nextcloud_aio_mastercontainer/session/"** \
/tmp/borg/nextcloud_aio_volumes/ /nextcloud_aio_volumes; then
echo "Something failed while restoring from backup."
umount /tmp/borg
@@ -336,6 +336,9 @@ if [ "$BORG_MODE" = restore ]; then
# Add file to Nextcloud container so that it performs a fingerprint update the next time
touch "/nextcloud_aio_volumes/nextcloud_aio_nextcloud_data/fingerprint.update"
chmod 777 "/nextcloud_aio_volumes/nextcloud_aio_nextcloud_data/fingerprint.update"
# Delete redis cache
rm -f "/mnt/redis/dump.rdb"
fi
# Do the Backup check

View File

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

View File

@@ -1,5 +1,5 @@
# Probably from here https://github.com/elastic/elasticsearch/blob/main/distribution/docker/src/docker/Dockerfile
FROM elasticsearch:7.17.7
FROM elasticsearch:7.17.8
RUN elasticsearch-plugin install --batch ingest-attachment

View File

@@ -53,7 +53,6 @@ RUN set -ex; \
ldap \
opcache \
pcntl \
pdo_mysql \
pdo_pgsql \
zip \
gmp \
@@ -104,7 +103,7 @@ RUN { \
VOLUME /var/www/html
ENV NEXTCLOUD_VERSION 24.0.8
ENV NEXTCLOUD_VERSION 25.0.2
RUN set -ex; \
apk add --no-cache --virtual .fetch-deps \
@@ -199,6 +198,8 @@ RUN set -ex; \
mawk \
sudo \
grep \
coreutils \
gcompat \
; \
rm -rf /var/lib/apt/lists/*

View File

@@ -79,6 +79,14 @@ if [ -f "$NEXTCLOUD_DATA_DIR/update.failed" ]; then
exit 1
fi
# Do not start the container if the install failed
if [ -f "$NEXTCLOUD_DATA_DIR/install.failed" ]; then
echo "The initial Nextcloud installation failed."
echo "Please reset AIO properly and try again. For further clues what went wrong, check the logs above."
echo "See https://github.com/nextcloud/all-in-one#how-to-properly-reset-the-instance"
exit 1
fi
# Skip any update if Nextcloud was just restored
if ! [ -f "$NEXTCLOUD_DATA_DIR/skip.update" ]; then
if version_greater "$image_version" "$installed_version"; then
@@ -176,6 +184,7 @@ if ! [ -f "$NEXTCLOUD_DATA_DIR/skip.update" ]; then
rsync -rlD --include "/$dir/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/
fi
done
rsync -rlD --delete --include '/config/' --exclude '/*' --exclude '/config/CAN_INSTALL' --exclude '/config/config.sample.php' --exclude '/config/config.php' /usr/src/nextcloud/ /var/www/html/
rsync -rlD --include '/version.php' --exclude '/*' /usr/src/nextcloud/ /var/www/html/
echo "Initializing finished"
@@ -202,6 +211,7 @@ if ! [ -f "$NEXTCLOUD_DATA_DIR/skip.update" ]; then
done
if [ "$try" -gt "$max_retries" ]; then
echo "installing of nextcloud failed!"
touch "$NEXTCLOUD_DATA_DIR/install.failed"
exit 1
fi
@@ -280,8 +290,13 @@ if ! [ -f "$NEXTCLOUD_DATA_DIR/skip.update" ]; then
if [ "${APPSTORAGE[$app]}" != "no" ]; then
echo "Enabling $app..."
if ! php /var/www/html/occ app:enable "$app" >/dev/null; then
echo "$app could not get enabled. Probably because it is not compatible with the new Nextcloud version."
bash /notify.sh "Could not enable the $app after the Nextcloud update!" "Feel free to look at the Nextcloud update logs and force-enable the app again from the app-store UI."
echo "The $app app could not get enabled. Probably because it is not compatible with the new Nextcloud version."
if [ "$app" = apporder ]; then
CUSTOM_HINT="The apporder app was deprecated. A possible replacement is the side_menu app, aka 'Custom menu'."
else
CUSTOM_HINT="Most likely because it is not compatible with the new Nextcloud version."
fi
bash /notify.sh "Could not enable the $app app after the Nextcloud update!" "$CUSTOM_HINT Feel free to look at the Nextcloud update logs and force-enable the app again from the app-store UI."
continue
fi
# Only restore the group settings, if the app was enabled (and is thus compatible with the new NC version)
@@ -400,6 +415,44 @@ if [ "$COLLABORA_ENABLED" = 'yes' ]; then
php /var/www/html/occ config:app:set richdocuments wopi_url --value="https://$NC_DOMAIN/"
# Fix https://github.com/nextcloud/all-in-one/issues/188:
php /var/www/html/occ config:system:set allow_local_remote_servers --type=bool --value=true
# Make collabora more save
COLLABORA_IPv4_ADDRESS="$(echo "<?php echo gethostbyname('$NC_DOMAIN');" | php | head -1)"
COLLABORA_IPv6_Address="<?php \$record = dns_get_record('$NC_DOMAIN', DNS_AAAA);"
# shellcheck disable=SC2016
COLLABORA_IPv6_Address+='if (!empty($record)) {echo $record[0]["ipv6"];}'
COLLABORA_IPv6_Address="$(echo "$COLLABORA_IPv6_Address" | php | head -1)"
COLLABORA_ALLOW_LIST="$(php /var/www/html/occ config:app:get richdocuments wopi_allowlist)"
if [ -n "$COLLABORA_IPv4_ADDRESS" ]; then
if ! echo "$COLLABORA_ALLOW_LIST" | grep -q "$COLLABORA_IPv4_ADDRESS"; then
if [ -z "$COLLABORA_ALLOW_LIST" ]; then
COLLABORA_ALLOW_LIST="$COLLABORA_IPv4_ADDRESS"
else
COLLABORA_ALLOW_LIST+=",$COLLABORA_IPv4_ADDRESS"
fi
fi
else
echo "Warning: No ipv4-address found for $NC_DOMAIN."
fi
if [ -n "$COLLABORA_IPv6_ADDRESS" ]; then
if ! echo "$COLLABORA_ALLOW_LIST" | grep -q "$COLLABORA_IPv6_ADDRESS"; then
if [ -z "$COLLABORA_ALLOW_LIST" ]; then
COLLABORA_ALLOW_LIST="$COLLABORA_IPv6_ADDRESS"
else
COLLABORA_ALLOW_LIST+=",$COLLABORA_IPv6_ADDRESS"
fi
fi
else
echo "No ipv6-address found for $NC_DOMAIN."
fi
if [ -n "$COLLABORA_ALLOW_LIST" ]; then
PRIVATE_IP_RANGES='127.0.0.1/8,192.168.0.0/16,172.16.0.0/12,10.0.0.0/8,fd00::/8,::1'
if ! echo "$COLLABORA_ALLOW_LIST" | grep -q "$PRIVATE_IP_RANGES"; then
COLLABORA_ALLOW_LIST+=",$PRIVATE_IP_RANGES"
fi
php /var/www/html/occ config:app:set richdocuments wopi_allowlist --value="$COLLABORA_ALLOW_LIST"
else
echo "Warning: wopi_allowlist is empty which should not be the case!"
fi
else
if [ -d "/var/www/html/custom_apps/richdocuments" ]; then
php /var/www/html/occ app:remove richdocuments
@@ -440,7 +493,7 @@ if [ "$TALK_ENABLED" = 'yes' ]; then
fi
# Based on https://github.com/nextcloud/spreed/issues/960#issuecomment-416993435
if [ -z "$(php /var/www/html/occ talk:turn:list --output="plain")" ]; then
php /var/www/html/occ talk:turn:add "$NC_DOMAIN:$TALK_PORT" "udp,tcp" --secret="$TURN_SECRET"
php /var/www/html/occ talk:turn:add turn "$NC_DOMAIN:$TALK_PORT" "udp,tcp" --secret="$TURN_SECRET"
fi
if php /var/www/html/occ talk:stun:list --output="plain" | grep -oP '[a-zA-Z.:0-9]+' | grep -q "^stun.nextcloud.com:443$"; then
php /var/www/html/occ talk:stun:add "$NC_DOMAIN:$TALK_PORT"

View File

@@ -1,4 +1,4 @@
# From https://github.com/ONLYOFFICE/Docker-DocumentServer/blob/master/Dockerfile
FROM onlyoffice/documentserver:7.2.1.34
FROM onlyoffice/documentserver:7.2.2.56
HEALTHCHECK CMD curl -skfI localhost || exit 1

View File

@@ -20,6 +20,13 @@ if ! [ -w "$DUMP_DIR" ]; then
exit 1
fi
# Don't start if import failed
if [ -f "$DUMP_DIR/import.failed" ]; then
echo "The database import failed. Please restore a backup and try again."
echo "For further clues on what went wrong, look at the logs above."
exit 1
fi
# Delete the datadir once (needed for setting the correct credentials on old instances once)
if ! [ -f "$DUMP_DIR/export.failed" ] && ! [ -f "$DUMP_DIR/initial-cleanup-done" ]; then
set -ex
@@ -45,9 +52,16 @@ if ( [ -f "$DATADIR/PG_VERSION" ] && [ "$PG_MAJOR" != "$(cat "$DATADIR/PG_VERSIO
exit 1
fi
# Write output to logfile.
exec > >(tee -i "$DUMP_DIR/database-import.log")
exec 2>&1
# Inform
echo "Restoring from database dump."
# Add import.failed file
touch "$DUMP_DIR/import.failed"
# Exit if any command fails
set -ex
@@ -76,7 +90,12 @@ if ( [ -f "$DATADIR/PG_VERSION" ] && [ "$PG_MAJOR" != "$(cat "$DATADIR/PG_VERSIO
# Get the Owner
DB_OWNER="$(grep "$GREP_STRING" "$DUMP_FILE" | grep -oP 'Owner:.*$' | sed 's|Owner:||;s| ||g')"
if [ "$DB_OWNER" != "oc_$POSTGRES_USER" ]; then
if [ "$DB_OWNER" = "$POSTGRES_USER" ]; then
DIFFERENT_DB_OWNER=1
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
ALTER DATABASE "$POSTGRES_DB" OWNER TO "$POSTGRES_USER";
EOSQL
elif [ "$DB_OWNER" != "oc_$POSTGRES_USER" ]; then
DIFFERENT_DB_OWNER=1
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
CREATE USER "$DB_OWNER" WITH PASSWORD '$POSTGRES_PASSWORD' CREATEDB;
@@ -104,6 +123,9 @@ EOSQL
# Don't exit if command fails anymore
set +ex
# Remove import failed file if everything went correctly
rm "$DUMP_DIR/import.failed"
fi
# Cover the last case

View File

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

View File

@@ -1,4 +1,4 @@
FROM ubuntu:focal-20221019
FROM ubuntu:focal-20221130
RUN set -ex; \
\
@@ -53,11 +53,13 @@ RUN curl -sL -o "/usr/share/janus/lua/json.lua" "https://raw.githubusercontent.c
RUN mkdir -p /etc/nats; \
echo "listen: 127.0.0.1:4222" > /etc/nats/nats.conf; \
mkdir /var/lib/turn; \
chown talk:talk /etc; \
chown talk:talk -R /etc/nats; \
chown talk:talk -R /etc/janus; \
chown talk:talk -R /etc/signaling; \
chown talk:talk -R /usr
chown talk:talk -R /usr; \
chown talk:talk -R /var/lib/turn;
# Give root a random password
RUN echo "root:$(openssl rand -base64 12)" | chpasswd

View File

@@ -15,7 +15,7 @@ elif [ -z "$SIGNALING_SECRET" ]; then
exit 1
fi
# Turn
# Turn: https://github.com/coturn/coturn/blob/master/examples/etc/turnserver.conf
cat << TURN_CONF > "/etc/turnserver.conf"
listening-port=$TALK_PORT
fingerprint
@@ -29,6 +29,9 @@ stale-nonce
no-multicast-peers
simple-log
pidfile=/var/tmp/turnserver.pid
no-tls
no-dtls
userdb=/var/lib/turn/turndb
TURN_CONF
# Janus

View File

@@ -5,7 +5,7 @@
<name>Nextcloud All In One</name>
<summary>Provides a login link for admins.</summary>
<description>Add a link to the admin settings that gives access to the Nextcloud All In One admin interface</description>
<version>0.2.0</version>
<version>0.3.0</version>
<licence>agpl</licence>
<author>Azul</author>
<namespace>AllInOne</namespace>
@@ -13,7 +13,7 @@
<category>monitoring</category>
<bugs>https://github.com/nextcloud/all-in-one/issues</bugs>
<dependencies>
<nextcloud min-version="23" max-version="24"/>
<nextcloud min-version="24" max-version="25"/>
</dependencies>
<settings>

View File

@@ -28,7 +28,7 @@ services:
# - NEXTCLOUD_MAX_TIME=3600 # Can be adjusted if you need more. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-max-execution-time-for-nextcloud
# - NEXTCLOUD_MEMORY_LIMIT=512M # Can be adjusted if you need more. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-php-memory-limit-for-nextcloud
# - NEXTCLOUD_TRUSTED_CACERTS_DIR=/path/to/my/cacerts # CA certificates in this directory will be trusted by the OS of the nexcloud container (Useful e.g. for LDAPS) See See https://github.com/nextcloud/all-in-one#how-to-trust-user-defiend-certification-authorities-ca
# - NEXTCLOUD_STARTUP_APPS=twofactor_totp deck tasks calendar contacts apporder # Allows to modify the Nextcloud apps that are installed on starting AIO the first time. See https://github.com/nextcloud/all-in-one#how-to-change-the-nextcloud-apps-that-are-installed-on-the-first-startup
# - NEXTCLOUD_STARTUP_APPS=deck tasks calendar contacts # Allows to modify the Nextcloud apps that are installed on starting AIO the first time. See https://github.com/nextcloud/all-in-one#how-to-change-the-nextcloud-apps-that-are-installed-on-the-first-startup
# - 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. See https://github.com/nextcloud/all-in-one#how-to-add-packets-permanently-to-the-nextcloud-container
# - NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS=imagick # This allows to add additional php extensions to the Nextcloud container permanently. Default is imagick but can be overwritten by modifying this value. See https://github.com/nextcloud/all-in-one#how-to-add-php-extensions-permanently-to-the-nextcloud-container
# - TALK_PORT=3478 # This allows to adjust the port that the talk container is using.

View File

@@ -5,12 +5,14 @@ You can run the containers that are build for AIO with docker-compose. This come
### Advantages
- You can run it without a container having access to the docker socket
- You can modify all values on your own
- You can run the containers with docker swarm
### Disadvantages
- You lose the AIO interface
- You lose update notifications and automatic updates
- You lose all AIO backup and restore features
- You need to know what you are doing, especially when modifying the docker-compose file
- For updating, you need to strictly follow the at the bottom described update routine
- Probably more
## How to use this?

View File

@@ -3,7 +3,7 @@ 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 reverse proxy.
CLAMAV_ENABLED=no # Setting this to "yes" 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_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" 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!
@@ -18,7 +18,7 @@ NEXTCLOUD_MAX_TIME=3600 # This allows to change the upload time limit o
NEXTCLOUD_MEMORY_LIMIT=512M # This allows to change the PHP memory limit of the Nextcloud container
NEXTCLOUD_MOUNT=/mnt/ # This allows the Nextcloud container to access directories on the host. It must never be equal to the value of NEXTCLOUD_DATADIR!
NEXTCLOUD_PASSWORD= # TODO! This is the password of the initially created Nextcloud admin with username "admin".
NEXTCLOUD_STARTUP_APPS=twofactor_totp deck tasks calendar contacts apporder # Allows to modify the Nextcloud apps that are installed on starting AIO the first time
NEXTCLOUD_STARTUP_APPS="deck tasks calendar contacts" # Allows to modify the Nextcloud apps that are installed on starting AIO the first time
NEXTCLOUD_TRUSTED_CACERTS_DIR=/usr/local/share/ca-certificates/my-custom-ca # Nextcloud container will trust all the Certification Authorities, whose certificates are included in the given directory.
NEXTCLOUD_UPLOAD_LIMIT=10G # This allows to change the upload limit of the Nextcloud container
ONLYOFFICE_ENABLED=no # Setting this to "yes" enables the option in Nextcloud automatically.

View File

@@ -59,7 +59,7 @@ done
sed -i 's|_ENABLED=|_ENABLED=no # Setting this to "yes" enables the option in Nextcloud automatically.|' 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
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
sed -i 's|NEXTCLOUD_DATADIR=|NEXTCLOUD_DATADIR=nextcloud_aio_nextcloud_data # You can change this to e.g. "/mnt/ncdata" to map it to a location on your host. It needs to be adjusted before the first startup and never afterwards!|' sample.conf
sed -i 's|NEXTCLOUD_MOUNT=|NEXTCLOUD_MOUNT=/mnt/ # This allows the Nextcloud container to access directories on the host. It must never be equal to the value of NEXTCLOUD_DATADIR!|' sample.conf
sed -i 's|NEXTCLOUD_UPLOAD_LIMIT=|NEXTCLOUD_UPLOAD_LIMIT=10G # This allows to change the upload limit of the Nextcloud container|' sample.conf
@@ -76,7 +76,7 @@ sed -i 's|NC_DOMAIN=|NC_DOMAIN=yourdomain.com # TODO! Needs to be chang
sed -i 's|NEXTCLOUD_PASSWORD=|NEXTCLOUD_PASSWORD= # TODO! This is the password of the initially created Nextcloud admin with username "admin".|' sample.conf
sed -i 's|TIMEZONE=|TIMEZONE=Europe/Berlin # TODO! This is the timezone that your containers will use.|' sample.conf
sed -i 's|COLLABORA_SECCOMP_POLICY=|COLLABORA_SECCOMP_POLICY=--o:security.seccomp=true # Changing the value to false allows to disable the seccomp feature of the Collabora container.|' sample.conf
sed -i 's|NEXTCLOUD_STARTUP_APPS=|NEXTCLOUD_STARTUP_APPS=twofactor_totp deck tasks calendar contacts apporder # Allows to modify the Nextcloud apps that are installed on starting AIO the first time|' sample.conf
sed -i 's|NEXTCLOUD_STARTUP_APPS=|NEXTCLOUD_STARTUP_APPS="deck tasks calendar contacts" # Allows to modify the Nextcloud apps that are installed on starting AIO the first time|' sample.conf
sed -i 's|NEXTCLOUD_ADDITIONAL_APKS=|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.|' sample.conf
sed -i 's|NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS=|NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS=imagick # This allows to add additional php extensions to the Nextcloud container permanently. Default is imagick but can be overwritten by modifying this value.|' sample.conf
sed -i 's|=$|= # TODO! This needs to be a unique and good password!|' sample.conf
@@ -101,6 +101,8 @@ echo "" >> containers.yml
echo "$OUTPUT" >> containers.yml
sed -i '/container_name/d' containers.yml
VOLUMES="$(grep -oP 'nextcloud_aio_[a-z_]+' containers.yml | sort -u)"
mapfile -t VOLUMES <<< "$VOLUMES"
echo "" >> containers.yml

View File

@@ -178,7 +178,13 @@
"REDIS_HOST_PASSWORD=%REDIS_PASSWORD%",
"TZ=%TIMEZONE%"
],
"volumes": [],
"volumes": [
{
"name": "nextcloud_aio_redis",
"location": "/data",
"writeable": true
}
],
"secrets": [
"REDIS_PASSWORD",
"ONLYOFFICE_SECRET"
@@ -201,7 +207,13 @@
"dictionaries=%COLLABORA_DICTIONARIES%",
"TZ=%TIMEZONE%"
],
"volumes": [],
"volumes": [
{
"name": "nextcloud_aio_collabora_fonts",
"location": "/opt/cool/systemplate/tmpfonts",
"writeable": true
}
],
"secrets": [],
"maxShutdownTime": 10,
"restartPolicy": "unless-stopped"
@@ -290,6 +302,16 @@
"name": "%BORGBACKUP_HOST_LOCATION%",
"location": "/mnt/borgbackup",
"writeable": true
},
{
"name": "nextcloud_aio_elasticsearch",
"location": "/nextcloud_aio_volumes/nextcloud_aio_elasticsearch",
"writeable": true
},
{
"name": "nextcloud_aio_redis",
"location": "/mnt/redis",
"writeable": true
}
],
"secrets": [
@@ -349,7 +371,8 @@
"3310"
],
"environmentVariables": [
"TZ=%TIMEZONE%"
"TZ=%TIMEZONE%",
"CLAMD_STARTUP_TIMEOUT=90"
],
"volumes": [
{

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<files psalm-version="5.1.0@4defa177c89397c5e14737a80fe4896584130674">
<files psalm-version="5.4.0@62db5d4f6a7ae0a20f7cc5a4952d730272fc0863">
<file src="public/index.php">
<MissingClosureParamType occurrences="10">
<code>$args</code>

View File

@@ -1,9 +1,7 @@
document.addEventListener("DOMContentLoaded", function(event) {
// OnlyOffice
try {
var onlyoffice = document.getElementById("onlyoffice");
var onlyoffice = document.getElementById("onlyoffice");
if (onlyoffice) {
onlyoffice.disabled = true;
} catch (error) {
// console.error(error);
}
});

View File

@@ -19,12 +19,13 @@
const xhr = e.target;
if (xhr.status === 201) {
window.location.replace(xhr.getResponseHeader('Location'));
}
if (xhr.status === 422) {
} else if (xhr.status === 422) {
showError(xhr.response);
}
if (xhr.status === 500) {
showError("Server error. Please see the logs for details.");
} else if (xhr.status === 500) {
showError("Server error. Please check the mastercontainer logs for details.");
} else {
// If the responose is not one of the above, we should reload to show the latest content
window.location.reload(1);
}
}

View File

@@ -13,11 +13,9 @@ document.addEventListener("DOMContentLoaded", function(event) {
clamav.addEventListener('change', makeOptionsFormSubmitVisible);
// OnlyOffice
try {
var onlyoffice = document.getElementById("onlyoffice");
var onlyoffice = document.getElementById("onlyoffice");
if (onlyoffice) {
onlyoffice.addEventListener('change', makeOptionsFormSubmitVisible);
} catch (error) {
// console.error(error);
}
// Collabora

View File

@@ -726,7 +726,7 @@ class ConfigurationManager
if (is_string($apps)) {
return trim($apps);
}
return 'twofactor_totp deck tasks calendar contacts apporder';
return 'deck tasks calendar contacts';
}
public function GetCollaboraDictionaries() : string {

View File

@@ -16,7 +16,7 @@
</header>
<div class="content">
<h1>Nextcloud AIO v3.2.0</h1>
<h1>Nextcloud AIO v4.0.1</h1>
{# Add 2nd tab warning #}
<script type="text/javascript" src="second-tab-warning.js"></script>
@@ -111,7 +111,7 @@
{% if borg_backup_mode == 'test' %}
Please adjust the path and/or the password in order to make it work!<br><br>
{% elseif borg_backup_mode == 'check' %}
The backup archive seems to be corrupt. Please try to use a different intact backup archive or try to fix it by following <a href="https://borgbackup.readthedocs.io/en/stable/faq.html?highlight=repair#:~:text=repairing%20a%20damaged%20repository"><b>this documentation</b></a>
The backup archive seems to be corrupt. Please try to use a different intact backup archive or try to fix it by following <a href="https://borgbackup.readthedocs.io/en/stable/faq.html#i-get-an-integrityerror-or-similar-what-now"><b>this documentation</b></a>
{% endif %}
{% elseif backup_exit_code == 0 %}
<span class="status success"></span> Last {{ borg_backup_mode }} successful! (<a href="/api/docker/logs?id=nextcloud-aio-borgbackup">Logs</a>)<br /><br />
@@ -328,6 +328,9 @@
<h2>Backup and restore</h2>
{% if backup_exit_code > 0 %}
<span class="status error"></span> Last {{ borg_backup_mode }} failed! (<a href="/api/docker/logs?id=nextcloud-aio-borgbackup">Logs</a>)<br /><br />
{% if borg_backup_mode == "check" %}
The backup archive seems to be corrupt. You can try to fix it by following <a href="https://borgbackup.readthedocs.io/en/stable/faq.html#i-get-an-integrityerror-or-similar-what-now"><b>this documentation</b></a><br /><br />
{% endif %}
{% if has_backup_run_once == false %}
You may change the backup path again since the initial backup was not successful. After submitting the new value, you need to click on 'Create Backup' for testing the new value.<br /><br />
<form method="POST" action="/api/configuration" class="xhr">

View File

@@ -431,7 +431,24 @@ You can configure the Nextcloud container to use a specific directory on your ho
-o type="none" ^
-o o="bind"
```
(The value `/host_mnt/c/your/data/path` in this example would be equivalent to `C:\your\data\path` on the Windows host. So you need to translate the path that you want to use into the correct format.) ⚠️️ **Attention**: Make sure that the path exists on the host before you create the volume! Otherwise everything will bug out!
(The value `/host_mnt/c/your/data/path` in this example would be equivalent to `C:\your\data\path` on the Windows host. So you need to translate the path that you want to use into the correct format.) ⚠️️ **Attention**: Make sure that the path exists on the host before you create the volume! Otherwise everything will bug out!
### Can I use a CIFS/SMB share as Nextcloud's datadir?
Sure. Add this to the `/etc/fstab` file: <br>
`<your-storage-host-and-subpath> <your-mount-dir> cifs rw,credentials=<your-credentials-file>,uid=33,gid=0,file_mode=0770,dir_mode=0770 0 0`<br>
(Of course you need to modify `<your-storage-host-and-subpath>`, `<your-mount-dir>` and `<your-credentials-file>` for your specific case.)
One example could look like this:<br>
`//your-storage-host/subpath /mnt/storagebox cifs rw,credentials=/etc/storage-credentials,uid=33,gid=0,file_mode=0770,dir_mode=0770 0 0`<br>
and add into `/etc/storage-credentials`:
```
username=<smb/cifs username>
password=<password>
```
(Of course you need to modify `<smb/cifs username>` and `<password>` for your specific case.)
Now you can use `/mnt/storagebox` as Nextcloud's datadir like described in the section above above this one.
### How to allow the Nextcloud container to access directories on the host?
By default, the Nextcloud container is confined and cannot access directories on the host OS. You might want to change this when you are planning to use local external storage in Nextcloud to store some files outside the data directory and can do so by adding the environmental variable `NEXTCLOUD_MOUNT` to the initial startup of the mastercontainer. Allowed values for that variable are strings that start with `/` and are not equal to `/`.
@@ -467,7 +484,7 @@ If you get an error during the domain validation which states that your ip-addre
You can run AIO also with docker rootless. How to do this is documented here: [docker-rootless.md](https://github.com/nextcloud/all-in-one/blob/main/docker-rootless.md)
### How to change the Nextcloud apps that are installed on the first startup?
You might want to adjust the Nextcloud apps that are installed upon the first startup of the Nextcloud container. You can do so by adding `-e NEXTCLOUD_STARTUP_APPS="twofactor_totp deck tasks calendar contacts apporder"` to the docker run command of the mastercontainer and customize the value to your fitting. It must be a string with small letters a-z, spaces and hyphens or '_'.
You might want to adjust the Nextcloud apps that are installed upon the first startup of the Nextcloud container. You can do so by adding `-e NEXTCLOUD_STARTUP_APPS="deck tasks calendar contacts"` to the docker run command of the mastercontainer and customize the value to your fitting. It must be a string with small letters a-z, spaces and hyphens or '_'.
### How to add packets 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 very fast unmaintainable - there is an official way how 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.
@@ -479,6 +496,9 @@ Some Nextcloud apps require additional php extensions that must be bundled withi
You can do so by adding `-e NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS="imagick extension1 extension2"` to the docker run command of the mastercontainer 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 added is `imagick`. If you want to keep that, 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.
### Huge docker logs
When your containers run for a few days without a restart, the container logs that you can view from the AIO interface can get really huge. You can limit the loge sizes by enabling logrotate for docker container logs. Feel free to enable this by following those instructions: https://sandro-keil.de/blog/logrotate-for-docker-container/
@@ -488,7 +508,7 @@ The files and folders that you add to Nextcloud are by default stored in the fol
After you are done modifying/adding/deleting files/folders, don't forget to apply the correct permissions by running: `sudo chown -R 33:0 /var/lib/docker/volumes/nextcloud_aio_nextcloud_data/_data/*` and `sudo chmod -R 750 /var/lib/docker/volumes/nextcloud_aio_nextcloud_data/_data/*` and rescan the files with `sudo docker exec --user www-data -it nextcloud-aio-nextcloud php occ files:scan --all`.
### How to store the files/installation on a separate drive?
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 then following this tutorial: https://www.guguweb.com/2019/02/07/how-to-move-docker-data-directory-to-another-location-on-ubuntu/<br>
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.)
### How to edit Nextclouds config.php file with a texteditor?

View File

@@ -1,15 +1,16 @@
# Reverse Proxy Documentation
**Please note:** Publishing the AIO interface with a valid certificate to the public internet is **not** the goal of this documentation! Instead, the main goal is to publish Nextcloud with a valid certificate to the public internet which is **not** running inside the mastercontainer but in a different container! If you need a valid certificate for the AIO interface, see [point 4](#4-optional-get-a-valid-certificate-for-the-aio-interface).
**Please note:** Publishing the AIO interface with a valid certificate to the public internet is **not** the goal of this documentation! Instead, the main goal is to publish Nextcloud with a valid certificate to the public internet which is **not** running inside the mastercontainer but in a different container! If you need a valid certificate for the AIO interface, see [point 5](#5-optional-get-a-valid-certificate-for-the-aio-interface).
In order to run Nextcloud behind a reverse proxy, you need to specify the port that the Apache container shall use, add a specific config to your reverse proxy and modify the startup command a bit. All examples below will use port `11000` as example Apache port which will be exposed on the host. Modify it to your needings.
**Attention** The process to run Nextcloud behind a reverse proxy consists of at least these 2 steps:
**Attention:** The process to run Nextcloud behind a reverse proxy consists of at least steps 1, 2 and 4:
1. **Configure the reverse proxy! See [point 1](#1-add-this-to-your-reverse-proxy-config)**
1. **Use the in this document provided startup command! See [point 2](#2-use-this-startup-command)**
1. If the reverse proxy is installed on the same host, you should limit the apache container to only listen on localhost. 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)
- Optional: get a valid certificate for the AIO interface! See [point 4](#4-optional-get-a-valid-certificate-for-the-aio-interface)
- How to debug things? See [point 5](#5-how-to-debug-things)
1. Optional: If the reverse proxy is installed on the same host, you should limit the apache container to only listen on localhost. 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)
1. **Open the AIO interface. See [point 4](#4-open-the-aio-interface)**
1. Optional: Get a valid certificate for the AIO interface! See [point 5](#5-optional-get-a-valid-certificate-for-the-aio-interface)
1. Optional: How to debug things? See [point 6](#6-how-to-debug-things)
## 1. Add this to your reverse proxy config
@@ -471,16 +472,14 @@ nextcloud/all-in-one:latest
Simply translate the docker run command into a docker-compose file. You can have a look at [this file](https://github.com/nextcloud/all-in-one/blob/main/docker-compose.yml) for some inspiration but you will need to modify it either way. You can find further examples here: https://github.com/nextcloud/all-in-one/discussions/588
---
### How to continue?
After using the above command, you should be able to access the AIO Interface via `https://ip.address.of.the.host:8080`. Enter your domain that you've entered in the reverse proxy config and you should be done. Please do not forget to open port `3478/TCP` and `3478/UDP` in your firewall/router for the Talk container!
## 3. If the reverse proxy is installed on the same host, you should configure the apache container to only listen on localhost.
Use this envorinmental variable during the initial startup of the mastercontainer to make the apache container only listen on localhost: `-e APACHE_IP_BINDING=127.0.0.1`. **Attention:** This is only recommended to be set if you use `localhost` in your reverse proxy config to connect to your AIO instance. If you use an ip-address, you can either simply skip this step or set it to `0.0.0.0` if you are unsure what the correct value is.
## 4. Optional: get a valid certificate for the AIO interface
## 4. Open the AIO interface.
After starting AIO, you should be able to access the AIO Interface via `https://ip.address.of.the.host:8080`. Enter your domain that you've entered in the reverse proxy config and you should be done. Please do not forget to open port `3478/TCP` and `3478/UDP` in your firewall/router for the Talk container!
## 5. Optional: get a valid certificate for the AIO interface
If you want to also access your AIO interface publicly with a valid certificate, you can add e.g. the following config to your Caddyfile:
@@ -498,7 +497,7 @@ Of course you need to modify `<your-nc-domain>` to the domain on which you want
Afterwards should the AIO interface be accessible via `https://ip.address.of.the.host:8443`. You can alternatively change the domain to a different subdomain by using `https://<your-alternative-domain>:443` instead of `https://<your-nc-domain>:8443` in the Caddyfile and use that to access the AIO interface.
## 5. How to debug things?
## 6. How to debug things?
If something does not work, follow the steps below:
1. Make sure to exactly follow the whole reverse proxy documentation step-for-step from top to bottom!
1. Make sure that the reverse proxy is running on the host OS or if running in a container, connected to the host network. If that is not possible, substitute `localhost` in the default configurations by the ip-address that you can easily get when running the following command on the host OS: `ip a | grep "scope global" | head -1 | awk '{print $2}' | sed 's|/.*||'` (The command only works on Linux)

View File

@@ -15,7 +15,7 @@
- [ ] When starting the mastercontainer with `-e NEXTCLOUD_TRUSTED_CACERTS_DIR=/path/to/my/cacerts`, the resulting nextcloud container should trust all the Certification Authorities, whose certificates are included in the directory `/path/to/my/cacerts` on the host.
See https://github.com/nextcloud/all-in-one#how-to-trust-user-defiend-certification-authorities-ca
- [ ] When starting the mastercontainer with `-e COLLABORA_SECCOMP_DISABLED=true`, the resulting collabora container should have `--o:security.seccomp=false` applied to it.
- [ ] When starting the mastercontainer with `-e NEXTCLOUD_STARTUP_APPS=deck`, the resulting Nextcloud should have only installed the deck app and not the other apps that get installed by default. Default are `twofactor_totp deck tasks calendar contacts apporder`.
- [ ] When starting the mastercontainer with `-e NEXTCLOUD_STARTUP_APPS=deck`, the resulting Nextcloud should have only installed the deck app and not the other apps that get installed by default. Default are `deck tasks calendar contacts`.
- [ ] When starting the mastercontainer with `-e NEXTCLOUD_ADDITIONAL_APKS=zip`, the resulting Nextcloud container should have the zip package installed and not imagemagick.
- [ ] When starting the mastercontainer with `-e NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS=inotify`, the resulting Nextcloud container should have the inotify extension installed and not the imagick extension.