VitalPBX 4.5 image built on Debian 12 (bookworm).
45
A ready-to-run VitalPBX 4.5 image built on Debian 12 (bookworm).
VitalPBX is a complete Unified Communications (UC) platform built on Asterisk, with a modern web admin panel, multi-tenant support, extensions, IVR, call queues, voicemail, call recording, WebRTC (VitXi) and REST APIs. This image installs the operating system, web stack (nginx + php-fpm), database (MariaDB) and all VitalPBX packages at build time, so the container is ready on the first boot.
Notes
- Runs systemd as PID 1 and requires
--privileged.- amd64 only.
- The image ships the platform, not your PBX data. Extensions, the MariaDB database and CDRs live in named volumes — back them up separately.
Save the docker-compose.yml below next to a .env file (or edit inline).
Start it:
docker compose up -d
docker compose logs -f
Open the admin panel at https://<host>:4443/ and complete the setup wizard.
The first boot runs vpbx-setup.service (can take a few minutes) to initialize
the database.
services:
vitalpbx:
image: raylvox/vitalpbx:v4.5
container_name: vitalpbx
hostname: vitalpbx
# VitalPBX uses systemd as init -> privileged + host cgroup.
privileged: true
cgroup: host
stop_grace_period: 60s
restart: unless-stopped
tmpfs:
- /run
- /run/lock
environment:
TZ: UTC
ports:
- "8080:80" # HTTP panel
- "4443:443" # HTTPS panel
- "5060:5060/tcp" # SIP
- "5060:5060/udp" # SIP
- "5061:5061/tcp" # SIP TLS
- "10000-10499:10000-10499/udp" # RTP (media)
- "127.0.0.1:5038:5038" # AMI (localhost only)
volumes:
- vpbx_asterisk:/etc/asterisk
- vpbx_astlib:/var/lib/asterisk
- vpbx_astspool:/var/spool/asterisk
- vpbx_astlog:/var/log/asterisk
- vpbx_mysql:/var/lib/mysql
volumes:
vpbx_asterisk:
vpbx_astlib:
vpbx_astspool:
vpbx_astlog:
vpbx_mysql:
privileged (systemd manages MariaDB, nginx, Asterisk,
fail2ban)./run and /run/lock as tmpfs.cgroup: host. Do not mount
/sys/fs/cgroup:ro — systemd will fail to start.-v /sys/fs/cgroup:/sys/fs/cgroup:rw.| Host | Container | Protocol | Purpose |
|---|---|---|---|
| 8080 | 80 | tcp | HTTP (panel / redirect) |
| 4443 | 443 | tcp | HTTPS admin panel |
| 5060 | 5060 | tcp/udp | SIP |
| 5061 | 5061 | tcp | SIP TLS |
| 5038 | 5038 | tcp | AMI — localhost only by default |
| 10000-10499 | 10000-10499 | udp | RTP (media/audio) |
The RTP range is narrowed to 500 ports (vs. the 10,000+ default) to avoid
thousands of docker-proxy processes. Change it with
--build-arg RTP_START=... RTP_END=... and match the port mapping above.
Data is stored in named volumes, so it survives image/container rebuilds.
Removing them (docker compose down -v) wipes your PBX configuration.
| Volume | Container path | Contents |
|---|---|---|
vpbx_asterisk | /etc/asterisk | Asterisk configuration |
vpbx_astlib | /var/lib/asterisk | Asterisk data/assets |
vpbx_astspool | /var/spool/asterisk | Voicemail, recordings |
vpbx_astlog | /var/log/asterisk | Asterisk logs |
vpbx_mysql | /var/lib/mysql | MariaDB database |
v4.5 — stable release.v4.5-<date> — dated snapshot (e.g. v4.5-2026-10-09).Content type
Image
Digest
sha256:10289ea31…
Size
559.9 MB
Last updated
11 days ago
docker pull raylvox/vitalpbx:v4.5