前言

前段时间使用wxchat这个项目在cloudflare上部署了仿微信文件传输助手。个人在使用过程中,感觉不是很顺畅,测试发现,传输不到 20 次文本或文件后,由于源码中设置为每 5 秒轮询一次,随着使用时长的延长,worker 的请求量会迅速累积到上千次,这样一来,每天 10 万次的免费额度也很快就会被消耗完。于是写了docker部署方法,部署到自己vps使用,不用担心请求次数,而且上传文件啥的比cf快很多。

docker版做了如下调整:

  1. 长文本不会截断
  2. 清空数据使用滑动方法,不用再输入密码
  3. 支持一键复制,支持单一消息删除
  4. 修正了前端时间显示
  5. 智能连接状态显示
  6. 添加ai模式、最大文件上传大小环境变量,方便配置
  7. 优化上传和下载进度显示,动态显示下载和上传速度

项目地址:https://github.com/DEKVIW/docker-wxchat

注意:移动端效果展示为苹果12,安卓或其他版本的ios未测试。

功能预览

一键复制

一键删除

上传图片

传文件

AI对话

AI画图

一键清空数据

快速部署

创建两个文件,放到同一个目录,运行docker-compose up -d启动

创建docker-compose文件

执行下面命令创建docker-compose.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
mkdir -p /root/data/docker_data/wxchat && cd /root/data/docker_data/wxchat && cat <<'EOF' > docker-compose.yml
version: "3.8"

services:
wxchat:
image: yilan666/wxchat:latest
container_name: wxchat
restart: unless-stopped
ports:
- "3000:3000"
volumes:
- ./data:/app/data
- ./uploads:/app/uploads
env_file:
- .env
networks:
- wxchat-network

networks:
wxchat-network:
driver: bridge
EOF

创建.env文件

执行下面命令创建.env

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
cat > /root/data/docker_data/wxchat/.env <<'EOF'
# 应用基础配置
# 运行环境:production(生产) | development(开发)
NODE_ENV=production

# 服务端口号,默认3000
PORT=3000

# 数据库配置
# SQLite数据库文件路径(容器内路径)
DATABASE_PATH=/app/data/wxchat.db

# 文件存储配置
# 文件上传存储路径(容器内路径)
UPLOAD_PATH=/app/uploads

# 安全配置(重要:生产环境必须修改)
# 访问密码:用于登录系统,请修改为强密码
ACCESS_PASSWORD=your_strong_password_here

# JWT密钥:用于生成和验证访问令牌,请使用随机字符串
JWT_SECRET=your_jwt_secret_key_here

# 会话配置
# 会话过期时间(小时),默认24小时
SESSION_EXPIRE_HOURS=24

# 最大登录尝试次数,超过后需要等待
MAX_LOGIN_ATTEMPTS=5

# 文件上传配置
# 最大文件上传大小(MB),默认100MB
MAX_FILE_SIZE_MB=100

# AI功能配置
# 聊天功能配置
AI_CHAT_BASE_URL=https://api.example.com/v1/chat/completions
AI_CHAT_API_KEY=your_ai_chat_api_key_here
AI_CHAT_MODEL=gpt-4o-mini

# 图片生成功能配置
AI_IMAGE_BASE_URL=https://api.example.com/v1/images/generations
AI_IMAGE_API_KEY=your_ai_image_api_key_here
AI_IMAGE_MODEL=example-model

# AI功能开关
AI_ENABLED=true
IMAGE_GEN_ENABLED=true

# AI限流配置
# AI聊天请求限制(每分钟最大请求数)
AI_RATE_LIMIT=10
# 图片生成请求限制(每分钟最大请求数)
IMAGE_RATE_LIMIT=5
EOF

  • 启动容器
1
cd /root/data/docker_data/wxchat && docker-compose up -d

完成部署:http://ip:3000访问