gigafibre-fsm/services/targo-hub/docker-compose.yml
louispaulb 320655b0a0 refactor: major cleanup — remove dead dispatch app, commit all backend code, extract client composables
- Remove apps/dispatch/ (100% replaced by ops dispatch module, unmaintained)
- Commit services/targo-hub/lib/ (24 modules, 6290 lines — was never tracked)
- Commit services/docuseal + services/legacy-db docker-compose configs
- Extract client app composables: useOTP, useAddressSearch, catalog data, format utils
- Refactor CartPage.vue 630→175 lines, CatalogPage.vue 375→95 lines
- Clean hardcoded credentials from config.js fallback values
- Add client portal: catalog, cart, checkout, OTP verification, address search
- Add ops: NetworkPage, AgentFlowsPage, ConversationPanel, UnifiedCreateModal
- Add ops composables: useBestTech, useConversations, usePermissions, useScanner
- Add field app: scanner composable, docker/nginx configs

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-08 17:38:38 -04:00

41 lines
1.2 KiB
YAML

services:
targo-hub:
image: node:20-alpine
container_name: targo-hub
working_dir: /app
volumes:
- ./server.js:/app/server.js:ro
- ./lib:/app/lib:ro
- ./public:/app/public:ro
- ./package.json:/app/package.json:ro
- ./data:/app/data
- hub_modules:/app/node_modules
command: sh -c "npm install --production 2>&1 | tail -1 && node server.js"
env_file: .env
restart: unless-stopped
networks:
- proxy
- erpnext_erpnext
labels:
- "traefik.enable=true"
- "traefik.docker.network=proxy"
# Main router — webhooks + send + health (no auth)
- "traefik.http.routers.targo-hub.rule=Host(`msg.gigafibre.ca`)"
- "traefik.http.routers.targo-hub.entrypoints=websecure"
- "traefik.http.routers.targo-hub.tls.certresolver=letsencrypt"
- "traefik.http.services.targo-hub.loadbalancer.server.port=3300"
# Disable response buffering for SSE
- "traefik.http.middlewares.sse-headers.headers.customresponseheaders.X-Accel-Buffering=no"
- "traefik.http.routers.targo-hub.middlewares=sse-headers"
volumes:
hub_modules:
networks:
proxy:
external: true
erpnext_erpnext:
external: true