Sign inSign up

kokojacket/wxauto-frontend

By kokojacket

•Updated about 1 year ago

WxAuto Web Server - Frontend UI

Image
0

965

kokojacket/wxauto-frontend repository overview

⁠WxAuto Web Server - Docker 部署指南

Backend Version Frontend Version Docker Pulls License

⁠📦 镜像说明

WxAuto Web Server 提供两个 Docker 镜像:

⁠后端镜像
  • 镜像名称: username/wxauto-backend
  • 基础镜像: python:3.11-slim
  • 端口: 8000
  • 功能: FastAPI 后端服务、WxAuto API 客户端
⁠前端镜像
  • 镜像名称: username/wxauto-frontend
  • 基础镜像: nginx:alpine
  • 端口: 80
  • 功能: Vue 3 前端界面、Nginx 反向代理

⁠🚀 快速开始

⁠使用 Docker Compose(推荐)
  1. 下载配置文件
# 创建项目目录
mkdir wxauto-web-server && cd wxauto-web-server

# 下载 docker-compose.yml
curl -O https://raw.githubusercontent.com/username/wxauto-web-server/main/docker-compose.yml

# 下载配置文件模板
curl -O https://raw.githubusercontent.com/username/wxauto-web-server/main/config.json
  1. 配置环境变量
# 编辑 .env 文件
cat > .env << EOF
DOCKER_USERNAME=username
VERSION=latest
EOF
  1. 修改配置文件

编辑 config.json,配置 WxAuto API 地址和认证信息:

{
  "wxauto": {
    "api_url": "http://your-wxauto-api:5000",
    "api_key": "your-api-key"
  },
  "auth": {
    "enabled": true,
    "username": "admin",
    "password": "admin123"
  }
}
  1. 启动服务
# 拉取镜像并启动
docker-compose up -d

# 查看日志
docker-compose logs -f
  1. 访问系统
http://localhost

默认账号:admin / admin123

⁠使用 Docker 命令
⁠手动运行
# 创建网络
docker network create wxauto-network

# 运行后端
docker run -d \
  --name wxauto-backend \
  --network wxauto-network \
  -p 8000:8000 \
  -v $(pwd)/config.json:/app/config.json \
  -v $(pwd)/data:/app/data \
  -v $(pwd)/logs:/app/logs \
  username/wxauto-backend:latest

# 运行前端
docker run -d \
  --name wxauto-frontend \
  --network wxauto-network \
  -p 80:80 \
  username/wxauto-frontend:latest

⁠🔧 配置说明

⁠环境变量
变量名说明默认值
DOCKER_USERNAMEDocker Hub 用户名-
VERSION镜像版本latest
⁠挂载目录
容器路径说明推荐挂载
/app/config.json配置文件✅ 必须
/app/data数据目录✅ 推荐
/app/logs日志目录✅ 推荐
⁠端口映射
容器端口主机端口服务
80008000后端 API
8080前端界面

⁠📋 Docker Compose 示例

⁠基础配置
version: '3.8'

services:
  backend:
    image: username/wxauto-backend:latest
    container_name: wxauto-backend
    restart: unless-stopped
    ports:
      - "8000:8000"
    volumes:
      - ./config.json:/app/config.json
      - ./data:/app/data
      - ./logs:/app/logs
    networks:
      - wxauto-network

  frontend:
    image: username/wxauto-frontend:latest
    container_name: wxauto-frontend
    restart: unless-stopped
    ports:
      - "80:80"
    depends_on:
      - backend
    networks:
      - wxauto-network

networks:
  wxauto-network:
    driver: bridge
⁠高级配置(带健康检查)
version: '3.8'

services:
  backend:
    image: username/wxauto-backend:latest
    container_name: wxauto-backend
    restart: unless-stopped
    ports:
      - "8000:8000"
    volumes:
      - ./config.json:/app/config.json
      - backend-data:/app/data
      - backend-logs:/app/logs
    environment:
      - PYTHONUNBUFFERED=1
    networks:
      - wxauto-network
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8000/api/instance/status"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 40s

  frontend:
    image: username/wxauto-frontend:latest
    container_name: wxauto-frontend
    restart: unless-stopped
    ports:
      - "80:80"
    depends_on:
      backend:
        condition: service_healthy
    networks:
      - wxauto-network
    healthcheck:
      test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:80"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 40s

networks:
  wxauto-network:
    driver: bridge

volumes:
  backend-data:
  backend-logs:

⁠🔨 构建镜像

⁠本地构建
# 构建后端镜像
docker build -t username/wxauto-backend:latest ./backend

# 构建前端镜像
docker build -t username/wxauto-frontend:latest ./frontend

