https://github.com/patrickbaus/freeswitch-docker
An Alpine Linux based Docker container for FreeSWITCH
https://github.com/patrickbaus/freeswitch-docker
alpine-linux docker freeswitch
Last synced: 3 months ago
JSON representation
An Alpine Linux based Docker container for FreeSWITCH
- Host: GitHub
- URL: https://github.com/patrickbaus/freeswitch-docker
- Owner: PatrickBaus
- License: gpl-3.0
- Created: 2024-12-24T10:11:36.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2025-10-08T04:58:31.000Z (4 months ago)
- Last Synced: 2025-10-08T06:27:58.219Z (4 months ago)
- Topics: alpine-linux, docker, freeswitch
- Language: Dockerfile
- Homepage:
- Size: 69.3 KB
- Stars: 8
- Watchers: 1
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://github.com/PatrickBaus/freeswitch-docker/releases/latest)
[](https://github.com/PatrickBaus/freeswitch-docker/actions/workflows/updater_freeswitch.yml)
[](https://github.com/PatrickBaus/freeswitch-docker/actions/workflows/updater_sofia.yml)
[](LICENSE)
[](https://github.com/PatrickBaus/freeswitch-docker/pkgs/container/freeswitch-docker)
# FreeSWTICH Docker container
This is an inofficial Docker file for [FreeSWITCH](https://signalwire.com/freeswitch). There currently is no official Docker container available from Signalwire except for [safarov/freeswitch](https://hub.docker.com/r/safarov/freeswitch) which has not been updated for years and is currently stuck at version 1.6. This container tracks the official releases.
## Contents
- [Introduction](#introduction)
- [Installation](#installation)
- [Versioning](#versioning)
- [Authors](#authors)
- [License](#license)
## Introduction
This Docker container is based on [Alpine Linux](https://alpinelinux.org/) instead of the Debian base image used by the [example Dockerfiles](https://github.com/signalwire/freeswitch#build-from-source). The container, in contrast to the default [FreeSWITCH](https://signalwire.com/freeswitch) build, does not contain `mod_av` and `mod_signalwire`.
## Installation
The container requires a data volume to store the configuration. [FreeSWITCH](https://signalwire.com/freeswitch) also requires port forwarding of (possibly) a large number of ports. The ports required can be found in the [FreeSWITCH documentation](https://developer.signalwire.com/freeswitch/FreeSWITCH-Explained/Networking/Firewall_1048908/), but due to the nature of RTP, the large number of required ports pose an [issue with Docker](https://github.com/moby/moby/issues/11185). It is therefore recommended to use `host` networking mode with this image.
The container can be started via Docker using the following command, but it is recommended to use [Docker Compose](https://docs.docker.com/compose/) instead
#### Docker
```bash
docker run -d --net=host --cap-add SYS_NICE -v $(pwd)/configuration:/etc/freeswitch ghcr.io/patrickbaus/freeswitch-docker
```
The `SYS_NICE` capability allows [FreeSWITCH](https://signalwire.com/freeswitch) to adjust its niceness to improve real-time functionality.
#### Docker compose
An example [docker-compose.yml](docker-compose.yml) file can be found in the repository and below.
```yaml
services:
freeswitch:
image: ghcr.io/patrickbaus/freeswitch-docker
container_name: freeswitch
restart: always
cap_add: # Enable RT features
- SYS_NICE
network_mode: "host"
volumes:
- '/mnt/docker/freeswitch/configs/:/etc/freeswitch/'
- '/mnt/docker/freeswitch/logs/:/var/log/freeswitch/'
```
This compose file mounts two volumes into the container, one for the logs and the other for the config files. It also uses `host` mode for networking and enables `SYS_NICE` capabilities.
## Versioning
I follow the [FreeSWITCH releases](https://github.com/signalwire/freeswitch/releases) for version numbering. For the versions available, see the [tags](../../tags) available for this repository.
## Authors
* **Patrick Baus** - *Initial work* - [PatrickBaus](https://github.com/PatrickBaus)
## License
This project is licensed under the GPL v3 license - see the [LICENSE](LICENSE) file for details.