Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rtckit/slimswitch
:whale2: Minimal FreeSWITCH Docker images
https://github.com/rtckit/slimswitch
docker docker-image freeswitch freeswitch-docker sip telephony webrtc
Last synced: about 1 month ago
JSON representation
:whale2: Minimal FreeSWITCH Docker images
- Host: GitHub
- URL: https://github.com/rtckit/slimswitch
- Owner: rtckit
- License: mit
- Created: 2021-12-03T22:22:19.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2023-11-28T22:29:11.000Z (about 1 year ago)
- Last Synced: 2024-08-03T02:04:10.033Z (4 months ago)
- Topics: docker, docker-image, freeswitch, freeswitch-docker, sip, telephony, webrtc
- Language: Shell
- Homepage:
- Size: 11.7 KB
- Stars: 14
- Watchers: 2
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-rtc - slimswitch - Tooling for creating lean secure FreeSWITCH Docker images. (Operations / Deployment)
README
# Build minimal FreeSWITCH Docker images
[![Docker Pulls](https://img.shields.io/docker/pulls/rtckit/slimswitch-builder.svg)](https://hub.docker.com/r/rtckit/slimswitch-builder)
[![License](https://img.shields.io/badge/license-MIT-blue)](LICENSE)Tooling for creating lean FreeSWITCH Docker images; resulting containers are efficient and expose a reduced attack surface. This is achieved by layering only the FreeSWITCH core, select modules and their runtime dependencies.
## Quickstart
Decide which FreeSWITCH modules should be included and provide a basic XML core/modules configuration file!
```sh
git clone https://github.com/rtckit/slimswitch.git
cd slimswitch./bin/mkslim.sh \
-m mod_commands -m mod_dptools -m mod_sofia \
-s local/awesome-switch
docker run --rm -it \
-v "$(pwd)/freeswitch.xml":/etc/freeswitch/freeswitch.xml \
local/awesome-switch:v1.10.10
```![Quickstart](https://raw.github.com/rtckit/media/master/slimswitch/demo.gif)
## Requirements
[Docker](https://docs.docker.com/get-docker/) and [slimtoolkit](https://slimtoolkit.org/) must be installed in the building environment.
## How it works
A generic reusable [builder image](etc/Dockerfile) is created first; the goal is to build the FreeSWITCH core and most of its modules, so then they can be mixed-and-matched as needed. The resulting image can also serve as a base for compiling third party modules. This phase is handled by the [./bin/mkbuilder.sh](./bin/mkbuilder.sh) script. Images corresponding to official FreeSWITCH releases are also [publicly available](https://hub.docker.com/r/rtckit/slimswitch-builder).
The trimming is achieved via the [./bin/mkslim.sh](./bin/mkslim.sh) script, which is essentially a wrapper for slimtoolkit; specifically, it leverages its static analysis features so dynamic dependencies are accounted for when the final image is created.
## License
MIT, see [LICENSE file](LICENSE).
### Acknowledgments
* [FreeSWITCH](https://github.com/signalwire/freeswitch), FreeSWITCH is a registered trademark of Anthony Minessale II
* [Docker](https://docker.com), Docker is a registered trademark of Docker, Inc
* [slimtoolkit](https://github.com/slimtoolkit/slim)### Contributing
Bug reports (and small patches) can be submitted via the [issue tracker](https://github.com/rtckit/slimswitch/issues). Forking the repository and submitting a Pull Request is preferred for substantial patches.