Dockerfile for installation of matrix open federated Instant Messaging and
VoIP communication server.
The riot.im web client has now his own docker file at github.
If you want contribute to this project feel free to fork this project, do your
work in a branch and create a pull request.
To configure run the image with "generate" as argument. You have to setup the
server domain and a
/data-directory. After this you have to edit the
generated homeserver.yaml file.
To get the things done, "generate" will create a own self-signed certificate.
This needs to be changed for production usage.
$ docker run -v /tmp/data:/data --rm -e SERVER_NAME=localhost -e REPORT_STATS=no silviof/docker-matrix generate
For starting you need the port bindings and a mapping for the
$ docker run -d -p 8448:8448 -p 3478:3478 -v /tmp/data:/data silviof/docker-matrix start
The following ports are used in the container for the Matrix server. You can use
docker run to configure this part (eg.:
If you only need STUN to work you need the following ports:
3478, 5349 udp/tcp
The server has the following as alt-ports:
3479, 5350 udp/tcp
For TURN (using the server as a relay) you also need to forward this portrange:
You may also have to set the external ip of the server in turnserver.conf which is located in the
In case you don't want to expose the whole port range on udp you can change the portrange in turnserver.conf:
To get the installed synapse version you can run the image with
argument or look at the container via cat.
$ docker run -ti --rm silviof/docker-matrix version -=> Matrix Version synapse: master (7e0a1683e639c18bd973f825b91c908966179c15) coturn: master (88bd6268d8f4cdfdfaffe4f5029d489564270dd6) # docker exec -it CONTAINERID cat /synapse.version synapse: master (7e0a1683e639c18bd973f825b91c908966179c15) coturn: master (88bd6268d8f4cdfdfaffe4f5029d489564270dd6)
SERVER_NAME: Server and domain name, mandatory, needed only for
REPORT_STATS: statistic report, mandatory, values:
MATRIX_GID: UserID and GroupID of user within container which
runs the synapse server. The files mounted under /data are
chowned to this
ownership. Default is
MATRIX_GID=991. It can overriden
-e MATRIX_GID=...at start time.
build specific arguments
BV_SYN: synapse version, optional, defaults to
BV_TUR: coturn turnserver version, optional, defaults to
For building of synapse version v0.11.0-rc2 and coturn with commit a9fc47e add
--build-arg BV_SYN=v0.11.0-rc2 --build-arg BV_TUR=a9fc47efd77 to the
diff between system and fresh generated config file
To get a hint about new options etc you can do a diff between your configured
homeserver.yaml and a newly created config file. Call your image with
$ docker run --rm -ti -v /tmp/data:/data silviof/docker-matrix diff [...] +# ldap_config: +# enabled: true +# server: "ldap://localhost" +# port: 389 +# tls: false +# search_base: "ou=Users,dc=example,dc=com" +# search_property: "cn" +# email_property: "email" +# full_name_property: "givenName" [...]
For generating of this output its
busybox used. The used diff
parameters can be changed through
DIFFPARAMS environment variable. The