Compare commits

...

59 Commits

Author SHA1 Message Date
szaimen
be7d57cf9f increase to 1.2.1
Signed-off-by: szaimen <szaimen@e.mail.de>
2022-05-19 16:12:45 +02:00
Simon L
9ca1946bbc Merge pull request #652 from nextcloud/enh/638/fix-password-for-firefox
fix password copy for firefox
2022-05-19 16:11:40 +02:00
Simon L
7fc49d3f8d Merge pull request #643 from nextcloud/aio-dependency-update
Dependency updates
2022-05-19 16:10:16 +02:00
Simon L
5aa904fac0 Merge pull request #668 from nextcloud/nextcloud-container-update
Nextcloud update
2022-05-19 16:09:34 +02:00
szaimen
86af333662 nextcloud-update automated change
Signed-off-by: GitHub <noreply@github.com>
2022-05-19 12:50:02 +00:00
szaimen
8dc4bd4c43 dependency updates
Signed-off-by: GitHub <noreply@github.com>
2022-05-19 12:18:50 +00:00
szaimen
159a46db52 fix wrong quotation marks
Signed-off-by: szaimen <szaimen@e.mail.de>
2022-05-18 23:44:52 +02:00
Simon L
4d29c8bf97 Merge pull request #647 from nextcloud/enh/641/migration-docs
improve migration docs
2022-05-18 22:40:24 +02:00
szaimen
3054711098 fix password copy for firefox
Signed-off-by: szaimen <szaimen@e.mail.de>
2022-05-18 17:25:16 +02:00
Simon L
1cf5cf5509 Merge pull request #651 from nextcloud/dependabot/docker/Containers/postgresql/postgres-14.3-alpine3.15
Bump postgres from 14.2-alpine3.15 to 14.3-alpine3.15 in /Containers/postgresql
2022-05-18 17:17:53 +02:00
dependabot[bot]
541e030d89 Bump postgres in /Containers/postgresql
Bumps postgres from 14.2-alpine3.15 to 14.3-alpine3.15.

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-18 12:31:42 +00:00
szaimen
989e11a89e adjust the headline sizes
Signed-off-by: szaimen <szaimen@e.mail.de>
2022-05-17 16:16:40 +02:00
szaimen
c1d08769b4 improve migration docs
Signed-off-by: szaimen <szaimen@e.mail.de>
2022-05-17 12:15:28 +02:00
Simon L
09c0e435ff Merge pull request #642 from ninoppp/patch-2
Fix migration doc by changing PGDP_PASS to PG_PASSWORD
2022-05-17 11:31:05 +02:00
Simon L
2fd91c0a28 fix it in the second place, too
Signed-off-by: szaimen <szaimen@e.mail.de>
2022-05-17 11:30:13 +02:00
Simon L
b07b365046 Merge pull request #646 from DavidBradette/main
Corrected typos.
2022-05-17 11:03:03 +02:00
David Bradette
e50c63df96 Update readme.md
Corrected a typo.
2022-05-16 21:05:46 -06:00
David Bradette
e2616f79ba Update readme.md
Corrected a typo.
2022-05-16 20:57:57 -06:00
Simon L
1bb0fb7006 Merge pull request #634 from nextcloud/fix/625/onlyoffice
fix onlyoffice for caddy reverse proxy
2022-05-16 14:47:14 +02:00
szaimen
2e92a82a83 also stop the apache container
Signed-off-by: szaimen <szaimen@e.mail.de>
2022-05-16 13:31:10 +02:00
szaimen
205887f17d improve the manual-upgrade documentation
Signed-off-by: szaimen <szaimen@e.mail.de>
2022-05-16 13:24:51 +02:00
szaimen
02f07bce72 add docs about manual upgrade
Signed-off-by: szaimen <szaimen@e.mail.de>
2022-05-16 13:06:08 +02:00
szaimen
a3568cfa00 change php updates to daily
Signed-off-by: szaimen <szaimen@e.mail.de>
2022-05-16 11:34:40 +02:00
szaimen
c51f91a446 reverse proxy documentation - document that others are currently not documented
Signed-off-by: szaimen <szaimen@e.mail.de>
2022-05-16 11:09:34 +02:00
szaimen
96bf19a162 correct example for synology
Signed-off-by: szaimen <szaimen@e.mail.de>
2022-05-16 11:05:29 +02:00
ninoppp
4bf56d7981 Update migration.md 2022-05-15 13:11:53 +02:00
Simon L
f07f1e1deb Merge pull request #633 from nextcloud/dependabot/docker/Containers/onlyoffice/onlyoffice/documentserver-7.1.0.215
Bump onlyoffice/documentserver from 7.0.1.37 to 7.1.0.215 in /Containers/onlyoffice
2022-05-13 19:19:43 +02:00
Simon L
929f3415ed Merge pull request #631 from nextcloud/dependabot/docker/Containers/mastercontainer/php-8.0.19-apache-bullseye
Bump php from 8.0.18-apache-bullseye to 8.0.19-apache-bullseye in /Containers/mastercontainer
2022-05-13 19:19:26 +02:00
Simon L
ac3509e257 Merge pull request #630 from nextcloud/dependabot/docker/Containers/nextcloud/php-8.0.19-fpm-alpine3.15
Bump php from 8.0.18-fpm-alpine3.15 to 8.0.19-fpm-alpine3.15 in /Containers/nextcloud
2022-05-13 19:19:09 +02:00
Simon L
b08335718d Merge pull request #632 from nextcloud/dependabot/docker/Containers/mastercontainer/docker-20.10.16-dind-alpine3.15
Bump docker from 20.10.15-dind-alpine3.15 to 20.10.16-dind-alpine3.15 in /Containers/mastercontainer
2022-05-13 17:59:16 +02:00
Simon L
2674b61ae7 Merge pull request #619 from nextcloud/dependabot/docker/Containers/borgbackup/debian-bullseye-20220509-slim
Bump debian from bullseye-20220418-slim to bullseye-20220509-slim in /Containers/borgbackup
2022-05-13 17:59:02 +02:00
Simon L
9eded5ae02 Merge pull request #620 from nextcloud/dependabot/docker/Containers/apache/debian-bullseye-20220509-slim
Bump debian from bullseye-20220418-slim to bullseye-20220509-slim in /Containers/apache
2022-05-13 17:58:48 +02:00
Simon L
c6f9d883db Merge pull request #626 from nextcloud/enh/614/document-chmod
document that chmod is required too
2022-05-13 17:58:10 +02:00
Simon L
7d68f2f3ca Merge pull request #627 from nextcloud/enh/615/document-port-443
explain that it needs port 443 a bit better
2022-05-13 17:57:36 +02:00
szaimen
268c647e5f fix onlyoffice for caddy reverse proxy
Signed-off-by: szaimen <szaimen@e.mail.de>
2022-05-13 17:14:10 +02:00
dependabot[bot]
bcf051b721 Bump onlyoffice/documentserver in /Containers/onlyoffice
Bumps onlyoffice/documentserver from 7.0.1.37 to 7.1.0.215.

