面向家庭 / 班级的语文、英语听写工具:词库听写、语音朗读、拍照批改、企业微信通知一体化。
docker-compose.yml 完整内容如下,直接复制保存后执行:
# SLHub docker-compose (单容器: 后端 + 已构建前端同源托管, 端口 1985)
# 用法:
# 1) 拉取已发布镜像直接运行:
# docker compose up -d
# 2) 或本地构建后运行 (需先 bash app/scripts/build-frontend.sh 生成 backend/static):
# 将下方 image 改为 build: { context: ./app, dockerfile: Dockerfile }
#
# 数据持久化:
# - ./app/data -> /app/data (词库/听写记录/配置, 必须挂载)
# ffmpeg 已内置镜像 (/app/dependencies/ffmpeg), 无需挂载
services:
slhub:
# 已发布镜像 (docker hub)
image: gldl137/slhub:1.0.1
# 本地构建 (二选一, 注释掉上面 image 行后启用):
# build:
# context: ./app
# dockerfile: Dockerfile
container_name: python-cs
restart: unless-stopped
ports:
- "1985:1985"
environment:
- PORT=1985
- DATA_DIR=/app/data
- TZ=Asia/Shanghai
volumes:
- ./app/data:/app/data
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:1985/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60sdocker compose up -d浏览器访问 http://<宿主机IP>:1985。
- 语文 / 英语词库听写,逐词播放(Edge-TTS 语音,自动转 Opus 减小体积)
- 听写记录拍照留存,教师 / 家长在线批改(✔ / ✗),并跨设备同步学习进度
- 企业微信推送听写任务与记录,支持在微信内直接查看 / 批改
- 单元管理、词语管理、AI 释义 / 音标补全,OCR 识别听写照片自动提取词语
SLHub/
├── app/
│ ├── backend/ # FastAPI 后端(main.py 入口,端口 1985)
│ ├── frontend/ # Vue 3 前端源码
│ ├── scripts/ # 运行 / 构建脚本(unraid / Linux)
│ ├── data/ # 运行时数据(词库、听写记录、数据库,不入库)
│ └── Dockerfile
├── docker-compose.yml
└── README-DOCKER.md # Docker 部署详细说明
cd app
# 生产模式(单端口 1985,前端产物由后端托管)
bash scripts/build-frontend.sh
bash scripts/start-backend.sh
# 开发模式(前端 Vite 热更新 5173,代理 /api 到后端 1985)
bash scripts/start-backend.sh -d
bash scripts/start-frontend.shapp/data/ 为运行时数据目录(词库、听写照片、数据库、日志),已加入 .gitignore,不随仓库提交;首次启动会自动创建。克隆后需自行导入 / 生成词库。