deviseo/transit-hub
GitHub: deviseo/transit-hub
TransitHub 是一个面向 sub2api/new-api 自托管 API 服务的多上游运营中心,解决跨平台余额监控、分组倍率管理与自动化定价等日常运维需求。
Stars: 130 | Forks: 8
# TransitHub
[](https://golang.org/)
[](https://vuejs.org/)
[](https://www.postgresql.org/)
[](https://redis.io/)
[](https://www.docker.com/)
**一个面向基于 sub2api 或 new-api 构建的自托管 API 服务的多上游运营中心。**
English | [中文](README_CN.md)
## 重要须知
在使用本项目之前,请仔细阅读以下内容:
- **提供商政策风险**:TransitHub 旨在帮助管理员连接并操作上游管理平台。请确保您的使用行为符合您连接的每个上游平台的服务条款。
- **仅限合规使用**:请在遵守您所在国家或地区法律法规的前提下使用本项目。请勿用于绕过授权、滥用上游服务或操作非您控制的账户。
- **自托管责任**:您需对保护您自托管环境中的管理员凭证、数据库备份、网络访问权限和部署密钥自行承担责任。
- **免责声明**:本项目仅供技术学习使用。您需对遵守适用法律及上游平台政策自行负责。对于因使用本项目导致的服务中断、账户限制、数据丢失或任何直接/间接损失,作者不承担任何法律责任。
## 概述
TransitHub 是一个自托管的用于管理多个上游站点和管理员工作台的运营中心。它专注于实际的运营工作流程:连接上游平台、追踪余额和分组倍率、监控仪表盘指标、配置通知,以及执行计划性的分组倍率活动(可在活动结束后自动恢复原始倍率)。
本项目后端采用 Go 开发,前端采用 Vue 3,并使用 PostgreSQL 和 Redis 作为支撑。
## 功能
- **管理工作台管理** - 在管理员账户/工作台之间切换,并隔离工作台范围内的数据。
- **上游站点管理** - 添加、同步、检查并管理具有缓存指标的上游站点。
- **仪表盘指标** - 查看实时和历史运营数据,包括余额、消耗、趋势、分组使用情况以及上游详细数据。
- **分组倍率追踪** - 追踪分组倍率快照、变更、历史记录、平台标签和自定义分组类型。
- **分组倍率活动** - 创建即时或定时的定价活动,更新选定的管理员分组,保留活动记录,并在配置的结束时间自动恢复原始倍率。
- **自动定价支持** - 根据上游倍率的变动,配置映射分组的自动定价规则。
- **通知渠道** - 配置钉钉、飞书和 Telegram 机器人,用于接收余额预警、倍率变更、自动定价和活动通知。
- **系统设置** - 管理刷新间隔、通知策略和运行时显示设置。
## 技术栈
| 组件 | 技术 |
|-----------|------------|
| 后端 | Go 1.25, net/http, pgx |
| 前端 | Vue 3.5, Vite, TypeScript, TailwindCSS, vue-i18n |
| 数据库 | PostgreSQL 16+ |
| 缓存 / 会话 | Redis 7+ |
| 部署 | Docker, Docker Compose |
## 部署说明
### Docker Compose
生产环境的 compose 文件位于 `deploy/` 目录下。
```
git clone https://github.com/deviseo/transit-hub.git transit-hub
cd transit-hub
# 首先编辑 deploy/docker-compose.prod.yml:
# - image tag(默认为 deviseo/transithub:latest)
# - database 密码
# - ADMIN_EMAIL / ADMIN_PASSWORD
# - 如果你想要自定义版本标签,请修改 APP_VERSION
docker compose -f deploy/docker-compose.prod.yml up -d
```
打开:
```
http://YOUR_SERVER_IP:10621
```
生产环境的 compose 文件包含:
- `app`:TransitHub 应用容器。
- `postgres`:PostgreSQL 数据库。
- `redis`:用于管理员会话、缓存和定时任务的 Redis。
默认情况下,持久化数据存储在仓库根目录下的 `data/` 目录中:
```
data/postgres
data/redis
```
### 开发环境服务
如果仅需要本地开发的依赖服务:
```
docker compose -f deploy/docker-compose.yml up -d
```
这将在本地端口 `5432` 和 `6379` 上启动 PostgreSQL 和 Redis。
### 构建 Docker 镜像
由于 Dockerfile 存放在 `deploy/` 目录下,但构建上下文需要设为仓库根目录,因此请使用以下命令构建:
```
docker build -f deploy/Dockerfile -t deviseo/transithub:latest .
```
## 本地开发
### 后端
```
cd backend
go test ./...
go run ./cmd/api
```
重要的环境变量:
```
PORT=10621
DATABASE_URL=postgres://postgres:postgres@localhost:5432/transithub?sslmode=disable
REDIS_URL=redis://127.0.0.1:6379/0
ADMIN_EMAIL=admin@example.com
ADMIN_PASSWORD=transithub
ALLOW_PUBLIC_REGISTER=true
APP_VERSION=dev
```
### 前端
```
cd frontend
npm install
npm run dev
```
构建检查:
```
npm run build
```
## 验证
提交代码变更前建议执行的检查项:
```
cd backend
go test ./...
go vet ./...
go build ./...
cd ../frontend
npm run build
cd ..
docker compose -f deploy/docker-compose.yml config
docker compose -f deploy/docker-compose.prod.yml config
```
## 项目结构
```
transit-hub/
├── backend/ # Go backend service
│ ├── cmd/api/ # API entrypoint
│ ├── internal/config/ # Runtime configuration
│ ├── internal/database/ # PostgreSQL, Redis, migrations
│ ├── internal/httpserver/ # HTTP server assembly and middleware
│ └── internal/modules/ # Domain modules
│ ├── admin_accounts/
│ ├── auth/
│ ├── dashboard/
│ ├── group_rate_campaigns/
│ ├── group_rates/
│ ├── my_sites/
│ ├── settings/
│ ├── system/
│ └── upstream/
├── frontend/ # Vue 3 admin frontend
│ └── src/modules/ # Feature modules
├── deploy/ # Dockerfile and compose files
├── development-docs/ # Development notes and implementation plans
└── data/ # Local production data directory, ignored by Git
```
## 项目注意事项
- `APP_VERSION` 仅用于展示。
- `AGENTS.md`、`CLAUDE.md`、`.sisyphus/`、本地 `.env` 文件、构建输出以及运行时数据已被 Git 设置为忽略。
## 许可证
本项目基于 GNU Lesser General Public License v3.0 (LGPL-3.0-only) 协议授权。详情请参阅 [LICENSE](LICENSE)。
**如果 TransitHub 对您的工作流有帮助,请考虑点个 star。**
标签:API服务管理, EVTX分析, Go, PostgreSQL, Redis, Ruby工具, Vue, 搜索引擎查询, 文件系统扫描, 日志审计, 测试用例, 版权保护, 自动化运维, 请求拦截, 运维管理平台