# 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