Compare commits

..

57 Commits

Author SHA1 Message Date
szaimen
b307c39f70 fix the layout
Signed-off-by: szaimen <szaimen@e.mail.de>
2022-08-17 13:01:58 +02:00
szaimen
b8d29c5c96 increase to 1.7.1
Signed-off-by: szaimen <szaimen@e.mail.de>
2022-08-17 12:28:30 +02:00
Simon L
c311a1d062 Merge pull request #1019 from nextcloud/enh/noid/nextcloud-update-failed
don't allow the Nextcloud container to start if the update failed
2022-08-17 12:26:53 +02:00
Simon L
df92b4bf61 Merge pull request #1018 from nextcloud/enh/noid/wait-for-database
wait for the database startup correctly
2022-08-17 12:25:28 +02:00
szaimen
9f6c532170 don't allow the Nextcloud container to start if the update failed
Signed-off-by: szaimen <szaimen@e.mail.de>
2022-08-17 12:24:01 +02:00
Simon L
d90c3f095d Merge pull request #1022 from nextcloud/office-home-mode
Set collabora home option
2022-08-17 12:18:28 +02:00
szaimen
12750837a6 wait for the database startup correctly
Signed-off-by: szaimen <szaimen@e.mail.de>
2022-08-16 17:58:13 +02:00
Simon L
315e97c460 Merge pull request #1023 from nextcloud/dependabot/docker/Containers/collabora/collabora/code-22.05.5.3.1
Bump collabora/code from 22.05.5.2.1 to 22.05.5.3.1 in /Containers/collabora
2022-08-16 16:04:17 +02:00
dependabot[bot]
b3e2fadbc9 Bump collabora/code in /Containers/collabora
Bumps collabora/code from 22.05.5.2.1 to 22.05.5.3.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-16 12:37:17 +00:00
Julius Härtl
0b49031058 Set collabora home option
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-08-15 21:24:34 +02:00
Simon L
8f857906d8 Merge pull request #1021 from andygeorge/andygeorge/replace-loose-with-lose
Grammar fix: Replace "loose" with "lose"
2022-08-15 17:52:28 +02:00
Andy George
faa449b9c2 Update setup.twig
Signed-off-by: Andy George <andygeorge@users.noreply.github.com>
2022-08-15 09:53:37 -05:00
Andy George
27a7598eb7 Update containers.twig
Signed-off-by: Andy George <andygeorge@users.noreply.github.com>
2022-08-15 09:53:20 -05:00
Andy George
8f3bbe1fb9 Update readme.md
Signed-off-by: Andy George <andygeorge@users.noreply.github.com>
2022-08-15 09:52:48 -05:00
Simon L
d331f6e65e Merge pull request #1020 from nextcloud/dependabot/docker/Containers/postgresql/postgres-14.5-alpine
Bump postgres from 14.4-alpine to 14.5-alpine in /Containers/postgresql
2022-08-15 15:08:15 +02:00
dependabot[bot]
7e4d54a3e0 Bump postgres from 14.4-alpine to 14.5-alpine in /Containers/postgresql
Bumps postgres from 14.4-alpine to 14.5-alpine.

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-15 12:34:56 +00:00
szaimen
1411a0d8b1 add a hint how to skip the domain validation
Signed-off-by: szaimen <szaimen@e.mail.de>
2022-08-15 13:28:12 +02:00
szaimen
22e9d009bf add it also to the multiple instances documentation
Signed-off-by: szaimen <szaimen@e.mail.de>
2022-08-15 13:17:41 +02:00
szaimen
090842e334 document how to adjust the talk-port
Signed-off-by: szaimen <szaimen@e.mail.de>
2022-08-15 13:15:25 +02:00
Simon L
815e65d7b0 Merge pull request #1003 from nextcloud/dependabot/docker/Containers/domaincheck/alpine-3.16.2
Bump alpine from 3.16.1 to 3.16.2 in /Containers/domaincheck
2022-08-15 12:08:13 +02:00
Simon L
be39df9e98 Merge pull request #1002 from nextcloud/dependabot/docker/Containers/watchtower/alpine-3.16.2
Bump alpine from 3.16.1 to 3.16.2 in /Containers/watchtower
2022-08-15 12:08:09 +02:00
Simon L
c102f1f59a Merge pull request #1007 from nextcloud/aio-dependency-update
Dependency updates
2022-08-15 12:08:01 +02:00
Simon L
95f590fc24 Merge pull request #1006 from nextcloud/nextcloud-container-update
Nextcloud update
2022-08-15 12:07:38 +02:00
dependabot[bot]
3f1131d5f3 Bump alpine from 3.16.1 to 3.16.2 in /Containers/domaincheck
Bumps alpine from 3.16.1 to 3.16.2.

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-15 10:07:12 +00:00
dependabot[bot]
2545b3fd16 Bump alpine from 3.16.1 to 3.16.2 in /Containers/watchtower
Bumps alpine from 3.16.1 to 3.16.2.

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-15 10:07:11 +00:00
Simon L
801bd2ce4b Merge pull request #997 from nextcloud/dependabot/docker/Containers/mastercontainer/php-8.0.22-apache-bullseye
Bump php from 8.0.21-apache-bullseye to 8.0.22-apache-bullseye in /Containers/mastercontainer
2022-08-15 12:06:44 +02:00
Simon L
b7401866fb Merge pull request #996 from nextcloud/dependabot/docker/Containers/nextcloud/php-8.0.22-fpm-alpine3.16
Bump php from 8.0.21-fpm-alpine3.16 to 8.0.22-fpm-alpine3.16 in /Containers/nextcloud
2022-08-15 12:06:27 +02:00
Simon L
018dac5639 Merge pull request #989 from nextcloud/dependabot/docker/Containers/talk/ubuntu-focal-20220801
Bump ubuntu from focal-20220531 to focal-20220801 in /Containers/talk
2022-08-15 12:06:02 +02:00
Simon L
0aaa25068e Merge pull request #988 from nextcloud/dependabot/docker/Containers/borgbackup/debian-bullseye-20220801-slim
Bump debian from bullseye-20220711-slim to bullseye-20220801-slim in /Containers/borgbackup
2022-08-15 12:05:36 +02:00
Simon L
8019c70f88 Merge pull request #987 from nextcloud/dependabot/docker/Containers/apache/debian-bullseye-20220801-slim
Bump debian from bullseye-20220711-slim to bullseye-20220801-slim in /Containers/apache
2022-08-15 12:05:20 +02:00
Simon L
5e71675a8a Merge pull request #977 from nextcloud/dependabot/docker/Containers/clamav/clamav/clamav-0.105.1
Bump clamav/clamav from 0.105.0 to 0.105.1 in /Containers/clamav
2022-08-15 12:05:04 +02:00
szaimen
177e115b2b document how to skip the domain validation
Signed-off-by: szaimen <szaimen@e.mail.de>
2022-08-15 11:51:54 +02:00
Julius Härtl
abe463eaba Merge pull request #1010 from flortsch/patch-1
Fix sed line in start.sh
2022-08-14 21:10:53 +02:00
Florian Latifi
7109e22acc Fix sed line in start.sh
Signed-off-by: Florian Latifi <mail@florian-latifi.at>
2022-08-14 15:43:14 +02:00
szaimen
1a4729fcd9 dependency updates
Signed-off-by: GitHub <noreply@github.com>
2022-08-12 12:18:22 +00:00
szaimen
50602b52ac nextcloud-update automated change
Signed-off-by: GitHub <noreply@github.com>
2022-08-11 12:51:07 +00:00
Julius Härtl
5d044d8fea Merge pull request #995 from nextcloud/dependabot/docker/Containers/collabora/collabora/code-22.05.5.2.1 2022-08-05 16:10:13 +02:00
dependabot[bot]
ad72f07fa0 Bump php in /Containers/mastercontainer
Bumps php from 8.0.21-apache-bullseye to 8.0.22-apache-bullseye.

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-05 12:28:00 +00:00
dependabot[bot]
6ec26ae310 Bump php in /Containers/nextcloud
Bumps php from 8.0.21-fpm-alpine3.16 to 8.0.22-fpm-alpine3.16.

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-05 12:27:59 +00:00
dependabot[bot]
5ce4d9ce91 Bump collabora/code in /Containers/collabora
Bumps collabora/code from 22.05.5.1.1 to 22.05.5.2.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-05 12:27:57 +00:00
Julius Härtl
5ac481803d Merge pull request #993 from nextcloud/dependabot/docker/Containers/collabora/collabora/code-22.05.5.1.1 2022-08-04 16:35:59 +02:00
dependabot[bot]
c01d7bd990 Bump collabora/code in /Containers/collabora
Bumps collabora/code from 22.05.4.1.1 to 22.05.5.1.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-04 12:31:48 +00:00
Julius Härtl
37d1ac9fba Merge pull request #991 from nextcloud/automated/noid/psalm-baseline-update-1659503285
[Automated] Update psalm-baseline.xml
2022-08-03 08:06:46 +02:00
nextcloud-command
52afdac462 Update psalm baseline
Signed-off-by: GitHub <noreply@github.com>
2022-08-03 05:08:05 +00:00
dependabot[bot]
de20e07f43 Bump ubuntu from focal-20220531 to focal-20220801 in /Containers/talk
Bumps ubuntu from focal-20220531 to focal-20220801.

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-02 12:31:40 +00:00
dependabot[bot]
d4e3495d10 Bump debian in /Containers/borgbackup
Bumps debian from bullseye-20220711-slim to bullseye-20220801-slim.

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-02 12:31:39 +00:00
dependabot[bot]
d217afcf64 Bump debian in /Containers/apache
Bumps debian from bullseye-20220711-slim to bullseye-20220801-slim.

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-02 12:31:29 +00:00
szaimen
e7867e1265 fix detail
Signed-off-by: szaimen <szaimen@e.mail.de>
2022-07-31 21:43:22 +02:00
szaimen
c4e7a0ea0b document that buying a certificate is also an option
Signed-off-by: szaimen <szaimen@e.mail.de>
2022-07-31 19:27:37 +02:00
szaimen
42dac435ec add a comment on ports
Signed-off-by: szaimen <szaimen@e.mail.de>
2022-07-31 11:25:20 +02:00
szaimen
82a5a15ce5 document the user_migration app for migrating
Signed-off-by: szaimen <szaimen@e.mail.de>
2022-07-31 11:02:58 +02:00
Simon L
699a40c6f5 Merge pull request #980 from nextcloud/automated/noid/psalm-baseline-update-1659070391
[Automated] Update psalm-baseline.xml
2022-07-29 10:16:52 +02:00
nextcloud-command
d8d13549f3 Update psalm baseline
Signed-off-by: GitHub <noreply@github.com>
2022-07-29 04:53:10 +00:00
szaimen
8e2df6dfa2 improve notes
Signed-off-by: szaimen <szaimen@e.mail.de>
2022-07-28 15:33:21 +02:00
szaimen
4674b6899f improve the link
Signed-off-by: szaimen <szaimen@e.mail.de>
2022-07-27 16:03:36 +02:00
szaimen
1cf03ec378 add a section on how to test things
Signed-off-by: szaimen <szaimen@e.mail.de>
2022-07-27 16:01:10 +02:00
dependabot[bot]
ee728d7f2d Bump clamav/clamav from 0.105.0 to 0.105.1 in /Containers/clamav
Bumps clamav/clamav from 0.105.0 to 0.105.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-27 12:32:38 +00:00
26 changed files with 83 additions and 44 deletions

