The Basics
- Nextcloud Server version (e.g., 29.x.x):
latestDocker image tag (Nextcloud Hub 26 Spring (34.0.0))
- Operating system and version (e.g., Ubuntu 24.04):
- Synology DSM (DS720+) - DSM v.7.3.2-86009 Update 3
- Web server and version (e.g, Apache 2.4.25):
- Apache (default inside the
nextcloud:latestDocker image)
- Apache (default inside the
- Reverse proxy and version _(e.g. nginx 1.27.2)
- Nginx Proxy Manager (
jc21/nginx-proxy-manager:latestvia Docker) v.2.15.1
- Nginx Proxy Manager (
- PHP version (e.g, 8.3):
- Default from the
nextcloud:latestDocker image
- Default from the
- Is this the first time you’ve seen this error? (Yes / No):
- No - Got this since months, but had no time to search for a fix for that problem
- When did this problem seem to first start?
- Don´t know. Could be weeks or months
- Installation method (e.g. AlO, NCP, Bare Metal/Archive, etc.)
- Docker Compose (Portainer)
- Are you using CloudfIare, mod_security, or similar? (Yes / No)
- Yes, I am using Cloudflare for my domain (
sa****ome.de)
- Yes, I am using Cloudflare for my domain (
Summary of the issue you are facing:
I recently set up Nextcloud via Docker Compose. The container is accessible locally (via IP:Port) and externally via my domain through Nginx Proxy Manager and Cloudflare.
However, when I log into the WebUI and click on the 9-dot app menu in the top right corner to open certain apps, I only get a completely blank/white page.
This issue occurs with the following apps:
-
Files
-
Activity
-
Mail
-
Photos
-
Notes
Other parts of Nextcloud (like the Dashboard, Administration settings, etc.) work perfectly fine. The behavior is identical whether I access Nextcloud locally via my NAS IP (192.168.178.123) or externally through the reverse proxy.
Steps to replicate it (hint: details matter!):
-
Log in to the Nextcloud WebUI.
-
Click on the 9-dot app menu in the top right corner.
-
Select an affected app (e.g., Photos or Files).
-
The page loads completely blank.
Log entries
Nextcloud
Please provide the log entries from your Nextcloud log that are generated during the time of problem (via the Copy raw option from Administration settings->Logging screen or from your nextcloud.log located in your data directory). Feel free to use a pastebin/gist service if necessary.
Log was too big for pastebin, so I share it with my Google Drive
Google Drive Link: https://drive.google.com/file/d/1B2fZuGnjMh7Lq_bcCwPXkJ6IWXWGGdbh/view?usp=sharing
Web Browser
If the problem is related to the Web interface, open your browser inspector Console and Network tabs while refreshing (reloading) and reproducing the problem. Provide any relevant output/errors here that appear.
Uploaded a Screenshot for that.
Web server / Reverse Proxy
The output of your Apache/nginx/system log in /var/log/____:
taker1988@DS720plus:~$ sudo docker logs --tail 200 nginx_proxy_manager
- /data/nginx/proxy_host/6.conf
- /data/nginx/proxy_host/7.conf
- /data/nginx/proxy_host/8.conf
- /data/nginx/proxy_host/9.conf
- /data/nginx/proxy_host/39.conf
- /data/nginx/proxy_host/40.conf
- /data/nginx/proxy_host/41.conf
- /data/nginx/proxy_host/51.conf
- /data/nginx/proxy_host/53.conf
- /data/nginx/proxy_host/56.conf
- /data/nginx/snippets/authelia-auth.conf
- /data/nginx/snippets/authelia-location.conf
- /data/nginx/snippets/proxy.conf
❯ Docker secrets ...
-------------------------------------
_ _ ____ __ __
| \ | | _ \| \/ |
| \| | |_) | |\/| |
| |\ | __/| | | |
|_| \_|_| |_| |_|
-------------------------------------
User: npm PUID:0 ID:0 GROUP:0
Group: npm PGID:0 ID:0
-------------------------------------
❯ Starting nginx ...
❯ Starting backend ...
[6/30/2026] [1:40:08 AM] [Global ] › ℹ info Using configuration from file: ./config/production.json
sqlite does not support inserting default values. Set the `useNullAsDefault` flag to hide this warning. (see docs https://knexjs.org/guide/query-builder.html#insert).
[6/30/2026] [1:41:07 AM] [Migrate ] › ℹ info Current database version: none
[6/30/2026] [1:41:08 AM] [Certbot ] › ▶ start Installing cloudflare...
[6/30/2026] [1:43:02 AM] [Certbot ] › ☒ complete Installed cloudflare
[6/30/2026] [1:43:02 AM] [Setup ] › ℹ info Added Certbot plugins cloudflare
[6/30/2026] [1:43:02 AM] [Setup ] › ℹ info Logrotate Timer initialized
[6/30/2026] [1:43:06 AM] [Setup ] › ℹ info Logrotate completed.
[6/30/2026] [1:43:15 AM] [Global ] › ℹ info IP Ranges fetch is enabled
[6/30/2026] [1:43:15 AM] [IP Ranges] › ℹ info Fetching IP Ranges from online services...
[6/30/2026] [1:43:15 AM] [IP Ranges] › ℹ info Fetching https://ip-ranges.amazonaws.com/ip-ranges.json
[6/30/2026] [1:43:39 AM] [IP Ranges] › ℹ info Fetching https://www.cloudflare.com/ips-v4
[6/30/2026] [1:43:40 AM] [IP Ranges] › ℹ info Fetching https://www.cloudflare.com/ips-v6
[6/30/2026] [1:43:45 AM] [SSL ] › ℹ info Let's Encrypt Renewal Timer initialized
[6/30/2026] [1:43:45 AM] [SSL ] › ℹ info Renewing SSL certs expiring within 30 days ...
[6/30/2026] [1:43:45 AM] [IP Ranges] › ℹ info IP Ranges Renewal Timer initialized
[6/30/2026] [1:43:46 AM] [Global ] › ℹ info Backend PID 383 listening on port 3000 ...
[6/30/2026] [1:43:46 AM] [SSL ] › ℹ info Completed SSL cert renew process
❯ Configuring npm user ...
0
usermod: no changes
❯ Configuring npm group ...
❯ Checking paths ...
❯ Setting ownership ...
- /data ...
SKIPPED
- /etc/letsencrypt ...
SKIPPED
- /run/nginx ...
SKIPPED
- /tmp/nginx ...
SKIPPED
- /var/cache/nginx ...
SKIPPED
- /var/lib/logrotate ...
SKIPPED
- /var/lib/nginx ...
SKIPPED
- /var/log/nginx ...
SKIPPED
- /etc/nginx/nginx ...
SKIPPED
- /etc/nginx/nginx.conf ...
SKIPPED
- /etc/nginx/conf.d ...
SKIPPED
❯ Changing ownership of certbot directories, this may take some time ...
- /opt/certbot ...
SKIPPED
- /opt/certbot/bin ...
SKIPPED
- /opt/certbot/lib/python3.13/site-packages ...
SKIPPED
❯ Dynamic resolvers ...
❯ IPv6 ...
Enabling IPV6 in hosts in: /etc/nginx/conf.d
- /etc/nginx/conf.d/include/assets.conf
- /etc/nginx/conf.d/include/block-exploits.conf
- /etc/nginx/conf.d/include/force-ssl.conf
- /etc/nginx/conf.d/include/ip_ranges.conf
- /etc/nginx/conf.d/include/letsencrypt-acme-challenge.conf
- /etc/nginx/conf.d/include/log-proxy.conf
- /etc/nginx/conf.d/include/log-stream.conf
- /etc/nginx/conf.d/include/proxy.conf
- /etc/nginx/conf.d/include/ssl-cache-stream.conf
- /etc/nginx/conf.d/include/ssl-cache.conf
- /etc/nginx/conf.d/include/ssl-ciphers.conf
- /etc/nginx/conf.d/include/resolvers.conf
- /etc/nginx/conf.d/default.conf
- /etc/nginx/conf.d/production.conf
Enabling IPV6 in hosts in: /data/nginx
- /data/nginx/default_host/site.conf
- /data/nginx/proxy_host/11.conf
- /data/nginx/proxy_host/12.conf
- /data/nginx/proxy_host/14.conf
- /data/nginx/proxy_host/15.conf
- /data/nginx/proxy_host/16.conf
- /data/nginx/proxy_host/17.conf
- /data/nginx/proxy_host/18.conf
- /data/nginx/proxy_host/19.conf
- /data/nginx/proxy_host/2.conf
- /data/nginx/proxy_host/20.conf
- /data/nginx/proxy_host/21.conf
- /data/nginx/proxy_host/22.conf
- /data/nginx/proxy_host/23.conf
- /data/nginx/proxy_host/24.conf
- /data/nginx/proxy_host/25.conf
- /data/nginx/proxy_host/26.conf
- /data/nginx/proxy_host/27.conf
- /data/nginx/proxy_host/28.conf
- /data/nginx/proxy_host/29.conf
- /data/nginx/proxy_host/30.conf
- /data/nginx/proxy_host/31.conf
- /data/nginx/proxy_host/32.conf
- /data/nginx/proxy_host/33.conf
- /data/nginx/proxy_host/34.conf
- /data/nginx/proxy_host/35.conf
- /data/nginx/proxy_host/36.conf
- /data/nginx/proxy_host/37.conf
- /data/nginx/proxy_host/38.conf
- /data/nginx/proxy_host/4.conf
- /data/nginx/proxy_host/5.conf
- /data/nginx/proxy_host/6.conf
- /data/nginx/proxy_host/7.conf
- /data/nginx/proxy_host/8.conf
- /data/nginx/proxy_host/9.conf
- /data/nginx/proxy_host/39.conf
- /data/nginx/proxy_host/40.conf
- /data/nginx/proxy_host/41.conf
- /data/nginx/proxy_host/51.conf
- /data/nginx/proxy_host/53.conf
- /data/nginx/proxy_host/56.conf
- /data/nginx/snippets/authelia-auth.conf
- /data/nginx/snippets/authelia-location.conf
- /data/nginx/snippets/proxy.conf
❯ Docker secrets ...
-------------------------------------
_ _ ____ __ __
| \ | | _ \| \/ |
| \| | |_) | |\/| |
| |\ | __/| | | |
|_| \_|_| |_| |_|
-------------------------------------
User: npm PUID:0 ID:0 GROUP:0
Group: npm PGID:0 ID:0
-------------------------------------
❯ Starting nginx ...
❯ Starting backend ...
[6/30/2026] [8:21:40 AM] [Global ] › ℹ info Using configuration from file: ./config/production.json
sqlite does not support inserting default values. Set the `useNullAsDefault` flag to hide this warning. (see docs https://knexjs.org/guide/query-builder.html#insert).
[6/30/2026] [8:21:49 AM] [Migrate ] › ℹ info Current database version: none
[6/30/2026] [8:21:49 AM] [Certbot ] › ▶ start Installing cloudflare...
[6/30/2026] [8:22:05 AM] [Certbot ] › ☒ complete Installed cloudflare
[6/30/2026] [8:22:05 AM] [Setup ] › ℹ info Added Certbot plugins cloudflare
[6/30/2026] [8:22:05 AM] [Setup ] › ℹ info Logrotate Timer initialized
[6/30/2026] [8:22:06 AM] [Setup ] › ℹ info Logrotate completed.
[6/30/2026] [8:22:06 AM] [Global ] › ℹ info IP Ranges fetch is enabled
[6/30/2026] [8:22:06 AM] [IP Ranges] › ℹ info Fetching IP Ranges from online services...
[6/30/2026] [8:22:06 AM] [IP Ranges] › ℹ info Fetching https://ip-ranges.amazonaws.com/ip-ranges.json
[6/30/2026] [8:22:07 AM] [IP Ranges] › ℹ info Fetching https://www.cloudflare.com/ips-v4
[6/30/2026] [8:22:08 AM] [IP Ranges] › ℹ info Fetching https://www.cloudflare.com/ips-v6
[6/30/2026] [8:22:09 AM] [SSL ] › ℹ info Let's Encrypt Renewal Timer initialized
[6/30/2026] [8:22:09 AM] [SSL ] › ℹ info Renewing SSL certs expiring within 30 days ...
[6/30/2026] [8:22:09 AM] [IP Ranges] › ℹ info IP Ranges Renewal Timer initialized
[6/30/2026] [8:22:09 AM] [Global ] › ℹ info Backend PID 373 listening on port 3000 ...
[6/30/2026] [8:22:09 AM] [SSL ] › ℹ info Completed SSL cert renew process
[6/30/2026] [9:22:09 AM] [SSL ] › ℹ info Renewing SSL certs expiring within 30 days ...
[6/30/2026] [9:22:10 AM] [SSL ] › ℹ info Completed SSL cert renew process
[6/30/2026] [10:22:10 AM] [SSL ] › ℹ info Renewing SSL certs expiring within 30 days ...
[6/30/2026] [10:22:10 AM] [SSL ] › ℹ info Completed SSL cert renew process
[6/30/2026] [11:22:10 AM] [SSL ] › ℹ info Renewing SSL certs expiring within 30 days ...
[6/30/2026] [11:22:10 AM] [SSL ] › ℹ info Completed SSL cert renew process
[6/30/2026] [12:22:10 PM] [SSL ] › ℹ info Renewing SSL certs expiring within 30 days ...
[6/30/2026] [12:22:10 PM] [SSL ] › ℹ info Completed SSL cert renew process
[6/30/2026] [1:22:11 PM] [SSL ] › ℹ info Renewing SSL certs expiring within 30 days ...
[6/30/2026] [1:22:13 PM] [SSL ] › ℹ info Completed SSL cert renew process
[6/30/2026] [2:22:11 PM] [SSL ] › ℹ info Renewing SSL certs expiring within 30 days ...
[6/30/2026] [2:22:11 PM] [IP Ranges] › ℹ info Fetching IP Ranges from online services...
[6/30/2026] [2:22:11 PM] [IP Ranges] › ℹ info Fetching https://ip-ranges.amazonaws.com/ip-ranges.json
[6/30/2026] [2:22:12 PM] [SSL ] › ℹ info Completed SSL cert renew process
[6/30/2026] [2:22:12 PM] [IP Ranges] › ℹ info Fetching https://www.cloudflare.com/ips-v4
[6/30/2026] [2:22:12 PM] [IP Ranges] › ℹ info Fetching https://www.cloudflare.com/ips-v6
[6/30/2026] [2:22:14 PM] [Nginx ] › ℹ info Reloading Nginx
[6/30/2026] [3:22:10 PM] [SSL ] › ℹ info Renewing SSL certs expiring within 30 days ...
[6/30/2026] [3:22:10 PM] [SSL ] › ℹ info Completed SSL cert renew process
[6/30/2026] [4:22:10 PM] [SSL ] › ℹ info Renewing SSL certs expiring within 30 days ...
[6/30/2026] [4:22:10 PM] [SSL ] › ℹ info Completed SSL cert renew process
[6/30/2026] [5:22:10 PM] [SSL ] › ℹ info Renewing SSL certs expiring within 30 days ...
[6/30/2026] [5:22:10 PM] [SSL ] › ℹ info Completed SSL cert renew process
[6/30/2026] [5:57:16 PM] [Remote Version] › ℹ info Fetching https://api.github.com/repos/NginxProxyManager/nginx-proxy-manager/releases/latest
taker1988@DS720plus:~$
Configuration
Nextcloud
Nextcloud Since I am using Docker Compose, my configuration is largely driven by these environment variables. Here is my docker-compose.yml for Nextcloud:
services:
mariadb:
container_name: Nextcloud-DB
image: mariadb:11.4-noble
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-read-only-compressed=OFF --skip-innodb-use-native-aio
volumes:
- /volume2/docker_nvme/nextcloud/db:/var/lib/mysql:rw
- /volume2/docker_nvme/nextcloud/db_conf:/etc/mysql/conf.d:rw
environment:
- MYSQL_ROOT_PASSWORD=******
- MYSQL_PASSWORD=******
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- TZ=Europe/Berlin
restart: always
redis:
image: redis:latest
container_name: Nextcloud-REDIS
hostname: nextcloudredis
volumes:
- /volume2/docker_nvme/nextcloud/redis:/data:rw
environment:
- TZ=Europe/Berlin
restart: always
nextcloud:
image: nextcloud:latest
container_name: Nextcloud
ports:
- 8082:80
environment:
- REDIS_HOST=nextcloudredis
- NEXTCLOUD_TRUSTED_DOMAINS=nextcloud.sa*****me.de 192.168.178.123
- TRUSTED_PROXIES=192.168.178.123
- OVERWRITEHOST=nextcloud.sa******me.de
- OVERWRITEPROTOCOL=https
- OVERWRITECLIURL=https://nextcloud.sa*****me.de
- MYSQL_PASSWORD=******
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=*********
- MYSQL_HOST=Nextcloud-DB
- PHP_MEMORY_LIMIT=1024M
- PHP_UPLOAD_LIMIT=10G
- TZ=Europe/Berlin
volumes:
- /volume2/docker_nvme/nextcloud/html:/var/www/html:rw
- /volume2/docker_nvme/nextcloud/custom_apps:/var/www/html/custom_apps:rw
- /volume2/docker_nvme/nextcloud/config:/var/www/html/config:rw
- /volume1/docker/nextcloud/data:/var/www/html/data:rw
- /volume2/docker_nvme/nextcloud/themes:/var/www/html/themes:rw
restart: always
(Note: Passwords and sensitive info removed from the compose file above).
Apps
The output of occ app:list (if possible).
PowerShell 7.6.3
PS C:\Windows\System32> ssh -p 56 taker1988@192.168.178.123
taker1988@192.168.178.123's password:
Using terminal commands to modify system configs, execute external binary
files, add files, or install unauthorized third-party apps may lead to system
damages or unexpected behavior, or cause data loss. Make sure you are aware of
the consequences of each command and proceed at your own risk.
Warning: Data should only be stored in shared folders. Data stored elsewhere
may be deleted when the system is updated/restarted.
taker1988@DS720plus:~$ sudo docker exec --user www-data Nextcloud php occ app:list
Password:
Enabled:
- activity: 7.0.0
- appstore: 1.0.0
- bruteforcesettings: 7.0.0
- calendar: 6.5.0
- circles: 34.0.0
- cloud_federation_api: 1.18.0
- comments: 1.24.0
- contacts: 8.7.2
- contactsinteraction: 1.15.0
- dashboard: 7.14.0
- dav: 1.39.0
- federatedfilesharing: 1.24.0
- federation: 1.24.0
- files: 2.6.0
- files_downloadlimit: 5.2.0-dev.0
- files_lock: 34.0.0
- files_pdfviewer: 7.0.0-dev.0
- files_reminders: 1.7.0
- files_sharing: 1.26.0
- files_trashbin: 1.24.0
- files_versions: 1.27.0
- firstrunwizard: 7.0.0-dev.0
- integration_deepl: 2.2.0
- logreader: 7.0.0
- lookup_server_connector: 1.22.0
- mail: 5.10.3
- nextcloud_announcements: 6.0.0
- notes: 6.0.1
- notifications: 7.0.0-dev.1
- oauth2: 1.22.0
- office: 1.0.0
- password_policy: 6.0.0-dev.0
- photos: 7.0.0
- privacy: 6.0.0-dev.1
- profile: 1.3.0
- provisioning_api: 1.24.0
- recommendations: 7.0.0-dev.0
- related_resources: 5.0.0-dev.0
- richdocumentscode: 26.4.104
- serverinfo: 6.0.0
- settings: 1.17.0
- sharebymail: 1.24.0
- support: 6.0.0
- survey_client: 6.0.0-dev.0
- systemtags: 1.24.0
- text: 8.0.0
- theming: 2.9.0
- twofactor_backupcodes: 1.23.0
- twofactor_totp: 16.0.0
- updatenotification: 1.24.0
- user_status: 1.14.0
- viewer: 7.0.0-dev.0
- weather_status: 1.14.0
- webhook_listeners: 1.6.0
- workflowengine: 2.16.0
Disabled:
- admin_audit: 1.24.0
- app_api: 34.0.0 (installed 32.0.0)
- encryption: 2.22.0
- files_external: 1.26.0
- richdocuments: 11.0.0 (installed 11.0.0)
- spreed: 24.0.1 (installed 24.0.1)
- suspicious_login: 12.0.0-dev.0
- twofactor_nextcloud_notification: 8.0.0
- user_ldap: 1.25.0
taker1988@DS720plus:~$






