A comprehensive Docker solution for FusionPBX, providing a complete VoIP platform with all necessary components pre-configured and ready to deploy.
Stack: Ubuntu 24.04 • FusionPBX 5.4.7 • FreeSWITCH 1.10.12 • PHP 8.3 • PostgreSQL 16
- FusionPBX Install Scripts: github.com/fusionpbx/fusionpbx-install.sh
- Docker Hub Repository: hub.docker.com/r/michaelfangtw/fusionpbx-docker
- 🏗️ Software Stack
- 📦 Included Services
- 🚀 Quick Start
- 📁 Project Structure
- 🔐 Default Credentials
- 🌐 Network Configuration
- 💾 Data Persistence
- ⚙️ Requirements
- 🔧 Troubleshooting
- 📚 Additional Resources
- 🤝 Contributing
- 📄 License
| Component | Version |
|---|---|
| Base OS | Ubuntu 24.04 |
| FusionPBX | 5.4.7 |
| FreeSWITCH | 1.10.12 |
| PHP | 8.3 |
| PostgreSQL | 16 |
The Docker image includes the following services:
- iptables - Firewall management
- sngrep - SIP packet capture tool
- fusionpbx - Web-based PBX system
- php - PHP runtime
- nginx - Web server
- postgres - Database server
- freeswitch - Voice over IP platform
- fail2ban - Intrusion prevention system
Set the proper ownership for the config directory:
sudo chown 33:33 config -Rdocker pull michaelfangtw/fusionpbx-docker:5.4If you want to build the image locally: you can change password in config.sh
docker build -t fusionpbx-docker:5.4 .The docker-compose.yaml file is already configured. Choose your preferred method:
- Pre-built image (default): Uses
michaelfangtw/fusionpbx-docker:5.4 - Local build: Uncomment the
buildsection in the compose file
services:
pbx:
# 1.Use pre-built image from Docker Hub
image: michaelfangtw/fusionpbx-docker:5.4
# 2.Or build locally (uncomment to use)
# build:
# context: .
#3. use local
#image: fusionpbx-docker:5.4
# Host networking for RTP port range
network_mode: "host"
container_name: fusionpbx
restart: always
privileged: true
# Persist configuration
volumes:
- ./config/fusionpbx:/etc/fusionpbx
entrypoint: ["/usr/sbin/init"]docker compose up -dOnce the container is running, access FusionPBX at:
- URL: http://localhost
- Username:
admin@localhost - Password:
passworddon't forget to change password
fusionpbx-install-docker/
├── config/ # Configuration files
│ └── fusionpbx/ # FusionPBX configuration
├── docker-compose.yaml # Docker Compose configuration
├── Dockerfile # Docker image definition
├── build.sh # Build script
├── compose.sh # Compose helper script
├── config.sh # Configuration script
├── push.sh # Push script
└── README.md # Documentation
This container uses host networking mode to properly handle RTP traffic for VoIP communications. This means:
- All services are accessible on the host's network interface
- No port mapping is required
- FreeSWITCH can properly handle media streams
Configuration data is persisted through Docker volumes:
| Host Path | Container Path | Description |
|---|---|---|
./config/fusionpbx |
/etc/fusionpbx |
FusionPBX configuration files |
- Docker Engine: 20.10+
- Docker Compose: v2.0+
- Operating System: Linux (recommended for host networking mode)
- URL: http://localhost
- Username:
admin@localhost - Password:
passworddon't forget to change password
⚠️ IMPORTANT: Do not change these credentials - they are required for proper operation
- Host:
localhost - User:
fusionpbx - Password:
passworddon't forget to change password
If you can't access the web interface at http://localhost:
-
Check container status:
docker ps
-
View container logs:
docker logs fusionpbx
-
Check port availability:
sudo netstat -tulpn | grep :80
If you cannot log in to the web interface:
-
Access the container:
docker exec -it fusionpbx /bin/bash -
Backup existing configuration:
mv /etc/fusionpbx/config.conf /etc/fusionpbx/config.conf.old
-
Reset admin credentials:
- Username:
admin - Password:
passworddon't forget to change password - Domain:
localhost
- Username:
If you encounter database-related login failures:
-
Access the container:
docker exec -it fusionpbx /bin/bash -
Navigate to resources directory:
cd /usr/src/fusionpbx-install.sh/ubuntu/resources -
Recreate the database:
./postgresql.sh # Create database ./finish.sh # Set admin credentials
To preserve modifications made inside the container:
# Make changes inside the container
docker exec -it fusionpbx /bin/bash
# ... perform your modifications ...
# Exit the container
# Commit changes to create a new image
TAG=5.4
docker tag fusionpbx-docker:$TAG michaelfangtw/fusionpbx-docker:$TAG
docker login
docker push michaelfangtw/fusionpbx-docker:$TAG# Real-time logs
docker logs -f fusionpbx
# Last 100 lines
docker logs --tail 100 fusionpbxdocker restart fusionpbx- FusionPBX Official Documentation
- FusionPBX Install Scripts
- FreeSWITCH Documentation
- Docker Hub Repository
This project includes the complete FusionPBX installer approach for transparency and customization. Feel free to submit issues and pull requests.
This project follows the same licensing as the original FusionPBX project. Please refer to the official FusionPBX repository for license details.