Sign inSign up

raylvox/vitalpbx

By raylvox

•Updated 11 days ago

VitalPBX 4.5 image built on Debian 12 (bookworm).

Image
Networking
0

45

raylvox/vitalpbx repository overview

⁠VitalPBX 4.5 on Debian 12 — Docker Image

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.

⁠Quick start

  1. Save the docker-compose.yml below next to a .env file (or edit inline).

  2. Start it:

    docker compose up -d
    docker compose logs -f
    
  3. 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.

⁠docker-compose.yml

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:

⁠Requirements

  • Docker Engine or Docker Desktop.
  • Container must run privileged (systemd manages MariaDB, nginx, Asterisk, fail2ban).
  • /run and /run/lock as tmpfs.
  • On cgroup v2 hosts (modern distros) use cgroup: host. Do not mount /sys/fs/cgroup:ro — systemd will fail to start.
  • On cgroup v1 hosts, add -v /sys/fs/cgroup:/sys/fs/cgroup:rw.

⁠Ports

HostContainerProtocolPurpose
808080tcpHTTP (panel / redirect)
4443443tcpHTTPS admin panel
50605060tcp/udpSIP
50615061tcpSIP TLS
50385038tcpAMI — localhost only by default
10000-1049910000-10499udpRTP (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.

⁠Persistent data

Data is stored in named volumes, so it survives image/container rebuilds. Removing them (docker compose down -v) wipes your PBX configuration.

VolumeContainer pathContents
vpbx_asterisk/etc/asteriskAsterisk configuration
vpbx_astlib/var/lib/asteriskAsterisk data/assets
vpbx_astspool/var/spool/asteriskVoicemail, recordings
vpbx_astlog/var/log/asteriskAsterisk logs
vpbx_mysql/var/lib/mysqlMariaDB database

⁠Tags

  • v4.5 — stable release.
  • v4.5-<date> — dated snapshot (e.g. v4.5-2026-10-09).

⁠RaylVox

RaylVox⁠

Tag summary

Content type

Image

Digest

sha256:10289ea31…

Size

559.9 MB

Last updated

11 days ago

docker pull raylvox/vitalpbx:v4.5