Compare commits

...

30 Commits

Author SHA1 Message Date
Simon L
fafc456065 Merge pull request #2542 from nextcloud/aio-helm-update
Helm Chart updates
2023-05-11 11:48:37 +02:00
szaimen
bbeb7e2db2 Helm Chart updates
Signed-off-by: GitHub <noreply@github.com>
2023-05-11 09:48:01 +00:00
Simon L
285407e176 fix detail
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-05-11 11:47:36 +02:00
Simon L
f15b890b28 Merge pull request #2539 from nextcloud/enh/noid/fix-helm-chart-update
try to fix the helm-chart-update workflow
2023-05-11 11:44:59 +02:00
Simon L
2f2398c704 try to fix the helm-chart-update workflow
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-05-11 11:38:40 +02:00
Simon L
189728f765 Merge pull request #2520 from nextcloud/enh/noid/borg-enhancements
backup script - a few enhancements and safeguards
2023-05-11 10:08:32 +02:00
Simon L
c25587bcc3 Merge pull request #2519 from nextcloud/mastercontainer-root-check
add root user check for mastercontainer
2023-05-11 10:06:12 +02:00
Simon L
fa93f207eb Merge pull request #2536 from nextcloud/enh/noid/update-mastercontainer
update mastercontainer to php 8.2
2023-05-11 10:04:48 +02:00
Simon L
d5b5a1eae6 Merge pull request #2518 from nextcloud/dependabot/docker/Containers/collabora/collabora/code-22.05.14.3.1
Bump collabora/code from 22.05.13.1.1 to 22.05.14.3.1 in /Containers/collabora
2023-05-11 10:03:38 +02:00
Simon L
53f7fa70a0 Merge pull request #2528 from nextcloud/dependabot/docker/Containers/mastercontainer/docker-23.0.6-cli
Bump docker from 23.0.5-cli to 23.0.6-cli in /Containers/mastercontainer
2023-05-11 10:03:05 +02:00
Simon L
fceeb4be10 Merge pull request #2535 from nextcloud/enh/1992/add-coturn-version
add r0 to coturn version
2023-05-11 10:02:41 +02:00
dependabot[bot]
c6f49ee45c Bump docker from 23.0.5-cli to 23.0.6-cli in /Containers/mastercontainer
Bumps docker from 23.0.5-cli to 23.0.6-cli.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-11 08:00:56 +00:00
Simon L
8aa4c8a13e Merge pull request #2484 from nextcloud/aio-yaml-update
Yaml updates
2023-05-11 09:59:38 +02:00
Simon L
cd0b4cf1cc add a video on traefik configuration
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-05-10 23:22:14 +02:00
Simon L
72909bde64 update mastercontainer to php 8.2
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-05-10 20:44:07 +02:00
Simon L
1f6ab346a3 add r0 to coturn version
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-05-10 20:30:26 +02:00
Simon L
1f7f675454 add a section on Synology what to do if the socket could not be found
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-05-10 14:33:03 +02:00
szaimen
bd4afa7cff Yaml updates
Signed-off-by: GitHub <noreply@github.com>
2023-05-10 12:03:09 +00:00
Simon L
d1e781617c add detail to talk_port docs
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-05-09 16:21:42 +02:00
Zoey
40c3a24b8b Update Containers/mastercontainer/start.sh
Co-authored-by: Simon L. <szaimen@e.mail.de>
Signed-off-by: Zoey <zoey@z0ey.de>
2023-05-09 11:17:39 +02:00
Simon L
9035f47611 backup script - a few enhancements and safeguards
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-05-09 00:54:15 +02:00
Zoey
a9960c8d6a add root user check for mastercontainer
Signed-off-by: Zoey <zoey@z0ey.de>
2023-05-08 22:59:47 +02:00
dependabot[bot]
616159c1b8 Bump collabora/code in /Containers/collabora
Bumps collabora/code from 22.05.13.1.1 to 22.05.14.3.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-08 12:59:44 +00:00
Simon L
45ec758e54 Merge pull request #2514 from iraklis10/patch-1
Update local-instance.md
2023-05-08 11:17:56 +02:00
iraklis10
6a300d03a6 Update local-instance.md
minor typo

