This Docker repository provides a Docker image for Spreed WebRTC.
The Dockerfile can be found at https://github.com/strukturag/spreed-webrtc/blob/master/Dockerfile.run - this Docker image is not an automated build to get the size of the image as small as possible. The repository has all the gear for you to recreate the image with first building an image of https://github.com/strukturag/spreed-webrtc/blob/master/Dockerfile.build and then the final image with Dockerfile.run.
You can either use a frontend proxy like Nginx to provide TLS to Spreed WebRTC and run it in production from the Docker container. The container also provides a TLS listener with an automatically created self-signed certificate on port 8443 for testing and development setups.
Run with default settings
docker run --rm --name my-spreed-webrtc -p 8080:8080 -p 8443:8443 \ -v `pwd`:/srv/extra -i -t spreed/webrtc
To use custom configuration, use the server.conf.in file as template and remove the listeners from [http] and [https] sections. Then provide that file when running the docker container as with
-c parameter like this:
docker run --rm --name my-spreed-webrtc -p 8080:8080 -p 8443:8443 \ -v `pwd`:/srv/extra -i -t spreed/webrtc \ -c /srv/extra/server.conf
And last, this container checks environment variables NEWCERT and NEWSECRETS, on startup. Set those to
1 to regenerate the corresponding values on start. The current certificate and secrets are printed before startup so you can use them easily for other services. Of course, if you want to have persistent cert and secrets, the container needs to be persistent in the first place, so no
--rm parameter in the example from above in that case.