deviseo/transit-hub

GitHub: deviseo/transit-hub

TransitHub 是一个面向 sub2api/new-api 自托管 API 服务的多上游运营中心,解决跨平台余额监控、分组倍率管理与自动化定价等日常运维需求。

Stars: 130 | Forks: 8

# TransitHub
[![Go](https://img.shields.io/badge/Go-1.25+-00ADD8.svg)](https://golang.org/) [![Vue](https://img.shields.io/badge/Vue-3.5+-4FC08D.svg)](https://vuejs.org/) [![PostgreSQL](https://img.shields.io/badge/PostgreSQL-16+-336791.svg)](https://www.postgresql.org/) [![Redis](https://img.shields.io/badge/Redis-7+-DC382D.svg)](https://redis.io/) [![Docker](https://img.shields.io/badge/Docker-Ready-2496ED.svg)](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, 搜索引擎查询, 文件系统扫描, 日志审计, 测试用例, 版权保护, 自动化运维, 请求拦截, 运维管理平台