The problem
File collaboration, messaging and voice/video need reliable storage, correct identity configuration and a TURN service that works through restrictive networks.
Interface reference

Nextcloud dashboard evidence
Redacted, custom-themed Nextcloud dashboard from the lab. Personal widgets and account details are obscured; the dashboard structure and Customize control identify the interface.
What I did
I run Nextcloud 32.0.1.2 and a Matrix Synapse homeserver installed from packages on Debian 13.
- Operate Nextcloud for private file sync and collaboration
- Configured Synapse server-name handling correctly before database identity was established
- Run coturn on a VPS at turn.1337.blue with shared-secret authentication
- Use the TURN service for both Matrix and Nextcloud Talk
- Keep TURN DNS unproxied and expose the required TCP/UDP relay ranges directly
Implementation notes
Representative commands from the way I diagnose and maintain this project. Public examples use placeholders instead of credentials or sensitive addresses.
# Nextcloud application status and configuration
sudo -u www-data php /var/www/nextcloud/occ status
sudo -u www-data php /var/www/nextcloud/occ config:system:get trusted_domains
sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --off
# Matrix Synapse service health
systemctl status matrix-synapse --no-pager
journalctl -u matrix-synapse -n 100 --no-pager
# TURN listener and relay testing
ss -lntup | grep -E '3478|5349'
turnutils_uclient -u <user> -w <password> turn.example.netResult
The services form a self-hosted communication stack that supports files, messaging and real-time calls while keeping protocol roles clear.
