
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
izPBX是一个开箱即用的云原生VoIP电话系统,基于Asterisk引擎和FreePBX管理界面构建,旨在提供云和本地环境下快速、自动化、可重复部署的VoIP PBX解决方案。该系统集成了电话引擎、Web管理界面、安全监控工具及多种实用功能,适用于企业级VoIP通信需求。
tcpdump和sngrep用于VoIP呼叫调试izsynth文本转语音(TTS)合成工具、背景音乐叠加器及音频转换器izpbx-callstats等系统状态监控脚本20.16, 20.16.X, 20.16.X-BUILD,20, latest(Asterisk 20 LTS + FreePBX 16)18.16, 18.16.X, 18.16.X-BUILD,18(Asterisk 18 LTS + FreePBX 16)18.15, 18.15.X, 18.15.X-BUILD(Asterisk 18 LTS + FreePBX 15)16.15, 16.15.X, 16.15.X-BUILD(Asterisk 16 LTS + FreePBX 15)dev-20, dev-20.X, dev-20.X.X-BUILDdev-18, dev-18.X, dev-18.X.X-BUILD标签格式:Z.Y.X-[BUILD]
其中:
最新版本可在https://hub.docker.com/r/izdock/izpbx-asterisk/tags%E6%9F%A5%E7%9C%8B%E3%80%82
1. 准备环境
bash# 安装Docker(以RHEL8为例) sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker compose-plugin -y sudo systemctl enable --now docker # 克隆项目仓库 git clone https://github.com/ugoviti/izpbx.git /opt/izpbx cd /opt/izpbx # 检出最新官方版本 git checkout tags/$(git tag | sort --version-sort | tail -1)
2. 配置环境变量
bash# 复制默认配置文件并自定义 cp default.env .env vim .env # 修改安全相关密码及网络配置
3. 启动服务
bashdocker compose up -d
等待镜像拉取完成(约60秒,取决于网络速度),通过浏览器访问Docker主机IP,按照初始设置向导完成配置。
注意:默认使用
network_mode: host以处理SIP NAT和UDP流量,容器直接暴露到主机网络。如需在同一主机运行多个实例,需修改compose.yml并注释该配置,或使用macvlan网络模式。
如需覆盖默认配置,创建docker-compose.override.yml文件,例如:
yamlversion: '3' services: db: image: docker.io/mariadb:10.11.4 # 自定义数据库版本 izpbx: image: docker.io/izdock/izpbx-asterisk:20.16.7 # 指定izPBX版本
使用docker compose up -d应用配置。
1. 启动数据库
bashdocker run --rm -ti -v ./data/db:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=CHANGEM3 -e MYSQL_PASSWORD=CHANGEM3 \ --name izpbx-db mariadb:10.4
2. 启动izPBX
bashdocker run --rm -ti --network=host --privileged --cap-add=NET_ADMIN \ -v ./data/izpbx:/data \ -e MYSQL_ROOT_PASSWORD=CHANGEM3 -e MYSQL_PASSWORD=CHANGEM3 \ -e MYSQL_SERVER=127.0.0.1 -e MYSQL_DATABASE=asterisk \ -e MYSQL_USER=asterisk -e APP_DATA=/data \ --name izpbx izpbx-asterisk:latest
bash# 更新项目代码 cd /opt/izpbx git checkout main git pull git fetch --tags --all -f git checkout tags/$(git tag | sort --version-sort | tail -1) # 拉取最新镜像并重启服务 docker compose pull docker compose up -d # 若数据库版本更新,升级表结构 source .env ; docker exec -it izpbx-db mysql_upgrade -u root -p$MYSQL_ROOT_PASSWORD # FreePBX模块升级(通过Web界面) # 登录FreePBX → 管理员 → 模块管理 → 在线检查 → 升级所有 → 处理
FreePBX仅在首次部署时安装到持久化目录。如需升级FreePBX主版本(如从15到16),需:
/opt/izpbx/data).env中设置FREEPBX_AUTOUPGRADE_CORE=true18.16.x)目标
配置示例
创建部署目录及配置文件:
bashmkdir /opt/yourgreatpbx && cd /opt/yourgreatpbx vim compose.yml # 编辑以下内容 vim .env # 配置环境变量
compose.yml内容:
yamlversion: '3' networks: izpbx-0-ext: # 外部网络(macvlan) driver: macvlan driver_opts: parent: eth0 # 主机物理网卡 ipam: config: - subnet: 10.1.1.0/24 # 与内网网段匹配 izpbx-1: # 内部桥接网络 driver: bridge services: db: # 专用数据库服务 image: mariadb:10.5.9 restart: unless-stopped env_file: .env volumes: - ./data/db:/var/lib/mysql networks: izpbx-1: izpbx: # PBX服务 image: izdock/izpbx-asterisk:18.15.11 restart: unless-stopped depends_on: [db] env_file: .env volumes: - ./data/izpbx:/data cap_add: [NET_ADMIN] privileged: true networks: izpbx-0-ext: ipv4_address: 10.1.1.221 # 分配独立IP izpbx-1:
启动服务:docker compose up -d,重复上述步骤部署其他实例(需修改IP和目录)。
bash# 重启整个部署 docker compose restart # 重启izpbx容器 docker restart izpbx # 重启数据库容器 docker restart izpbx-db
bash# 进入容器 docker exec -it izpbx bash # 重启Asterisk服务 supervisorctl restart asterisk # 查看所有服务状态 supervisorctl status
支持的服务:asterisk、cron、fail2ban、fop2、httpd、izpbx、tftpd等。
默认环境变量定义在https://github.com/ugoviti/izpbx/blob/main/default.env%EF%BC%8C%E5%8C%85%E6%8B%AC%E6%95%B0%E6%8D%AE%E5%BA%93%E9%85%8D%E7%BD%AE%E3%80%81%E7%BD%91%E7%BB%9C%E7%AB%AF%E5%8F%A3%E3%80%81%E5%AE%89%E5%85%A8%E7%AD%96%E7%95%A5%E7%AD%89%E5%8F%82%E6%95%B0%E3%80%82
集成Asterisk Zabbix代理,监控服务健康状态。配置方法参考https://github.com/ugoviti/zabbix-templates/tree/main/asterisk%E3%80%82
bash# 进入容器 docker exec -it izpbx bash # 注册许可证(替换LICENSECODE和Company Name) /usr/local/fop2/fop2_server --rp=http --register --iface eth0 --name "Company Name" --code "LICENSECODE"
bashdocker compose down rm -rf /opt/izpbx/data docker compose up -d
network_mode: host限制单主机多实例部署(需手动配置macvlan)Dockerfile地址:https://github.com/ugoviti/izpbx/blob/main/izpbx-asterisk/Dockerfile
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务