docker-compose.yml
Rama main · réplica de lectura del repositorio original.
services:
kafka-data-init:
image: busybox
command: ["chown", "-R", "1000:1000", "/mnt/kafka-data"]
volumes:
- ${KAFKA_DATA_DIR:-kafka-data}:/mnt/kafka-data
kafka:
image: apache/kafka:3.8.0
depends_on:
kafka-data-init:
condition: service_completed_successfully
environment:
KAFKA_NODE_ID: 1
KAFKA_PROCESS_ROLES: broker,controller
KAFKA_LISTENERS: PLAINTEXT://:9092,CONTROLLER://:9093
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092
KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
KAFKA_CONTROLLER_QUORUM_VOTERS: 1@kafka:9093
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
CLUSTER_ID: MkU3OEVBNTcwNTJENDM2Qk
KAFKA_LOG_DIRS: /mnt/kafka-data
ports:
- "9092:9092"
volumes:
- ${KAFKA_DATA_DIR:-kafka-data}:/mnt/kafka-data
healthcheck:
test: ["CMD", "/opt/kafka/bin/kafka-broker-api-versions.sh", "--bootstrap-server", "localhost:9092"]
interval: 5s
timeout: 5s
retries: 10
start_period: 20s
bridge:
build:
context: .
ports:
- "8080:8080"
environment:
ARK_CONFIG_FILE: /var/lib/ark/config.yaml
# Demo tokens. Change them (or unset them to allow only localhost)
# before exposing this anywhere.
ARK_API_ADMIN_TOKENS: ${ARK_API_ADMIN_TOKENS:-demo-admin-token}
ARK_MCP_ADMIN_TOKENS: ${ARK_MCP_ADMIN_TOKENS:-demo-mcp-token}
# Bearer token for the demo HTTP source (POST /ingest/demo).
ARK_SOURCE_DEMO_TOKEN: ${ARK_SOURCE_DEMO_TOKEN:-demo-source-token}
# Tokens for project MCP endpoints with tokens_env: ARK_PROJECT_DEMO_TOKENS.
ARK_PROJECT_DEMO_TOKENS: ${ARK_PROJECT_DEMO_TOKENS:-demo-project-token}
# Connection string for flow database steps with dsn_env: ARK_DEMO_DB.
ARK_DEMO_DB: ${ARK_DEMO_DB:-}
# The demo config is copied into the volume on first start, so console
# and MCP changes are kept; docker compose down -v starts over.
entrypoint: ["sh", "-c", "test -f /var/lib/ark/config.yaml || cp /etc/bridge/seed.yaml /var/lib/ark/config.yaml; exec ark"]
volumes:
- ${ARK_CONFIG:-./bridge-engine/config.demo.yaml}:/etc/bridge/seed.yaml:ro
- ark-config:/var/lib/ark
depends_on:
kafka:
condition: service_healthy
ark-config-init:
condition: service_completed_successfully
# Lets the assistant reach a model server on this machine, such as
# Ollama at http://host.docker.internal:11434/v1
extra_hosts:
- "host.docker.internal:host-gateway"
restart: on-failure:5
ark-config-init:
image: busybox
command: ["chown", "-R", "10001:10001", "/var/lib/ark"]
volumes:
- ark-config:/var/lib/ark
demo-echo:
build:
context: ./bridge-engine
entrypoint: ["demo-echo"]
command: []
volumes:
kafka-data:
ark-config: