mirror of
https://github.com/vndangkhoa/Sys-Arc-Visl.git
synced 2026-04-05 01:17:57 +07:00
157 lines
4.4 KiB
YAML
157 lines
4.4 KiB
YAML
version: '3.8'
|
|
|
|
services:
|
|
# -------------------------------------------------------------------
|
|
# KV Graph (System Architecture Visualizer)
|
|
# -------------------------------------------------------------------
|
|
kv-graph:
|
|
image: vndangkhoa/sys-arc-visl:latest
|
|
container_name: kv-graph-web
|
|
restart: always
|
|
ports:
|
|
- "8338:80"
|
|
networks:
|
|
- syno-global-net
|
|
depends_on:
|
|
- ollama
|
|
|
|
# -------------------------------------------------------------------
|
|
# OLLAMA Language Model Server (GPU)
|
|
# -------------------------------------------------------------------
|
|
ollama:
|
|
container_name: OLLAMA
|
|
image: ollama/ollama:latest
|
|
volumes:
|
|
- /volume2/docker/ollama/data:/root/.ollama:rw
|
|
environment:
|
|
# --- Server Config ---
|
|
OLLAMA_HOST: "0.0.0.0"
|
|
|
|
# [CRITICAL] Allows the KV-Graph browser app to connect via the Nginx Proxy
|
|
OLLAMA_ORIGINS: "*"
|
|
|
|
# Keep model loaded in VRAM (Faster response, -1 = infinite)
|
|
OLLAMA_KEEP_ALIVE: -1
|
|
|
|
# Note: 'OLLAMA_INSTALL_MODELS' is not supported by the official image.
|
|
# You must run this command *once* after starting:
|
|
# docker exec -it OLLAMA ollama pull llama3.2
|
|
|
|
ports:
|
|
- "11434:11434"
|
|
deploy:
|
|
resources:
|
|
reservations:
|
|
devices:
|
|
- driver: nvidia
|
|
count: 1
|
|
capabilities: [ gpu ]
|
|
healthcheck:
|
|
test: [ "CMD", "ollama", "--version" ]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 3
|
|
start_period: 30s
|
|
restart: on-failure:5
|
|
networks:
|
|
- ai-network
|
|
- syno-global-net
|
|
|
|
# -------------------------------------------------------------------
|
|
# Open WebUI (Interface for Ollama)
|
|
# -------------------------------------------------------------------
|
|
webui:
|
|
container_name: OLLAMA-WEBUI
|
|
image: ghcr.io/open-webui/open-webui:latest
|
|
volumes:
|
|
- /volume2/docker/ollama/webui:/app/backend/data:rw
|
|
- /volume2/docker/ollama/upload:/app/backend/data/uploads:rw
|
|
environment:
|
|
OLLAMA_BASE_URL: http://ollama:11434
|
|
OLLAMA_API_KEY: "e5a94e19c78146c7a02f57c67bc5e69d.m2xzXExQUYAtitiEK6NO6f6O"
|
|
WEBUI_SECRET_KEY: "dOxZYTTZgXKMHkqLBIQVImayQXAVWdzGBPuFJKggzcgvgPJPXpWzqzKaUOIOGGIr"
|
|
ENABLE_UPLOADS: "true"
|
|
UPLOAD_DIR: /app/backend/data/uploads
|
|
ports:
|
|
- "8889:8080"
|
|
restart: on-failure
|
|
depends_on:
|
|
ollama:
|
|
condition: service_healthy
|
|
networks:
|
|
- ai-network
|
|
|
|
# -------------------------------------------------------------------
|
|
# N8N Database (PostgreSQL)
|
|
# -------------------------------------------------------------------
|
|
db:
|
|
image: postgres:17
|
|
container_name: n8n-DB
|
|
hostname: n8n-db
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
healthcheck:
|
|
test: [ "CMD", "pg_isready", "-q", "-d", "n8n", "-U", "n8nuser" ]
|
|
timeout: 45s
|
|
interval: 10s
|
|
retries: 10
|
|
volumes:
|
|
- /volume2/docker/n8n/db:/var/lib/postgresql/data:rw
|
|
environment:
|
|
TZ: Asia/Ho_Chi_Minh
|
|
POSTGRES_DB: n8n
|
|
POSTGRES_USER: n8nuser
|
|
POSTGRES_PASSWORD: n8npass
|
|
restart: on-failure:5
|
|
networks:
|
|
- ai-network
|
|
|
|
# -------------------------------------------------------------------
|
|
# N8N Workflow Automation
|
|
# -------------------------------------------------------------------
|
|
n8n:
|
|
image: n8nio/n8n:next
|
|
container_name: n8n
|
|
hostname: n8n
|
|
user: 0:0
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
ports:
|
|
- "5678:5678"
|
|
volumes:
|
|
- /volume2/docker/n8n/data:/root/.n8n:rw
|
|
- /volume2/docker/n8n/files:/files:rw
|
|
environment:
|
|
N8N_HOST: n8n.khoavo.myds.me
|
|
WEBHOOK_URL: https://n8n.khoavo.myds.me
|
|
GENERIC_TIMEZONE: Asia/Ho_Chi_Minh
|
|
TZ: Asia/Ho_Chi_Minh
|
|
N8N_PORT: 5678
|
|
N8N_PROTOCOL: https
|
|
NODE_ENV: production
|
|
N8N_ENCRYPTION_KEY: xzwqZIEhDyVFOyMghGIIeVEACxtShfbhwzorVYhiUkpSVGKcSgVjbBHxgmxKiejo
|
|
N8N_SECURE_COOKIE: "false"
|
|
DB_TYPE: postgresdb
|
|
DB_POSTGRESDB_DATABASE: n8n
|
|
DB_POSTGRESDB_HOST: n8n-db
|
|
DB_POSTGRESDB_PORT: 5432
|
|
DB_POSTGRESDB_USER: n8nuser
|
|
DB_POSTGRESDB_PASSWORD: n8npass
|
|
N8N_AI_CORE_CONNECTION_TIMEOUT: 300000
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
networks:
|
|
- ai-network
|
|
- syno-global-net
|
|
|
|
networks:
|
|
ai-network:
|
|
driver: bridge
|
|
ipam:
|
|
config:
|
|
- subnet: 172.32.0.0/24
|
|
gateway: 172.32.0.1
|
|
|
|
syno-global-net:
|
|
external: true
|