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 is required to be able to use WebRTC (the video call technology of browsers used by Nextcloud Talk calls).
- 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
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#
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.
A TURN server running on port 443 (or 80) is required in almost all scenarios, see Configuring coTURN for more details.