🔧 fix(nextcloud): configure EuroOffice internal URLs and preview provider

Three fixes applied when \$EUROOFFICE_HOST matches the default AIO
container naming pattern (nextcloud-*-eurooffice):

1. DocumentServerInternalUrl → http://\$EUROOFFICE_HOST:80/
   Bypasses the public domain for NC→EuroOffice converter calls.
   Trailing slash required; DocumentService.php concatenates the raw
   value with "converter" with no separator.

2. StorageUrl → http://\$APACHE_CONTAINER_HOST.nextcloud-aio:23973/
   Bypasses the public domain for EuroOffice→NC file fetch calls.
   Port 23973 is the Collabora WOPI ingress; port 11000 rejects
   requests where Host doesn't match the nextcloud.test binding.
   Trailing slash required to avoid malformed replacement URLs.

3. enabledPreviewProviders index 50 → OCA\Eurooffice\Preview
   NC's allowlist is explicit; registerPreviewProvider() alone is
   insufficient. Fixed index 50 avoids collision with AIO's seeded
   range (1–7, 23).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: James Manuel <moodyjmz@users.noreply.github.com>
This commit is contained in:
James Manuel
2026-06-08 15:52:18 +02:00
parent 4a35fda9d2
commit f3abe7bc21
+13
View File
@@ -903,11 +903,24 @@ if [ "$EUROOFFICE_ENABLED" = 'yes' ]; then
# Adjust the EuroOffice host if using internal pattern
if echo "$EUROOFFICE_HOST" | grep -q "nextcloud-.*-eurooffice"; then
# Set internal URLs for server-to-server calls via Docker network,
# bypassing the public domain which may not resolve inside containers.
# DocumentServerInternalUrl: NC -> EuroOffice (direct container port)
# StorageUrl: EuroOffice -> NC (via port 23973 which has a matching Caddy server-block)
APACHE_CONTAINER_HOST=$(echo "$EUROOFFICE_HOST" | sed 's/-eurooffice$/-apache/')
php /var/www/html/occ config:app:set eurooffice DocumentServerInternalUrl --value="http://$EUROOFFICE_HOST:80/"
php /var/www/html/occ config:app:set eurooffice StorageUrl --value="http://$APACHE_CONTAINER_HOST.nextcloud-aio:23973/"
EUROOFFICE_HOST="$NC_DOMAIN/eurooffice"
export EUROOFFICE_HOST
fi
php /var/www/html/occ config:app:set eurooffice DocumentServerUrl --value="https://$EUROOFFICE_HOST"
# Register EuroOffice preview provider in the explicit allowlist.
# Use a high fixed index (50) to avoid colliding with AIO's seeded indices (1-7, 23).
if ! php /var/www/html/occ config:system:get enabledPreviewProviders | grep -q "Eurooffice"; then
php /var/www/html/occ config:system:set enabledPreviewProviders 50 --value="OCA\Eurooffice\Preview"
fi
fi
else
# Remove EuroOffice app if disabled and removal is requested