Версія 2.7.1 — перший публічний реліз PearlPBX2: з’явилася ліцензія, документація для швидкого старту і повний
Docker Compose стек, який піднімає весь бекенд одним docker compose up.
Ліцензія та публічні файли
Проєкт випущено за PolyForm Shield License 1.0.0 — джерело коду доступне, використання дозволене для будь-якої
мети, включно з власним комерційним розгортанням, за винятком продажу продукту чи сервісу, що конкурує з PearlPBX2.
Разом з ліцензією додано LICENSE, NOTICE, CONTRIBUTING.md, QUICKSTART.md зі шляхами встановлення через Ansible
і Docker Compose, а також SPDX-заголовки в ключових модулях.
Повний Docker Compose стек
docker-compose.yml тепер піднімає не лише Django й Asterisk, а весь бекенд: fastagi, dashboard-listener та
опційний callback-service (через --profile callback), кожен зі своїм Dockerfile. Новий сервіс asterisk-init
готує мінімальний manager.conf з увімкненим AMI і патчить modules.conf, щоб завантажити res_crypto.so до
першого запуску Asterisk — офіційний образ andrius/asterisk:22 постачається з вимкненим AMI, а без res_crypto
навіть власний healthcheck образу не проходить. docker-entrypoint.sh ідемпотентно виконує migrate й
collectstatic при кожному старті контейнера django, а docker-compose.override.yml додає bind mount вихідного
коду та uvicorn --reload для локальної розробки.
Дрібніші, але відчутні виправлення
- Статичні файли нарешті віддаються під Docker: доданий
whitenoise, оскількиDEBUG=Falseнавіть у режимі розробки, а nginx перед контейнеромdjangoвідсутній. REDIS_URLуdocker-compose.ymlбув неправильно зібраний із невикористовуванихREDIS_HOST/REDIS_PORT— це ламало/dashboard/ulines/і потенційно WebSocket-дашборд; тепер змінна виставлена напряму.- Вихідні дзвінки тепер зіставляються вебхуками і за таблицею маршрутизації, а не лише за контекстом dialplan — раніше вебхуки, що слухали лише вхідні контексти, ніколи не спрацьовували для вихідних дзвінків.
FASTAGI_HOST/FASTAGI_PORTдозволяють запускати FastAGI-сервер не лише на127.0.0.1:4573— це потрібно, коли Asterisk працює в окремому контейнері.