Signed-off-by: iraklis10 <1414477+iraklis10@users.noreply.github.com>
2023-05-07 19:35:02 +01:00
Simon L
ef93976ba5 Merge pull request #2512 from nextcloud/automated/noid/psalm-baseline-update-1683259719
[Automated] Update psalm-baseline.xml
2023-05-05 08:03:36 +02:00
nextcloud-command
49e9c74a77 Update psalm baseline
Signed-off-by: GitHub <noreply@github.com>
2023-05-05 04:08:39 +00:00
Simon L
9ba7962320 Merge pull request #2340 from JL102/main
Proxy instructions for NodeJS/express
2023-05-04 18:30:42 +02:00
Simon L
e30b0f878b adjust the docs a bit
Signed-off-by: Simon L <szaimen@e.mail.de>
Signed-off-by: JL102 <jordanlees@mailbox.org>
2023-05-03 21:26:44 -04:00
JL102
dcf83fafcc Proxy instructions for NodeJS/express
Signed-off-by: JL102 <jordanlees@mailbox.org>
2023-05-03 21:26:44 -04:00
32 changed files with 176 additions and 49 deletions

View File

@@ -23,7 +23,7 @@ jobs:
- name: Modify the Dockerfile
run: |
set -x
sed -i 's|FROM php:7.4-alpine|FROM php:8.1-alpine|' "psalm-github-actions/Dockerfile"
sed -i 's|FROM php:7.4-alpine|FROM php:8.2-alpine|' "psalm-github-actions/Dockerfile"
cat << APCU >> "psalm-github-actions/Dockerfile"
RUN mkdir -p /usr/src/php/ext/apcu && \
curl -fsSL https://pecl.php.net/get/apcu | tar xvz -C "/usr/src/php/ext/apcu" --strip 1 && \

View File

@@ -13,7 +13,7 @@ jobs:
- uses: actions/checkout@v3
- uses: shivammathur/setup-php@v2
with:
php-version: 8.1
php-version: 8.2
extensions: apcu
- name: Run dependency update script
run: |

View File

@@ -23,7 +23,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
php-versions: ["8.1"]
php-versions: ["8.2"]
name: php-lint

View File

@@ -13,10 +13,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up php8.1
- name: Set up php8.2
uses: shivammathur/setup-php@v2
with:
php-version: 8.1
php-version: 8.2
extensions: apcu
coverage: none

View File

@@ -12,10 +12,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up php8.1
- name: Set up php8.2
uses: shivammathur/setup-php@v2
with:
php-version: 8.1
php-version: 8.2
extensions: apcu
coverage: none

View File

@@ -12,10 +12,10 @@ jobs:
steps:
- uses: actions/checkout@v3
- name: Set up php8.1
- name: Set up php8.2
uses: shivammathur/setup-php@v2
with:
php-version: 8.1
php-version: 8.2
extensions: apcu
coverage: none

View File

@@ -18,7 +18,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
php-versions: ["8.1"]
php-versions: ["8.2"]
name: twig-lint

View File

@@ -86,8 +86,9 @@ if [ "$BORG_MODE" = backup ]; then
if ! [ -f "$BORG_BACKUP_DIRECTORY/config" ]; then
# Don't initialize if already initialized
if [ -f "/nextcloud_aio_volumes/nextcloud_aio_mastercontainer/data/borg.config" ]; then
echo "Cannot initialize a new repository as that was already done at least one time."
echo "If you still want to do so, you may delete the 'borg.config' file that is stored in the mastercontainer volume manually, which will allow you to initialize a new borg repository in the chosen directory:"
echo "No borg config file was found in the targeted directory."
echo "This might happen if the targeted directory is located on an external drive and the drive not connected anymore. You should check this."
echo "If you instead want to initialize a new backup repository, you may delete the 'borg.config' file that is stored in the mastercontainer volume manually, which will allow you to initialize a new borg repository in the chosen directory:"
echo "sudo docker exec nextcloud-aio-mastercontainer rm /mnt/docker-aio-config/data/borg.config"
exit 1
fi
@@ -132,6 +133,13 @@ if [ "$BORG_MODE" = backup ]; then
# Exclude the nextcloud log and audit log for GDPR reasons
BORG_EXCLUDE=(--exclude "/nextcloud_aio_volumes/nextcloud_aio_nextcloud/data/nextcloud.log*" --exclude "/nextcloud_aio_volumes/nextcloud_aio_nextcloud/data/audit.log")
# Make sure that there is always a borg.config file before creating a new backup
if ! [ -f "/nextcloud_aio_volumes/nextcloud_aio_mastercontainer/data/borg.config" ]; then
echo "Did not find borg.config file in the mastercontainer volume."
echo "Cannot create a backup as this is wrong."
exit 1
fi
# Create the backup
echo "Starting the backup..."
get_start_time

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

