Skip to content

Repository files navigation

Chathook

GitHub License

Python UV

NodeJS Nuxt

项目简介

Chathook 是一个 聊天消息 Webhook 中转站,用于接收统一格式的消息,然后通过适配器模式转换并转发到多个目标平台(飞书 / 钉钉 / 自定义 Webhook)。

  • 统一入口:一套 API 发送到所有平台
  • 适配器模式:新增平台只需添加对应 Adapter
  • Web 管理面板:可视化管理 Webhook 配置与发送消息
  • 零数据库依赖:配置存储于本地 JSON 文件

技术栈

后端(根目录)

  • 语言:Python 3.14+
  • Web 框架:FastAPI + Uvicorn
  • HTTP 客户端:httpx(异步)
  • 日志:loguru
  • 包管理:uv
  • 存储:JSON 文件

前端(dashboard/)

  • 框架:Nuxt 4(Vue 3 + TypeScript)
  • UI 组件:Nuxt UI v3(Tailwind CSS v4 + Reka UI)
  • 运行时:Node.js 24 LTS
  • 包管理:npm

本地运行

前置要求

  • Python >= 3.14
  • Node.js >= 24 LTS
  • uv(Python 包管理器)
  • npm

一键启动(推荐)

# 1. 安装后端依赖
uv sync

# 2. 一键启动(首次会自动安装前端依赖并构建,之后复用已有产物)
uv run python main.py

启动后访问:

前端由同一个 FastAPI 进程在 8000 端口以静态文件方式提供;当 dashboard/app、nuxt.config.ts 或依赖清单变更时会自动重新构建。

分别启动

# 终端 1 - 后端(热重载)
uv sync
uv run uvicorn main:app --reload --host 127.0.0.1 --port 8000

# 终端 2 - 前端(开发服务器,自动把 API 代理到 8000)
cd dashboard
npm install
npm run dev

许可证

本项目基于 Apache License 2.0 开源,详见 LICENSE 文件。

About

Chat webhook app.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages