forked from fediversity/fediversity
		
	Small updates to LiveKit and coturn.
This commit is contained in:
		
							parent
							
								
									8337b4c1d5
								
							
						
					
					
						commit
						0fe7ab4924
					
				
					 2 changed files with 37 additions and 35 deletions
				
			
		|  | @ -56,7 +56,7 @@ coturn doesn't run as root. | |||
| This prepares us for the next step: configuring the whole thing. | ||||
| 
 | ||||
| 
 | ||||
| # DNS and certificate | ||||
| # DNS and certificate {#dnscert} | ||||
| 
 | ||||
| As stated before, we only use IPv4, so a CNAME to our machine that also does | ||||
| IPv6 is a bad idea. Fix a new entry in DNS for TURN only, we'll use | ||||
|  | @ -72,7 +72,36 @@ certbot certonly --nginx -d turn.example.com | |||
| 
 | ||||
| This assumes you've already setup and started nginx (see [nginx](../nginx)). | ||||
| 
 | ||||
| Of course, when this certificate is renewed, coturn must be restarted! | ||||
| The certificate files reside under `/etc/letsencrypt/live`, but coturn doesn't | ||||
| run as root, and can't read them. Therefore we create the directory | ||||
| `/etc/coturn/ssl` where we copy the files to. This script should be run after | ||||
| each certificate renewal: | ||||
| 
 | ||||
| ``` | ||||
| #!/bin/bash | ||||
| 
 | ||||
| # This script is hooked after a renewal of the certificate, so | ||||
| # that it's copied and chowned and made readable by coturn: | ||||
| 
 | ||||
| cd /etc/coturn/ssl | ||||
| cp /etc/letsencrypt/live/turn.example.com/{fullchain,privkey}.pem . | ||||
| chown turnserver:turnserver *.pem | ||||
| 
 | ||||
| # We should restart either coturn or LiveKit, they cannot run both! | ||||
| systemctl restart coturn | ||||
| #systemctl restart livekit-server | ||||
| 
 | ||||
| ``` | ||||
| 
 | ||||
| Run this automatically after every renewal by adding this line to | ||||
| `/etc/letsencrypt/renewal/turn.example.com.conf`: | ||||
| 
 | ||||
| ``` | ||||
| renew_hook = /etc/coturn/fixssl | ||||
| ``` | ||||
| 
 | ||||
| Yes, it's a bit primitive and could (should?) be polished. But for now: it | ||||
| works. | ||||
| 
 | ||||
| 
 | ||||
| # Configuration {#configuration} | ||||
|  | @ -138,35 +167,4 @@ no-tlsv1_1 | |||
| All other options in the configuration file are either commented out, or | ||||
| defaults. | ||||
| 
 | ||||
| The certificate files reside under `/etc/letsencrypt/live`, but coturn doesn't | ||||
| run as root, and can't read them. Therefore we create the directory | ||||
| `/etc/coturn/ssl` where we copy the files to. This script should be run after | ||||
| each certificate renewal: | ||||
| 
 | ||||
| ``` | ||||
| #!/bin/bash | ||||
| 
 | ||||
| # This script is hooked after a renewal of the certificate, so | ||||
| # that it's copied and chowned and made readable by coturn: | ||||
| 
 | ||||
| cd /etc/coturn/ssl | ||||
| cp /etc/letsencrypt/live/turn.example.com/{fullchain,privkey}.pem . | ||||
| chown turnserver:turnserver *.pem | ||||
| 
 | ||||
| # We should restart either coturn or LiveKit, they cannot run both! | ||||
| systemctl restart coturn | ||||
| #systemctl restart livekit-server | ||||
| 
 | ||||
| ``` | ||||
| 
 | ||||
| Run this automatically after every renewal by adding this line to | ||||
| `/etc/letsencrypt/renewal/turn.example.com.conf`: | ||||
| 
 | ||||
| ``` | ||||
| renew_hook = /etc/coturn/fixssl | ||||
| ``` | ||||
| 
 | ||||
| Yes, it's a bit primitive and could (should?) be polished. But for now: it | ||||
| works. | ||||
| 
 | ||||
| Be sure to open the correct ports in the [firewall](../firewall). | ||||
| Make sure you've opened the correct ports in the [firewall](../firewall). | ||||
|  |  | |||
|  | @ -183,7 +183,7 @@ rtc: | |||
|     enable_loopback_candidate: false | ||||
| turn: | ||||
|     enabled: true | ||||
|     domain: livekit.procolix.com | ||||
|     domain: livekit.example.com | ||||
|     cert_file: /etc/coturn/ssl/fullchain.pem | ||||
|     key_file: /etc/coturn/ssl/privkey.pem | ||||
|     tls_port: 5349 | ||||
|  | @ -199,6 +199,10 @@ The LiveKit API listens on localhost, IPv6, port 7880. Traffic to this port is | |||
| forwarded from port 443by nginx, which handles TLS, so it shouldn't be reachable | ||||
| from the outside world. | ||||
| 
 | ||||
| The certificate files are not in the usual place under | ||||
| `/etc/letsencrypt/live`, see [DNS and | ||||
| certificate](../coturn/README.md#dnscert) why that is. | ||||
| 
 | ||||
| The `xxx: xxxx` is the key and secret as generated before. | ||||
| 
 | ||||
| See [LiveKit's config documentation](https://github.com/livekit/livekit/blob/master/config-sample.yaml) | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Hans van Zijst
						Hans van Zijst