View File

@@ -1,11 +1,11 @@
# Docker CLI is a requirement
FROM docker:23.0.5-cli as docker
FROM docker:23.0.6-cli as docker
# Caddy is a requirement
FROM caddy:2.6.4-alpine as caddy
# From https://github.com/docker-library/php/blob/master/8.1/alpine3.17/fpm/Dockerfile
FROM php:8.1.18-fpm-alpine3.17
# From https://github.com/docker-library/php/blob/master/8.2/alpine3.17/fpm/Dockerfile
FROM php:8.2.5-fpm-alpine3.17
RUN set -ex; \
apk add --no-cache shadow; \

View File

@@ -20,6 +20,12 @@ case "${1}" in
esac
}
# Check if running as root user
if [ "$EUID" != "0" ]; then
print_red "Container does not run as root user. This is not supported."
exit 1
fi
# Check if socket is available and readable
if ! [ -a "/var/run/docker.sock" ]; then
print_red "Docker socket is not available. Cannot continue."

View File

@@ -1,6 +1,6 @@
FROM nats:2.9.16-scratch as nats
FROM strukturag/nextcloud-spreed-signaling:1.1.2 as signaling
FROM coturn/coturn:4.6.2-alpine
FROM coturn/coturn:4.6.2-r0-alpine
USER root
COPY --from=nats /nats-server /usr/local/bin/nats-server

View File

@@ -6,7 +6,7 @@ The recommended way is the following:
1. Set up your domain correctly to point to your home network
1. Set up a reverse proxy by following the [reverse proxy documentation](./reverse-proxy.md) but only open port 80 (which is needed for the ACME challenge to work - however no real traffic will use this port).
1. Set up a local DNS-server like a pi-hole and configure it to be your local DNS-server for the whole network. Then in the Pi-hole interface, add a custom DNS-record for your domain and overwrite the A-record (and possibly the AAAA-record, too) to point to the private ip-address of your reverse proxy (see https://github.com/nextcloud/all-in-one#how-can-i-access-nextcloud-locally)
1. Enter the the ip-address of your local dns-server in the deamon.json file for docker so that you are sure that all docker containers use the correct local dns-server.
1. Enter the ip-address of your local dns-server in the deamon.json file for docker so that you are sure that all docker containers use the correct local dns-server.
1. Now, entering the domain in the AIO-interface should work as expected and should allow you to continue with the setup
## 2. Use the ACME DNS-challenge

View File

@@ -237,5 +237,13 @@ volumes:
nextcloud_aio_nextcloud_data:
name: nextcloud_aio_nextcloud_data
# Inspired by https://github.com/mailcow/mailcow-dockerized/blob/master/docker-compose.yml
networks:
nextcloud-aio:
name: nextcloud-aio
driver: bridge
enable_ipv6: true
ipam:
driver: default
config:
- subnet: ${IPV6_NETWORK}

View File

@@ -31,3 +31,4 @@ TALK_PORT=3478 # This allows to adjust the port that the talk container
TIMEZONE=Europe/Berlin # TODO! This is the timezone that your containers will use.
TURN_SECRET= # TODO! This needs to be a unique and good password!
UPDATE_NEXTCLOUD_APPS="no" # When setting to "yes" (with quotes), it will automatically update all installed Nextcloud apps upon container startup on saturdays.
IPV6_NETWORK=fd12:3456:789a:2::/64 # IPv6 subnet to use

View File

@@ -1,6 +1,6 @@
name: nextcloud-aio-helm-chart
description: A generated Helm Chart for Nextcloud AIO from Skippbox Kompose
version: 5.0.0
version: 5.1.0
apiVersion: v2
keywords:
- latest

View File

@@ -54,7 +54,7 @@ spec:
value: nextcloud-aio-talk
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-apache:20230501_090621-latest
image: nextcloud/aio-apache:20230511_075831-latest
name: nextcloud-aio-apache
ports:
- containerPort: {{ .Values.APACHE_PORT }}

View File

@@ -38,7 +38,7 @@ spec:
value: "90"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-clamav:20230501_090621-latest
image: nextcloud/aio-clamav:20230511_075831-latest
name: nextcloud-aio-clamav
ports:
- containerPort: 3310

View File

@@ -34,6 +34,8 @@ spec:
mountPath: /nextcloud-aio-collabora-fonts
containers:
- env:
- name: DONT_GEN_SSL_CERT
value: "1"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- name: aliasgroup1
@@ -44,7 +46,7 @@ spec:
value: --o:ssl.enable=false --o:ssl.termination=true --o:mount_jail_tree=false --o:logging.level=warning --o:home_mode.enable=true {{ .Values.COLLABORA_SECCOMP_POLICY }} --o:remote_font_config.url=https://{{ .Values.NC_DOMAIN }}/apps/richdocuments/settings/fonts.json
- name: server_name
value: "{{ .Values.NC_DOMAIN }}"
image: nextcloud/aio-collabora:20230501_090621-latest
image: nextcloud/aio-collabora:20230511_075831-latest
name: nextcloud-aio-collabora
ports:
- containerPort: 9980

View File

@@ -22,11 +22,25 @@ spec:
io.kompose.service: nextcloud-aio-database
spec:
initContainers:
- name: init-subpath
image: alpine
command:
- mkdir
- "-p"
- /nextcloud-aio-database/data
- /nextcloud-aio-database
- /nextcloud-aio-database-dump
volumeMounts:
- name: nextcloud-aio-database-dump
mountPath: /nextcloud-aio-database-dump
- name: nextcloud-aio-database
mountPath: /nextcloud-aio-database
- name: init-volumes
image: alpine
command:
- chown
- 999:999
- "-R"
- /nextcloud-aio-database
- /nextcloud-aio-database-dump
volumeMounts:
@@ -46,12 +60,13 @@ spec:
value: nextcloud
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-postgresql:20230501_090621-latest
image: nextcloud/aio-postgresql:20230511_075831-latest
name: nextcloud-aio-database
ports:
- containerPort: 5432
volumeMounts:
- mountPath: /var/lib/postgresql/data
subPath: data
name: nextcloud-aio-database
- mountPath: /mnt/data
name: nextcloud-aio-database-dump

View File

@@ -42,7 +42,7 @@ spec:
value: "{{ .Values.TIMEZONE }}"
- name: discovery.type
value: single-node
image: nextcloud/aio-fulltextsearch:20230501_090621-latest
image: nextcloud/aio-fulltextsearch:20230511_075831-latest
name: nextcloud-aio-fulltextsearch
ports:
- containerPort: 9200

View File

@@ -26,7 +26,7 @@ spec:
- env:
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-imaginary:20230501_090621-latest
image: nextcloud/aio-imaginary:20230511_075831-latest
name: nextcloud-aio-imaginary
ports:
- containerPort: 9000

View File

@@ -114,7 +114,7 @@ spec:
value: "{{ .Values.TIMEZONE }}"
- name: UPDATE_NEXTCLOUD_APPS
value: "{{ .Values.UPDATE_NEXTCLOUD_APPS }}"
image: nextcloud/aio-nextcloud:20230501_090621-latest
image: nextcloud/aio-nextcloud:20230511_075831-latest
name: nextcloud-aio-nextcloud
ports:
- containerPort: 9000

View File

@@ -42,7 +42,7 @@ spec:
value: "{{ .Values.ONLYOFFICE_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-onlyoffice:20230501_090621-latest
image: nextcloud/aio-onlyoffice:20230511_075831-latest
name: nextcloud-aio-onlyoffice
ports:
- containerPort: 80

View File

@@ -37,7 +37,7 @@ spec:
value: "{{ .Values.REDIS_PASSWORD }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-redis:20230501_090621-latest
image: nextcloud/aio-redis:20230511_075831-latest
name: nextcloud-aio-redis
ports:
- containerPort: 6379

View File

@@ -34,7 +34,7 @@ spec:
value: "{{ .Values.TURN_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-talk:20230501_090621-latest
image: nextcloud/aio-talk:20230511_075831-latest
name: nextcloud-aio-talk
ports:
- containerPort: {{ .Values.TALK_PORT }}

View File

@@ -32,6 +32,7 @@ sed -i "s|\${TALK_PORT}:\${TALK_PORT}/|$TALK_PORT:$TALK_PORT/|g" latest.yml
sed -i "s|- \${APACHE_PORT}|- $APACHE_PORT|" latest.yml
sed -i "s|- \${TALK_PORT}|- $TALK_PORT|" latest.yml
sed -i "s|\${NEXTCLOUD_DATADIR}|$NEXTCLOUD_DATADIR|" latest.yml
sed -i "/name: nextcloud-aio/,$ d" latest.yml
sed -i "/NEXTCLOUD_DATADIR/d" latest.yml
sed -i "/\${NEXTCLOUD_MOUNT}/d" latest.yml
sed -i "/^volumes:/a\ \ nextcloud_aio_nextcloud_trusted_cacerts:\n \ \ \ \ name: nextcloud_aio_nextcloud_trusted_cacerts" latest.yml
@@ -56,7 +57,7 @@ cat << EOL > /tmp/initcontainers
EOL
cat << EOL > /tmp/initcontainers.database
initContainers:
- init-subpath
- name: init-subpath
image: alpine
command:
- mkdir
@@ -187,6 +188,7 @@ sed -i 's|= |: |' /tmp/sample.conf
sed -i '/^NEXTCLOUD_DATADIR/d' /tmp/sample.conf
sed -i '/^APACHE_IP_BINDING/d' /tmp/sample.conf
sed -i '/^NEXTCLOUD_MOUNT/d' /tmp/sample.conf
sed -i '/^IPV6_NETWORK/d' /tmp/sample.conf
sed -i '/_ENABLED.*/s/ yes / "yes" /' /tmp/sample.conf
sed -i '/_ENABLED.*/s/ no / "no" /' /tmp/sample.conf
sed -i 's|^NEXTCLOUD_TRUSTED_CACERTS_DIR: .*|NEXTCLOUD_TRUSTED_CACERTS_DIR: # Setting this to any value allows to automatically import root certificates into the Nextcloud container|' /tmp/sample.conf

View File

@@ -5,7 +5,7 @@
}
},
"require": {
"php": "8.1.*",
"php": "8.2.*",
"ext-json": "*",
"ext-sodium": "*",
"ext-curl": "*",
@@ -22,6 +22,6 @@
"psalm": "psalm --threads=1",
"psalm:update-baseline": "psalm --threads=1 --update-baseline",
"lint": "find . -name \\*.php -not -path './vendor/*' -exec php -l {} \\;",
"php-deprecation-detector": "find . -name \\*.php -not -path './vendor/*' -exec phpdd scan {} -n -t 8.1 \\;"
"php-deprecation-detector": "find . -name \\*.php -not -path './vendor/*' -exec phpdd scan {} -n -t 8.2 \\;"
}
}

