FusionPBX server with FreeSwitch included.
When the container is running and you have published the web-interface directly or via a reverse proxy, you could access the web-interface by http://yourHostName
or https://yourHostName
with default login admin
and password fusionpbx
.
Starts a container and expose the FusionPBX web-interface on port 80.
docker run -d --name fusionpbx -p 80:80 -p 5060:5060/tcp -p 5060:5060/udp \
-p 16384:16384/udp -p 16385:16385/udp -p 16386:16386/udp -p 16387:16387/udp -p 16388:16388/udp \
-p 16389:16389/udp -p 16390:16390/udp -p 16391:16391/udp -p 16392:16392/udp -p 16393:16393/udp \
-v <PATH_TO_PERSISTENT_CONFIG>:/etc/freeswitch \
spali/fusionpbx
####Using SSL
Starts a container and expose the FusionPBX web-interface on port 443 with ssl.
docker run -d --name fusionpbx -p 443:443 -p 5060:5060/tcp -p 5060:5060/udp \
-p 16384:16384/udp -p 16385:16385/udp -p 16386:16386/udp -p 16387:16387/udp -p 16388:16388/udp \
-p 16389:16389/udp -p 16390:16390/udp -p 16391:16391/udp -p 16392:16392/udp -p 16393:16393/udp \
-v <PATH_TO_PERSISTENT_CONFIG>:/etc/freeswitch \
spali/fusionpbx
- !! Warning !!
- By default and if you don't provide your own certificate, a generated self signed certificate is used. You can provide your own certificate by mounting the container volume `/etc/nginx/certs`. The expected filenames are `fusionpbx.pem` and `fusionpbx.key`. ####Provide configuration repository Clone FreeSwitch configuration on initialisation from a git repository. ``` docker run -d --name fusionpbx -p 443:443 -p 5060:5060/tcp -p 5060:5060/udp \ -p 16384:16384/udp -p 16385:16385/udp -p 16386:16386/udp -p 16387:16387/udp -p 16388:16388/udp \ -p 16389:16389/udp -p 16390:16390/udp -p 16391:16391/udp -p 16392:16392/udp -p 16393:16393/udp \ -e FREESWITCH_INIT_REPO https://github.com/spali/freeswitch_conf_minimal.git \ spali/fusionpbx ``` ####Using a reverse proxy Starts a container with the environment variable used by [jwilder/nginx-proxy](https://github.com/jwilder/nginx-proxy) implementation for nginx reverse proxy for docker containers. ``` docker run -d --name fusionpbx -p 5060:5060/tcp -p 5060:5060/udp \ -p 16384:16384/udp -p 16385:16385/udp -p 16386:16386/udp -p 16387:16387/udp -p 16388:16388/udp \ -p 16389:16389/udp -p 16390:16390/udp -p 16391:16391/udp -p 16392:16392/udp -p 16393:16393/udp \ -v :/etc/freeswitch \ -e VIRTUAL_HOST= -e VIRTUAL_PORT=80 \ spali/fusionpbx ```
- Due the lack in docker to dynamically expose ports or bigger ranges of ports, this Dockerfile is limited to 10 concurrent calls.
- include some basic apps (editors etc.)
- an automated way to configure the external ip and rdp port range (maybe by environment variables)
- setup fail2ban/logrotation for freeswitch and webinterface (everything after fusionpbx in the install script)
- add nginx basic auth option for additional security
- implement autorestart of vanished services (nginx,php5-fpm,freeswitch)
- implement a dialplan to dynamically enable and disable access to web interface