SmartTicket 是一款自托管的工单与知识协作平台。单一静态二进制文件,内嵌 SQLite,支持 RBAC、SLA 追踪与携带自有 LLM 的 RAG 检索。五分钟完成部署,数据完全自主可控。
$ git clone https://github.com/liliang-cn/smartticket && cd smartticket && docker compose up -d
简明扼要地呈现核心要素 — 面向用户,也面向汇总本页的 AI 引擎。
docker compose up工单、SLA、带版本控制的知识库、基于角色的访问控制、客户隔离与 AI 辅助 — 全部内置,运行于您独立拥有的单一进程中。
优先级与严重程度、指派、线程式对话、附件、状态流转与审计追踪 — 从接单到结单,全程覆盖。
按层级设定响应与解决时限,可配置支持等级,支持按节点与年度订阅进行追踪管理。
带版本控制的文章,支持公开与内部可见性,具备全文检索与语义搜索,阅读体验简洁流畅。
角色体系、细粒度权限,以及服务层 Actor 模型 — 确保每位客户只能访问自己的工单,REST 接口与 MCP 服务器均适用。
支持任何兼容 OpenAI 接口的提供商进行对话与向量化 — OpenAI、Azure、DeepSeek、Ollama、vLLM。在知识库上进行 RAG 检索,密钥静态加密存储。
回复、指派和状态变更均以实时应用内通知呈现 — 无需搭建邮件服务器即可及时掌握动态。
将工单、知识库、用户、产品与服务导出为 JSON、CSV、XML 或 Markdown 格式。数据可移植性是内置设计原则。
在设置页面自定义产品名称、强调色和 Logo — 统一应用于控制台和登录界面。
内置模型上下文协议服务器,将工单与回复暴露为工具接口,让 AI Agent 可以以编程方式进行分类和回复。
SmartTicket 以单一自包含二进制文件发布,同时提供 Web 控制台和 API 服务。无需数据库服务器、消息队列或反向代理即可启动。
# Recommended — one command, nothing else to install git clone https://github.com/liliang-cn/smartticket.git cd smartticket # (recommended) generate strong secrets echo "SMARTTICKET_JWT_SECRET=$(openssl rand -hex 32)" > .env echo "SMARTTICKET_SECRET_KEY=$(openssl rand -hex 32)" >> .env docker compose up -d # → http://localhost:6533 # login: admin@smartticket.local / admin123 (change it!)
# Prerequisites: Go 1.25+, Node 20+, pnpm git clone https://github.com/liliang-cn/smartticket.git cd smartticket # builds the console and embeds it into one static binary make build-all ./build/smartticket serve --config configs/config.dev.yaml # → http://localhost:6533
# Build once, install the single binary make build-all sudo cp build/smartticket /usr/local/bin/ # Set persistent secrets + point at the prod config # (edit storage.data_path in configs/config.prod.yaml first) export SMARTTICKET_JWT_SECRET=$(openssl rand -hex 32) export SMARTTICKET_SECRET_KEY=$(openssl rand -hex 32) smartticket serve --config configs/config.prod.yaml # Put TLS in front with Caddy/Nginx, or use the # systemd unit in deployments/systemd/.
docker compose up 命令即可在 6533 端口启动完整应用。Settings 中设置您的名称、颜色和 Logo。AI Providers 下添加兼容 OpenAI 接口的对话与向量化提供商。所有数据 — 工单、知识库、RAG 向量存储和配置 — 均存储在 smartticket-data 卷中(一个 SQLite 文件加上附件上传目录)。复制该卷即可完成备份,放回原位即可恢复。
SmartTicket 在设计上即为单租户:一个组织,一套实例。没有向外回传数据的 SaaS 后端,没有共享的多租户数据库,也没有任何必需的第三方服务。
┌─ your server ──────────────┐ │ smartticket (1 binary) │ │ ├─ web console :6533 │ │ ├─ REST API :6533 │ │ ├─ MCP server (stdio) │ │ └─ SQLite + RAG (vol) │ └────────────┬───────────────┘ │ optional, you choose your LLM provider
对话与向量化提供商可独立配置 — 各有自己的 Base URL、模型和密钥。知识库文章会被索引到内置向量存储中,用于检索增强式回答。
打开 Settings → Access,添加身份提供商的元数据 URL,映射 email 声明,然后为团队启用 SSO 强制认证……
后端用 Go,前端用 React,底层是 SQLite。没有冷僻的运行时,没有按席位收费,没有意外的隐藏依赖。
不需要。SQLite 已直接内嵌在二进制文件中,无需任何其他外部服务。整个应用就是一个进程 — 这正是其设计初衷。
使用 Docker 时:git pull && docker compose up -d --build。数据存储在命名卷中,重建不会影响数据。从源码构建时:git pull && make build-all,然后重启二进制文件。数据库结构迁移会在启动时自动执行。
不需要 — 工单、SLA、知识库和 RBAC 无需配置任何 LLM 即可正常使用。AI 功能为可选项:仅在需要语义搜索和 RAG 检索答案时才需要添加提供商。
不能。客户角色用户在服务层被严格限定为只能访问自己所属组织的工单 — 同样的隔离策略适用于 REST API 和 MCP 服务器。
复制数据卷(SQLite 文件、RAG 向量存储和上传的附件)即可。恢复时将其放回原位并启动二进制文件。您也可以从数据页面将所有内容导出为 JSON/CSV/XML/Markdown 格式。
软件本身开源免费,可自行托管。您唯一的成本是运行服务器的费用,以及启用 AI 时所选 LLM 提供商收取的费用。