Install Mediasoup API on Ubuntu Bionic » History » Version 4
Olivier Bitsch, 04/15/2021 06:54 AM
| 1 | 1 | Olivier Bitsch | # Install Mediasoup API on Ubuntu Bionic |
|---|---|---|---|
| 2 | |||
| 3 | This guide will provide the correct way to deploy mediasoup-api on public server. |
||
| 4 | |||
| 5 | 2 | Olivier Bitsch | ### Install repository |
| 6 | 1 | Olivier Bitsch | |
| 7 | ~~~ |
||
| 8 | echo "deb [trusted=yes] https://projects.iabsis.com/repository/mediasoup-api/debian bionic main" \ |
||
| 9 | > /etc/apt/sources.list.d/iabsis.list |
||
| 10 | |||
| 11 | cat > /etc/apt/auth.conf << EOF |
||
| 12 | machine projects.iabsis.com |
||
| 13 | login iabsis-apt |
||
| 14 | password <password> |
||
| 15 | EOF |
||
| 16 | ~~~ |
||
| 17 | |||
| 18 | 2 | Olivier Bitsch | ### Install package |
| 19 | 1 | Olivier Bitsch | |
| 20 | ~~~ |
||
| 21 | 2 | Olivier Bitsch | apt install mediasoup-api nginx |
| 22 | ~~~ |
||
| 23 | |||
| 24 | ### Configure Mediasoup |
||
| 25 | |||
| 26 | ~~~ |
||
| 27 | ## Define random key here |
||
| 28 | JWT_SECRET=<change secret> |
||
| 29 | |||
| 30 | ## Configure credentials used to consume mediasoup API |
||
| 31 | API_USER=<define login> |
||
| 32 | API_SECRET=<define password> |
||
| 33 | |||
| 34 | ## Define here the public IP server |
||
| 35 | PUBLIC_IP=<define local server IP> |
||
| 36 | |||
| 37 | ## If server is behind nat, you might need to advertise |
||
| 38 | # the real public IP by commenting out this line. |
||
| 39 | ;ANNOUNCED_IP=1.2.3.4 |
||
| 40 | |||
| 41 | ## You will need to open UDP port in the follow range, you |
||
| 42 | # can adjust the range if required. |
||
| 43 | RTC_MIN_PORT=40000 |
||
| 44 | RTC_MAX_PORT=49000 |
||
| 45 | |||
| 46 | ## If this server is behind a reverse proxy, you might need to trust it |
||
| 47 | TRUST_PROXY=127.0.0.1 |
||
| 48 | |||
| 49 | ## The best practice is to use reverse proxy, but if you want |
||
| 50 | # this API to serve directly HTTPS, you might need to configure the |
||
| 51 | # following lines |
||
| 52 | HTTP_ONLY=true |
||
| 53 | LISTEN=3480 |
||
| 54 | ;CERT=/etc/mediasoup-api/sample.localhost.cert.pem |
||
| 55 | ;KEY=/etc/mediasoup-api/sample.localhost.key.pem |
||
| 56 | LISTEN_REDIRECT=3481 |
||
| 57 | 1 | Olivier Bitsch | ~~~ |
| 58 | 3 | Olivier Bitsch | |
| 59 | ### Enable mediasoup at boot |
||
| 60 | |||
| 61 | ~~~ |
||
| 62 | systemctl enable mediasoup-api |
||
| 63 | 4 | Olivier Bitsch | systemctl start mediasoup-api |
| 64 | ~~~ |
||
| 65 | |||
| 66 | ### Configure Nginx |
||
| 67 | |||
| 68 | ~~~ |
||
| 69 | cat > /etc/nginx/sites-enabled/mediasoup-api.conf << EOF |
||
| 70 | map $http_upgrade $connection_upgrade { |
||
| 71 | default upgrade; |
||
| 72 | '' close; |
||
| 73 | } |
||
| 74 | |||
| 75 | server { |
||
| 76 | server_name <domain>; |
||
| 77 | |||
| 78 | location / { |
||
| 79 | proxy_set_header Host $host; |
||
| 80 | proxy_pass https://localhost:3480; |
||
| 81 | proxy_set_header X-Forwarded-For $remote_addr; |
||
| 82 | |||
| 83 | proxy_http_version 1.1; |
||
| 84 | proxy_set_header Upgrade $http_upgrade; |
||
| 85 | proxy_set_header Connection $connection_upgrade; |
||
| 86 | |||
| 87 | proxy_set_header X-Forwarded-Proto $scheme; |
||
| 88 | proxy_set_header X-Forwarded-Port $server_port; |
||
| 89 | |||
| 90 | proxy_connect_timeout 120m; |
||
| 91 | proxy_send_timeout 120m; |
||
| 92 | proxy_read_timeout 120m; |
||
| 93 | } |
||
| 94 | |||
| 95 | listen 80; |
||
| 96 | |||
| 97 | } |
||
| 98 | EOF |
||
| 99 | 3 | Olivier Bitsch | ~~~ |