├── Dockerfile ├── README.md └── deploy-turnserver.sh /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:16.04 2 | MAINTAINER Anastasia Zolochevska 3 | 4 | # Set the working directory to /app 5 | WORKDIR /app 6 | 7 | # Copy the current directory contents into the container at /app 8 | ADD . /app 9 | 10 | EXPOSE 3478 11 | 12 | RUN apt-get update && apt-get install -y \ 13 | dnsutils \ 14 | coturn \ 15 | && rm -rf /var/lib/apt/lists/* 16 | 17 | 18 | ENTRYPOINT ["bash", "deploy-turnserver.sh"] 19 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Docker image for TURN server 2 | A Docker container with the [Coturn TURN server](https://github.com/coturn/coturn) 3 | 4 | sudo docker run -d -p 3478:3478 -p 3478:3478/udp --restart=always zolochevska/turn-server username password realm 5 | -------------------------------------------------------------------------------- /deploy-turnserver.sh: -------------------------------------------------------------------------------- 1 | echo $1 2 | echo $2 3 | echo $3 4 | 5 | internalIp="$(ip a | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1')" 6 | externalIp="$(dig +short myip.opendns.com @resolver1.opendns.com)" 7 | 8 | echo "listening-port=3478 9 | tls-listening-port=5349 10 | listening-ip="$internalIp" 11 | relay-ip="$internalIp" 12 | external-ip="$externalIp" 13 | realm=$3 14 | server-name=$3 15 | lt-cred-mech 16 | userdb=/var/lib/turn/turndb 17 | # use real-valid certificate/privatekey files 18 | cert=/etc/ssl/turn_server_cert.pem 19 | pkey=/etc/ssl/turn_server_pkey.pem 20 | 21 | no-stdout-log" | tee /etc/turnserver.conf 22 | 23 | 24 | turnadmin -a -u $1 -p $2 -r $3 25 | 26 | turnserver 27 | 28 | echo "TURN server running. IP: "$externalIp" Username: $1, password: $2" 29 | --------------------------------------------------------------------------------