HELP ME understand if both STUN and TURN servers are required

Do you mean the proxy you set up for webrtc in your nextcloud vhost? As you just want to use webrtc within nextcloud and it is by default manual intended, you should use a totally different free port for this. The connection of nextcloud/spreedme web app to the actual webrtc server is just server internally. E.g. my nextcloud.conf looks like this, so uses port 8080, which doesn’t need to be opened to the web:

  # Spreed WebRTC config (must be in same vhost)
  <Location /webrtc>
  	ProxyPass http://127.0.0.1:8080/webrtc
  	ProxyPassReverse /webrtc
  </Location>
  <Location /webrtc/ws>
  	ProxyPass ws://127.0.0.1:8080/webrtc/ws
  </Location>
  ProxyVia On
  ProxyPreserveHost On
  RequestHeader set X-Forwarded-Proto 'https' env=HTTPS

The access from the web just goes through your default http(s) port.

My experience is, that in most cases you need a TURN server, whether static IP or not. Thus e.g. install coturn and follow e.g. the related steps here: Complete NC installation on Debian with Spreed.me and TURN step by step