- 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>
30 lines
1.1 KiB
YAML
30 lines
1.1 KiB
YAML
# Targo Field — nginx container served at erp.gigafibre.ca/field/
|
|
# Deploy: docker compose -f docker-compose.yaml up -d
|
|
|
|
services:
|
|
field-frontend:
|
|
image: nginx:alpine
|
|
container_name: field-frontend
|
|
restart: unless-stopped
|
|
volumes:
|
|
- /opt/field-app:/usr/share/nginx/html:ro
|
|
- ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
|
|
networks:
|
|
- proxy
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.field.rule=Host(`erp.gigafibre.ca`) && PathPrefix(`/field`)"
|
|
- "traefik.http.routers.field.entrypoints=web,websecure"
|
|
- "traefik.http.routers.field.middlewares=authentik@file,field-strip@docker"
|
|
- "traefik.http.routers.field.service=field"
|
|
- "traefik.http.routers.field.tls.certresolver=letsencrypt"
|
|
- "traefik.http.routers.field.priority=200"
|
|
- "traefik.http.middlewares.field-strip.stripprefix.prefixes=/field"
|
|
- "traefik.http.middlewares.field-strip.stripprefix.forceSlash=false"
|
|
- "traefik.http.services.field.loadbalancer.server.port=80"
|
|
- "traefik.docker.network=proxy"
|
|
|
|
networks:
|
|
proxy:
|
|
external: true
|