Docker-compose slow photos

Hi

I am running nextcloud in docker with docker-compose and an nginx reverse proxy. I am having issues where the web ui is really slow and often freezes, especially when trying to access videos through the photos area. I think I may have misconfigured something as when the interface is lagging, and often page loads become very slow and unresponsive, The CPU util is very low, and my server is using 10gb ram out of 32 gb available.

I have attached my docker-compose.yml

version: '3'

services:
  db:
    image: mariadb
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    restart: always
    volumes:
      - ./db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=________
    env_file:
      - db.env

  redis:
    image: redis:alpine
    restart: always

  app:
    image: nextcloud:apache
    restart: always
    ports:
      - 6065:80
    volumes:
      - ./webroot:/var/www/html
    environment:
      - MYSQL_HOST=db
      - REDIS_HOST=redis
    env_file:
      - db.env
    depends_on:
      - db
      - redis

  cron:
    image: nextcloud:apache
    restart: always
    volumes:
      - ./webroot:/var/www/html
    entrypoint: /cron.sh
    depends_on:
      - db
      - redis

  onlyoffice-document-server:
    container_name: onlyoffice-document-server
    image: onlyoffice/documentserver:latest
    stdin_open: true
    tty: true
    restart: always
    ports:
      - 6066:80
    expose:
      - '80'
      - '443'
    volumes:
      - ./onlyoffice/document_data:/var/www/onlyoffice/Data
      - ./onlyoffice/document_log:/var/log/onlyoffice

and my nginx vhost configuration:

server {

    error_page 404 /404.html;

    server_name cloud.domain.xyz;

    location / {
	proxy_set_header Host $host;
	proxy_set_header X-Real-IP $remote_addr;
	proxy_set_header X-Forwarded-Host $host:$server_port;
	proxy_set_header X-Forwarded-Server $host;
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	proxy_pass http://localhost:6065/;
    }


    listen [::]:443 ssl; # managed by Certbot
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/domain.xyz/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/domain.xyz/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

    rewrite ^/.well-known/carddav$ https://cloud.domain.xyz/remote.php/dav redirect;

    rewrite ^/.well-known/caldav$ https://cloud.domain.xyz/remote.php/dav redirect;

    client_max_body_size 16400M;
    proxy_buffering off;

}

server {
    if ($host = cloud.domain.xyz) {
        return 301 https://$host$request_uri;
    } # managed by Certbot

    server_name cloud.domain.xyz;

    listen 80;
    listen [::]:80;
    return 404; # managed by Certbot


}