# Tyto System Monitor - Docker Compose Configuration # # Usage: # Development: docker compose up --build # Production: docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d # # Ports: # - 3000: Frontend UI (development with hot reload) # - 8080: Backend API / SSE # - 9849: gRPC (multi-device server mode) services: # Frontend SvelteKit application frontend: build: context: ./frontend dockerfile: Dockerfile ports: - "3000:80" depends_on: - backend environment: - VITE_API_URL=http://backend:8080 restart: unless-stopped networks: - tyto-network # Backend Go server backend: build: context: ./backend dockerfile: Dockerfile ports: - "8080:8080" - "9849:9849" environment: # Operating mode: standalone, server, or agent - TYTO_MODE=standalone # Refresh rate in seconds - TYTO_REFRESH_RATE=5 # Database configuration (for server mode) - TYTO_DB_TYPE=sqlite - TYTO_DB_PATH=/data/tyto.db # Logging - TYTO_LOG_LEVEL=info volumes: - tyto-data:/data - /proc:/host/proc:ro - /sys:/host/sys:ro privileged: true restart: unless-stopped networks: - tyto-network healthcheck: test: ["CMD", "wget", "-q", "--spider", "http://localhost:8080/api/health"] interval: 30s timeout: 10s retries: 3 start_period: 10s volumes: tyto-data: driver: local networks: tyto-network: driver: bridge