Kent, UK

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

Redacted custom-themed Nextcloud dashboard
personal deployment evidence

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.

Application and TURN checks
# 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.net

Result

The services form a self-hosted communication stack that supports files, messaging and real-time calls while keeping protocol roles clear.

Release context: Nextcloud 32 remains a supported branch with 32.0.12 available, while Synapse 1.154.0 is the current public release.