Update configuration files to enhance Weaviate and Neo4j integration

- Added Weaviate username, password, and API key placeholders to .env.example.
- Updated Caddyfile to include Prometheus reverse proxy settings.
- Enhanced docker-compose.yml with health checks and ulimits for Neo4j service.
- Modified scripts to include Neo4j in the service selection and final report outputs.
This commit is contained in:
Yury Kossakovsky
2025-05-27 14:45:07 -06:00
parent 50e6725b2e
commit fa9c52af3e
5 changed files with 50 additions and 20 deletions

View File

@@ -67,16 +67,25 @@ DASHBOARD_PASSWORD=
POOLER_TENANT_ID=1000
############
# [required]
# Weaviate username and password
############
WEAVIATE_USERNAME=
WEAVIATE_PASSWORD=
WEAVIATE_API_KEY=
############
# [required]
# Neo4j username and password
# Replace "neo4j" with your chosen username and "password" with your chosen password.
# Keep the "/" as a separator between the two.
############
NEO4J_AUTH_USERNAME=
NEO4J_AUTH_PASSWORD=
############
# [required]
# Langfuse credentials
@@ -114,6 +123,7 @@ FLOWISE_HOSTNAME=flowise.yourdomain.com
SUPABASE_HOSTNAME=supabase.yourdomain.com
LANGFUSE_HOSTNAME=langfuse.yourdomain.com
SEARXNG_HOSTNAME=searxng.yourdomain.com
WEAVIATE_HOSTNAME=weaviate.yourdomain.com
NEO4J_HOSTNAME=neo4j.yourdomain.com
GRAFANA_HOSTNAME=grafana.yourdomain.com
PROMETHEUS_HOSTNAME=prometheus.yourdomain.com

View File

@@ -35,6 +35,14 @@
reverse_proxy grafana:3000
}
# Prometheus
{$PROMETHEUS_HOSTNAME} {
basic_auth {
{$PROMETHEUS_USERNAME} {$PROMETHEUS_PASSWORD_HASH}
}
reverse_proxy prometheus:9090
}
# Letta
{$LETTA_HOSTNAME} {
reverse_proxy letta:8283
@@ -48,14 +56,6 @@
reverse_proxy weaviate:8080
}
# Prometheus
{$PROMETHEUS_HOSTNAME} {
basic_auth {
{$PROMETHEUS_USERNAME} {$PROMETHEUS_PASSWORD_HASH}
}
reverse_proxy prometheus:9090
}
# Neo4j
{$NEO4J_HOSTNAME} {
reverse_proxy neo4j:7474

View File

@@ -159,6 +159,19 @@ services:
- ./neo4j/plugins:/plugins
environment:
- NEO4J_AUTH=${NEO4J_AUTH_USERNAME}/${NEO4J_AUTH_PASSWORD}
healthcheck:
test:
[
"CMD-SHELL",
"wget --no-verbose --tries=1 --spider http://localhost:7474 || exit 1",
]
interval: 5s
timeout: 3s
retries: 5
ulimits:
nofile:
soft: 40000
hard: 40000
caddy:
container_name: caddy
@@ -178,6 +191,7 @@ services:
- SUPABASE_HOSTNAME=${SUPABASE_HOSTNAME}
- SEARXNG_HOSTNAME=${SEARXNG_HOSTNAME}
- LANGFUSE_HOSTNAME=${LANGFUSE_HOSTNAME}
- WEAVIATE_HOSTNAME=${WEAVIATE_HOSTNAME}
- NEO4J_HOSTNAME=${NEO4J_HOSTNAME}
- LETSENCRYPT_EMAIL=${LETSENCRYPT_EMAIL:-internal}
- PROMETHEUS_HOSTNAME=${PROMETHEUS_HOSTNAME}
@@ -508,9 +522,6 @@ services:
container_name: weaviate
profiles: ["weaviate"]
restart: unless-stopped
ports:
- "8088:8080" # Internal port 8080, mapping to 8088 to avoid conflict if other services use 8080 on host
- "50059:50051" # Internal gRPC port 50051, mapping to 50059
volumes:
- weaviate_data:/var/lib/weaviate
environment:
@@ -518,13 +529,13 @@ services:
AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: "false"
AUTHENTICATION_APIKEY_ENABLED: "true"
AUTHENTICATION_APIKEY_ALLOWED_KEYS: ${WEAVIATE_API_KEY}
AUTHENTICATION_APIKEY_USERS: ${WEAVIATE_USERNAME} # Or a generic user like 'admin'
AUTHORIZATION_ADMINLIST_ENABLED: "true" # Explicitly enable Admin List
AUTHORIZATION_ADMINLIST_USERS: ${WEAVIATE_USERNAME} # Grant admin rights to the API key user
AUTHENTICATION_APIKEY_USERS: ${WEAVIATE_USERNAME}
AUTHORIZATION_ENABLE_RBAC: "true"
AUTHORIZATION_RBAC_ROOT_USERS: ${WEAVIATE_USERNAME}
PERSISTENCE_DATA_PATH: "/var/lib/weaviate"
ENABLE_API_BASED_MODULES: "true" # To allow integrations like OpenAI, Cohere etc.
CLUSTER_HOSTNAME: "node1" # Recommended for single node to avoid issues if hostname changes
DEFAULT_VECTORIZER_MODULE: "none" # Explicitly set to none, can be changed by user later
ENABLE_API_BASED_MODULES: "true"
CLUSTER_HOSTNAME: "node1"
DEFAULT_VECTORIZER_MODULE: "none"
healthcheck:
test:
[

View File

@@ -56,6 +56,7 @@ base_services_data=(
"qdrant" "Qdrant (Vector Database)"
"supabase" "Supabase (Backend as a Service)"
"weaviate" "Weaviate (Vector Database with API Key Auth)"
"neo4j" "Neo4j (Graph Database)"
"monitoring" "Monitoring Suite (Prometheus, Grafana, cAdvisor, Node-Exporter)"
"open-webui" "Open WebUI (ChatGPT-like Interface)"
"searxng" "SearXNG (Private Metasearch Engine)"

View File

@@ -164,7 +164,15 @@ if is_profile_active "weaviate"; then
echo "User: ${WEAVIATE_USERNAME:-<not_set_in_env>}"
echo "Password: ${WEAVIATE_PASSWORD:-<not_set_in_env>}"
echo "Weaviate API Key: ${WEAVIATE_API_KEY:-<not_set_in_env>}"
echo "(Internal Weaviate Port: 8080, gRPC: 50051)"
fi
if is_profile_active "neo4j"; then
echo
echo "================================= Neo4j ==============================="
echo
echo "Host: ${NEO4J_HOSTNAME:-<hostname_not_set>}"
echo "User: ${NEO4J_AUTH_USERNAME:-<not_set_in_env>}"
echo "Password: ${NEO4J_AUTH_PASSWORD:-<not_set_in_env>}"
fi
# Standalone PostgreSQL (used by n8n, Langfuse, etc.)