View File

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

View File

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

View File

@@ -152,6 +152,11 @@ if [ "$BORG_MODE" = backup ]; then
# Inform user
get_expiration_time
echo "Backup finished successfully on $END_DATE_READABLE ($DURATION_READABLE)"
if [ -f "/nextcloud_aio_volumes/nextcloud_aio_nextcloud_data/update.failed" ]; then
echo "However a Nextcloud update failed. So reporting that the backup failed which will skip any update attempt the next time."
echo "Please restore a backup from before the failed Nextcloud update attempt."
exit 1
fi
exit 0
fi

View File

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

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.4.1.1
FROM collabora/code:22.05.5.3.1
USER root

View File

@@ -1,4 +1,4 @@
FROM alpine:3.16.1
FROM alpine:3.16.2
RUN apk add --update --no-cache lighttpd bash
RUN adduser -S www-data -G www-data

View File

@@ -5,7 +5,7 @@ FROM docker:20.10.17-dind-alpine3.16 as dind
FROM caddy:2.5.2-alpine as caddy
# From https://github.com/docker-library/php/blob/master/8.0/bullseye/apache/Dockerfile
FROM php:8.0.21-apache-bullseye
FROM php:8.0.22-apache-bullseye
EXPOSE 80
EXPOSE 8080

View File

