services: tapledger: # 镜像由开发者本地构建并推送到 GHCR(版本号 + latest 双标签;NAS 拉取无需登录) image: ghcr.io/sctale/tapledger-server:latest container_name: tapledger-server restart: unless-stopped ports: - "8420:8420" environment: - PORT=8420 - TZ=Asia/Shanghai # JWT_SECRET 从同级 .env 读取(不提交到公开仓库;首次部署前在 server/.env 里设置) env_file: - .env volumes: # 数据库持久化:compose 文件所在目录的 data/ 子目录(群晖示例:/volume1/docker/tapledger/data) - ./data:/app/data healthcheck: test: ["CMD", "wget", "-qO-", "http://localhost:8420/api/health"] interval: 30s timeout: 5s retries: 3 start_period: 10s