# FSWorkbench **Repository Path**: JiaHuaWork/fsworkbench ## Basic Information - **Project Name**: FSWorkbench - **Description**: FreeSWITCH Workbench(v1.0,MIT)是呼叫中心 / PBX 的控制面:React 管理端 + Go ESL API + Node 实时通道,对接宿主机 FS(不把 FS 打进镜像),覆盖分机、中继、路由 IVR、队列 ACD、WebRTC 软电话、CDR 录音、告警报表与 RBAC。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-07-24 - **Last Updated**: 2026-08-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FreeSWITCH Workbench [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) [![Go](https://img.shields.io/badge/Go-1.22%2B-00ADD8)](apps/api) [![Node](https://img.shields.io/badge/Node.js-18%2B-339933)](package.json) [![Version](https://img.shields.io/badge/version-1.0.0-brightgreen)](CHANGELOG.md) 面向呼叫中心与 PBX 运维的 **FreeSWITCH 可视化管理平台**(开源正式版 **v1.0**)。 用浏览器完成分机 / Trunk / 路由 / IVR / 队列 / 坐席外呼 / CDR 录音 / 多节点 ESL / 告警与报表,配置写回 FreeSWITCH `conf` 并 `reloadxml`。 > FreeSWITCH 本体仍运行在宿主机或独立服务器上;本仓库提供 **控制面 + 实时面 + 管理端**,不把 FS 打进 Docker 镜像。 --- ## 功能一览 | 模块 | 能力 | |------|------| | 分机 / Trunk | CRUD,同步 directory / sip_profiles,reload + sofia rescan | | 路由 / IVR | 正则路由、React Flow 流程(按键/超时/挂机落地 dialplan) | | 队列 ACD | callcenter 配置 + 运行时排队/坐席状态可视化 | | 坐席台 | ESL 外呼 / 转接、SIP.js WebRTC 软电话、目标节点选择 | | CDR | 筛选、CSV、录音试听/下载与路径诊断、重复清理 | | 运维 | FS 配置树、命令台、日志、模块、健康面板、Prometheus `/metrics` | | 安全 | JWT、admin / operator / agent RBAC、改密、操作审计 | | 扩展 | 多节点 ESL MVP、告警 Webhook、按日/坐席/队列报表 | 默认管理员:`admin` / `admin123`(**上线后请立刻改密**)。 --- ## 架构 ``` 浏览器 ├── REST ──────────► Go API (:8080) ──ESL──► FreeSWITCH (宿主机) │ │ │ ├── PostgreSQL │ └── Redis Pub/Sub ──► Node Realtime (:3001) └── Socket.IO ◄──────────────────────────────┘ ``` | 组件 | 技术 | |------|------| | Web | React 19 · Vite · Ant Design · Tailwind | | API | Go · Gin · eslgo · pgx · Prometheus | | Realtime | Node.js · Socket.IO · Redis | | 数据 | PostgreSQL · Redis | 更细的模块说明见 [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md)。 --- ## 快速开始 ### 方式 A:Docker Compose(推荐体验) 详见 [docs/DEPLOY.md](docs/DEPLOY.md)。 ```bash cp .env.example .env # 编辑 JWT_SECRET、密码;Windows 宿主机 FS 使用 FS_ESL_HOST=host.docker.internal docker compose up -d --build ``` 浏览器:**http://localhost:8088** ### 方式 B:本地开发 ```bash cp .env.example .env # 或参考 configs/.env.example(Windows 本机路径示例) # 创建库:CREATE DATABASE fs_workbench; pnpm install cd apps/api && go mod tidy && cd ../.. pnpm dev:api # :8080 pnpm dev:realtime # :3001 pnpm dev:web # :5173 ``` 打开 **http://localhost:5173**。环境变量完整说明见 [docs/ENVIRONMENT.md](docs/ENVIRONMENT.md)。 --- ## 仓库结构 ``` apps/web 管理端前端 apps/api Go 控制面(ESL / REST / 迁移) apps/realtime Socket.IO 实时网关 fs_conf/ FreeSWITCH conf 模板与联调副本 scripts/ SQL 迁移(API 启动自动执行) docs/ 部署 / 架构 / 环境变量 / 发布清单 configs/.env.example 本机路径示例(可与根目录 .env.example 对照) docker-compose.yml postgres + redis + api + realtime + web ``` --- ## 文档索引 | 文档 | 内容 | |------|------| | [docs/DEPLOY.md](docs/DEPLOY.md) | Docker / 本机部署、WebRTC、排障 | | [docs/ENVIRONMENT.md](docs/ENVIRONMENT.md) | 环境变量一览 | | [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) | 架构与数据流 | | [docs/RELEASE.md](docs/RELEASE.md) | 正式版发布检查清单 | | [CHANGELOG.md](CHANGELOG.md) | 版本变更记录 | | [CONTRIBUTING.md](CONTRIBUTING.md) | 贡献指南 | | [SECURITY.md](SECURITY.md) | 安全策略与漏洞报告 | | [fs_conf/README.workbench.md](fs_conf/README.workbench.md) | FS conf 联调说明 | --- ## 开源协议 本项目以 **[MIT License](LICENSE)** 发布。欢迎 Issue / PR;参与方式见 [CONTRIBUTING.md](CONTRIBUTING.md)。 第三方依赖各自遵循其原有许可证(Go modules、npm 包、FreeSWITCH 本体)。 --- ## 安全提示 - 勿将 `.env`、`服务器.txt`、生产密码提交到 Git(已在 `.gitignore`) - 勿将 ESL `8021`、PostgreSQL、Redis 直接暴露公网 - 生产务必修改 `JWT_SECRET`、数据库/Redis 密码与管理员密码 - 详见 [SECURITY.md](SECURITY.md) --- ## 版本 当前正式版:**v1.0.0** — 见 [CHANGELOG.md](CHANGELOG.md) 与 [docs/RELEASE.md](docs/RELEASE.md)。