@@ -69,6 +69,10 @@ if [ "$DAILY_BACKUP" = 1 ]; then
while docker ps --format "{{.Names}}" | grep -q "^nextcloud-aio-nextcloud$" && ! nc -z nextcloud-aio-nextcloud 9000; do
echo "Waiting for the Nextcloud container to start"
sleep 30
if [ "$(docker inspect nextcloud-aio-nextcloud --format "{{.State.Restarting}}")" = "true" ]; then
echo "Nextcloud container restarting. Skipping this check!"
break
fi
done
fi
sudo -u www-data php /var/www/docker-aio/php/src/Cron/BackupNotification.php

View File

@@ -1,5 +1,5 @@
# From https://github.com/nextcloud/docker/blob/master/23/fpm-alpine/Dockerfile
FROM php:8.0.21-fpm-alpine3.16
FROM php:8.0.22-fpm-alpine3.16
# Custom: change id of www-data user as it needs to be the same like on old installations
RUN set -ex; \
@@ -104,7 +104,7 @@ RUN { \
VOLUME /var/www/html
ENV NEXTCLOUD_VERSION 24.0.3
ENV NEXTCLOUD_VERSION 24.0.4
RUN set -ex; \
apk add --no-cache --virtual .fetch-deps \

View File

@@ -57,6 +57,14 @@ if [ -f "/var/www/html/lib/versioncheck.php" ] && ! php /var/www/html/lib/versio
exit 1
fi
# Do not start the container if the last update failed
if [ -f "/mnt/ncdata/update.failed" ]; then
echo "The last Nextcloud update failed."
echo "Please restore from backup and try again!"
echo "If you do not have a backup in place, you can simply delete the update.failed file in the datadir which will allow the container to start again."
exit 1
fi
# Skip any update if Nextcloud was just restored
if ! [ -f "/mnt/ncdata/skip.update" ]; then
if version_greater "$image_version" "$installed_version"; then
@@ -213,6 +221,7 @@ if ! [ -f "/mnt/ncdata/skip.update" ]; then
#upgrade
else
touch "/mnt/ncdata/update.failed"
while [ -n "$(pgrep -f cron.php)" ]
do
echo "Waiting for Nextclouds cronjob to finish..."
@@ -226,6 +235,7 @@ if ! [ -f "/mnt/ncdata/skip.update" ]; then
exit 1
fi
rm "/mnt/ncdata/update.failed"
bash /notify.sh "Nextcloud update to $image_version successful!" "Feel free to inspect the Nextcloud container logs for more info."
php /var/www/html/occ app:list | sed -n "/Enabled:/,/Disabled:/p" > /tmp/list_after

View File

@@ -11,7 +11,12 @@ POSTGRES_USER="oc_$POSTGRES_USER"
export POSTGRES_USER
# Fix false database connection on old instances
if [ -f "/var/www/html/config/config.php" ] && sleep 2 && psql -d "postgresql://$POSTGRES_USER:$POSTGRES_PASSWORD@$POSTGRES_HOST:5432/$POSTGRES_DB" -c "select now()"; then
if [ -f "/var/www/html/config/config.php" ]; then
sleep 2
while ! psql -d "postgresql://$POSTGRES_USER:$POSTGRES_PASSWORD@$POSTGRES_HOST:5432/$POSTGRES_DB" -c "select now()"; do
echo "Waiting for the database to start..."
sleep 5
done
sed -i "s|'dbuser'.*=>.*$|'dbuser' => '$POSTGRES_USER',|" /var/www/html/config/config.php
sed -i "s|'dbpassword'.*=>.*$|'dbpassword' => '$POSTGRES_PASSWORD',|" /var/www/html/config/config.php
fi

View File

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

View File

@@ -1,4 +1,4 @@
FROM ubuntu:focal-20220531
FROM ubuntu:focal-20220801
RUN set -ex; \
\

View File

@@ -38,7 +38,7 @@ sed -i "s|#full_trickle.*|full_trickle = true|g" /etc/janus/janus.jcfg
sed -i 's|#stun_server.*|stun_server = "127.0.0.1"|g' /etc/janus/janus.jcfg
sed -i "s|#stun_port.*|stun_port = $TALK_PORT|g" /etc/janus/janus.jcfg
sed -i "s|#turn_port.*|turn_port = $TALK_PORT|g" /etc/janus/janus.jcfg
sed -i 's|#turn_server.*|turn_server = "127.0.0.1"|g'/etc/janus/janus.jcfg
sed -i 's|#turn_server.*|turn_server = "127.0.0.1"|g' /etc/janus/janus.jcfg
sed -i 's|#turn_type .*|turn_type = "udp"|g' /etc/janus/janus.jcfg
sed -i 's|#ice_ignore_list .*|ice_ignore_list = "udp"|g' /etc/janus/janus.jcfg
sed -i 's|#interface.*|interface = "lo"|g' /etc/janus/janus.transport.websockets.jcfg

View File

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

View File

@@ -18,18 +18,19 @@ It will now also select the developer channel for all other containers automatic
Simply use https://github.com/nextcloud/all-in-one/issues/180 as template.
## How to build new containers
Go to https://github.com/nextcloud-releases/all-in-one/actions/workflows/repo-sync.yml and run the workflow that will first sync the repo and then build new container that automatically get published to `develop` and `develop-arm64`.
## How to promote builds from develop to beta
## How to test things correctly?
There is a testing-VM available for the maintainer of AIO that allows for some final testing before releasing new version. See [this](https://cloud.nextcloud.com/apps/collectives/Nextcloud%20Handbook/Technical/AIO%20testing%20VM?fileId=6350152) for details.
## How to promote builds from develop to beta
1. Verify that no job is running here: https://github.com/nextcloud-releases/all-in-one/actions/workflows/build_images.yml
2. Go to https://github.com/nextcloud-releases/all-in-one/actions/workflows/promote-to-beta.yml, click on `Run workflow`.
## Where to find the VPS and other builds?
This is documented here: https://github.com/nextcloud-releases/all-in-one/tree/main/.build
## How to promote builds from beta to latest
1. Verify that no job is running here: https://github.com/nextcloud-releases/all-in-one/actions/workflows/promote-to-beta.yml
2. Go to https://github.com/nextcloud-releases/all-in-one/actions/workflows/promote-to-latest.yml, click on `Run workflow`.
## Where to find the VPS and other builds?
This is documented here: https://github.com/nextcloud-releases/all-in-one/tree/main/.build

View File

@@ -14,3 +14,6 @@ You can alternatively use the ACME DNS-challenge to get a valid certificate for
## 3. Use Cloudflare
If you do not have any contol over the network, you may think about using Cloudflare Argo Tunnel to get a valid certificate for your Nextcloud. However it will be opened to the public internet then. See https://github.com/nextcloud/all-in-one#how-to-run-nextcloud-behind-a-cloudflare-argo-tunnel how to set this up.
## 4. Buy a certificate and use that
If none of the above ways work for you, you may simply buy a certificate from an issuer for your domain. You then download the certificate onto your server, configure AIO in [reverse proxy mode](./reverse-proxy.md) and use the certificate for your domain in your reverse proxy config.

View File

@@ -7,9 +7,9 @@ You can run the containers that are build for AIO with docker-compose. This come
- You can modify all values on your own
### Disadvantages
- You loose the AIO interface
- You loose update notifications and automatic updates
- You loose all AIO backup and restore features
- 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
- Probably more

View File

@@ -1,9 +1,10 @@
# How to migrate from an already existing Nextcloud installation to Nextcloud AIO?
There are basically two ways how to migrate from an already existing Nextcloud installation to Nextcloud AIO:
There are basically three ways how to migrate from an already existing Nextcloud installation to Nextcloud AIO:
1. Migrate only the files which is the easiest way
1. Migrate the files and the database which is much more complicated
1. Use the user_migration app that allows to migrate some of the user's data from a former instance to a new instance but needs to be done manually for each user
## Migrate only the files
**Please note**: If you used groupfolders or encrypted your files before, you will need to restore the database, as well!
@@ -79,3 +80,6 @@ The procedure for migrating the files and the database works like this:
Now the whole Nextcloud instance should work again.<br>
If not, feel free to restore the AIO instance from backup and start at step 8 again.
## Use the user_migration app
A new way since the Nextcloud update to 24 is to use the new [user_migration app](https://apps.nextcloud.com/apps/user_migration#app-gallery). It allows to export the most important data on one instance and import it on a different Nextcloud instance. For that, you need to install and enable the user_migration app on your old instance, trigger the export for the user, create the user on the new instance, log in with that user and import the archive that was created during the export. This then needs to be done for each user that you want to migrate.

View File

@@ -1,14 +1,14 @@
# Multiple AIO instances
It is possible to run multiple instances of AIO on one server.
There are two ways to achieve this: The normal way is creating multiple VMs, installing AIO in [reverse proxy mode](./reverse-proxy.md) in each of them and having one reverse proxy in front of them that points to each VM (you also need to use a different `TALK_PORT` for each of them). The second and more advanced way is creating multiple users on the server and using docker rootless for each of them in order to install multiple instances on the same server.
There are two ways to achieve this: The normal way is creating multiple VMs, installing AIO in [reverse proxy mode](./reverse-proxy.md) in each of them and having one reverse proxy in front of them that points to each VM (you also need to [use a different `TALK_PORT`](https://github.com/nextcloud/all-in-one#how-to-adjust-the-talk-port) for each of them). The second and more advanced way is creating multiple users on the server and using docker rootless for each of them in order to install multiple instances on the same server.
Below is described more in detail how the the second way works.
## Run multiple AIO instances on the same server with docker rootless
1. Create as many linux users as you need first. The easiest way is to use `sudo adduser` and follow the setup for that. Make sure to create a strong unique password for each of them and write it down!
1. Log in as each of the users e.g. by opening a new SSH connection and install docker rootless for each of them by following step 0-4 of the [docker rootless documentation](./docker-rootless.md).
1. Then install AIO in reverse proxy mode by using the command that is descriebed in step 2 and 3 of the [reverse proxy documentation](./reverse-proxy.md) but use a different `APACHE_PORT` and `TALK_PORT` for each instance as otherwise it will bug out. Also make sure to adjust the docker socket and `DOCKER_SOCKET_PATH` correctly for each of them by following step 6 of the [docker rootless documentation](./docker-rootless.md). Additionally, modify `-p 8080:8080` to a different port for each container, e.g. `8081:8080` as otherwise it will not work.<br>
1. Then install AIO in reverse proxy mode by using the command that is descriebed in step 2 and 3 of the [reverse proxy documentation](./reverse-proxy.md) but use a different `APACHE_PORT` and [`TALK_PORT`](https://github.com/nextcloud/all-in-one#how-to-adjust-the-talk-port) for each instance as otherwise it will bug out. Also make sure to adjust the docker socket and `DOCKER_SOCKET_PATH` correctly for each of them by following step 6 of the [docker rootless documentation](./docker-rootless.md). Additionally, modify `-p 8080:8080` to a different port for each container, e.g. `8081:8080` as otherwise it will not work.<br>
**⚠️ Please note:** If you want to adjust the `NEXTCLOUD_DATADIR`, make sure to apply the correct permissions to the chosen path as documented at the bottom of the [docker rootless documentation](./docker-rootless.md). Also for the built-in backup to work, the target path needs to have the correct permissions as documented there, too.
1. Now install your webserver of choice on the host system. It is recommended to use caddy for this as it is by far the easiest solution. You can do so by following https://caddyserver.com/docs/install#debian-ubuntu-raspbian or below. (It needs to be installed directly on the host or on a different server in the same network).
1. Next create your Caddyfile with multiple entries and domains for the different instances like described in step 1 of the [reverse proxy documentation](./reverse-proxy.md). Obviously each domain needs to point correctly to the chosen `APACHE_PORT` that you've configured before. Then start Caddy which should automatically get the needed certificates for you if your domains are configured correctly and ports 80 and 443 are forwarded to your server.

12
php/composer.lock generated
View File

@@ -1677,16 +1677,16 @@
},
{
"name": "twig/twig",
"version": "v3.4.1",
"version": "v3.4.2",
"source": {
"type": "git",
"url": "https://github.com/twigphp/Twig.git",
"reference": "e939eae92386b69b49cfa4599dd9bead6bf4a342"
"reference": "e07cdd3d430cd7e453c31b36eb5ad6c0c5e43077"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/e939eae92386b69b49cfa4599dd9bead6bf4a342",
"reference": "e939eae92386b69b49cfa4599dd9bead6bf4a342",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/e07cdd3d430cd7e453c31b36eb5ad6c0c5e43077",
"reference": "e07cdd3d430cd7e453c31b36eb5ad6c0c5e43077",
"shasum": ""
},
"require": {
@@ -1737,7 +1737,7 @@
],
"support": {
"issues": "https://github.com/twigphp/Twig/issues",
"source": "https://github.com/twigphp/Twig/tree/v3.4.1"
"source": "https://github.com/twigphp/Twig/tree/v3.4.2"
},
"funding": [
{
@@ -1749,7 +1749,7 @@
"type": "tidelift"
}
],
"time": "2022-05-17T05:48:52+00:00"
"time": "2022-08-12T06:47:24+00:00"
}
],
"packages-dev": [],

View File

@@ -177,7 +177,7 @@
],
"environmentVariables": [
"aliasgroup1=https://%NC_DOMAIN%:443",
"extra_params=--o:ssl.enable=false --o:ssl.termination=true --o:logging.level=warning",
"extra_params=--o:ssl.enable=false --o:ssl.termination=true --o:logging.level=warning --o:home_mode.enable=true",
"dictionaries=%COLLABORA_DICTIONARIES%",
"TZ=%TIMEZONE%"
],

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<files psalm-version="4.24.0@06dd975cb55d36af80f242561738f16c5f58264f">
<files psalm-version="4.26.0@6998fabb2bf528b65777bf9941920888d23c03ac">
<file src="public/index.php">
<MissingClosureParamType occurrences="10">
<code>$args</code>

View File

@@ -16,7 +16,7 @@
</header>
<div class="content">
<h1>Nextcloud AIO v1.7.0</h1>
<h1>Nextcloud AIO v1.7.1</h1>
{% set isAnyRunning = false %}
{% set isAnyRestarting = false %}
@@ -82,7 +82,7 @@
<h2>New AIO instance</h2>
Please type in the domain that will be used for Nextcloud if you want to create a new instance:<br><br />
{% if skip_domain_validation == true %}
<b>Please Note:</b> The domain validation is disabled so any domain will be accepted here! So make sure that you do not make a typo here as you will not be able to change it afterwards!<br><br>
<b>Please note:</b> The domain validation is disabled so any domain will be accepted here! So make sure that you do not make a typo here as you will not be able to change it afterwards!<br><br>
{% endif %}
<form method="POST" action="/api/configuration" class="xhr">
<input type="text" name="domain" value="{{ domain }}" placeholder="nextcloud.yourdomain.com"/>
@@ -93,6 +93,7 @@
{% if skip_domain_validation == false %}
Make sure that this server is reachable on Port 443 and you've correctly set up the DNS config for the domain that you enter. <br><br>
If you have a dynamic IP-address, you can use e.g. <a href="https://ddclient.net/">DDclient</a> with a compatible domain provider for DNS updates. <br /><br/>
<b>Hint:</b> If the domain validation fails but you are completely sure that you've configured everything correctly, you may skip the domain validation by following <a href="https://github.com/nextcloud/all-in-one#how-to-skip-the-domain-validation">this documentation</a>.<br><br>
{% endif %}
<h2>Restore former AIO instance from backup</h2>
@@ -152,7 +153,7 @@
An example for Linux is <b>/mnt/backup</b>.<br>
For macOS it may be <b>/var/backup</b>.<br>
On Windows it must be <b>nextcloud_aio_backupdir</b>. You need to create the 'nextcloud_aio_backupdir' volume beforehand by following this documentation: <a href="https://github.com/nextcloud/all-in-one#how-to-run-aio-on-windows"><b>click here</b></a><br><br>
⚠️ Note that the backup archive must be located in a subfolder of the folder that you enter here and the subfolder which contains the archive must be named 'borg'. Otherwise will the backup container not find the backup archive!<br><br>
⚠️ Please note that the backup archive must be located in a subfolder of the folder that you enter here and the subfolder which contains the archive must be named 'borg'. Otherwise will the backup container not find the backup archive!<br><br>
{% endif %}
{% else %}
<b>Everything set!</b> Click on the button below to test the path and password:<br/><br/>
@@ -345,7 +346,7 @@
{% endif %}
<h3>Backup information</h3>
This is your encryption password for backups: <b>{{ borgbackup_password }}</b><br /><br/>
Please save it at a safe place since you won't be able to restore from backup if you loose this password! <br /><br/>
Please save it at a safe place since you won't be able to restore from backup if you lose this password! <br /><br/>
Backed up will get all important data of your Nextcloud AIO instance like the database, your files and configuration files of the mastercontainer and else. <br /><br/>
The backup itself will use a tool that is called <a href="https://github.com/borgbackup/borg#what-is-borgbackup"><b>BorgBackup</b><a/> which is a well-known server backup tool that efficiently backs up your files and encrypts them on the fly. <br /><br/>
Backups get created in the following directory on the host: <b>{{ borg_backup_host_location }}/borg</b> <br /><br/>
@@ -435,7 +436,7 @@
<h2>Optional addons</h2>
In this section you can enable or disable optional addons.<br><br>
{% if isAnyRunning == true %}
<b>Note:</b> You can enable or disable them when your containers are stopped.<br><br>
<b>Please note:</b> You can enable or disable them when your containers are stopped.<br><br>
{% endif %}
<form id="options-form" method="POST" action="/api/configuration" class="xhr">
<input type="hidden" name="{{csrf.keys.name}}" value="{{csrf.name}}">
@@ -501,7 +502,7 @@
{% if timezone != "" %}
The timezone for Nextcloud is currently set to <b>{{ timezone }}</b>.<br><br>
{% endif %}
<b>Note:</b> You can change the timezone when your containers are stopped.<br><br>
<b>Please note:</b> You can change the timezone when your containers are stopped.<br><br>
{% else %}
{% if timezone == "" %}
In order to get the correct time values for certain Nextcloud features, it makes sense to set the timezone for Nextcloud to the one that your users mainly use. Please note that this setting does not apply to the mastercontainer and any backup option.<br><br>

View File

@@ -6,7 +6,7 @@
<img src="/img/logo-blue.svg" style="margin-left: auto;margin-right: auto;display: block;">
<h1>Nextcloud AIO setup</h1>
<p>Nextcloud AIO stands for Nextcloud All In One and provides easy deployment and maintenance with most features included in this one Nextcloud instance.</p>
<p>Please note down the password to access the AIO interface and don't loose it!</p>
<p>Please note down the password to access the AIO interface and don't lose it!</p>
<strong>Password</strong><br/> <span class="monospace">{{ password }}</span><br>
<a href="/" class="button" target="_blank" rel="noopener">Open Nextcloud AIO login ↗</a>
</div>

View File

@@ -132,6 +132,9 @@ No and it will not be added. Please use a dedicated domain for Nextcloud and set
### How can I access Nextcloud locally?
The recommended way is to set up a local dns-server like a pi-hole and set up a custom dns-record for that domain that points to the internal ip-adddress of your server that runs Nextcloud AIO.
### How to skip the domain validation?
If you are completely sure that you've configured everything correctly and are not able to pass the domain validation, you may skip the domain validation by adding `-e SKIP_DOMAIN_VALIDATION=true` to the docker run command of the mastercontainer.
### How to resolve firewall problems with Fedora Linux, RHEL OS, CentOS, SUSE Linux and others?
It is known that Linux distros that use [firewalld](https://firewalld.org) as their firewall daemon have problems with docker networks. In case the containers are not able to communicate with each other, you may change your firewalld to use the iptables backend by running:
```
@@ -171,11 +174,11 @@ Additionally, there is a cronjob that runs once a day that checks for container
If your Nextcloud is running and you are logged in as admin in your Nextcloud, you can easily log in to the AIO interface by opening `https://yourdomain.tld/settings/admin/overview` which will show a button on top that enables you to log in to the AIO interface by just clicking on this button. **Note:** You can change the domain/ip-address/port of the button by simply stopping the containers, visiting the AIO interface from the correct and desired domain/ip-address/port and clicking once on `Start containers`.
### How to change the domain?
**⚠️ Please note:** Editing the configuration.json manually and making a mistake may break your instance so please create a backup first!
If you set up a new AIO instance, you need to enter a domain. Currently there is no way to change this domain afterwards from the AIO interface. So in order to change it, you need to edit the configuration.json manually that is most likely stored in `/var/lib/docker/volumes/nextcloud_aio_mastercontainer/_data/data/configuration.json`, subsitute each occurrence of your old domain with your new domain and save and write out the file. Afterwards restart your containers from the AIO interface and everything should work as expected if the new domain is correctly configured.<br>
If you are running AIO behind a reverse proxy, you need to obviously also change the domain in your reverse proxy config.
**⚠️ Please note:** Editing the configuration.json manually and making a mistake may break your instance so please create a backup first!
### How to properly reset the instance?
If something goes unexpected routes during the initial installation, you might want to reset the AIO installation to be able to start from scratch.
@@ -381,6 +384,8 @@ One example for this would be `sudo docker exec -it nextcloud-aio-mastercontaine
If you already have a backup solution in place, you may want to hide the backup section. You can do so by adding `-e DISABLE_BACKUP_SECTION=true` to the initial startup of the mastercontainer.
### How to change the default location of Nextcloud's Datadir?
⚠️ **Attention:** It is very important to change the datadir **before** Nextcloud is installed/started the first time and not to change it afterwards! If you still want to do it afterwards, see [this](https://github.com/nextcloud/all-in-one/discussions/890#discussioncomment-3089903) on how to do it.
You can configure the Nextcloud container to use a specific directory on your host as data directory. You can do so by adding the environmental variable `NEXTCLOUD_DATADIR` to the initial startup of the mastercontainer. Allowed values for that variable are strings that start with `/` and are not equal to `/`.
- An example for Linux is `-e NEXTCLOUD_DATADIR="/mnt/ncdata"`.
@@ -404,8 +409,6 @@ You can configure the Nextcloud container to use a specific directory on your ho
- For Synology, the command for this example would be `sudo chown -R 33:0 /volume1/docker/nextcloud/data` and `sudo chmod -R 750 /volume1/docker/nextcloud/data`
- On Windows, this command is not needed.
⚠️ **Attention:** It is very important to change the datadir **before** Nextcloud is installed/started the first time and not to change it afterwards! If you still want to do it afterwards, see [this](https://github.com/nextcloud/all-in-one/discussions/890#discussioncomment-3089903) on how to do it.
### 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 `/`.
@@ -419,6 +422,9 @@ You can then navigate to the apps management page, activate the external storage
Be aware though that these locations will not be covered by the built-in backup solution!
### How to adjust the Talk port?
By default will the talk container use port `3478/UDP` and `3478/TCP` for connections. You can adjust the port by adding e.g. `-e TALK_PORT=3478` to the initial docker run command and adjusting the port to your desired value.
### What can I do to fix the internal or reserved ip-address error?
If you get an error during the domain validation which states that your ip-address is an internal or reserved ip-address, you can fix this by first making sure that your domain indeed has the correct public ip-address that points to the server and then adding `--add-host yourdomain.com:<public-ip-address>` to the initial docker run command which will allow the domain validation to work correctly. And so that you know: even if the `A` record of your domain should change over time, this is no problem since the mastercontainer will not make any attempt to access the chosen domain after the initial domain validation.
@@ -444,7 +450,7 @@ You can edit Nextclouds config.php file directly from the host with your favorit
If you want to define a custom skeleton directory, you can do so by putting your skeleton files into `/var/lib/docker/volumes/nextcloud_aio_nextcloud_data/_data/skeleton/`, applying the correct permissions with `sudo chown -R 33:0 /var/lib/docker/volumes/nextcloud_aio_nextcloud_data/_data/skeleton` and and `sudo chmod -R 750 /var/lib/docker/volumes/nextcloud_aio_nextcloud_data/_data/*` and setting the skeleton directory option with `sudo docker exec -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)
### 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.
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))
### LDAP
It is possible to connect to an existing LDAP server. You need to make sure that the LDAP server is reachable from the Nextcloud container. Then you can enable the LDAP app and configure LDAP in Nextcloud manually. If you don't have a LDAP server yet, recommended is to use this docker container: https://hub.docker.com/r/nitnelave/lldap. Make sure here as well that Nextcloud can talk to the LDAP server. The easiest way is by adding the LDAP docker container to the docker network `nextcloud-aio`. Then you can connect to the LDAP container by its name from the Nextcloud container.