---
updated-dependencies:
- dependency-name: onlyoffice/documentserver
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-13 12:33:53 +00:00
dependabot[bot]
74bd6df049 Bump docker in /Containers/mastercontainer
Bumps docker from 20.10.15-dind-alpine3.15 to 20.10.16-dind-alpine3.15.

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-13 12:32:13 +00:00
dependabot[bot]
31050b559e Bump php in /Containers/mastercontainer
Bumps php from 8.0.18-apache-bullseye to 8.0.19-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-05-13 12:32:10 +00:00
dependabot[bot]
a17682a533 Bump php in /Containers/nextcloud
Bumps php from 8.0.18-fpm-alpine3.15 to 8.0.19-fpm-alpine3.15.

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-13 12:31:55 +00:00
Simon L
7d419695c1 Merge pull request #628 from nextcloud/aio-yaml-update
Yaml updates
2022-05-13 13:35:50 +02:00
szaimen
d23e138d2a Yaml updates
Signed-off-by: GitHub <noreply@github.com>
2022-05-13 11:34:07 +00:00
szaimen
cae24e69f8 improve latest-arm64.yml further
Signed-off-by: szaimen <szaimen@e.mail.de>
2022-05-13 13:31:45 +02:00
szaimen
0b6a41f385 improve the latest-arm64.yml file
Signed-off-by: szaimen <szaimen@e.mail.de>
2022-05-13 13:26:12 +02:00
szaimen
2fe227de5d explain that it needs port 443 a bit better
Signed-off-by: szaimen <szaimen@e.mail.de>
2022-05-13 13:13:04 +02:00
szaimen
2faeceb05a document that chmod is required too
Signed-off-by: szaimen <szaimen@e.mail.de>
2022-05-13 13:03:30 +02:00
Simon L
23b0ea7c8c Merge pull request #599 from nextcloud/enh/557/add-docker-compose
allow to run the AIO containers with docker compose
2022-05-12 17:04:55 +02:00
szaimen
668cc3694a fix the commands
Signed-off-by: szaimen <szaimen@e.mail.de>
2022-05-12 16:41:05 +02:00
dependabot[bot]
3bb97b66a1 Bump debian in /Containers/apache
Bumps debian from bullseye-20220418-slim to bullseye-20220509-slim.

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-12 12:35:58 +00:00
dependabot[bot]
4695e56011 Bump debian in /Containers/borgbackup
Bumps debian from bullseye-20220418-slim to bullseye-20220509-slim.

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-12 12:35:45 +00:00
szaimen
e4f34ef93d add a readme
Signed-off-by: szaimen <szaimen@e.mail.de>
2022-05-11 19:46:35 +02:00
szaimen
a2f99636bb update only via schedule
Signed-off-by: szaimen <szaimen@e.mail.de>

Revert "update only via schedule"

This reverts commit 86bcad9c4c0047bdc45cb12ce58ede89b8c1a07b.

Revert "Revert "update only via schedule""

