-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
138 lines (130 loc) · 3.68 KB
/
docker-compose.yml
File metadata and controls
138 lines (130 loc) · 3.68 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
132
133
134
135
136
137
138
# LV Framework Docker Compose Configuration
# =========================================
# Easy setup for Neo4j and Qdrant databases
version: '3.8'
services:
# Neo4j Graph Database
neo4j-lv:
image: neo4j:5.0
container_name: neo4j-lv
ports:
- "7474:7474" # Web interface
- "7687:7687" # Bolt protocol
environment:
NEO4J_AUTH: neo4j/lv_password_2024
NEO4J_PLUGINS: '["apoc", "graph-data-science"]'
NEO4J_dbms_security_procedures_unrestricted: "apoc.*,gds.*"
NEO4J_dbms_security_procedures_allowlist: "apoc.*,gds.*"
NEO4J_dbms_memory_heap_initial__size: 512m
NEO4J_dbms_memory_heap_max__size: 2g
NEO4J_dbms_memory_pagecache_size: 1g
volumes:
- neo4j-lv-data:/data
- neo4j-lv-logs:/logs
- neo4j-lv-import:/var/lib/neo4j/import
- neo4j-lv-plugins:/plugins
restart: unless-stopped
healthcheck:
test: ["CMD", "cypher-shell", "-u", "neo4j", "-p", "lv_password_2024", "RETURN 1"]
interval: 30s
timeout: 10s
retries: 5
start_period: 40s
# Qdrant Vector Database
qdrant-lv:
image: qdrant/qdrant:latest
container_name: qdrant-lv
ports:
- "6333:6333" # REST API
- "6334:6334" # gRPC API
environment:
QDRANT__SERVICE__HTTP_PORT: 6333
QDRANT__SERVICE__GRPC_PORT: 6334
QDRANT__LOG_LEVEL: INFO
volumes:
- qdrant-lv-data:/qdrant/storage
restart: unless-stopped
healthcheck:
test: ["CMD", "wget", "--quiet", "--spider", "http://localhost:6333/collections"]
interval: 30s
timeout: 10s
retries: 5
start_period: 30s
# Optional: Redis for caching (if needed for high-performance scenarios)
redis-lv:
image: redis:7-alpine
container_name: redis-lv
ports:
- "6379:6379"
command: redis-server --appendonly yes --requirepass lv_redis_2024
volumes:
- redis-lv-data:/data
restart: unless-stopped
profiles:
- cache
healthcheck:
test: ["CMD", "redis-cli", "--raw", "incr", "ping"]
interval: 30s
timeout: 10s
retries: 5
# Optional: Grafana for monitoring LV ecosystem
grafana-lv:
image: grafana/grafana:latest
container_name: grafana-lv
ports:
- "3000:3000"
environment:
GF_SECURITY_ADMIN_PASSWORD: lv_grafana_2024
GF_USERS_ALLOW_SIGN_UP: false
volumes:
- grafana-lv-data:/var/lib/grafana
- ./monitoring/grafana/dashboards:/var/lib/grafana/dashboards
- ./monitoring/grafana/provisioning:/etc/grafana/provisioning
restart: unless-stopped
profiles:
- monitoring
depends_on:
- neo4j-lv
- qdrant-lv
# Optional: Prometheus for metrics collection
prometheus-lv:
image: prom/prometheus:latest
container_name: prometheus-lv
ports:
- "9090:9090"
volumes:
- ./monitoring/prometheus.yml:/etc/prometheus/prometheus.yml
- prometheus-lv-data:/prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.path=/prometheus'
- '--web.console.libraries=/etc/prometheus/console_libraries'
- '--web.console.templates=/etc/prometheus/consoles'
- '--storage.tsdb.retention.time=200h'
- '--web.enable-lifecycle'
restart: unless-stopped
profiles:
- monitoring
# Named volumes for data persistence
volumes:
neo4j-lv-data:
driver: local
neo4j-lv-logs:
driver: local
neo4j-lv-import:
driver: local
neo4j-lv-plugins:
driver: local
qdrant-lv-data:
driver: local
redis-lv-data:
driver: local
grafana-lv-data:
driver: local
prometheus-lv-data:
driver: local
# Network configuration
networks:
default:
name: lv-network
driver: bridge