23
php/composer.lock generated
View File

@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "ca8e9b0dbbbd88c096dd8f2bda37a315",
"content-hash": "b0074cfbf6b5cde6d6d2207286ad2e85",
"packages": [
{
"name": "guzzlehttp/guzzle",
@@ -1642,16 +1642,16 @@
},
{
"name": "twig/twig",
"version": "v3.5.1",
"version": "v3.6.0",
"source": {
"type": "git",
"url": "https://github.com/twigphp/Twig.git",
"reference": "a6e0510cc793912b451fd40ab983a1d28f611c15"
"reference": "106c170d08e8415d78be2d16c3d057d0d108262b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/a6e0510cc793912b451fd40ab983a1d28f611c15",
"reference": "a6e0510cc793912b451fd40ab983a1d28f611c15",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/106c170d08e8415d78be2d16c3d057d0d108262b",
"reference": "106c170d08e8415d78be2d16c3d057d0d108262b",
"shasum": ""
},
"require": {
@@ -1660,15 +1660,10 @@
"symfony/polyfill-mbstring": "^1.3"
},
"require-dev": {
"psr/container": "^1.0",
"psr/container": "^1.0|^2.0",
"symfony/phpunit-bridge": "^4.4.9|^5.0.9|^6.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.5-dev"
}
},
"autoload": {
"psr-4": {
"Twig\\": "src/"
@@ -1702,7 +1697,7 @@
],
"support": {
"issues": "https://github.com/twigphp/Twig/issues",
"source": "https://github.com/twigphp/Twig/tree/v3.5.1"
"source": "https://github.com/twigphp/Twig/tree/v3.6.0"
},
"funding": [
{
@@ -1714,7 +1709,7 @@
"type": "tidelift"
}
],
"time": "2023-02-08T07:49:20+00:00"
"time": "2023-05-03T19:06:57+00:00"
}
],
"packages-dev": [],
@@ -1724,7 +1719,7 @@
"prefer-stable": false,
"prefer-lowest": false,
"platform": {
"php": "8.1.*",
"php": "8.2.*",
"ext-json": "*",
"ext-sodium": "*",
"ext-curl": "*",

View File

@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<files psalm-version="5.10.0@a5effd2d2dddd1a7ea7a0f6a051ce63ff979e356"/>
<files psalm-version="5.11.0@c9b192ab8400fdaf04b2b13d110575adc879aa90"/>

View File

@@ -170,6 +170,8 @@ Also, you may be interested in adjusting Nextcloud's Datadir to store the files
### How to run AIO on Synology DSM
On Synology, there are two things different in comparison to Linux: instead of using `--volume /var/run/docker.sock:/var/run/docker.sock:ro`, you need to use `--volume /volume1/docker/docker.sock:/var/run/docker.sock:ro` to run it. You also need to add `--env WATCHTOWER_DOCKER_SOCKET_PATH="/volume1/docker/docker.sock"`to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`). Apart from that it should work and behave the same like on Linux. Obviously the Synology Docker GUI will not work with that so you will need to either use SSH or create a user-defined script task in the task scheduler as the user 'root' in order to run the command.
⚠️ **Please note**: it is possible that the docker socket on your Synology is located in `/var/run/docker.sock` like the default on Linux. Then you can just use the Linux command without having to change anything - you will notice this when you try to start the container and it says that the bind mount failed. E.g. `docker: Error response from daemon: Bind mount failed: '/volume1/docker/docker.sock' does not exists.`
Also, you may be interested in adjusting Nextcloud's Datadir to store the files on the host system. See [this documentation](https://github.com/nextcloud/all-in-one#how-to-change-the-default-location-of-nextclouds-datadir) on how to do it.
You'll also need to adjust Synology's firewall, see below:
@@ -569,7 +571,7 @@ Be aware though that these locations will not be covered by the built-in backup
**Please note:** If you can't see the type "local storage" in the external storage admin options, a restart of the containers from the AIO interface may be required.
### 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. `--env TALK_PORT=3478` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) and adjusting the port to your desired value.
By default will the talk container use port `3478/UDP` and `3478/TCP` for connections. You can adjust the port by adding e.g. `--env TALK_PORT=3478` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) and adjusting the port to your desired value. Best is to use a port over 1024, so e.g. 3479 to not run into this: https://github.com/nextcloud/all-in-one/discussions/2517
### How to adjust the upload limit for Nextcloud?
By default are public uploads to Nextcloud limited to a max of 10G (logged in users can upload much bigger files using the webinterface or the mobile/desktop clients since chunking is used in that case). You can adjust the upload limit by providing `--env NEXTCLOUD_UPLOAD_LIMIT=10G` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) and customize the value to your fitting. It must start with a number and end with `G` e.g. `10G`.

View File

@@ -362,6 +362,94 @@ Of course you need to modify `<your-nc-domain>` to the domain on which you want
</details>
### Node.js with Express
<details>
<summary>click here to expand</summary>
**Disclaimer:** It might be possible that the config below is not working 100% correctly, yet. Improvements to it are very welcome!
For Node.js, we will use the npm package `http-proxy`. WebSockets must be handled separately.
This example only uses `http`, but if your Express server already uses a `https` server, then follow the same instructions for `https`.
```js
const HttpProxy = require('http-proxy');
const express = require('express');
const http = require('http');
const app = express();
const proxy = HttpProxy.createProxyServer({
target: 'http://localhost:11000',
// Timeout can be changed to your liking.
timeout: 1000 * 60 * 3,
proxyTimeout: 1000 * 60 * 3,
// Not 100% certain whether autoRewrite is necessary, but enabling it SEEMS to make it behave more stably.
autoRewrite: true,
// Do not enable followRedirects.
followRedirects: false,
});
// Handle errors with proxy.web and proxy.ws
function onProxyError(err, req, res, target) {
// Handle errors however you like. Here's an example:
if (err.code === 'ECONNREFUSED') {
return res.status(503).send('Nextcloud server is currently not running. It may be down for temporary maintenance.');
}
// other errors
else {
console.error(err);
return res.status(500).send(String(err));
}
}
app.use((req, res) => {
proxy.web(req, res, {}, onProxyError);
});
const httpServer = http.createServer(app);
httpServer.listen('80');
// Listen for an upgrade to a WebSocket connection.
httpServer.on('upgrade', (req, socket, head) => {
proxy.ws(req, socket, head, {}, onProxyError);
});
```
If you are using the Express package `vhost` for your app, you can use `proxy.web` inside the vhosted express function (see the following code snippet), but `proxy.ws` still needs to be done "globally" on your http server. Nextcloud should automatically ignore websocket requests for other domains.
```js
const HttpProxy = require('http-proxy');
const express = require('express');
const http = require('http');
const myNextcloudApp = express();
const myOtherApp = express();
const vhost = express();
// Definitions for proxy and onProxyError unchanged. (see above)
myNextcloudApp.use((req, res) => {
proxy.web(req, res, {}, onProxyError);
});
vhost.use(vhostFunc('<your-nextcloud-domain>', myNextcloudApp));
const httpServer = http.createServer(app);
httpServer.listen('80');
// Listen for an upgrade to a WebSocket connection.
httpServer.on('upgrade', (req, socket, head) => {
proxy.ws(req, socket, head, {}, onProxyError);
});
```
Of course you need to modify `<your-nc-domain>` to the domain on which you want to run Nextcloud. Also make sure to adjust the port 11000 to match the chosen `APACHE_PORT`.
**Please note:** The above configuration will only work if your reverse proxy is running directly on the host that is running the docker daemon. If the reverse proxy is running in a docker container, you can use the `--network host` option (or `network_mode: host` for docker-compose) when starting the reverse proxy container in order to connect the reverse proxy container to the host network. ***If that is not an option or not possible for you (like e.g. on Windows or if the reverse proxy is running on a different host), you can alternatively instead of `localhost` use the private ip-address of the host that is running the docker daemon. If you are not sure how to retrieve that, you can run: `ip a | grep "scope global" | head -1 | awk '{print $2}' | sed 's|/.*||'`. If the command returns a public ip-address, use `ip a | grep "scope global" | grep docker0 | awk '{print $2}' | sed 's|/.*||'` instead (the commands only work on Linux)***
</details>
### Synology Reverse Proxy
<details>
@@ -461,7 +549,7 @@ Of course you need to modify `<your-nextcloud-domain>` in the `nextcloud.yml` to
**Please note:** The above configuration will only work if your reverse proxy is running directly on the host that is running the docker daemon. If the reverse proxy is running in a docker container, you can use the `--network host` option (or `network_mode: host` for docker-compose) when starting the reverse proxy container in order to connect the reverse proxy container to the host network. ***If that is not an option or not possible for you (like e.g. on Windows or if the reverse proxy is running on a different host), you can alternatively instead of `localhost` use the private ip-address of the host that is running the docker daemon. If you are not sure how to retrieve that, you can run: `ip a | grep "scope global" | head -1 | awk '{print $2}' | sed 's|/.*||'`. If the command returns a public ip-address, use `ip a | grep "scope global" | grep docker0 | awk '{print $2}' | sed 's|/.*||'` instead (the commands only work on Linux)***
**Hint:** Possibly the following link is useful to understand how AIO configures things: https://github.com/nextcloud/all-in-one/blob/main/manual-install/latest.yml
**Hint**: see https://www.youtube.com/watch?v=VLPSRrLMDmA for a video on configuring Traefik.
</details>