forked from DreamLab-AI/origin-logseq-AR
-
Notifications
You must be signed in to change notification settings - Fork 21
Expand file tree
/
Copy pathdocker-compose.dev.yml
More file actions
131 lines (128 loc) · 5.01 KB
/
docker-compose.dev.yml
File metadata and controls
131 lines (128 loc) · 5.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
services:
neo4j:
image: neo4j:5.13.0
container_name: visionflow-neo4j
environment:
- NEO4J_AUTH=neo4j/${NEO4J_PASSWORD:-changeme-dev}
- NEO4J_server_memory_pagecache_size=512M
- NEO4J_server_memory_heap_max__size=1G
- NEO4J_dbms_security_procedures_unrestricted=apoc.*
- NEO4J_dbms_security_procedures_allowlist=apoc.*
ports:
- "7474:7474" # HTTP
- "7687:7687" # Bolt
volumes:
- neo4j-data:/data
- neo4j-logs:/logs
- neo4j-conf:/conf
- neo4j-plugins:/plugins
networks:
- docker_ragflow
healthcheck:
test: ["CMD-SHELL", "wget --spider --quiet http://localhost:7474 || exit 1"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
webxr:
container_name: visionflow_container
extra_hosts:
- "host.docker.internal:host-gateway"
depends_on:
neo4j:
condition: service_healthy
build:
context: .
dockerfile: Dockerfile.dev
args:
CUDA_ARCH: ${CUDA_ARCH:-86}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3001/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
volumes:
# Fully baked image - ALL code and config inside container
# Only internal Docker volumes for data persistence and caching
- visionflow-data:/app/data # Internal volume for databases and markdown
- visionflow-logs:/app/logs # Internal volume for application logs
# REMOVED: Docker socket mount — unnecessary attack surface
# - /var/run/docker.sock:/var/run/docker.sock:ro
- npm-cache:/root/.npm
- cargo-cache:/root/.cargo/registry
- cargo-git-cache:/root/.cargo/git
- cargo-target-cache:/app/target
env_file:
- .env
environment:
- NVIDIA_VISIBLE_DEVICES=0 # Use GPU 0 (RTX A6000)
- CUDA_ARCH=${CUDA_ARCH:-86} # Pass CUDA architecture for runtime PTX compilation (86 for RTX A6000)
# RUST_LOG is now inherited from the .env file via env_file directive
- VITE_DEBUG=${DEBUG_ENABLED:-true} # Pass master debug switch to frontend
- NODE_ENV=development
- DOCKER_ENV=true # Tell Vite it's running in Docker, Nginx handles proxying
- VITE_DEV_SERVER_PORT=5173 # Internal Vite port, accessed via Nginx
- VITE_API_PORT=4000
- VITE_HMR_PORT=24678 # Internal HMR port, accessed via Nginx
- RUST_LOG_REDIRECT=true
# Override the port from settings.yaml for development environment
# Ensure Rust backend listens on 4000, which Vite proxies to.
- SYSTEM_NETWORK_PORT=4000
# Claude Flow MCP WebSocket configuration
- CLAUDE_FLOW_HOST=localhost
- CLAUDE_FLOW_PORT=3002
# MCP Orchestrator configuration (optional - will use mock data if not available)
- ORCHESTRATOR_WS_URL=ws://mcp-orchestrator:9001/ws
- MCP_RELAY_FALLBACK_TO_MOCK=true
# Set BOTS_ORCHESTRATOR_URL to non-existent to trigger mock data
- BOTS_ORCHESTRATOR_URL=ws://localhost:3002
# Neo4j Configuration
- NEO4J_URI=bolt://neo4j:7687
- NEO4J_USER=neo4j
- NEO4J_PASSWORD=${NEO4J_PASSWORD:-changeme-dev}
- NEO4J_DATABASE=neo4j
- SERVER_NOSTR_AUTO_GENERATE=true
# Without NIP98_OPTIONAL_AUTH, /api/graph/data returns 401 in dev
- NIP98_OPTIONAL_AUTH=true
# Feature engineering pipeline (PRD-009, ADR-072)
- EMBEDDING_ENDPOINT=http://xinference:9997/v1/embeddings
- EMBEDDING_MODEL=bge-small-en-v1.5
- NHOP_MATERIALIZATION_ENABLED=true
# Ecosystem health aggregator (PRD-014)
- ECOSYSTEM_HEALTH_VISIONCLAW_URL=http://localhost:4000/api/health
- ECOSYSTEM_HEALTH_FORUM_URL=https://dreamlab-nostr-relay.solitary-paper-764d.workers.dev/
- ECOSYSTEM_HEALTH_AGENTBOX_URL=http://host.docker.internal:9090/health
- ECOSYSTEM_HEALTH_SOLIDPOD_URL=http://host.docker.internal:8484/.well-known/solid
# Mesh federation (PRD-010 Phase 3 / ADR-073)
- MESH_MODE=standalone
- MESH_PEER_RELAYS=
- MESH_FEDERATED_KINDS=1,1059,30001,30050,30910,31400,31401,31402,31403,31404,31405
- MESH_ALLOWED_REMOTE_DIDS=
deploy: # Indentation: 4 spaces
resources:
reservations:
devices:
- driver: nvidia
capabilities: [compute,utility]
device_ids: ['0']
ports: # Indentation: 4 spaces
# Expose only Nginx port 3001 to the host.
# Other services (Vite 5173, Rust 4000, HMR 24678) are accessed via Nginx proxy.
- "3001:3001" # Nginx entry point
networks: # Indentation: 4 spaces
- docker_ragflow
networks: # Indentation: 2 spaces
docker_ragflow:
external: true
volumes: # Indentation: 2 spaces
visionflow-data: # Persistent data volume (databases, markdown, metadata, user_settings)
visionflow-logs: # Log files volume
npm-cache:
cargo-cache:
cargo-git-cache:
cargo-target-cache:
neo4j-data: # Neo4j database files
neo4j-logs: # Neo4j log files
neo4j-conf: # Neo4j configuration
neo4j-plugins: # Neo4j plugins (APOC, etc)