Server#

Nextcloud Talk will significantly increase load on your server, depending on the number of concurrent active participants - no matter whether they use audio call, video call or just the chat. This is due to required signalling and message pulling. By default Talk will use its integrated signalling server, which works just fine for small and medium installations. If you're running Talk on a dedicated or decent virtual server, you shouldn't experience any problems. However, if you're running Talk on a shared webhoster, you might indeed experience issues. Also note that many shared webhosters particularly prohibit running chat server software like Nextcloud Talk; please make sure to check your provider's Terms & Conditions. In this case you might be required to upgrade your package.

Additional to normal Nextcloud requirements the following constraints apply to use Nextcloud Talk:

HTTPS#

HTTPS is required to be able to use WebRTC (the video call technology of browsers used by Nextcloud Talk calls).

Database#

  • SQLite: must not be used, to grant a decent experience for chats and calls
  • MySQL/Maria DB: Must enable utf8mb4 support as per documentation at Enabling MySQL 4-byte support

Webserver#

Apache and Nginx must use:

  • PHP FPM + mpm_events or
  • PHP + mpm_prefork

Other combinations will not work due to the long polling used for chat and signaling messages, see this issue for details.

WebAssembly and TensorFlow Lite files#

Since Talk 13 the web server needs to handle WebAssembly (.wasm) and TensorFlow Lite (.tflite) files in a similar way to JavaScript and CSS files, as they will be requested by Talk clients to provide certain features (for example, the background blur when Talk is running in a browser). If Apache is used the default configuration provided by the Nextcloud server should be enough; if NGINX is used please refer to the NGINX configuration section in Nextcloud Administration manual.

Besides that the web server should associate .wasm files with the right MIME type. This is not strictly needed, though, but if they are not the browser console may show a warning similar to:

wasm streaming compile failed: TypeError: WebAssembly: Response has unsupported MIME type '' expected 'application/wasm'
falling back to ArrayBuffer instantiation

In Apache, if mod_mime and .htaccess files are enabled, the default .htaccess file in Nextcloud server associates the application/wasm MIME type with .wasm files. Alternatively the association can be done by adding AddType application/wasm .wasm in /etc/apache2/mods-enabled/mime.conf, or application/wasm wasm to /etc/mime.types. Similarly, the default configuration for NGINX does the association too, but alternatively it can be done by adding application/wasm wasm; to /etc/nginx/mime.types.

TURN server#

A TURN server running on port 443 (or 80) is required in almost all scenarios, see Configuring coTURN for more details.