Files
opsx-licence/docker-compose.yml
T
Logan.LiandCursor bac72e6945 fix: 按评审报告止血支付漏洞并加固授权链路
废除浏览器回跳自助结算,通用 webhook 强制密钥鉴权,Waffo 支持验签与未知事件忽略;重构订单状态机/激活占座/SQLite WAL,并补备份、readyz、限流与前端导出/登录页安全修复。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-12 21:26:58 +08:00

63 lines
1.7 KiB
YAML

# opsx-licence Docker 部署(单容器:管理后台 + /api)
# 用法:
# cp .env.example .env # 填 JWT / Waffo
# docker compose up -d --build
# # 或旧版: docker-compose up -d --build
# 署名 Logan.Li
services:
opsx-licence:
image: opsx-licence:${VERSION:-latest}
build:
context: .
dockerfile: Dockerfile
container_name: opsx-licence
restart: unless-stopped
ports:
- "${HOST_PORT:-9001}:9001"
env_file:
- .env
environment:
TZ: Asia/Shanghai
PORT: "9001"
GIN_MODE: ${GIN_MODE:-release}
DB_DRIVER: sqlite
DB_NAME: /data/db.sqlite3
volumes:
- licence_data:/data
healthcheck:
test: ["CMD", "curl", "-fsS", "http://127.0.0.1:9001/readyz"]
interval: 15s
timeout: 3s
retries: 5
start_period: 15s
# SQLite 每日备份 sidecar(保留最近 7 份) // Logan.Li
backup:
image: alpine:3.20
container_name: opsx-licence-backup
restart: unless-stopped
volumes:
- licence_data:/data:ro
- ./backups:/backups
entrypoint: ["/bin/sh", "-c"]
command:
- |
apk add --no-cache sqlite >/dev/null 2>&1 || true
while true; do
ts=$$(date +%Y%m%d-%H%M%S)
if [ -f /data/db.sqlite3 ]; then
if command -v sqlite3 >/dev/null 2>&1; then
sqlite3 /data/db.sqlite3 ".backup '/backups/db-$$ts.sqlite3'"
else
cp /data/db.sqlite3 /backups/db-$$ts.sqlite3
fi
ls -t /backups/db-*.sqlite3 2>/dev/null | tail -n +8 | xargs -r rm -f
echo "[backup] done $$ts"
fi
sleep 86400
done
volumes:
licence_data: