Files
GovAI/docker/docker-compose.dify.yml
2026-06-15 23:48:37 +08:00

134 lines
3.3 KiB
YAML

# Aily - Dify AI 引擎
# 使用方式: docker compose -f docker/docker-compose.dify.yml up -d
# 注意: 需要先启动基础设施 (docker-compose.yml)
services:
dify-api:
image: langgenius/dify-api:latest
container_name: aily-dify-api
restart: unless-stopped
ports:
- "5001:5001"
environment:
MODE: api
LOG_LEVEL: INFO
SECRET_KEY: sk-dify-secret-key-change-in-production
CONSOLE_WEB_URL: http://localhost:3001
CONSOLE_API_URL: http://localhost:5001
SERVICE_API_URL: http://localhost:5001
APP_WEB_URL: http://localhost:3001
# Database (shared with portal)
DB_USERNAME: ${POSTGRES_USER:-aily}
DB_PASSWORD: ${POSTGRES_PASSWORD:-aily}
DB_HOST: aily-postgres
DB_PORT: 5432
DB_DATABASE: dify
# Redis
REDIS_HOST: aily-redis
REDIS_PORT: 6379
REDIS_DB: 1
# Storage
STORAGE_TYPE: s3
S3_ENDPOINT: http://aily-minio:9000
S3_BUCKET_NAME: dify-storage
S3_ACCESS_KEY: ${MINIO_ROOT_USER:-minioadmin}
S3_SECRET_KEY: ${MINIO_ROOT_PASSWORD:-minioadmin}
S3_REGION: us-east-1
S3_USE_AWS_MANAGED_IAM: "false"
# Vector store
VECTOR_STORE: weaviate
WEAVIATE_ENDPOINT: http://aily-weaviate:8080
depends_on:
- dify-sandbox
- dify-ssrf-proxy
networks:
- default
- aily-net
dify-worker:
image: langgenius/dify-api:latest
container_name: aily-dify-worker
restart: unless-stopped
environment:
MODE: worker
LOG_LEVEL: INFO
SECRET_KEY: sk-dify-secret-key-change-in-production
DB_USERNAME: ${POSTGRES_USER:-aily}
DB_PASSWORD: ${POSTGRES_PASSWORD:-aily}
DB_HOST: aily-postgres
DB_PORT: 5432
DB_DATABASE: dify
REDIS_HOST: aily-redis
REDIS_PORT: 6379
REDIS_DB: 1
STORAGE_TYPE: s3
S3_ENDPOINT: http://aily-minio:9000
S3_BUCKET_NAME: dify-storage
S3_ACCESS_KEY: ${MINIO_ROOT_USER:-minioadmin}
S3_SECRET_KEY: ${MINIO_ROOT_PASSWORD:-minioadmin}
S3_REGION: us-east-1
S3_USE_AWS_MANAGED_IAM: "false"
VECTOR_STORE: weaviate
WEAVIATE_ENDPOINT: http://aily-weaviate:8080
networks:
- default
- aily-net
dify-web:
image: langgenius/dify-web:latest
container_name: aily-dify-web
restart: unless-stopped
ports:
- "3001:3000"
environment:
CONSOLE_API_URL: http://localhost:5001
APP_API_URL: http://localhost:5001
dify-sandbox:
image: langgenius/dify-sandbox:latest
container_name: aily-dify-sandbox
restart: unless-stopped
environment:
API_KEY: dify-sandbox-key
GIN_MODE: release
WORKER_TIMEOUT: 15
dify-ssrf-proxy:
image: ubuntu/squid:latest
container_name: aily-dify-ssrf-proxy
restart: unless-stopped
weaviate:
image: semitechnologies/weaviate:1.19.0
container_name: aily-weaviate
restart: unless-stopped
ports:
- "8088:8080"
environment:
QUERY_DEFAULTS_LIMIT: 25
AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: "true"
DEFAULT_VECTORIZER_MODULE: none
CLUSTER_HOSTNAME: node1
PERSISTENCE_DATA_PATH: /var/lib/weaviate
volumes:
- weaviatedata:/var/lib/weaviate
networks:
- default
- aily-net
volumes:
weaviatedata:
networks:
aily-net:
external: true
name: aily_default