This reverts commit 40a4236bd204ed65c25185c1d874378f094db6af.
2022-05-11 12:44:47 +02:00
szaimen
b003a8b49b allow to run containers without access to the docker socket
Signed-off-by: szaimen <szaimen@e.mail.de>
2022-05-11 12:44:46 +02:00
szaimen
4e361e3ce2 use a different port for Nextcloud internally
Signed-off-by: szaimen <szaimen@e.mail.de>
2022-05-09 21:49:19 +02:00
szaimen
ff27bd77cc fix access to the aio interface for everyone
Signed-off-by: szaimen <szaimen@e.mail.de>
2022-05-09 21:00:37 +02:00
Simon L
c152fd7868 Merge pull request #606 from nextcloud/dependabot/github_actions/docker/login-action-2
Bump docker/login-action from 1 to 2
2022-05-09 19:25:45 +02:00
Simon L
e5acc9a108 Merge pull request #607 from nextcloud/dependabot/github_actions/docker/build-push-action-3
Bump docker/build-push-action from 2 to 3
2022-05-09 19:25:26 +02:00
dependabot[bot]
195d009c85 Bump docker/build-push-action from 2 to 3
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 2 to 3.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-09 17:24:07 +00:00
dependabot[bot]
710b6c562b Bump docker/login-action from 1 to 2
Bumps [docker/login-action](https://github.com/docker/login-action) from 1 to 2.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v1...v2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-09 17:24:03 +00:00
szaimen
bb36f7e22c fix the reported gateway problem
Signed-off-by: szaimen <szaimen@e.mail.de>
2022-05-09 18:20:25 +02:00
29 changed files with 716 additions and 82 deletions

View File

@@ -3,7 +3,8 @@ updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
interval: "daily"
time: "12:00"
open-pull-requests-limit: 10
- package-ecosystem: composer
directory: "/php/"

View File

@@ -31,21 +31,21 @@ jobs:
APCU
- name: Log in to GitHub Docker Registry
uses: docker/login-action@v1
uses: docker/login-action@v2
with:
registry: docker.pkg.github.com
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Log in to GitHub Container Registry
uses: docker/login-action@v1
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build container image
uses: docker/build-push-action@v2
uses: docker/build-push-action@v3
with:
push: true
context: 'psalm-github-actions'

18
.github/workflows/json-validator.yml vendored Normal file
View File

@@ -0,0 +1,18 @@
name: Json Validator
on:
pull_request:
push:
jobs:
psalm:
name: Json Validator
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Validate Json
run: |
sudo apt install python3-pip --no-install-recommends
sudo pip3 install json-spec
json validate --schema-file=php/containers-schema.json --document-file=php/containers.json

27
.github/workflows/update-yaml.yml vendored Normal file
View File

@@ -0,0 +1,27 @@
name: Update Yaml files
on:
workflow_dispatch:
schedule:
- cron: '00 12 * * *'
jobs:
psalm:
name: update yaml files
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: update yaml files
run: |
sudo bash manual-install/update-yaml.sh
- name: Create Pull Request
uses: peter-evans/create-pull-request@v4
with:
commit-message: Yaml updates
signoff: true
title: Yaml updates
body: Automated yaml updates for the docker-compose files. Should only be merged shortly before the next latest release.
labels: dependencies
milestone: next
branch: aio-yaml-update

3
.gitignore vendored
View File

@@ -3,3 +3,6 @@
/php/data/configuration.json
/php/data/backupsecret.json
/php/vendor
/manual-install/*.conf
!/manual-install/sample.conf
/manual-install/docker-compose.yml

View File

@@ -36,6 +36,7 @@
uri strip_prefix /onlyoffice
reverse_proxy {$ONLYOFFICE_HOST}:80 {
header_up X-Forwarded-Host {http.request.host}/onlyoffice
header_up X-Forwarded-Proto https
}
}
@@ -44,7 +45,7 @@
rewrite /.well-known/carddav /remote.php/dav
rewrite /.well-known/caldav /remote.php/dav
header Strict-Transport-Security max-age=31536000;
reverse_proxy localhost:80
reverse_proxy localhost:8000
}
# TLS options

View File

@@ -1,7 +1,7 @@
# Caddy is a requirement
FROM caddy:2.5.1-alpine as caddy
FROM debian:bullseye-20220418-slim
FROM debian:bullseye-20220509-slim
EXPOSE 80
@@ -40,6 +40,10 @@ RUN a2enmod rewrite \
COPY nextcloud.conf /etc/apache2/sites-available/
RUN rm /etc/apache2/ports.conf; \
sed -s -i -e "s/Include ports.conf//" /etc/apache2/apache2.conf; \
sed -i "/^Listen /d" /etc/apache2/apache2.conf
RUN set -ex; \
a2dissite 000-default && \
a2dissite default-ssl && \

View File

@@ -1,4 +1,5 @@
<VirtualHost *:80>
Listen 8000
<VirtualHost *:8000>
# PHP match
<FilesMatch "\.php$">
SetHandler "proxy:fcgi://nextcloud-aio-nextcloud:9000"

View File

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

View File

@@ -1,11 +1,11 @@
# Docker CLI is a requirement
FROM docker:20.10.15-dind-alpine3.15 as dind
FROM docker:20.10.16-dind-alpine3.15 as dind
# Caddy is a requirement
FROM caddy:2.5.1-alpine as caddy
# From https://github.com/docker-library/php/blob/master/8.0/bullseye/apache/Dockerfile
FROM php:8.0.18-apache-bullseye
FROM php:8.0.19-apache-bullseye
EXPOSE 80
EXPOSE 8080

View File

@@ -140,16 +140,11 @@ chown root:root -R /mnt/docker-aio-config/certs/
# Don't allow access to the AIO interface from the Nextcloud container
# Probably more cosmetic than anything but at least an attempt
if ! grep -q '# nextcloud-aio-block' /etc/apache2/apache2.conf; then
if ! NETWORK_GATEWAY="$(docker inspect nextcloud-aio-mastercontainer --format "{{.NetworkSettings.Gateway}}")" || [ -z "$NETWORK_GATEWAY" ]; then
echo "Could not get the gateway of the mastercontainer. Cannot continue."
exit 1
fi
cat << APACHE_CONF >> /etc/apache2/apache2.conf
# nextcloud-aio-block-start
<Location />
order allow,deny
deny from nextcloud-aio-nextcloud.nextcloud-aio
deny from $NETWORK_GATEWAY
allow from all
</Location>
# nextcloud-aio-block-end

View File

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

View File

@@ -53,6 +53,7 @@ if [ -f "/var/www/html/lib/versioncheck.php" ] && ! php /var/www/html/lib/versio
echo "It seems like your installed Nextcloud is not compatible with the by the container provided PHP version."
echo "This most likely happened because you tried to restore an old Nextcloud version from backup that is not compatible with the PHP version that comes with the container."
echo "Please try to restore a more recent backup which contains a Nextcloud version that is compatible with the PHP version that comes with the container."
echo "If you do not have a more recent backup, feel free to have a look at this documentation: https://github.com/nextcloud/all-in-one/blob/main/manual-upgrade.md"
exit 1
fi

View File

@@ -1,2 +1,2 @@
# From https://github.com/ONLYOFFICE/Docker-DocumentServer/blob/master/Dockerfile
FROM onlyoffice/documentserver:7.0.1.37
FROM onlyoffice/documentserver:7.1.0.215

View File

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

View File

@@ -18,8 +18,8 @@ services:
- 8443:8443 # Can be removed when running behind a reverse proxy. See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
# environment: # Is needed when using any of the options below
# - APACHE_PORT=11000 # Is needed when running behind a reverse proxy. See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
# - NEXTCLOUD_DATADIR="/mnt/ncdata" # Allows to set the host directory for Nextcloud's datadir. See https://github.com/nextcloud/all-in-one#how-to-change-the-default-location-of-nextclouds-datadir
# - NEXTCLOUD_MOUNT="/mnt/" # Allows the Nextcloud container to access the chosen directory on the host. See https://github.com/nextcloud/all-in-one#how-to-allow-the-nextcloud-container-to-access-directories-on-the-host
# - NEXTCLOUD_DATADIR=/mnt/ncdata # Allows to set the host directory for Nextcloud's datadir. See https://github.com/nextcloud/all-in-one#how-to-change-the-default-location-of-nextclouds-datadir
# - NEXTCLOUD_MOUNT=/mnt/ # Allows the Nextcloud container to access the chosen directory on the host. See https://github.com/nextcloud/all-in-one#how-to-allow-the-nextcloud-container-to-access-directories-on-the-host
# # Optional: Caddy reverse proxy. See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
# # You can find further examples here: https://github.com/nextcloud/all-in-one/discussions/588

View File

@@ -0,0 +1,129 @@
version: "3.8"
services:
nextcloud-aio-apache:
container_name: nextcloud-aio-apache
depends_on:
- nextcloud-aio-collabora
- nextcloud-aio-talk
- nextcloud-aio-nextcloud
image: nextcloud/aio-apache:latest-arm64
ports:
- ${APACHE_PORT}:${APACHE_PORT}/tcp
environment:
- NC_DOMAIN=${NC_DOMAIN}
- NEXTCLOUD_HOST=nextcloud-aio-nextcloud
- COLLABORA_HOST=nextcloud-aio-collabora
- TALK_HOST=nextcloud-aio-talk
- APACHE_PORT=${APACHE_PORT}
volumes:
- nextcloud_aio_nextcloud:/var/www/html:ro
- nextcloud_aio_apache:/mnt/data:rw
stop_grace_period: 10s
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-database:
container_name: nextcloud-aio-database
image: nextcloud/aio-postgresql:latest-arm64
volumes:
- nextcloud_aio_database:/var/lib/postgresql/data:rw
- nextcloud_aio_database_dump:/mnt/data:rw
environment:
- POSTGRES_PASSWORD=${DATABASE_PASSWORD}
- POSTGRES_DB=nextcloud_database
- POSTGRES_USER=nextcloud
stop_grace_period: 1800s
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-nextcloud:
container_name: nextcloud-aio-nextcloud
depends_on:
- nextcloud-aio-database
- nextcloud-aio-redis
image: nextcloud/aio-nextcloud:latest-arm64
volumes:
- nextcloud_aio_nextcloud:/var/www/html:rw
- ${NEXTCLOUD_DATADIR}:/mnt/ncdata:rw
- ${NEXTCLOUD_MOUNT}:${NEXTCLOUD_MOUNT}:rw
environment:
- POSTGRES_HOST=nextcloud-aio-database
- POSTGRES_PASSWORD=${DATABASE_PASSWORD}
- POSTGRES_DB=nextcloud_database
- POSTGRES_USER=nextcloud
- REDIS_HOST=nextcloud-aio-redis
- REDIS_HOST_PASSWORD=${REDIS_PASSWORD}
- AIO_TOKEN=${AIO_TOKEN}
- NC_DOMAIN=${NC_DOMAIN}
- ADMIN_USER=admin
- ADMIN_PASSWORD=${NEXTCLOUD_PASSWORD}
- NEXTCLOUD_DATA_DIR=/mnt/ncdata
- OVERWRITEHOST=${NC_DOMAIN}
- OVERWRITEPROTOCOL=https
- TURN_SECRET=${TURN_SECRET}
- SIGNALING_SECRET=${SIGNALING_SECRET}
- AIO_URL=${AIO_URL}
- NEXTCLOUD_MOUNT=${NEXTCLOUD_MOUNT}
- COLLABORA_ENABLED=${COLLABORA_ENABLED}
- COLLABORA_HOST=nextcloud-aio-collabora
- TALK_ENABLED=${TALK_ENABLED}
- DAILY_BACKUP_RUNNING=${DAILY_BACKUP_RUNNING}
stop_grace_period: 10s
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-redis:
container_name: nextcloud-aio-redis
image: nextcloud/aio-redis:latest-arm64
environment:
- REDIS_HOST_PASSWORD=${REDIS_PASSWORD}
stop_grace_period: 10s
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-collabora:
container_name: nextcloud-aio-collabora
image: nextcloud/aio-collabora:latest-arm64
environment:
- aliasgroup1=https://${NC_DOMAIN}:443
- extra_params=--o:ssl.enable=false --o:ssl.termination=true --o:logging.level=warning
stop_grace_period: 10s
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-talk:
container_name: nextcloud-aio-talk
image: nextcloud/aio-talk:latest-arm64
ports:
- 3478:3478/tcp
- 3478:3478/udp
environment:
- NC_DOMAIN=${NC_DOMAIN}
- TURN_SECRET=${TURN_SECRET}
- SIGNALING_SECRET=${SIGNALING_SECRET}
- JANUS_API_KEY=${JANUS_API_KEY}
stop_grace_period: 10s
restart: unless-stopped
networks:
- nextcloud-aio
volumes:
nextcloud_aio_apache:
name: nextcloud_aio_apache
nextcloud_aio_database:
name: nextcloud_aio_database
nextcloud_aio_database_dump:
name: nextcloud_aio_database_dump
nextcloud_aio_nextcloud:
name: nextcloud_aio_nextcloud
nextcloud_aio_nextcloud_data:
name: nextcloud_aio_nextcloud_data
networks:
nextcloud-aio:

160
manual-install/latest.yml Normal file
View File

@@ -0,0 +1,160 @@
version: "3.8"
services:
nextcloud-aio-apache:
container_name: nextcloud-aio-apache
depends_on:
- nextcloud-aio-onlyoffice
- nextcloud-aio-collabora
- nextcloud-aio-clamav
- nextcloud-aio-talk
- nextcloud-aio-nextcloud
image: nextcloud/aio-apache:latest
ports:
- ${APACHE_PORT}:${APACHE_PORT}/tcp
environment:
- NC_DOMAIN=${NC_DOMAIN}
- NEXTCLOUD_HOST=nextcloud-aio-nextcloud
- COLLABORA_HOST=nextcloud-aio-collabora
- TALK_HOST=nextcloud-aio-talk
- APACHE_PORT=${APACHE_PORT}
- ONLYOFFICE_HOST=nextcloud-aio-onlyoffice
volumes:
- nextcloud_aio_nextcloud:/var/www/html:ro
- nextcloud_aio_apache:/mnt/data:rw
stop_grace_period: 10s
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-database:
container_name: nextcloud-aio-database
image: nextcloud/aio-postgresql:latest
volumes:
- nextcloud_aio_database:/var/lib/postgresql/data:rw
- nextcloud_aio_database_dump:/mnt/data:rw
environment:
- POSTGRES_PASSWORD=${DATABASE_PASSWORD}
- POSTGRES_DB=nextcloud_database
- POSTGRES_USER=nextcloud
stop_grace_period: 1800s
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-nextcloud:
container_name: nextcloud-aio-nextcloud
depends_on:
- nextcloud-aio-database
- nextcloud-aio-redis
image: nextcloud/aio-nextcloud:latest
volumes:
- nextcloud_aio_nextcloud:/var/www/html:rw
- ${NEXTCLOUD_DATADIR}:/mnt/ncdata:rw
- ${NEXTCLOUD_MOUNT}:${NEXTCLOUD_MOUNT}:rw
environment:
- POSTGRES_HOST=nextcloud-aio-database
- POSTGRES_PASSWORD=${DATABASE_PASSWORD}
- POSTGRES_DB=nextcloud_database
- POSTGRES_USER=nextcloud
- REDIS_HOST=nextcloud-aio-redis
- REDIS_HOST_PASSWORD=${REDIS_PASSWORD}
- AIO_TOKEN=${AIO_TOKEN}
- NC_DOMAIN=${NC_DOMAIN}
- ADMIN_USER=admin
- ADMIN_PASSWORD=${NEXTCLOUD_PASSWORD}
- NEXTCLOUD_DATA_DIR=/mnt/ncdata
- OVERWRITEHOST=${NC_DOMAIN}
- OVERWRITEPROTOCOL=https
- TURN_SECRET=${TURN_SECRET}
- SIGNALING_SECRET=${SIGNALING_SECRET}
- AIO_URL=${AIO_URL}
- NEXTCLOUD_MOUNT=${NEXTCLOUD_MOUNT}
- CLAMAV_ENABLED=${CLAMAV_ENABLED}
- CLAMAV_HOST=nextcloud-aio-clamav
- ONLYOFFICE_ENABLED=${ONLYOFFICE_ENABLED}
- COLLABORA_ENABLED=${COLLABORA_ENABLED}
- COLLABORA_HOST=nextcloud-aio-collabora
- TALK_ENABLED=${TALK_ENABLED}
- ONLYOFFICE_HOST=nextcloud-aio-onlyoffice
- DAILY_BACKUP_RUNNING=${DAILY_BACKUP_RUNNING}
stop_grace_period: 10s
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-redis:
container_name: nextcloud-aio-redis
image: nextcloud/aio-redis:latest
environment:
- REDIS_HOST_PASSWORD=${REDIS_PASSWORD}
stop_grace_period: 10s
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-collabora:
container_name: nextcloud-aio-collabora
image: nextcloud/aio-collabora:latest
environment:
- aliasgroup1=https://${NC_DOMAIN}:443
- extra_params=--o:ssl.enable=false --o:ssl.termination=true --o:logging.level=warning
stop_grace_period: 10s
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-talk:
container_name: nextcloud-aio-talk
image: nextcloud/aio-talk:latest
ports:
- 3478:3478/tcp
- 3478:3478/udp
environment:
- NC_DOMAIN=${NC_DOMAIN}
- TURN_SECRET=${TURN_SECRET}
- SIGNALING_SECRET=${SIGNALING_SECRET}
- JANUS_API_KEY=${JANUS_API_KEY}
stop_grace_period: 10s
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-clamav:
container_name: nextcloud-aio-clamav
image: nextcloud/aio-clamav:latest
volumes:
- nextcloud_aio_clamav:/var/lib/clamav:rw
stop_grace_period: 10s
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-onlyoffice:
container_name: nextcloud-aio-onlyoffice
image: nextcloud/aio-onlyoffice:latest
volumes:
- nextcloud_aio_onlyoffice:/var/lib/onlyoffice:rw
stop_grace_period: 10s
restart: unless-stopped
networks:
- nextcloud-aio
volumes:
nextcloud_aio_apache:
name: nextcloud_aio_apache
nextcloud_aio_clamav:
name: nextcloud_aio_clamav
nextcloud_aio_database:
name: nextcloud_aio_database
nextcloud_aio_database_dump:
name: nextcloud_aio_database_dump
nextcloud_aio_nextcloud:
name: nextcloud_aio_nextcloud
nextcloud_aio_onlyoffice:
name: nextcloud_aio_onlyoffice
nextcloud_aio_nextcloud_data:
name: nextcloud_aio_nextcloud_data
networks:
nextcloud-aio:

41
manual-install/readme.md Normal file
View File

@@ -0,0 +1,41 @@
# Manual installation
You can run the containers that are build for AIO with docker-compose. This comes with a few downsides, that are discussed below.
### Advantages
- You can run it without a container having access to the docker socket
- 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 need to know what you are doing, especially when modifying the docker-compose file
- Probably more
## How to use this?
First, install docker and docker-compose if not already done. Then simply run the following:
```bash
git clone https://github.com/nextcloud/all-in-one.git
cd all-in-one/manual-install
```
Then copy the sample.conf to a new file, e.g. `cp sample.conf my.conf`, open the new conf file, e.g. with `nano my.conf`, edit all values that are marked with `# TODO!`, close and save the file.
Now copy the provided yaml file to a docker-compose file by running on x64 `cp latest.yml docker-compose.yml` and on arm64 `cp latest-arm64.yml docker-compose.yml`.
Now you should be ready to go with `sudo docker-compose --env-file my.conf up`.
## How to update?
Since the AIO containers may change in the future, it is highly recommended to strictly follow the following procedure whenever you want to upgrade your containers.
1. Run `sudo docker-compose --env-file my.conf down` to stop all running containers
1. Back up all important files and folders
1. Run `git pull` in order to get the updated yaml files from the repository. Now bring your `docker-compose.yml` file up-to-date with the updated one from the repository. You can use `diff docker-compose.yml latest.yml` on x64 and `diff docker-compose.yml latest-arm64.yml` on arm64 for comparing.
1. Also have a look at the `sample.conf` if any variable was added or renamed and add that to your conf file as well. Here may help the diff command as well.
1. After the file update was successful, simply run `sudo docker-compose --env-file my.conf pull` to pull the new images.
1. At the end run `sudo docker-compose --env-file my.conf up` in order to start and update the containers with the new configuration.
## FAQ
### Backup and restore?
If you leave `NEXTLOUD_DATADIR` in your conf file at the default value of `nextcloud_aio_nextcloud_data` and don't modify the yaml file, all data will be stored inside docker volumes which are on Linux by default located here: `/var/lib/docker/volumes`. Simply backing up this location should be a valid backup solution. Then you can also easily restore in case something bad happens. However if you change `NEXTLOUD_DATADIR` to a path like `/mnt/ncdata`, you obviously need to back up this location, too because the Nextcloud data will be stored there. The same applies to any change to the yaml file.
Obviously you also need to back up the conf file and the yaml file if you modified it.

View File

@@ -0,0 +1,17 @@
AIO_TOKEN=123456 # Has no function but needs to be set!
AIO_URL=localhost # Has no function but needs to be set!
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_ENABLED=yes # Setting this to "yes" enables the option in Nextcloud automatically.
DAILY_BACKUP_RUNNING=no # When setting to yes, it will automatically update all installed Nextcloud apps upon container startup.
DATABASE_PASSWORD= # TODO! This needs to be a unique and good password!
JANUS_API_KEY= # TODO! This needs to be a unique and good password!
NC_DOMAIN=yourdomain.com # TODO! Needs to be changed to the domain that you want to use for Nextcloud.
NEXTCLOUD_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!
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".
ONLYOFFICE_ENABLED=no # Setting this to "yes" enables the option in Nextcloud automatically.
REDIS_PASSWORD= # TODO! This needs to be a unique and good password!
SIGNALING_SECRET= # TODO! This needs to be a unique and good password!
TALK_ENABLED=yes # Setting this to "yes" enables the option in Nextcloud automatically.
TURN_SECRET= # TODO! This needs to be a unique and good password!

View File

@@ -0,0 +1,122 @@
#!/bin/bash
jq -c . ./php/containers.json > /tmp/containers.json
sed -i 's|","location":"|:|g' /tmp/containers.json
sed -i 's|","writeable":false|:ro"|g' /tmp/containers.json
sed -i 's|","writeable":true|:rw"|g' /tmp/containers.json
OUTPUT="$(cat /tmp/containers.json)"
OUTPUT="$(echo "$OUTPUT" | jq 'del(.production[].internalPorts)')"
OUTPUT="$(echo "$OUTPUT" | jq 'del(.production[].secrets)')"
OUTPUT="$(echo "$OUTPUT" | jq 'del(.production[] | select(.identifier == "nextcloud-aio-watchtower"))')"
OUTPUT="$(echo "$OUTPUT" | jq 'del(.production[] | select(.identifier == "nextcloud-aio-domaincheck"))')"
OUTPUT="$(echo "$OUTPUT" | jq 'del(.production[] | select(.identifier == "nextcloud-aio-borgbackup"))')"
snap install yq
mkdir -p ./manual-install
echo "$OUTPUT" | yq -P > ./manual-install/containers.yml
cd manual-install || exit
sed -i "s|'||g" containers.yml
sed -i 's|production:|services:|' containers.yml
sed -i 's|- identifier:| container_name:|' containers.yml
sed -i 's|restartPolicy:|restart:|' containers.yml
sed -i 's|environmentVariables:|environment:|' containers.yml
sed -i '/displayName:/d' containers.yml
sed -i 's|maxShutdownTime:|stop_grace_period:|' containers.yml
sed -i '/stop_grace_period:/s/$/s/' containers.yml
sed -i 's|containerName:|image:|' containers.yml
sed -i '/: \[\]/d' containers.yml
sed -i 's|dependsOn:|depends_on:|' containers.yml
sed -i 's|- name: |- |' containers.yml
TCP="$(grep -oP '[%A-Z0-9_]+/tcp' containers.yml | sort -u)"
mapfile -t TCP <<< "$TCP"
for port in "${TCP[@]}"
do
solve_port="${port%%/tcp}"
sed -i "s|$port|$solve_port:$solve_port/tcp|" containers.yml
done
UDP="$(grep -oP '[%A-Z0-9_]+/udp' containers.yml | sort -u)"
mapfile -t UDP <<< "$UDP"
for port in "${UDP[@]}"
do
solve_port="${port%%/udp}"
sed -i "s|$port|$solve_port:$solve_port/udp|" containers.yml
done
rm -f sample.conf
VARIABLES="$(grep -oP '%[A-Z_a-z0-6]+%' containers.yml | sort -u)"
mapfile -t VARIABLES <<< "$VARIABLES"
for variable in "${VARIABLES[@]}"
do
# shellcheck disable=SC2001
sole_variable="$(echo "$variable" | sed 's|%||g')"
echo "$sole_variable=" >> sample.conf
sed -i "s|$variable|\${$sole_variable}|g" containers.yml
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|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|DAILY_BACKUP_RUNNING=|DAILY_BACKUP_RUNNING=no # When setting to yes, it will automatically update all installed Nextcloud apps upon container startup.|' sample.conf
sed -i 's|APACHE_PORT=|APACHE_PORT=443 # Changing this to a different value than 443 will allow you to run it behind a reverse proxy.|' sample.conf
sed -i 's|AIO_TOKEN=|AIO_TOKEN=123456 # Has no function but needs to be set!|' sample.conf
sed -i 's|AIO_URL=|AIO_URL=localhost # Has no function but needs to be set!|' sample.conf
sed -i 's|NC_DOMAIN=|NC_DOMAIN=yourdomain.com # TODO! Needs to be changed to the domain that you want to use for Nextcloud.|' sample.conf
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|=$|= # TODO! This needs to be a unique and good password!|' sample.conf
cat sample.conf
OUTPUT="$(cat containers.yml)"
NAMES="$(grep -oP "container_name:.*" containers.yml | grep -oP 'nextcloud-aio.*')"
mapfile -t NAMES <<< "$NAMES"
for name in "${NAMES[@]}"
do
OUTPUT="$(echo "$OUTPUT" | sed "/container_name.*$name/i\ \ $name:")"
if [ "$name" != "nextcloud-aio-apache" ]; then
OUTPUT="$(echo "$OUTPUT" | sed "/ $name:/i\ ")"
fi
done
OUTPUT="$(echo "$OUTPUT" | sed "/restart: /a\ \ \ \ networks:\n\ \ \ \ \ \ - nextcloud-aio")"
echo 'version: "3.8"' > containers.yml
echo "" >> containers.yml
echo "$OUTPUT" >> containers.yml
VOLUMES="$(grep -oP 'nextcloud_aio_[a-z_]+' containers.yml | sort -u)"
mapfile -t VOLUMES <<< "$VOLUMES"
echo "" >> containers.yml
echo "volumes:" >> containers.yml
for volume in "${VOLUMES[@]}" "nextcloud_aio_nextcloud_data"
do
cat << VOLUMES >> containers.yml
$volume:
name: $volume
VOLUMES
done
cat << NETWORK >> containers.yml
networks:
nextcloud-aio:
NETWORK
cat containers.yml > latest.yml
sed -i '/image:/s/$/:latest/' latest.yml
cat containers.yml > latest-arm64.yml
sed -i '/image:/s/$/:latest-arm64/' latest-arm64.yml
sed -i '/ nextcloud-aio-clamav:/,/^$/d' latest-arm64.yml
sed -i '/nextcloud[-_]aio[-_]clamav/d' latest-arm64.yml
sed -i '/CLAMAV_ENABLED/d' latest-arm64.yml
sed -i '/ nextcloud-aio-onlyoffice:/,/^$/d' latest-arm64.yml
sed -i '/nextcloud[-_]aio[-_]onlyoffice/d' latest-arm64.yml
sed -i '/ONLYOFFICE_ENABLED/d' latest-arm64.yml
rm containers.yml

25
manual-upgrade.md Normal file
View File

@@ -0,0 +1,25 @@
# Manual upgrade
If you do not install any upgrade for around 6-12 months or longer, it can happen that your instance is so outdated that in the meantime the PHP version of the Nextcloud container got bumped to a version that is not compatible with your currently installed Nextcloud version which means that after doing an upgrade after this long time, Nextcloud will suddenly not work anymore. There is unfortunately no way to fix this from the maintainer side if you refrain from upgrading for so long.
The only way to fix this on your side is upgrading regularly (e.g. by enabling daily backups which will also automatically upgrade all containers) and following the steps below:
1. Start all containers from the aio interface (now, it will report that Nextcloud is restarting because it is not able to start due to the above mentioned problem)
1. Do **not** click on `Stop containers` because you will need them running going forward, see below
1. Stop the Nextcloud container and the Apache container by running `sudo docker stop nextcloud-aio-nextcloud && sudo docker stop nextcloud-aio-apache`.
1. Find out with which PHP version your installed Nextcloud is compatible by running `sudo cat /var/lib/docker/volumes/nextcloud_aio_nextcloud/_data/lib/versioncheck.php`. (There you will find information about the max. supported PHP version.)
1. Run the following commands in order to reverse engineer the Nextcloud container:
```bash
sudo docker pull assaflavie/runlike
echo '#/bin/bash' > /tmp/nextcloud-aio-nextcloud
sudo docker run --rm -v /var/run/docker.sock:/var/run/docker.sock assaflavie/runlike -p nextcloud-aio-nextcloud >> /tmp/nextcloud-aio-nextcloud
sudo chown root:root /tmp/nextcloud-aio-nextcloud
```
1. Now open the file with e.g. nano: `sudo nano /tmp/nextcloud-aio-nextcloud` and change the line that should probably be `nextcloud/aio-nextcloud:latest` on x64 or `nextcloud/aio-nextcloud:latest-arm64` on arm64 to the highest compatible PHP version: E.g. `nextcloud/aio-nextcloud:php8.0-latest` on x64 or `nextcloud/aio-nextcloud:php8.0-latest-arm64` on arm64. Then save the file and close it with `[Ctrl]+[o]` -> `[Enter]` and `[Ctrl]+[x]`.
1. After doing so, remove the Nextcloud container with `sudo docker rm nextcloud-aio-nextcloud`.
1. Now start the Nextcloud container with the new tag by simply running `sudo bash /tmp/nextcloud-aio-nextcloud` which at startup should automatically upgrade Nextcloud to a more recent version. If not, make sure that there is no `skip.update` file in the Nextcloud datadir. If there is such a file, simply delete the file and restart the container again.<br>
**Info**: You can open the Nextcloud container logs with `sudo docker logs -f nextcloud-aio-nextcloud`.
1. After the Nextcloud container is started (you can tell by looking at the logs), simply restart the container again with `sudo docker restart nextcloud-aio-nextcloud` until it does not install a new Nextcloud update anymore upon the container startup.
1. Now, you should be able to use the AIO interface again by simply stopping the AIO containers and starting them again which should finally bring up your instance again.
1. If not and if you get the same error again, you may repeat the process starting from the beginning again until your Nextcloud version is finally up-to-date.
1. Now, if everything is finally running as usual again, it is recommended to create a backup in order to save the current state. Also you should think about enabling daily backups if doing regularl upgrades is too much effort for you.

View File

@@ -1,11 +1,11 @@
## How to migrate from an already existing Nextcloud installation to Nextcloud AIO?
# 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:
1. Migrate only the files which is the easiest way
1. Migrate the files and the database which is much more complicated
### Migrate only the files
## Migrate only the files
**Please note**: If you used groupfolders or encrypted your files before, you will need to restore the database, as well!
The procedure for migrating only the files works like this:
@@ -14,16 +14,16 @@ The procedure for migrating only the files works like this:
1. Recreate all users that were present on your former installation
1. Take a backup using Nextcloud AIO's built-in backup solution (so that you can easily restore to this state again) (Note: this will stop all containers and is expected: don't start the container again at this point!)
1. Restore the datadirectory of your former instance into the following directory: `/var/lib/docker/volumes/nextcloud_aio_nextcloud_data/_data/`
1. Next, run `sudo chown -R 33:0 /var/lib/docker/volumes/nextcloud_aio_nextcloud_data/_data/*` to apply the correct permissions
1. Next, run `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/*` to apply the correct permissions
1. Start the containers again and wait until all containers are running
1. Run `sudo docker exec -it nextcloud-aio-nextcloud php occ files:scan-app-data && sudo docker exec -it nextcloud-aio-nextcloud php occ files:scan --all` in order to scan all files in the datadirectory.
### Migrate the files and the database
## Migrate the files and the database
**Please note**: this is much more complicated than migrating only the files and also not as failproof so be warned!<br>
Also, you will currently not be able to use local external storage in Nextcloud AIO since that is not supported, yet. See https://github.com/nextcloud/all-in-one/issues/76
The procedure for migrating the files and the database works like this:
1. Make sure that your old instance is on exactly the same version like the version used in Nextcloud AIO. (e.g. 23.0.0) If not, simply upgrade your former installation to that version or wait until the version used in Nextcloud AIO got updated to the same version of your former installation or the other way around.
1. Make sure that your old instance is on exactly the same version like the version used in Nextcloud AIO. (e.g. 23.0.0) You can find the used version here: [click here](https://github.com/nextcloud/all-in-one/search?l=Dockerfile&q=NEXTCLOUD_VERSION&type=). If not, simply upgrade your former installation to that version or wait until the version used in Nextcloud AIO got updated to the same version of your former installation or the other way around.
1. Take a backup of your former instance (especially from your datadirectory and database)
1. If your former installation didn't use Postgresql already, you will now need to convert your old installation to use Postgresql as database temporarily (in order to be able to perform a pg_dump afterwards):
1. Install Postgresql on your former installation: on a Debian based OS should the following command work:
@@ -36,13 +36,13 @@ The procedure for migrating the files and the database works like this:
export PG_PASSWORD="my-temporary-password"
export PG_DATABASE="nextcloud_db"
sudo -u postgres psql <<END
CREATE USER $PG_USER WITH PASSWORD '$PGDB_PASS';
CREATE USER $PG_USER WITH PASSWORD '$PG_PASSWORD';
CREATE DATABASE $PG_DATABASE WITH OWNER $PG_USER TEMPLATE template0 ENCODING 'UTF8';
END
```
1. Run the following command to start the conversion:
```
occ db:convert-type --all-apps --password "$PGDB_PASS" pgsql "$PG_USER" 127.0.0.1 "$PG_DATABASE"
occ db:convert-type --all-apps --password "$PG_PASSWORD" pgsql "$PG_USER" 127.0.0.1 "$PG_DATABASE"
```
**Please note:** You might need to change the ip-address `127.0.0.1` based on your exact installation.<br>
Further information on the conversion is additionally available here: https://docs.nextcloud.com/server/stable/admin_manual/configuration_database/db_conversion.html#converting-database-type
@@ -54,7 +54,7 @@ The procedure for migrating the files and the database works like this:
```
**Please note:** The exact name of the database export file is important! (`database-dump.sql`)<br>
And of course you need to to use the correct name that the Postgresql database has for the export (if `$PG_DATABASE` doesn't work directly).
1. At this point, you can finally install Nextcloud AIO on a new server/linux installation, enter your domain (use the same domain that you used on your former installation) and wait until all containers are running
1. At this point, you can finally install Nextcloud AIO on a new server/linux installation, enter your domain in the AIO interface (use the same domain that you used on your former installation) and wait until all containers are running. Then you should check the included Nextcloud version by running `sudo docker inspect nextcloud-aio-nextcloud | grep NEXTCLOUD_VERSION`.
1. Next, take a backup using Nextcloud AIO's built-in backup solution (so that you can easily restore to this state again) (Note: this will stop all containers and is expected: don't start the container again at this point!)
1. Now, we are slowly starting to import your files and database. First, you need to modify the datadirectory that is stored inside the database export:
1. Find out what the directory of your old Nextcloud installation is by e.g. opening the config.php file and looking at the value `datadirectory`.
@@ -73,7 +73,7 @@ The procedure for migrating the files and the database works like this:
sudo rm -r /var/lib/docker/volumes/nextcloud_aio_database/_data/*
```
1. If the commands above were executed successfully, restore the datadirectory of your former instance into the following directory: `/var/lib/docker/volumes/nextcloud_aio_nextcloud_data/_data/`
1. Next, run `sudo chown -R 33:0 /var/lib/docker/volumes/nextcloud_aio_nextcloud_data/_data/*` to apply the correct permissions
1. Next, run `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/*`to apply the correct permissions
1. Edit the Nextcloud AIO config.php file that is stored in `/var/lib/docker/volumes/nextcloud_aio_nextcloud/_data/config/config.php` and modify only `passwordsalt`, `secret`, `instanceid` and set it to the old values that you used on your old installation. If you are brave, feel free to modify further values e.g. add your old LDAP config or S3 storage config. (Some things like Mail server config can be added back using Nextcloud's webinterface later on).
1. When you are done and saved your changes to the file, finally start the containers again and wait until all containers are running.
1. Now run `sudo docker exec -it nextcloud-aio-nextcloud php occ maintenance:data-fingerprint`.

24
php/composer.lock generated
View File

@@ -389,16 +389,16 @@
},
{
"name": "laravel/serializable-closure",
"version": "v1.1.1",
"version": "v1.2.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/serializable-closure.git",
"reference": "9e4b005daa20b0c161f3845040046dc9ddc1d74e"
"reference": "09f0e9fb61829f628205b7c94906c28740ff9540"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/serializable-closure/zipball/9e4b005daa20b0c161f3845040046dc9ddc1d74e",
"reference": "9e4b005daa20b0c161f3845040046dc9ddc1d74e",
"url": "https://api.github.com/repos/laravel/serializable-closure/zipball/09f0e9fb61829f628205b7c94906c28740ff9540",
"reference": "09f0e9fb61829f628205b7c94906c28740ff9540",
"shasum": ""
},
"require": {
@@ -444,7 +444,7 @@
"issues": "https://github.com/laravel/serializable-closure/issues",
"source": "https://github.com/laravel/serializable-closure"
},
"time": "2022-02-11T19:23:53+00:00"
"time": "2022-05-16T17:09:47+00:00"
},
{
"name": "nikic/fast-route",
@@ -1677,16 +1677,16 @@
},
{
"name": "twig/twig",
"version": "v3.3.10",
"version": "v3.4.1",
"source": {
"type": "git",
"url": "https://github.com/twigphp/Twig.git",
"reference": "8442df056c51b706793adf80a9fd363406dd3674"
"reference": "e939eae92386b69b49cfa4599dd9bead6bf4a342"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/8442df056c51b706793adf80a9fd363406dd3674",
"reference": "8442df056c51b706793adf80a9fd363406dd3674",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/e939eae92386b69b49cfa4599dd9bead6bf4a342",
"reference": "e939eae92386b69b49cfa4599dd9bead6bf4a342",
"shasum": ""
},
"require": {
@@ -1701,7 +1701,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.3-dev"
"dev-master": "3.4-dev"
}
},
"autoload": {
@@ -1737,7 +1737,7 @@
],
"support": {
"issues": "https://github.com/twigphp/Twig/issues",
"source": "https://github.com/twigphp/Twig/tree/v3.3.10"
"source": "https://github.com/twigphp/Twig/tree/v3.4.1"
},
"funding": [
{
@@ -1749,7 +1749,7 @@
"type": "tidelift"
}
],
"time": "2022-04-06T06:47:41+00:00"
"time": "2022-05-17T05:48:52+00:00"
}
],
"packages-dev": [],

View File

@@ -0,0 +1,79 @@
{
"type": "object",
"description": "AIO containers definition schema",
"additionalProperties": false,
"minProperties": 1,
"properties": {
"production": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"minProperties": 11,
"properties": {
"containerName": {
"type": "string"
},
"dependsOn": {
"type": "array",
"items": {
"type": "string"
}
},
"displayName": {
"type": "string"
},
"environmentVariables": {
"type": "array",
"items": {
"type": "string"
}
},
"identifier": {
"type": "string"
},
"internalPorts": {
"type": "array",
"items": {
"type": "string"
}
},
"maxShutdownTime": {
"type": "integer"
},
"ports": {
"type": "array",
"items": {
"type": "string"
}
},
"restartPolicy": {
"type": "string"
},
"secrets": {
"type": "array"
},
"volumes": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"minProperties": 3,
"properties": {
"location": {
"type": "string"
},
"name": {
"type": "string"
},
"writeable": {
"type": "boolean"
}
}
}
}
}
}
}
}
}

View File

@@ -1,6 +1,7 @@
{
"production": [
{
"identifier": "nextcloud-aio-apache",
"dependsOn": [
"nextcloud-aio-onlyoffice",
"nextcloud-aio-collabora",
@@ -8,7 +9,6 @@
"nextcloud-aio-talk",
"nextcloud-aio-nextcloud"
],
"identifier": "nextcloud-aio-apache",
"displayName": "Apache",
"containerName": "nextcloud/aio-apache",
"ports": [
@@ -42,8 +42,8 @@
"restartPolicy": "unless-stopped"
},
{
"dependsOn": [],
"identifier": "nextcloud-aio-database",
"dependsOn": [],
"displayName": "Database",
"containerName": "nextcloud/aio-postgresql",
"ports": [],
@@ -74,11 +74,11 @@
"restartPolicy": "unless-stopped"
},
{
"identifier": "nextcloud-aio-nextcloud",
"dependsOn": [
"nextcloud-aio-database",
"nextcloud-aio-redis"
],
"identifier": "nextcloud-aio-nextcloud",
"displayName": "Nextcloud",
"containerName": "nextcloud/aio-nextcloud",
"ports": [],
@@ -140,8 +140,8 @@
"restartPolicy": "unless-stopped"
},
{
"dependsOn": [],
"identifier": "nextcloud-aio-redis",
"dependsOn": [],
"displayName": "Redis",
"containerName": "nextcloud/aio-redis",
"ports": [],
@@ -159,8 +159,8 @@
"restartPolicy": "unless-stopped"
},
{
"dependsOn": [],
"identifier": "nextcloud-aio-collabora",
"dependsOn": [],
"displayName": "Collabora",
"containerName": "nextcloud/aio-collabora",
"ports": [],
@@ -177,8 +177,8 @@
"restartPolicy": "unless-stopped"
},
{
"dependsOn": [],
"identifier": "nextcloud-aio-talk",
"dependsOn": [],
"displayName": "Talk",
"containerName": "nextcloud/aio-talk",
"ports": [
@@ -204,8 +204,8 @@
"restartPolicy": "unless-stopped"
},
{
"dependsOn": [],
"identifier": "nextcloud-aio-borgbackup",
"dependsOn": [],
"displayName": "Borgbackup",
"containerName": "nextcloud/aio-borgbackup",
"ports": [],
@@ -265,8 +265,8 @@
"restartPolicy": ""
},
{
"dependsOn": [],
"identifier": "nextcloud-aio-watchtower",
"dependsOn": [],
"displayName": "Watchtower",
"containerName": "nextcloud/aio-watchtower",
"ports": [],
@@ -306,8 +306,8 @@
"restartPolicy": ""
},
{
"dependsOn": [],
"identifier": "nextcloud-aio-clamav",
"dependsOn": [],
"displayName": "ClamAV",
"containerName": "nextcloud/aio-clamav",
"ports": [],
@@ -327,8 +327,8 @@
"restartPolicy": "unless-stopped"
},
{
"dependsOn": [],
"identifier": "nextcloud-aio-onlyoffice",
"dependsOn": [],
"displayName": "OnlyOffice",
"containerName": "nextcloud/aio-onlyoffice",
"ports": [],

View File

@@ -16,7 +16,7 @@
</header>
<div class="content">
<h1>Nextcloud AIO v1.2.0</h1>
<h1>Nextcloud AIO v1.2.1</h1>
{% set isAnyRunning = false %}
{% set isAnyRestarting = false %}
@@ -175,11 +175,12 @@
<summary>Click here to reveal the initial Nextcloud credentials</summary><br />
{% endif %}
Initial Nextcloud username: <b>admin</b><br />
Initial Nextcloud password: <b>{{ nextcloud_password }}</b>
Initial Nextcloud password:
{% if borg_backup_host_location != '' %}
</details><br /><br />
{# nextcloud_password needs to be duplicated due to a bug in Firefox. See https://github.com/nextcloud/all-in-one/issues/638. #}
<b>{{ nextcloud_password }}</b></details><br /><br />
{% else %}
<br><br>
<b>{{ nextcloud_password }}</b><br><br>
{% endif %}
<a href="https://{{ domain }}" class="button" target="_blank" rel="noopener">Open your Nextcloud ↗</a><br/>
{% else %}

View File

@@ -17,8 +17,8 @@ The following instructions are especially meant for Linux. For macOS see [this](
curl -fsSL get.docker.com | sudo sh
```
2. Run the following command in order to start the container:<br>
(For people that cannot use ports 80 and/or 443 on this server, please follow [this documentation](https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md). Otherwise please run the command below!)
2. Run the command below in order to start the container:<br><br>
(For people that cannot use ports 80 and/or 443 on this server, please follow the [reverse proxy documentation](https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md) because port 443 is used by this project and opened on the host by default even though it does not look like this is the case. Otherwise please run the command below!)
```
# For x64 CPUs:
sudo docker run -it \
@@ -50,8 +50,8 @@ The following instructions are especially meant for Linux. For macOS see [this](
</details>
3. After the initial startup, you should be able to open the Nextcloud AIO Interface now on port 8080 of this server.<br>
E.g. `https://ip.address.of.this.server:8080`<br>
If your firewall/router has port 80 and 8443 open and you point a domain to your server, you can get a valid certificate automatially by opening the Nextcloud AIO Interface via:<br>
E.g. `https://ip.address.of.this.server:8080`<br><br>
If your firewall/router has port 80 and 8443 open and you point a domain to your server, you can get a valid certificate automatically by opening the Nextcloud AIO Interface via:<br>
`https://your-domain-that-points-to-this-server.tld:8443`
4. Please do not forget to open port `3478/TCP` and `3478/UDP` in your firewall/router for the Talk container!
@@ -63,7 +63,7 @@ Nextcloud AIO is inspired by projects like Portainer that manage the docker daem
Yes. Please refer to the following documentation on this: [reverse-proxy.md](https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md)
### Which ports are mandatory to be open in your firewall/router?
Only those (if you acces the Mastercontainer Interface internally via port 8080):
Only those (if you access the Mastercontainer Interface internally via port 8080):
- `443/TCP` for the Apache container
- `3478/TCP` and `3478/UDP` for the Talk container
@@ -292,14 +292,14 @@ You can configure the Nextcloud container to use a specific directory on your ho
- An example for Linux is `-e NEXTCLOUD_DATADIR="/mnt/ncdata"`.
- On macOS it might be `-e NEXTCLOUD_DATADIR="/var/nextcloud-data"`
- For Synology it may be `/volume1/docker/nextcloud/data`.
- For Synology it may be `-e NEXTCLOUD_DATADIR="/volume1/docker/nextcloud/data"`.
- On Windows it might be `-e NEXTCLOUD_DATADIR="/host_mnt/c/your/data/path"` (This Windows 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.)
⚠ Please make sure to apply the correct permissions to the chosen directory before starting Nextcloud the first time (not needed on Windows).
- In this example for Linux, the command for this would be `sudo chown -R 33:0 /mnt/ncdata`.
- On macOS, the command for this would be `sudo chown -R 33:0 /var/nextcloud-data`.
- For Synology, the command for this example would be `sudo chown -R 33:0 /volume1/docker/nextcloud/data`
- In this example for Linux, the command for this would be `sudo chown -R 33:0 /mnt/ncdata` and `sudo chmod -R 750 /mnt/ncdata`.
- On macOS, the command for this would be `sudo chown -R 33:0 /var/nextcloud-data` and `sudo chmod -R 750 /var/nextcloud-data`.
- 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!
@@ -308,10 +308,10 @@ You can configure the Nextcloud container to use a specific directory on your ho
By default, the Nextcloud container is confined and cannot access directories on the host OS. You might want to change this when you are planning to use local external storage in Nextcloud to store some files outside the data directory and can do so by adding the environmental variable `NEXTCLOUD_MOUNT` to the initial startup of the mastercontainer. Allowed values for that variable are strings that start with `/` and are not equal to `/`.
- Two examples for Linux are `-e NEXTCLOUD_MOUNT="/mnt/"` and `-e NEXTCLOUD_MOUNT="/media/"`.
- For Synology it may be `/volume1/`.
- For Synology it may be `-e NEXTCLOUD_MOUNT="/volume1/"`.
- On Windows it might be `-e NEXTCLOUD_MOUNT="/host_mnt/c"` (This Windows example would be equivalent to `C:\` on the Windows host. So you need to translate the path that you want to use into the correct format.)
After using this option, please make sure to apply the correct permissions to the directories that you want to use in Nextcloud (not needed on Windows). E.g. `sudo chown -R 33:0 /mnt/your-drive-mountpoint` should make it work on Linux when you have used `-e NEXTCLOUD_MOUNT="/mnt/"`.
After using this option, please make sure to apply the correct permissions to the directories that you want to use in Nextcloud (not needed on Windows). E.g. `sudo chown -R 33:0 /mnt/your-drive-mountpoint` and `sudo chmod -R 750 /mnt/your-drive-mountpoint` should make it work on Linux when you have used `-e NEXTCLOUD_MOUNT="/mnt/"`.
You can then navigate to the apps management page, activate the external storage app, navigate to `https://your-nc-domain.com/settings/admin/externalstorages` and add a local external storage directory that will be accessible inside the container at the same place that you've entered. E.g. `/mnt/your-drive-mountpoint` will be mounted to `/mnt/your-drive-mountpoint` inside the container, etc.
@@ -323,7 +323,7 @@ When your containers run for a few days without a restart, the container logs th
### Access/Edit Nextcloud files/folders manually
The files and folders that you add to Nextcloud are by default stored in the following directory: `/var/lib/docker/volumes/nextcloud_aio_nextcloud_data/_data/` on the host. If needed, you can modify/add/delete files/folders there but **ATTENTION**: be very careful when doing so because you might corrupt your AIO installation! Best is to create a backup using the built-in backup solution before editing/changing files/folders in there because you will then be able to restore your instance to the backed up state.
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 rescan the files with `sudo docker exec -it nextcloud-aio-nextcloud php occ files:scan --all`.
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 -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>
@@ -333,7 +333,7 @@ You can move the whole docker library and all its files including all Nextcloud
You can edit Nextclouds config.php file directly from the host with your favorite text editor. E.g. like this: `sudo nano /var/lib/docker/volumes/nextcloud_aio_nextcloud/_data/config/config.php`. Make sure to not break the file though which might corrupt your Nextcloud instance otherwise. In best case, create a backup using the built-in backup solution before editing the file.
### Custom skeleton directory
If you want to define a custom skeleton directory, you can do so by 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 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)
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)
### 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/osixia/openldap/. 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. **Pro-tip**: You will probably find this app useful: https://apps.nextcloud.com/apps/ldap_write_support

View File

@@ -1,4 +1,4 @@
## Reverse Proxy Documentation
# 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 3](#3-optional-get-a-valid-certificate-for-the-aio-interface).
@@ -10,11 +10,11 @@ In order to run Nextcloud behind a reverse proxy, you need to specify the port t
- Optional: get a valid certificate for the AIO interface! See [point 3](#3-optional-get-a-valid-certificate-for-the-aio-interface)
- How to debug things? See [point 4](#4-how-to-debug-things)
### 1. Add this to your reverse proxy config
## 1. Add this to your reverse proxy config
**Please note:** Since the Apache container gets spawned by the mastercontainer, there is **NO** way to provide custom docker labels or custom environmental variables for the Apache container. So please do not attempt to do this because you will fail! Only the documented way will work!
#### Caddy
### Caddy
<details>
@@ -33,7 +33,7 @@ Of course you need to modify `<your-nc-domain>` to the domain on which you want
</details>
#### Nginx
### Nginx
<details>
@@ -62,7 +62,7 @@ Of course you need to modify `<your-nc-domain>` to the domain on which you want
</details>
#### Nginx-Proxy
### Nginx-Proxy
<details>
@@ -73,12 +73,11 @@ Unfortunately it is not possible to configure nginx-proxy in a way that works be
If you really want to use AIO, we recommend you to switch to caddy. It is simply amazing!<br>
Of course understandable if that is not possible for you.
Apart from that, there is this idea: https://github.com/nextcloud/all-in-one/issues/557<br>
Pull requests are very welcome!
Apart from that, there is this: [manual-install](https://github.com/nextcloud/all-in-one/tree/main/manual-install)
</details>
#### Traefik 2
### Traefik 2
<details>
@@ -135,7 +134,17 @@ Of course you need to modify `<your-nc-domain>` in the nextcloud.toml to the dom
</details>
### 2. Use this startup command
### Others
<details>
<summary>click here to expand</summary>
Config examples for other reverse proxies are currently not documented. Pull requests are welcome!
</details>
## 2. Use this startup command
After adjusting your reverse proxy config, use the following command to start AIO:<br>
@@ -190,16 +199,16 @@ nextcloud/all-in-one:latest
</details>
#### Inspiration for a docker-compose file
### Inspiration for a docker-compose file
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?
### 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. Optional: get a valid certificate for the AIO interface
## 3. 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:
@@ -217,7 +226,7 @@ Of course you need to modify `<your-nc-domain>` in the nextcloud.toml to the dom
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.
### 4. How to debug things?
## 4. 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)