From 09bbe2fd8785e7883c2c64516d8c2cbcf92d2e96 Mon Sep 17 00:00:00 2001 From: szaimen Date: Wed, 6 Apr 2022 21:14:41 +0200 Subject: [PATCH] make collabora work Signed-off-by: szaimen --- Containers/nextcloud/Dockerfile | 3 ++- Containers/nextcloud/activate-collabora.sh | 20 ++++++++++++++++++++ Containers/nextcloud/entrypoint.sh | 8 +------- Containers/nextcloud/supervisord.conf | 7 +++++++ 4 files changed, 30 insertions(+), 8 deletions(-) create mode 100644 Containers/nextcloud/activate-collabora.sh diff --git a/Containers/nextcloud/Dockerfile b/Containers/nextcloud/Dockerfile index 543f89a3..4b5e6d86 100644 --- a/Containers/nextcloud/Dockerfile +++ b/Containers/nextcloud/Dockerfile @@ -233,7 +233,8 @@ RUN set -ex; \ chmod +x /entrypoint.sh && \ chmod +r /upgrade.exclude && \ chmod +x /cron.sh && \ - chmod +x /notify.sh + chmod +x /notify.sh && \ + chmod +x /activate-collabora.sh RUN set -ex; \ mkdir /mnt/ncdata; \ diff --git a/Containers/nextcloud/activate-collabora.sh b/Containers/nextcloud/activate-collabora.sh new file mode 100644 index 00000000..1a6346c3 --- /dev/null +++ b/Containers/nextcloud/activate-collabora.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +COLLABORA_ACTIVATED=0 + +while true; do + if [ "$COLLABORA_ENABLED" != yes ]; then + # Basically sleep for forever if collabora is not enabled + sleep 365d + fi + if [ "$COLLABORA_ACTIVATED" != 0 ]; then + # Basically sleep for forever if collabora was activated + sleep 365d + fi + while ! nc -z "$NC_DOMAIN" 443; do + sleep 5 + done + echo "Activating collabora config" + php /var/www/html/occ richdocuments:activate-config + COLLABORA_ACTIVATED=1 +done diff --git a/Containers/nextcloud/entrypoint.sh b/Containers/nextcloud/entrypoint.sh index c21ad166..20a2f295 100644 --- a/Containers/nextcloud/entrypoint.sh +++ b/Containers/nextcloud/entrypoint.sh @@ -283,10 +283,6 @@ php /var/www/html/occ config:app:set notify_push base_endpoint --value="https:// # Collabora if [ "$COLLABORA_ENABLED" = 'yes' ]; then - while ! nc -z "$COLLABORA_HOST" 9980; do - echo "waiting for Collabora to become available..." - sleep 5 - done if ! [ -d "/var/www/html/custom_apps/richdocuments" ]; then php /var/www/html/occ app:install richdocuments elif [ "$(php /var/www/html/occ config:app:get richdocuments enabled)" = "no" ]; then @@ -294,11 +290,9 @@ if [ "$COLLABORA_ENABLED" = 'yes' ]; then else php /var/www/html/occ app:update richdocuments fi + php /var/www/html/occ config:app:set richdocuments wopi_url --value="https://$NC_DOMAIN/" # Fix https://github.com/nextcloud/all-in-one/issues/188: php /var/www/html/occ config:system:set allow_local_remote_servers --type=bool --value=true - php /var/www/html/occ config:app:set richdocuments wopi_url --value="http://$COLLABORA_HOST:9980/" - php /var/www/html/occ config:app:set richdocuments public_wopi_url --value="https://$NC_DOMAIN/" - php /var/www/html/occ richdocuments:activate-config else if [ -d "/var/www/html/custom_apps/richdocuments" ]; then php /var/www/html/occ config:system:delete allow_local_remote_servers diff --git a/Containers/nextcloud/supervisord.conf b/Containers/nextcloud/supervisord.conf index 08a6064f..f411e59b 100644 --- a/Containers/nextcloud/supervisord.conf +++ b/Containers/nextcloud/supervisord.conf @@ -28,3 +28,10 @@ stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 command=/var/www/html/custom_apps/notify_push/bin/%(ENV_CPU_ARCH)s/notify_push /var/www/html/config/config.php --port 7867 --redis-url redis://:%(ENV_REDIS_HOST_PASSWORD)s@%(ENV_REDIS_HOST)s + +[program:activate-collabora] +stdout_logfile=/dev/stdout +stdout_logfile_maxbytes=0 +stderr_logfile=/dev/stderr +stderr_logfile_maxbytes=0 +command=/activate-collabora.sh