Ir para o conteúdo

Issabel PBX (Docker hostnet)

Documentação do deploy Issabel 4 via issabel4-docker, validado na VPS AWS Rocky Linux 9.

Por que deploy separado?

Issabel em produção usa network_mode: host para SIP/RTP corretos. Não compartilha o mesmo docker-compose.yml do stack Lorentz.

Pré-requisitos

  • Docker + Compose instalados (04-docker-e-ferramentas.md)
  • bsdtar, python3, wget, git
  • Swap 4 GB recomendado
  • Portas 80, 443, 5060, 8089, 10000–10100 livres no host
  • ISO ~1,9 GB (download automático)

Deploy automatizado

cd ~/lorentz-vps-stack
./scripts/render-config.sh    # gera config/runtime/issabel.env
./scripts/deploy-issabel.sh

Tempo estimado: 20–40 min (download ISO + build imagem CentOS 7 + pacotes Issabel).

Deploy manual passo a passo

1. Clone do repositório

git clone --depth 1 https://github.com/Vasqs/issabel4-docker.git ~/issabel4-docker
cd ~/issabel4-docker
chmod +x scripts/*.sh

2. Configuração

cp .issabel-install.conf.example .issabel-install.conf
cp lorentz-vps-stack/config/runtime/issabel.env .env
# ou edite .env manualmente — ISSABEL_SIP_EXTERNAL_ADDRESS = IP público

3. Download ISO

wget -c -O issabel4-NIGHTLY-AST18-USB-DVD-x86_64-20211207.iso \
  "https://sourceforge.net/projects/issabelpbx/files/Issabel%204/issabel4-NIGHTLY-AST18-USB-DVD-x86_64-20211207.iso/download"

4. Perfil de instalação

python3 ./scripts/resolve-install-profile.py --non-interactive

Perfil padrão: Asterisk 18, módulos reports + endpointconfig.

5. Volumes externos

docker volume create issabel_issabel-etc
docker volume create issabel_issabel-var-lib
docker volume create issabel_issabel-var-log
docker volume create issabel_issabel-mysql
docker volume create issabel_issabel-spool

6. Parar conflitos no host

sudo systemctl stop httpd mariadb
sudo systemctl disable httpd mariadb

7. Deploy produção

ISSABEL_COMPOSE_MODE=hostnet ./scripts/deploy-production.sh

8. Validar

docker ps | grep issabel
./scripts/diagnose.sh
curl -skI https://127.0.0.1/
docker exec issabel-prod asterisk -rx "core show version"
docker exec issabel-prod asterisk -rx "sip show settings"

Acesso web

Item Valor
URL https://<IP_PUBLICO>/
Usuário admin (.envISSABEL_WEB_ADMIN_USER)
Senha .envISSABEL_WEB_ADMIN_PASSWORD

Certificado HTTPS autoassinado — aceite exceção no navegador.

Webmail (RoundCube)

O módulo Webmail usa o RoundCube incluído nos repositórios do Issabel.

Habilitar no deploy automático

No .env, defina:

ISSABEL_INSTALL_WEBMAIL=1
ISSABEL_ROUNDCUBE_DB_PASSWORD=ChangeMe_Roundcube2026!

O deploy-issabel.sh chamará scripts/enable-issabel-webmail.sh automaticamente após subir o container.

Habilitar em instalação existente

ssh -i ~/.ssh/issabel-key.pem ubuntu@<IP_VPS>
cd ~/omnichannel/lorentz-vps-stack
ISSABEL_CONTAINER=issabel-prod \
ISSABEL_ROUNDCUBE_DB_PASSWORD=ChangeMe_Roundcube2026! \
ISSABEL_SIP_EXTERNAL_ADDRESS=3.93.232.33 \
bash scripts/enable-issabel-webmail.sh

Acesso

https://<IP_VPS>/webmail/

Configurar servidor IMAP/SMTP

docker exec -it issabel-prod nano /etc/roundcubemail/config.inc.php

Parâmetros principais:

$config['default_host'] = 'ssl://mail.seudominio.com.br';
$config['smtp_server']  = 'tls://mail.seudominio.com.br';
$config['smtp_port']    = 587;

Reinicie o Apache após salvar:

docker exec issabel-prod service httpd restart

AMI para LorentzCTI

Após login no Issabel:

  1. PBX → Ferramentas → Asterisk Manager Users
  2. Usuário admin com permissões read/write
  3. Senha alinhada ao .envLORENTZ_CTI_AMI_SECRET (padrão legado amp111)

Confirme AMI escutando:

ss -tlnp | grep 5038
docker exec issabel-prod asterisk -rx "manager show settings"

Correção firstboot (Call Center opcional)

Se o container ficar unhealthy com log call center schema dump not found:

O módulo Call Center exige Asterisk 11; com Asterisk 18 o firstboot falhava. Correção aplicada em issabel4-docker:

# No container — retorno 0 em vez de 1 quando schema CC ausente
docker cp issabel4-docker/docker/issabel/rootfs/usr/local/bin/issabel-firstboot issabel-prod:/usr/local/bin/
docker exec issabel-prod sed -i 's/\r$//' /usr/local/bin/issabel-firstboot
docker restart issabel-prod

SIP externo

Em .env / firstboot:

ISSABEL_SIP_EXTERNAL_ADDRESS=3.84.135.100
ISSABEL_SIP_LOCALNETS=172.31.0.0/16
ISSABEL_RTP_START=10000
ISSABEL_RTP_END=10100

WebRTC / WSS (Softphone 008)

Para agentes no navegador, configure WSS na porta 8089:

cd ~/lorentz-vps-stack
./scripts/open-aws-port-8089.sh
./scripts/configure-issabel-wss.sh --extension 1001 --password SenhaForte

Documentação completa: 14-issabel-webrtc-wss.md

Comandos úteis

cd ~/issabel4-docker
./scripts/diagnose.sh
./scripts/down.sh
ISSABEL_COMPOSE_MODE=hostnet ./scripts/up.sh
docker logs issabel-prod -f

Documentação adicional

  • issabel4-docker/README.md
  • issabel4-docker/docs/operations.md

Próximo passo

09-integracao-e-redes.md — conectar LorentzCTI ao AMI.