services: api: image: langgenius/dify-api:0.14.0 restart: always environment: MODE: api LOG_LEVEL: INFO SECRET_KEY: O/PzhwXRXX+8rv8CK144R8EPdFkOFODB/1QwI8iR4FApqah50KJD9gcU CONSOLE_WEB_URL: '' INIT_PASSWORD: '' CONSOLE_API_URL: '' SERVICE_API_URL: '' APP_WEB_URL: '' FILES_URL: '' MIGRATION_ENABLED: 'true' DB_USERNAME: postgres DB_PASSWORD: difyai123456 DB_HOST: db DB_PORT: 5432 DB_DATABASE: dify REDIS_HOST: redis REDIS_PORT: 6379 REDIS_USERNAME: '' REDIS_PASSWORD: difyai123456 REDIS_USE_SSL: 'false' REDIS_DB: 0 CELERY_BROKER_URL: redis://:difyai123456@redis:6379/1 WEB_API_CORS_ALLOW_ORIGINS: '*' CONSOLE_CORS_ALLOW_ORIGINS: '*' STORAGE_TYPE: local STORAGE_LOCAL_PATH: storage S3_ENDPOINT: 'https://xxx.r2.cloudflarestorage.com' S3_BUCKET_NAME: 'difyai' S3_ACCESS_KEY: 'ak-difyai' S3_SECRET_KEY: 'sk-difyai' S3_REGION: 'us-east-1' VECTOR_STORE: weaviate WEAVIATE_ENDPOINT: http://weaviate:8080 WEAVIATE_API_KEY: WVF5YThaHlkYwhGUSmCRgsX3tD5ngdN8pkih QDRANT_URL: http://qdrant:6333 QDRANT_API_KEY: difyai123456 QDRANT_CLIENT_TIMEOUT: 20 MILVUS_HOST: 127.0.0.1 MILVUS_PORT: 19530 MILVUS_USER: root MILVUS_PASSWORD: Milvus MILVUS_SECURE: 'false' MAIL_TYPE: '' MAIL_DEFAULT_SEND_FROM: 'zyroc1990@gmail.com' SMTP_SERVER: 'smtp.gmail.com' SMTP_PORT: 587 SMTP_USERNAME: 'zyroc1990@gmail.com' SMTP_PASSWORD: 'snzmrunewisaakmv' SMTP_USE_TLS: 'true' RESEND_API_KEY: '' RESEND_API_URL: https://api.resend.com SENTRY_DSN: '' SENTRY_TRACES_SAMPLE_RATE: 1.0 SENTRY_PROFILES_SAMPLE_RATE: 1.0 depends_on: - db - redis volumes: - ./volumes/app/storage:/app/api/storage worker: image: langgenius/dify-api:0.14.0 restart: always environment: MODE: worker LOG_LEVEL: INFO SECRET_KEY: O/PzhwXRXX+8rv8CK144R8EPdFkOFODB/1QwI8iR4FApqah50KJD9gcU DB_USERNAME: postgres DB_PASSWORD: difyai123456 DB_HOST: db DB_PORT: 5432 DB_DATABASE: dify REDIS_HOST: redis REDIS_PORT: 6379 REDIS_USERNAME: '' REDIS_PASSWORD: difyai123456 REDIS_DB: 0 REDIS_USE_SSL: 'false' CELERY_BROKER_URL: redis://:difyai123456@redis:6379/1 STORAGE_TYPE: local STORAGE_LOCAL_PATH: storage VECTOR_STORE: weaviate WEAVIATE_ENDPOINT: http://weaviate:8080 WEAVIATE_API_KEY: WVF5YThaHlkYwhGUSmCRgsX3tD5ngdN8pkih QDRANT_URL: http://qdrant:6333 QDRANT_API_KEY: difyai123456 QDRANT_CLIENT_TIMEOUT: 20 MILVUS_HOST: 127.0.0.1 MILVUS_PORT: 19530 MILVUS_USER: root MILVUS_PASSWORD: Milvus MILVUS_SECURE: 'false' MAIL_TYPE: '' MAIL_DEFAULT_SEND_FROM: 'zyroc1990@gmail.com' RESEND_API_KEY: '' RESEND_API_URL: https://api.resend.com depends_on: - db - redis volumes: - ./volumes/app/storage:/app/api/storage web: image: langgenius/dify-web:0.14.0 restart: always environment: EDITION: SELF_HOSTED CONSOLE_API_URL: '' APP_API_URL: '' SENTRY_DSN: '' db: image: postgres:15-alpine restart: always environment: PGUSER: postgres POSTGRES_PASSWORD: difyai123456 POSTGRES_DB: dify PGDATA: /var/lib/postgresql/data/pgdata volumes: - ./volumes/db/data:/var/lib/postgresql/data healthcheck: test: [ "CMD", "pg_isready" ] interval: 1s timeout: 3s retries: 30 redis: image: redis:6-alpine restart: always volumes: - ./volumes/redis/data:/data command: redis-server --requirepass difyai123456 healthcheck: test: [ "CMD", "redis-cli", "ping" ] weaviate: image: semitechnologies/weaviate:1.19.0 restart: always volumes: - ./volumes/weaviate:/var/lib/weaviate environment: QUERY_DEFAULTS_LIMIT: 25 AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: 'false' PERSISTENCE_DATA_PATH: '/var/lib/weaviate' DEFAULT_VECTORIZER_MODULE: 'none' CLUSTER_HOSTNAME: 'node1' AUTHENTICATION_APIKEY_ENABLED: 'true' AUTHENTICATION_APIKEY_ALLOWED_KEYS: 'WVF5YThaHlkYwhGUSmCRgsX3tD5ngdN8pkih' AUTHENTICATION_APIKEY_USERS: 'hello@dify.ai' AUTHORIZATION_ADMINLIST_ENABLED: 'true' AUTHORIZATION_ADMINLIST_USERS: 'hello@dify.ai' nginx: image: nginx:latest restart: always volumes: - ./nginx/nginx.conf:/etc/nginx/nginx.conf - ./nginx/proxy.conf:/etc/nginx/proxy.conf - ./nginx/conf.d:/etc/nginx/conf.d depends_on: - api - web ports: - "8060:80"