feat: 添加 Docker Hub 自动构建和改进部署体验

- 支持环境变量预设管理员账号密码
- 添加 docker-entrypoint.sh 自动初始化脚本
- 配置 GitHub Actions 自动构建多平台镜像(amd64, arm64)
- 添加版本标签管理和自动发布流程
- 集成 Trivy 安全漏洞扫描
- 更新文档说明 Docker Hub 使用方法
- 优化 Docker 部署用户体验

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
shaw
2025-07-19 00:49:04 +08:00
parent f5968e518e
commit 5c83cf1d53
12 changed files with 691 additions and 6 deletions

118
README.md
View File

@@ -6,6 +6,8 @@
[![Node.js](https://img.shields.io/badge/Node.js-18+-green.svg)](https://nodejs.org/)
[![Redis](https://img.shields.io/badge/Redis-6+-red.svg)](https://redis.io/)
[![Docker](https://img.shields.io/badge/Docker-Ready-blue.svg)](https://www.docker.com/)
[![Docker Build](https://github.com/your-repo/claude-relay-service/actions/workflows/docker-publish.yml/badge.svg)](https://github.com/your-repo/claude-relay-service/actions/workflows/docker-publish.yml)
[![Docker Pulls](https://img.shields.io/docker/pulls/yourusername/claude-relay-service)](https://hub.docker.com/r/yourusername/claude-relay-service)
**🔐 自行搭建Claude API中转服务支持多账户管理**
@@ -195,6 +197,9 @@ module.exports = {
```bash
# 初始化
npm run setup # 会随机生成后台账号密码信息,存储在 data/init.json
# 或者通过环境变量预设管理员凭据:
# export ADMIN_USERNAME=cr_admin_custom
# export ADMIN_PASSWORD=your-secure-password
# 启动服务
npm run service:start:daemon # 后台运行(推荐)
@@ -205,13 +210,124 @@ npm run service:status
---
## 🐳 Docker 部署(推荐)
### 使用 Docker Hub 镜像(最简单)
```bash
# 拉取镜像(支持 amd64 和 arm64
docker pull yourusername/claude-relay-service:latest
# 使用 docker run 运行
docker run -d \
--name claude-relay \
-p 3000:3000 \
-v $(pwd)/data:/app/data \
-v $(pwd)/logs:/app/logs \
-e ADMIN_USERNAME=my_admin \
-e ADMIN_PASSWORD=my_secure_password \
yourusername/claude-relay-service:latest
# 或使用 docker-compose推荐
# 创建 docker-compose.yml 文件:
cat > docker-compose.yml << 'EOF'
version: '3.8'
services:
claude-relay:
image: yourusername/claude-relay-service:latest
container_name: claude-relay-service
restart: unless-stopped
ports:
- "3000:3000"
environment:
- REDIS_HOST=redis
- ADMIN_USERNAME=${ADMIN_USERNAME:-}
- ADMIN_PASSWORD=${ADMIN_PASSWORD:-}
volumes:
- ./logs:/app/logs
- ./data:/app/data
depends_on:
- redis
redis:
image: redis:7-alpine
container_name: claude-relay-redis
restart: unless-stopped
volumes:
- redis_data:/data
volumes:
redis_data:
EOF
# 启动服务
docker-compose up -d
```
### 从源码构建
```bash
# 1. 克隆项目
git clone https://github.com/your-repo/claude-relay-service.git
cd claude-relay-service
# 2. 设置管理员账号密码(可选)
# 方式一:自动生成(查看容器日志获取)
docker-compose up -d
# 方式二:预设账号密码
export ADMIN_USERNAME=cr_admin_custom
export ADMIN_PASSWORD=your-secure-password
docker-compose up -d
# 3. 查看管理员凭据
# 自动生成的情况下:
docker logs claude-relay-service | grep "管理员"
# 或者直接查看挂载的文件:
cat ./data/init.json
```
### Docker Compose 配置
docker-compose.yml 已包含:
- ✅ 自动初始化管理员账号
- ✅ 数据持久化logs和data目录自动挂载
- ✅ Redis数据库
- ✅ 健康检查
- ✅ 自动重启
### 管理员凭据获取方式
1. **查看容器日志**(推荐)
```bash
docker logs claude-relay-service
```
2. **查看挂载的文件**
```bash
cat ./data/init.json
```
3. **使用环境变量预设**
```bash
# 在 .env 文件中设置
ADMIN_USERNAME=cr_admin_custom
ADMIN_PASSWORD=your-secure-password
```
---
## 🎮 开始使用
### 1. 打开管理界面
浏览器访问:`http://你的服务器IP:3000/web`
默认管理员账号:data/init.json 中寻找
管理员账号:
- 自动生成:查看 data/init.json
- 环境变量预设:通过 ADMIN_USERNAME 和 ADMIN_PASSWORD 设置
- Docker 部署:查看容器日志 `docker logs claude-relay-service`
### 2. 添加Claude账户