Ctrl K
ComunidadGuías…

docker-compose.yml

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# Deliberately a SEPARATE compose project from wolfbot-platform/docker-compose.yml
# (own COMPOSE_PROJECT_NAME=wolfbot-community, see scripts/rebuild_community.sh) --
# joins the same wolfbot_platform_net external network only for connectivity,
# so wolfbot-platform's rebuild_platform.sh (which runs unscoped `compose
# down --remove-orphans` / `compose build` / `compose up -d` over its own
# project) never sees, stops, or rebuilds this container as a side effect of
# an unrelated wolfbot.io platform deploy. Two independent lifecycles, one
# shared network for nginx's proxy_pass http://community:80.

services:
  community:
    build:
      context: .
      dockerfile: Dockerfile
    image: wolfbot-community:latest
    container_name: community
    restart: unless-stopped
    networks:
      wolfbot-network:
        aliases:
          - community

  # WOLFBOT_COMMUNITY_TRADINGVIEW_RELAY_PLAN_V1.md sec 3: the "Hosted
  # Community Relay" default in the Integrations UI needs a real backend
  # running at community.wolfbot.io to receive
  # https://community.wolfbot.io/relay/tradingview/{relay_token} and
  # /api/v1/community-relay/*. It reuses the exact same product image and
  # "relay" runtime mode as the self-hostable bundle in ../community-relay/
  # (own SQLite DB, own Redis, COMMUNITY_RELAY_AGENT_ENABLED=0 since this is
  # the relay server, not a local Community install's outbound agent) --
  # same protocol, same code path, just running under the WolfBot-hosted
  # domain instead of a user's own VPS. Copy `.env.example` to `.env` in
  # this directory before first `docker compose up` (COMPOSE_PROJECT_NAME=
  # wolfbot-community auto-loads a `.env` here the same way any other
  # compose project does); WOLFBOT_RELAY_SECRET_KEY/WOLFBOT_RELAY_JWT_SECRET_KEY
  # have no default on purpose -- compose refuses to start rather than
  # silently reusing a placeholder secret in production.
  relay:
    image: ${WOLFBOT_RELAY_IMAGE:-ghcr.io/wolfbot-io/wolfbot-webui:0.1.0-beta.2}
    container_name: community-relay
    restart: unless-stopped
    environment:
      APP_ENV: relay
      DEBUG: "false"
      PUBLIC_BASE_URL: ${WOLFBOT_RELAY_PUBLIC_BASE_URL:-https://community.wolfbot.io}
      DATABASE_URL: sqlite:////var/lib/wolfbot-relay/platform.db
      REDIS_URL: redis://relay-redis:6379/0
      SECRET_KEY: ${WOLFBOT_RELAY_SECRET_KEY:?set WOLFBOT_RELAY_SECRET_KEY in wolfbot-community/.env}
      JWT_SECRET_KEY: ${WOLFBOT_RELAY_JWT_SECRET_KEY:?set WOLFBOT_RELAY_JWT_SECRET_KEY in wolfbot-community/.env}
      COMMUNITY_RELAY_ENABLED: "1"
      COMMUNITY_RELAY_AGENT_ENABLED: "0"
      COMMUNITY_RELAY_DEFAULT_BASE_URL: ${WOLFBOT_RELAY_PUBLIC_BASE_URL:-https://community.wolfbot.io}
    volumes:
      - relay-data:/var/lib/wolfbot-relay
    depends_on:
      relay-redis:
        condition: service_healthy
    networks:
      wolfbot-network:
        aliases:
          - relay

  relay-redis:
    image: redis:7-alpine
    container_name: community-relay-redis
    restart: unless-stopped
    command: ["redis-server", "--save", "", "--appendonly", "no"]
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 5s
      timeout: 3s
      retries: 20
    volumes:
      - relay-redis-data:/data
    networks:
      wolfbot-network:
        aliases:
          - relay-redis

networks:
  wolfbot-network:
    external: true
    name: wolfbot_platform_net

volumes:
  relay-data:
  relay-redis-data: