

If you want a non-federating LAN-only Matrix server, then STUN/TURN can be behind the NAT. Since you have Tailscale, STUN/TURN can also expose itself on the Tailscale VPN too. Just configure proper DNS records per-interface and you should be fine.
Since calls are p2p, the purpose of STUN is to determine a client’s (usually public) IP address, and TURN is to relay the connection if they can’t connect directly (i.e. behind NAT). If your clients are on the same LAN/VPN with unrestrictive firewalls then you might not even need any STUN/TURN altogether.




Edit: the main differences between these servers are that Synapse is written in Python/Twisted and is known to take up huge storage space. Meanwhile all other mentioned projects are Rust based, has a shared lineage, are usually more efficient with storage and ops, though are more focused on a smaller user size and doesn’t yet have advanced Synapse features