version: '3.8' services: # 人工回覆伺服器 (從 Gitea 建置) human-reply-server: image: ${REGISTRY_URL}tobiichi-gpt:latest build: context: https://git.karylab.com/ChenKaiLiuG/tobiichiGPT.git#${GIT_BRANCH:-main} dockerfile: human-gpt/Dockerfile container_name: tobiichi-gpt ports: - "11000:8000" restart: unless-stopped environment: - TZ=Asia/Taipei networks: - tobiichi-network # Open WebUI open-webui: image: ghcr.io/open-webui/open-webui:main container_name: open-webui ports: - "10000:8080" volumes: - open-webui-data:/app/backend/data environment: - WEBUI_AUTH=False # 關閉登入驗證(可選) - TZ=Asia/Taipei restart: unless-stopped networks: - tobiichi-network # Nginx Proxy Manager nginx-proxy-manager: image: jc21/nginx-proxy-manager:latest container_name: nginx-proxy-manager ports: - "10080:80" # HTTP (避免與現有 NPM 衝突) - "10443:443" # HTTPS (避免與現有 NPM 衝突) - "10081:81" # NPM 管理介面 (避免與現有 NPM 衝突) volumes: - npm-data:/data - npm-letsencrypt:/etc/letsencrypt environment: - TZ=Asia/Taipei restart: unless-stopped networks: - tobiichi-network # Cloudflare Tunnel cloudflared: image: cloudflare/cloudflared:latest container_name: cloudflared-tunnel command: tunnel run environment: - TUNNEL_TOKEN=${CLOUDFLARE_TUNNEL_TOKEN} restart: unless-stopped networks: - tobiichi-network depends_on: - open-webui - human-reply-server networks: tobiichi-network: driver: bridge volumes: open-webui-data: npm-data: npm-letsencrypt: