diff --git a/deploy_matrix.yml b/deploy_matrix.yml index 1050cc0..260ed1f 100644 --- a/deploy_matrix.yml +++ b/deploy_matrix.yml @@ -181,7 +181,7 @@ - name: Start Synapse container containers.podman.podman_container: - name: synapse + name: synapse "{{ matrix_container_name }}" image: "{{ synapse_image }}" state: started ports: diff --git a/templates/homeserver.yaml.j2 b/templates/homeserver.yaml.j2 index 7745f41..c02df6b 100644 --- a/templates/homeserver.yaml.j2 +++ b/templates/homeserver.yaml.j2 @@ -11,13 +11,14 @@ listeners: type: http x_forwarded: true -turn: - uris: - - "turn:{{ matrix_domain1 }}:{{ turn_listen_port }}?transport=udp" - - "turn:{{ matrix_domain1 }}:{{ turn_tls_port }}?transport=tcp" - - "turns:{{ matrix_domain1 }}:{{ turn_tls_port }}?transport=tcp" - turn_shared_secret: "{{ turn_secret }}" - turn_user_lifetime: "86400000" # 1 day in ms (optional) +turn_uris: + - "turn:"{{ matrix_container_name }}":"{{ turn_listen_port }}"?transport=udp" + - "turn:"{{ matrix_container_name }}":"{{ turn_tls_port }}"?transport=tcp" + - "turns:"{{ matrix_container_name }}":"{{ turn_tls_port }}"?transport=tcp" + - "turns:{{ matrix_container_name }}":"{{ turn_listen_port }}"?transport=udp" + +turn_shared_secret: "{{ turn_secret }}" +turn_user_lifetime: "1h" media_store_path: /data/media_store diff --git a/templates/turnserver.conf.j2 b/templates/turnserver.conf.j2 index f1ff1fd..a937986 100644 --- a/templates/turnserver.conf.j2 +++ b/templates/turnserver.conf.j2 @@ -1,18 +1,14 @@ -listening-port={{ turn_listen_port }} -tls-listening-port={{ turn_tls_port }} +syslog -realm={{ matrix_domain1 }} -static-auth-secret={{ turn_secret }} +lt-cred-mech +use-auth-secret +static-auth-secret="{{ turn_static_secret }}" +realm="{{ matrix_domain1 }}" -# If your host sits behind NAT and you need to force the public IP, uncomment: -# external-ip={{ public_ipv4 }} +# cert=/etc/letsencrypt/live/turn.example.org/fullchain.pem +# pkey=/etc/letsencrypt/live/turn.example.org/privkey.pem -allowed-peer-ip=0.0.0.0/0 - -listening-ip=0.0.0.0 -listening-ip=::0 - -log-file=/var/log/turnserver.log -verbose - -shared-secret="{{ turn_secret }}" \ No newline at end of file +no-udp +external-ip="{{ public_ipv4 }}" +min-port=64000 +max-port=65535 \ No newline at end of file diff --git a/vars/vars.yml b/vars/vars.yml index e9a3df2..16724e5 100644 --- a/vars/vars.yml +++ b/vars/vars.yml @@ -7,6 +7,7 @@ landing_domain: "org.fpov.space" teamspeak_domain: "ts.fpov.space" matrix_email: "boxswappers@gmail.com" + # -------------------------------------------------------------- # Ports # -------------------------------------------------------------- @@ -17,6 +18,7 @@ traefik_https_port: 443 turn_listen_port: 3478 turn_tls_port: 5349 turn_secret: "7A9F2C4E1B8D6035A2F7E9C1B4D68053" +turn_static_secret: "fordeathyoudietoday" # --- Synapse ---------------------------------------------------- synapse_http_port: 8008 @@ -26,10 +28,11 @@ synapse_api_port: 8448 registration_shared_secret: "1KFs@=d&l6BGPD0GAwa55ePu+bF7Vgtk@~x#l3tQyKl#_q0etp" macaroon_secret_key: "5GongrU~_kQ9L1-f.nU21sdiz~e63+Wwq;iS7XdPA2giDqZ#xH" form_secret: "Ubwo=AThaygGi0iySK*H4i9xUOORCQM#eDMd@E,DqW3DcfqYJG" +matrix_container_name: "matrix" # --- Teamspeak --------------------------------------------------- teamspeak_image: "docker.io/teamspeak:3.13.7" -teamspeak_container_name: teamspeak +teamspeak_container_name: synapse teamspeak_udp_port: 9987 # voice (UDP) – exposed directly on the host teamspeak_tcp_port: 10011 # query (TCP) – will be routed via Traefik teamspeak_file_port: 30033 # file‑transfer (TCP) – optional, expose directly