# 使用 docker-compose 构建
docker-compose build
⁠多平台构建
# 创建 builder
docker buildx create --name mybuilder --use

# 构建并推送多平台镜像
docker buildx build \
  --platform linux/amd64,linux/arm64 \
  -t username/wxauto-backend:latest \
  --push \
  ./backend

docker buildx build \
  --platform linux/amd64,linux/arm64 \
  -t username/wxauto-frontend:latest \
  --push \
  ./frontend

⁠🔄 更新镜像

⁠拉取最新版本
# 拉取最新镜像
docker-compose pull

# 重启服务
docker-compose up -d

# 清理旧镜像
docker image prune -f
⁠更新到指定版本
# 修改 .env 文件
echo "VERSION=v1.2.0" >> .env

# 拉取并重启
docker-compose pull
docker-compose up -d

⁠📊 管理命令

⁠查看状态
# 查看容器状态
docker-compose ps

# 查看日志
docker-compose logs -f

# 查看后端日志
docker-compose logs -f backend

# 查看前端日志
docker-compose logs -f frontend
⁠停止/启动
# 停止服务
docker-compose stop

# 启动服务
docker-compose start

# 重启服务
docker-compose restart

# 停止并删除容器
docker-compose down

# 停止并删除容器和数据卷
docker-compose down -v
⁠进入容器
# 进入后端容器
docker-compose exec backend bash

# 进入前端容器
docker-compose exec frontend sh

# 查看配置文件
docker-compose exec backend cat /app/config.json

⁠🛠️ 故障排查

⁠后端无法启动
  1. 检查配置文件
# 验证 JSON 格式
docker-compose exec backend python -m json.tool /app/config.json
  1. 查看日志
docker-compose logs backend
  1. 检查 WxAuto API 连接
docker-compose exec backend curl http://your-wxauto-api:5000
⁠前端无法访问
  1. 检查容器状态
docker-compose ps
  1. 检查端口占用
netstat -tuln | grep 80
  1. 查看 Nginx 日志
docker-compose logs frontend
⁠网络问题
# 检查网络
docker network inspect wxauto-network

# 测试容器间连接
docker-compose exec frontend ping backend

⁠🔐 安全建议

  1. 修改默认密码
{
  "auth": {
    "username": "admin",
    "password": "strong-password-here"
  }
}
  1. 使用 HTTPS
services:
  frontend:
    ports:
      - "443:443"
    volumes:
      - ./ssl:/etc/nginx/ssl
  1. 限制访问
services:
  frontend:
    ports:
      - "127.0.0.1:80:80"  # 仅本地访问

⁠📈 性能优化

⁠资源限制
services:
  backend:
    deploy:
      resources:
        limits:
          cpus: '1'
          memory: 512M
        reservations:
          cpus: '0.5'
          memory: 256M

  frontend:
    deploy:
      resources:
        limits:
          cpus: '0.5'
          memory: 256M
        reservations:
          cpus: '0.25'
          memory: 128M
⁠日志轮转
services:
  backend:
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"

⁠📦 数据备份

⁠备份配置和数据
# 创建备份目录
mkdir -p backup

# 备份配置
cp config.json backup/config.json.$(date +%Y%m%d)

# 备份数据
docker run --rm \
  -v wxauto-backend-data:/data \
  -v $(pwd)/backup:/backup \
  alpine tar czf /backup/data-$(date +%Y%m%d).tar.gz -C /data .
⁠恢复数据
# 恢复配置
cp backup/config.json.20250107 config.json

# 恢复数据
docker run --rm \
  -v wxauto-backend-data:/data \
  -v $(pwd)/backup:/backup \
  alpine tar xzf /backup/data-20250107.tar.gz -C /data

⁠🚀 自动构建

本项目使用 GitHub Actions 自动构建和推送 Docker 镜像到 Docker Hub。

⁠触发条件
  • 推送到 main、master、develop 分支
  • 创建版本标签(如 v1.0.0)
  • Pull Request 到 main、master 分支
⁠镜像标签
  • latest - 最新稳定版本
  • develop - 开发版本
  • v1.0.0 - 语义化版本
  • v1.0 - 主版本.次版本
  • v1 - 主版本

⁠📚 更多资源

⁠📄 许可证

MIT License


⚠️ 注意事项:

  1. 请确保 WxAuto HTTP API 服务已正常运行
  2. 首次启动需要配置 config.json
  3. 建议在生产环境中使用 HTTPS
  4. 定期备份配置文件和数据
  5. 关注安全更新,及时升级镜像版本

Tag summary

Content type

Image

Digest

sha256:26f0b2f39…

Size

21.8 MB

Last updated

about 1 year ago

docker pull kokojacket/wxauto-frontend