Why don't you just use Livekit?
Here's an example: https://willlewis.co.uk/blog/posts/deploy-element-call-backend-with-synapse-and-docker-compose/
I have a synapse server set up recently. Livekit works for Element Call, but I am not jet finished with implementing a TURN server.
I recommend to use nginx and docker-compose but you don't have to.