services: openflare: build: context: . dockerfile: docker/Dockerfile args: VERSION: v0.9.9 # image: ghcr.io/rain-kl/openflare:latest restart: unless-stopped env_file: .env environment: TZ: ${TZ:-Asia/Shanghai} OTEL_EXPORTER_OTLP_ENDPOINT: ${OTEL_EXPORTER_OTLP_ENDPOINT:-http://jaeger:4317} OTEL_EXPORTER_OTLP_INSECURE: ${OTEL_EXPORTER_OTLP_INSECURE:-true} OTEL_SAMPLING_RATE: ${OTEL_SAMPLING_RATE:-1.0} ports: - "3000:3000" volumes: - ./uploads:/app/uploads - ./data/sqlite:/app/data depends_on: postgres: condition: service_healthy redis: condition: service_healthy clickhouse: condition: service_healthy jaeger: condition: service_started postgres: image: postgres:17-alpine restart: unless-stopped ports: - "5432:5432" environment: POSTGRES_DB: ${DB_NAME:-openflare} POSTGRES_USER: ${DB_USERNAME:-openflare} POSTGRES_PASSWORD: ${DB_PASSWORD:-replace-with-strong-password} volumes: - ./data/postgres_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U ${DB_USERNAME:-openflare} -d ${DB_NAME:-openflare}"] interval: 10s timeout: 5s retries: 5 redis: image: valkey/valkey:8.0-alpine restart: unless-stopped command: ["valkey-server", "--appendonly", "yes"] ports: - "${REDIS_PORT:-6379}:6379" volumes: - ./data/valkey:/data healthcheck: test: ["CMD", "valkey-cli", "ping"] interval: 10s timeout: 5s retries: 5 start_period: 5s jaeger: image: jaegertracing/jaeger:${JAEGER_VERSION:-2.19.0} restart: unless-stopped environment: TZ: ${TZ:-Asia/Shanghai} ports: - "${JAEGER_UI_PORT:-16686}:16686" - "${JAEGER_OTLP_GRPC_PORT:-4317}:4317" - "${JAEGER_OTLP_HTTP_PORT:-4318}:4318" clickhouse: image: clickhouse/clickhouse-server:25.3-alpine restart: unless-stopped environment: CLICKHOUSE_DB: ${CLICKHOUSE_NAME:-openflare} CLICKHOUSE_USER: ${CLICKHOUSE_USERNAME:-default} CLICKHOUSE_PASSWORD: ${CLICKHOUSE_PASSWORD:-replace-with-clickhouse-password} CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT: 1 TZ: ${TZ:-Asia/Shanghai} ulimits: nofile: soft: 262144 hard: 262144 ports: - "8123:8123" - "9000:9000" volumes: - ./data/clickhouse_data:/var/lib/clickhouse - ./config/clickhouse/performance.xml:/etc/clickhouse-server/config.d/performance.xml:ro healthcheck: test: ["CMD", "clickhouse-client", "--user", "${CLICKHOUSE_USERNAME:-default}", "--password", "${CLICKHOUSE_PASSWORD:-replace-with-clickhouse-password}", "--query", "SELECT 1"] interval: 10s timeout: 5s retries: 5 start_period: 15s agent: build: context: . dockerfile: docker/Dockerfile.agent container_name: openflare-agent restart: unless-stopped ports: - "80:80" - "443:443" - "127.0.0.1:18081:18081" volumes: - ./data/agent/:/data environment: OPENFLARE_SERVER_URL: "http://host.docker.internal:3000" OPENFLARE_AGENT_TOKEN: "af2fb112f36a0055ec25dd164c908fea" LOG_LEVEL: "debug" extra_hosts: - "host.docker.internal:host-gateway" relay: build: context: . dockerfile: docker/Dockerfile.relay container_name: openflare-relay network_mode: host restart: unless-stopped volumes: - ./data/relay/:/app/data environment: OPENFLARE_SERVER_URL: http://host.docker.internal:3000 OPENFLARE_DISCOVERY_TOKEN: 85464eeb72c49abc430569d6b9c77f78 LOG_LEVEL: "debug" extra_hosts: - "host.docker.internal:host-gateway" flared: build: context: . dockerfile: docker/Dockerfile.flared container_name: openflare-flared network_mode: "host" restart: unless-stopped volumes: - ./data/flared/:/app/data environment: OPENFLARE_SERVER_URL: "http://host.docker.internal:3000" OPENFLARE_TUNNEL_TOKEN: deb0783ac1e264a9d86440169aca0f09