Files
pulse/docker-compose.yml
T

66 lines
3.0 KiB
YAML

services:
app:
build:
context: .
dockerfile: ${DOCKERFILE:-docker/Dockerfile}
args:
- NODE_ENV=${NODE_ENV:-production}
container_name: ${CONTAINER_NAME:-pulse}
ports:
- "7654:7654" # Backend API
- "3000:3000" # Frontend dev server
- "7656:7656" # Mock data server (only used in dev mode)
volumes:
- ./logs:/app/logs
# Development mode mounts - only used when DEV_*_MOUNT variables are set in .env
- ${DEV_SRC_MOUNT:-./null-volume:/app/null-volume}
- ${DEV_FRONTEND_SRC_MOUNT:-./null-volume:/app/null-volume}
- ${DEV_FRONTEND_PUBLIC_MOUNT:-./null-volume:/app/null-volume}
- ${DEV_FRONTEND_INDEX_MOUNT:-./null-volume:/app/null-volume}
- ${DEV_FRONTEND_CONFIG_MOUNT:-./null-volume:/app/null-volume}
- ${DEV_SCRIPTS_MOUNT:-./null-volume:/app/null-volume}
- ${DEV_ENV_MOUNT:-./null-volume:/app/null-volume}
environment:
- NODE_ENV=${NODE_ENV:-production}
- LOG_LEVEL=${LOG_LEVEL:-info}
- DOCKER_CONTAINER=true
- USE_MOCK_DATA=${USE_MOCK_DATA:-false}
- MOCK_DATA_ENABLED=${MOCK_DATA_ENABLED:-false}
- MOCK_SERVER_PORT=${MOCK_SERVER_PORT:-7656}
- DRY_RUN=${DRY_RUN:-false}
# Performance tuning settings to reduce server load
- NODE_POLLING_INTERVAL_MS=${NODE_POLLING_INTERVAL_MS:-15000}
- EVENT_POLLING_INTERVAL_MS=${EVENT_POLLING_INTERVAL_MS:-5000}
- METRICS_HISTORY_MINUTES=${METRICS_HISTORY_MINUTES:-30}
- API_RATE_LIMIT_MS=${API_RATE_LIMIT_MS:-2000}
- API_TIMEOUT_MS=${API_TIMEOUT_MS:-90000}
- API_RETRY_DELAY_MS=${API_RETRY_DELAY_MS:-10000}
# Proxmox configuration - Node 1
- PROXMOX_NODE_1_NAME=${PROXMOX_NODE_1_NAME:-}
- PROXMOX_NODE_1_HOST=${PROXMOX_NODE_1_HOST:-}
- PROXMOX_NODE_1_TOKEN_ID=${PROXMOX_NODE_1_TOKEN_ID:-}
- PROXMOX_NODE_1_TOKEN_SECRET=${PROXMOX_NODE_1_TOKEN_SECRET:-}
# Proxmox configuration - Node 2 (optional)
- PROXMOX_NODE_2_NAME=${PROXMOX_NODE_2_NAME:-}
- PROXMOX_NODE_2_HOST=${PROXMOX_NODE_2_HOST:-}
- PROXMOX_NODE_2_TOKEN_ID=${PROXMOX_NODE_2_TOKEN_ID:-}
- PROXMOX_NODE_2_TOKEN_SECRET=${PROXMOX_NODE_2_TOKEN_SECRET:-}
# Proxmox configuration - Node 3 (optional)
- PROXMOX_NODE_3_NAME=${PROXMOX_NODE_3_NAME:-}
- PROXMOX_NODE_3_HOST=${PROXMOX_NODE_3_HOST:-}
- PROXMOX_NODE_3_TOKEN_ID=${PROXMOX_NODE_3_TOKEN_ID:-}
- PROXMOX_NODE_3_TOKEN_SECRET=${PROXMOX_NODE_3_TOKEN_SECRET:-}
# SSL verification settings
- IGNORE_SSL_ERRORS=${IGNORE_SSL_ERRORS:-false}
- NODE_TLS_REJECT_UNAUTHORIZED=${NODE_TLS_REJECT_UNAUTHORIZED:-}
- PROXMOX_REJECT_UNAUTHORIZED=${PROXMOX_REJECT_UNAUTHORIZED:-}
- HTTPS_REJECT_UNAUTHORIZED=${HTTPS_REJECT_UNAUTHORIZED:-}
- PROXMOX_INSECURE=${PROXMOX_INSECURE:-}
- PROXMOX_VERIFY_SSL=${PROXMOX_VERIFY_SSL:-}
restart: ${RESTART_POLICY:-unless-stopped}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:7654/api/status"]
interval: 30s
timeout: 10s
retries: 3
start_period: 20s