Files
hack/tools/scripts/llm-key-hunter/results/_cache/content/agentteam-taichuai_scienceclaw.json
T

1 line
142 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{"repo": "agentteam-taichuai/scienceclaw", "files": {"docker-compose-release.yml": {"3817e56a0ce35900a1bfa82f4b09c492f5fbfd4f": {"t": 1785746329.0625591, "n": 6767, "h": "0f0500acfa41cb2d", "c": "services:\n sandbox:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-sandbox:release-v0.0.4\n security_opt:\n - seccomp:unconfined\n extra_hosts:\n - host.docker.internal:host-gateway\n shm_size: 2gb\n mem_limit: ${SANDBOX_MEM_LIMIT:-8g}\n cpus: ${SANDBOX_CPUS:-4}\n environment:\n TZ: Asia/Shanghai\n WEBSEARCH_URL: http://websearch:8068\n volumes:\n - ./Skills:/skills:ro\n - ./Tools:/app/Tools:ro\n - ./ScienceClaw/backend/builtin_skills:/builtin-skills:ro\n - ./workspace:/home/scienceclaw:rwx\n ports:\n - 18080:8080\n restart: unless-stopped\n healthcheck:\n test:\n - CMD-SHELL\n - curl -fsS http://127.0.0.1:8080/v1/docs >/dev/null || exit 1\n interval: 5s\n timeout: 3s\n retries: 30\n mongo:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-mongo:release-v0.0.4\n environment:\n MONGO_INITDB_ROOT_USERNAME: scienceone\n MONGO_INITDB_ROOT_PASSWORD: Yp51Bi1eEjC77sAt\n ports:\n - 27014:27017\n volumes:\n - scienceclaw_mongo_data:/data/db\n restart: unless-stopped\n searxng:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-searxng:release-v0.0.4\n environment:\n SEARXNG_BASE_URL: http://localhost:8080/\n SEARXNG_LIMITER: 'false'\n TZ: Asia/Shanghai\n volumes:\n - ./ScienceClaw/websearch/config/settings.yml:/etc/searxng/settings.yml\n ports:\n - 26080:8080\n restart: unless-stopped\n websearch:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-websearch:release-v0.0.4\n environment:\n SEARXNG_HOST: searxng\n SEARXNG_PORT: 8080\n API_HOST: 0.0.0.0\n API_PORT: 8068\n TZ: Asia/Shanghai\n API_KEY: fdsfkjikmii\n ports:\n - 8068:8068\n restart: unless-stopped\n depends_on:\n searxng:\n condition: service_started\n backend:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-backend:release-v0.0.4\n volumes:\n - ./Tools:/app/Tools\n - ./Skills:/app/Skills\n - ./workspace:/home/scienceclaw\n environment:\n SANDBOX_REST_URL: http://sandbox:8080\n WORKSPACE_DIR: /home/scienceclaw\n DS_API_KEY: ${API_KEY:-}\n DS_URL: ${API_BASE-https://api.deepseek.com/v1}\n DS_MODEL: ${MODEL_NAME-deepseek-chat}\n TEMPERATURE: ${TEMPERATURE-0.7}\n MAX_TOKENS: ${MAX_TOKENS-2000}\n LOG_LEVEL: ${LOG_LEVEL-INFO}\n FILE_DOWNLOAD_ALLOWED_PREFIXES: /tmp,/app,/home/scienceclaw\n TZ: Asia/Shanghai\n AUTH_PROVIDER: local\n BOOTSTRAP_ADMIN_ENABLED: 'true'\n BOOTSTRAP_ADMIN_USERNAME: admin\n BOOTSTRAP_ADMIN_PASSWORD: admin123\n BOOTSTRAP_ADMIN_FULLNAME: Administrator\n BOOTSTRAP_ADMIN_EMAIL: admin@localhost\n BOOTSTRAP_UPDATE_ADMIN_PASSWORD: 'true'\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n WEBSEARCH_API_KEY: fdsfkjikmii\n WEBSEARCH_BASE_URL: http://websearch:8068\n WEBSEARCH_URL: http://websearch:8068\n TASK_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n IM_ENABLED: 'true'\n IM_RESPONSE_TIMEOUT: 300\n IM_MAX_MESSAGE_LENGTH: 4000\n LARK_ENABLED: 'true'\n LARK_APP_ID: ${LARK_APP_ID-}\n LARK_APP_SECRET: ${LARK_APP_SECRET-}\n ports:\n - 12001:8000\n command: 'python -m uvicorn backend.main:app --host 0.0.0.0 --port 8000 --reload\n --reload-dir /app/backend\n\n '\n restart: unless-stopped\n depends_on:\n sandbox:\n condition: service_started\n mongo:\n condition: service_started\n websearch:\n condition: service_started\n healthcheck:\n test:\n - CMD-SHELL\n - curl -fsS http://127.0.0.1:8000/api/v1/auth/status >/dev/null || exit 1\n interval: 5s\n timeout: 5s\n retries: 30\n redis:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-redis:release-v0.0.4\n restart: unless-stopped\n scheduler_api:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-task-service:release-v0.0.4\n environment:\n TZ: Asia/Shanghai\n DISPLAY_TIMEZONE: ${DISPLAY_TIMEZONE:-Asia/Shanghai}\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n CHAT_SERVICE_URL: http://backend:8000\n CHAT_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n DS_API_KEY: ${API_KEY:-}\n DS_URL: ${API_BASE:-https://api.deepseek.com/v1}\n DS_MODEL: ${MODEL_NAME:-deepseek-chat}\n ports:\n - 12002:8001\n command: uvicorn app.main:app --host 0.0.0.0 --port 8001\n restart: unless-stopped\n depends_on:\n mongo:\n condition: service_started\n redis:\n condition: service_started\n backend:\n condition: service_started\n celery_worker:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-task-service:release-v0.0.4\n environment:\n TZ: Asia/Shanghai\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n CHAT_SERVICE_URL: http://backend:8000\n CHAT_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n command: celery -A app.celery_app worker --loglevel=info\n restart: unless-stopped\n depends_on:\n scheduler_api:\n condition: service_started\n redis:\n condition: service_started\n backend:\n condition: service_started\n celery_beat:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-task-service:release-v0.0.4\n environment:\n TZ: Asia/Shanghai\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n command: celery -A app.celery_app beat --loglevel=info\n restart: unless-stopped\n depends_on:\n scheduler_api:\n condition: service_started\n redis:\n condition: service_started\n frontend:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-frontend:release-v0.0.4\n environment:\n BACKEND_URL: http://backend:8000\n TASK_SERVICE_URL: http://scheduler_api:8001\n VITE_DISPLAY_TIMEZONE: ${DISPLAY_TIMEZONE:-Asia/Shanghai}\n NPM_CONFIG_REGISTRY: https://registry.npmmirror.com\n NPM_CONFIG_CACHE: /npm-cache\n CHOKIDAR_USEPOLLING: 'true'\n CHOKIDAR_INTERVAL: '300'\n TZ: Asia/Shanghai\n ports:\n - 5173:80\n restart: unless-stopped\n depends_on:\n backend:\n condition: service_started\n scheduler_api:\n condition: service_started\nvolumes:\n scienceclaw_mongo_data: null\n scienceclaw_frontend_node_modules: null\n scienceclaw_frontend_npm_cache: null\n"}, "48800cb7f7d61964e1cee5cfd87528c8c7e75653": {"t": 1785761952.6885345, "n": 6767, "h": "0f0500acfa41cb2d", "c": "services:\n sandbox:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-sandbox:release-v0.0.4\n security_opt:\n - seccomp:unconfined\n extra_hosts:\n - host.docker.internal:host-gateway\n shm_size: 2gb\n mem_limit: ${SANDBOX_MEM_LIMIT:-8g}\n cpus: ${SANDBOX_CPUS:-4}\n environment:\n TZ: Asia/Shanghai\n WEBSEARCH_URL: http://websearch:8068\n volumes:\n - ./Skills:/skills:ro\n - ./Tools:/app/Tools:ro\n - ./ScienceClaw/backend/builtin_skills:/builtin-skills:ro\n - ./workspace:/home/scienceclaw:rwx\n ports:\n - 18080:8080\n restart: unless-stopped\n healthcheck:\n test:\n - CMD-SHELL\n - curl -fsS http://127.0.0.1:8080/v1/docs >/dev/null || exit 1\n interval: 5s\n timeout: 3s\n retries: 30\n mongo:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-mongo:release-v0.0.4\n environment:\n MONGO_INITDB_ROOT_USERNAME: scienceone\n MONGO_INITDB_ROOT_PASSWORD: Yp51Bi1eEjC77sAt\n ports:\n - 27014:27017\n volumes:\n - scienceclaw_mongo_data:/data/db\n restart: unless-stopped\n searxng:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-searxng:release-v0.0.4\n environment:\n SEARXNG_BASE_URL: http://localhost:8080/\n SEARXNG_LIMITER: 'false'\n TZ: Asia/Shanghai\n volumes:\n - ./ScienceClaw/websearch/config/settings.yml:/etc/searxng/settings.yml\n ports:\n - 26080:8080\n restart: unless-stopped\n websearch:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-websearch:release-v0.0.4\n environment:\n SEARXNG_HOST: searxng\n SEARXNG_PORT: 8080\n API_HOST: 0.0.0.0\n API_PORT: 8068\n TZ: Asia/Shanghai\n API_KEY: fdsfkjikmii\n ports:\n - 8068:8068\n restart: unless-stopped\n depends_on:\n searxng:\n condition: service_started\n backend:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-backend:release-v0.0.4\n volumes:\n - ./Tools:/app/Tools\n - ./Skills:/app/Skills\n - ./workspace:/home/scienceclaw\n environment:\n SANDBOX_REST_URL: http://sandbox:8080\n WORKSPACE_DIR: /home/scienceclaw\n DS_API_KEY: ${API_KEY:-}\n DS_URL: ${API_BASE-https://api.deepseek.com/v1}\n DS_MODEL: ${MODEL_NAME-deepseek-chat}\n TEMPERATURE: ${TEMPERATURE-0.7}\n MAX_TOKENS: ${MAX_TOKENS-2000}\n LOG_LEVEL: ${LOG_LEVEL-INFO}\n FILE_DOWNLOAD_ALLOWED_PREFIXES: /tmp,/app,/home/scienceclaw\n TZ: Asia/Shanghai\n AUTH_PROVIDER: local\n BOOTSTRAP_ADMIN_ENABLED: 'true'\n BOOTSTRAP_ADMIN_USERNAME: admin\n BOOTSTRAP_ADMIN_PASSWORD: admin123\n BOOTSTRAP_ADMIN_FULLNAME: Administrator\n BOOTSTRAP_ADMIN_EMAIL: admin@localhost\n BOOTSTRAP_UPDATE_ADMIN_PASSWORD: 'true'\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n WEBSEARCH_API_KEY: fdsfkjikmii\n WEBSEARCH_BASE_URL: http://websearch:8068\n WEBSEARCH_URL: http://websearch:8068\n TASK_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n IM_ENABLED: 'true'\n IM_RESPONSE_TIMEOUT: 300\n IM_MAX_MESSAGE_LENGTH: 4000\n LARK_ENABLED: 'true'\n LARK_APP_ID: ${LARK_APP_ID-}\n LARK_APP_SECRET: ${LARK_APP_SECRET-}\n ports:\n - 12001:8000\n command: 'python -m uvicorn backend.main:app --host 0.0.0.0 --port 8000 --reload\n --reload-dir /app/backend\n\n '\n restart: unless-stopped\n depends_on:\n sandbox:\n condition: service_started\n mongo:\n condition: service_started\n websearch:\n condition: service_started\n healthcheck:\n test:\n - CMD-SHELL\n - curl -fsS http://127.0.0.1:8000/api/v1/auth/status >/dev/null || exit 1\n interval: 5s\n timeout: 5s\n retries: 30\n redis:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-redis:release-v0.0.4\n restart: unless-stopped\n scheduler_api:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-task-service:release-v0.0.4\n environment:\n TZ: Asia/Shanghai\n DISPLAY_TIMEZONE: ${DISPLAY_TIMEZONE:-Asia/Shanghai}\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n CHAT_SERVICE_URL: http://backend:8000\n CHAT_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n DS_API_KEY: ${API_KEY:-}\n DS_URL: ${API_BASE:-https://api.deepseek.com/v1}\n DS_MODEL: ${MODEL_NAME:-deepseek-chat}\n ports:\n - 12002:8001\n command: uvicorn app.main:app --host 0.0.0.0 --port 8001\n restart: unless-stopped\n depends_on:\n mongo:\n condition: service_started\n redis:\n condition: service_started\n backend:\n condition: service_started\n celery_worker:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-task-service:release-v0.0.4\n environment:\n TZ: Asia/Shanghai\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n CHAT_SERVICE_URL: http://backend:8000\n CHAT_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n command: celery -A app.celery_app worker --loglevel=info\n restart: unless-stopped\n depends_on:\n scheduler_api:\n condition: service_started\n redis:\n condition: service_started\n backend:\n condition: service_started\n celery_beat:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-task-service:release-v0.0.4\n environment:\n TZ: Asia/Shanghai\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n command: celery -A app.celery_app beat --loglevel=info\n restart: unless-stopped\n depends_on:\n scheduler_api:\n condition: service_started\n redis:\n condition: service_started\n frontend:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-frontend:release-v0.0.4\n environment:\n BACKEND_URL: http://backend:8000\n TASK_SERVICE_URL: http://scheduler_api:8001\n VITE_DISPLAY_TIMEZONE: ${DISPLAY_TIMEZONE:-Asia/Shanghai}\n NPM_CONFIG_REGISTRY: https://registry.npmmirror.com\n NPM_CONFIG_CACHE: /npm-cache\n CHOKIDAR_USEPOLLING: 'true'\n CHOKIDAR_INTERVAL: '300'\n TZ: Asia/Shanghai\n ports:\n - 5173:80\n restart: unless-stopped\n depends_on:\n backend:\n condition: service_started\n scheduler_api:\n condition: service_started\nvolumes:\n scienceclaw_mongo_data: null\n scienceclaw_frontend_node_modules: null\n scienceclaw_frontend_npm_cache: null\n"}, "6c3f7f3f6f66673d8fbcced2e45ffcff1fe52011": {"t": 1785761954.9072442, "n": 6767, "h": "25f4fc87c98a1b4e", "c": "services:\n sandbox:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-sandbox:release-v0.0.3\n security_opt:\n - seccomp:unconfined\n extra_hosts:\n - host.docker.internal:host-gateway\n shm_size: 2gb\n mem_limit: ${SANDBOX_MEM_LIMIT:-8g}\n cpus: ${SANDBOX_CPUS:-4}\n environment:\n TZ: Asia/Shanghai\n WEBSEARCH_URL: http://websearch:8068\n volumes:\n - ./Skills:/skills:ro\n - ./Tools:/app/Tools:ro\n - ./ScienceClaw/backend/builtin_skills:/builtin-skills:ro\n - ./workspace:/home/scienceclaw:rwx\n ports:\n - 18080:8080\n restart: unless-stopped\n healthcheck:\n test:\n - CMD-SHELL\n - curl -fsS http://127.0.0.1:8080/v1/docs >/dev/null || exit 1\n interval: 5s\n timeout: 3s\n retries: 30\n mongo:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-mongo:release-v0.0.3\n environment:\n MONGO_INITDB_ROOT_USERNAME: scienceone\n MONGO_INITDB_ROOT_PASSWORD: Yp51Bi1eEjC77sAt\n ports:\n - 27014:27017\n volumes:\n - scienceclaw_mongo_data:/data/db\n restart: unless-stopped\n searxng:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-searxng:release-v0.0.3\n environment:\n SEARXNG_BASE_URL: http://localhost:8080/\n SEARXNG_LIMITER: 'false'\n TZ: Asia/Shanghai\n volumes:\n - ./ScienceClaw/websearch/config/settings.yml:/etc/searxng/settings.yml\n ports:\n - 26080:8080\n restart: unless-stopped\n websearch:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-websearch:release-v0.0.3\n environment:\n SEARXNG_HOST: searxng\n SEARXNG_PORT: 8080\n API_HOST: 0.0.0.0\n API_PORT: 8068\n TZ: Asia/Shanghai\n API_KEY: fdsfkjikmii\n ports:\n - 8068:8068\n restart: unless-stopped\n depends_on:\n searxng:\n condition: service_started\n backend:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-backend:release-v0.0.3\n volumes:\n - ./Tools:/app/Tools\n - ./Skills:/app/Skills\n - ./workspace:/home/scienceclaw\n environment:\n SANDBOX_REST_URL: http://sandbox:8080\n WORKSPACE_DIR: /home/scienceclaw\n DS_API_KEY: ${API_KEY:-}\n DS_URL: ${API_BASE-https://api.deepseek.com/v1}\n DS_MODEL: ${MODEL_NAME-deepseek-chat}\n TEMPERATURE: ${TEMPERATURE-0.7}\n MAX_TOKENS: ${MAX_TOKENS-2000}\n LOG_LEVEL: ${LOG_LEVEL-INFO}\n FILE_DOWNLOAD_ALLOWED_PREFIXES: /tmp,/app,/home/scienceclaw\n TZ: Asia/Shanghai\n AUTH_PROVIDER: local\n BOOTSTRAP_ADMIN_ENABLED: 'true'\n BOOTSTRAP_ADMIN_USERNAME: admin\n BOOTSTRAP_ADMIN_PASSWORD: admin123\n BOOTSTRAP_ADMIN_FULLNAME: Administrator\n BOOTSTRAP_ADMIN_EMAIL: admin@localhost\n BOOTSTRAP_UPDATE_ADMIN_PASSWORD: 'true'\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n WEBSEARCH_API_KEY: fdsfkjikmii\n WEBSEARCH_BASE_URL: http://websearch:8068\n WEBSEARCH_URL: http://websearch:8068\n TASK_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n IM_ENABLED: 'true'\n IM_RESPONSE_TIMEOUT: 300\n IM_MAX_MESSAGE_LENGTH: 4000\n LARK_ENABLED: 'true'\n LARK_APP_ID: ${LARK_APP_ID-}\n LARK_APP_SECRET: ${LARK_APP_SECRET-}\n ports:\n - 12001:8000\n command: 'python -m uvicorn backend.main:app --host 0.0.0.0 --port 8000 --reload\n --reload-dir /app/backend\n\n '\n restart: unless-stopped\n depends_on:\n sandbox:\n condition: service_started\n mongo:\n condition: service_started\n websearch:\n condition: service_started\n healthcheck:\n test:\n - CMD-SHELL\n - curl -fsS http://127.0.0.1:8000/api/v1/auth/status >/dev/null || exit 1\n interval: 5s\n timeout: 5s\n retries: 30\n redis:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-redis:release-v0.0.3\n restart: unless-stopped\n scheduler_api:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-task-service:release-v0.0.3\n environment:\n TZ: Asia/Shanghai\n DISPLAY_TIMEZONE: ${DISPLAY_TIMEZONE:-Asia/Shanghai}\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n CHAT_SERVICE_URL: http://backend:8000\n CHAT_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n DS_API_KEY: ${API_KEY:-}\n DS_URL: ${API_BASE:-https://api.deepseek.com/v1}\n DS_MODEL: ${MODEL_NAME:-deepseek-chat}\n ports:\n - 12002:8001\n command: uvicorn app.main:app --host 0.0.0.0 --port 8001\n restart: unless-stopped\n depends_on:\n mongo:\n condition: service_started\n redis:\n condition: service_started\n backend:\n condition: service_started\n celery_worker:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-task-service:release-v0.0.3\n environment:\n TZ: Asia/Shanghai\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n CHAT_SERVICE_URL: http://backend:8000\n CHAT_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n command: celery -A app.celery_app worker --loglevel=info\n restart: unless-stopped\n depends_on:\n scheduler_api:\n condition: service_started\n redis:\n condition: service_started\n backend:\n condition: service_started\n celery_beat:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-task-service:release-v0.0.3\n environment:\n TZ: Asia/Shanghai\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n command: celery -A app.celery_app beat --loglevel=info\n restart: unless-stopped\n depends_on:\n scheduler_api:\n condition: service_started\n redis:\n condition: service_started\n frontend:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-frontend:release-v0.0.3\n environment:\n BACKEND_URL: http://backend:8000\n TASK_SERVICE_URL: http://scheduler_api:8001\n VITE_DISPLAY_TIMEZONE: ${DISPLAY_TIMEZONE:-Asia/Shanghai}\n NPM_CONFIG_REGISTRY: https://registry.npmmirror.com\n NPM_CONFIG_CACHE: /npm-cache\n CHOKIDAR_USEPOLLING: 'true'\n CHOKIDAR_INTERVAL: '300'\n TZ: Asia/Shanghai\n ports:\n - 5173:80\n restart: unless-stopped\n depends_on:\n backend:\n condition: service_started\n scheduler_api:\n condition: service_started\nvolumes:\n scienceclaw_mongo_data: null\n scienceclaw_frontend_node_modules: null\n scienceclaw_frontend_npm_cache: null\n"}, "44508e03e7fd14006be7bdb2f961f4bffb47fad0": {"t": 1785761957.6581047, "n": 6766, "h": "f76d2b8d4249414b", "c": "services:\n sandbox:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-sandbox:release-v0.0.3\n security_opt:\n - seccomp:unconfined\n extra_hosts:\n - host.docker.internal:host-gateway\n shm_size: 2gb\n mem_limit: ${SANDBOX_MEM_LIMIT:-8g}\n cpus: ${SANDBOX_CPUS:-4}\n environment:\n TZ: Asia/Shanghai\n WEBSEARCH_URL: http://websearch:8068\n volumes:\n - ./Skills:/skills:ro\n - ./Tools:/app/Tools:ro\n - ./ScienceClaw/backend/builtin_skills:/builtin-skills:ro\n - ./workspace:/home/scienceclaw:rwx\n ports:\n - 18080:8080\n restart: unless-stopped\n healthcheck:\n test:\n - CMD-SHELL\n - curl -fsS http://127.0.0.1:8080/v1/docs >/dev/null || exit 1\n interval: 5s\n timeout: 3s\n retries: 30\n mongo:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-mongo:release-v0.0.3\n environment:\n MONGO_INITDB_ROOT_USERNAME: scienceone\n MONGO_INITDB_ROOT_PASSWORD: Yp51Bi1eEjC77sAt\n ports:\n - 27014:27017\n volumes:\n - scienceclaw_mongo_data:/data/db\n restart: unless-stopped\n searxng:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-searxng:release-v0.0.3\n environment:\n SEARXNG_BASE_URL: http://localhost:8080/\n SEARXNG_LIMITER: 'false'\n TZ: Asia/Shanghai\n volumes:\n - ./ScienceClaw/websearch/config/settings.yml:/etc/searxng/settings.yml\n ports:\n - 8080:8080\n restart: unless-stopped\n websearch:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-websearch:release-v0.0.3\n environment:\n SEARXNG_HOST: searxng\n SEARXNG_PORT: 8080\n API_HOST: 0.0.0.0\n API_PORT: 8068\n TZ: Asia/Shanghai\n API_KEY: fdsfkjikmii\n ports:\n - 8068:8068\n restart: unless-stopped\n depends_on:\n searxng:\n condition: service_started\n backend:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-backend:release-v0.0.3\n volumes:\n - ./Tools:/app/Tools\n - ./Skills:/app/Skills\n - ./workspace:/home/scienceclaw\n environment:\n SANDBOX_REST_URL: http://sandbox:8080\n WORKSPACE_DIR: /home/scienceclaw\n DS_API_KEY: ${API_KEY:-}\n DS_URL: ${API_BASE-https://api.deepseek.com/v1}\n DS_MODEL: ${MODEL_NAME-deepseek-chat}\n TEMPERATURE: ${TEMPERATURE-0.7}\n MAX_TOKENS: ${MAX_TOKENS-2000}\n LOG_LEVEL: ${LOG_LEVEL-INFO}\n FILE_DOWNLOAD_ALLOWED_PREFIXES: /tmp,/app,/home/scienceclaw\n TZ: Asia/Shanghai\n AUTH_PROVIDER: local\n BOOTSTRAP_ADMIN_ENABLED: 'true'\n BOOTSTRAP_ADMIN_USERNAME: admin\n BOOTSTRAP_ADMIN_PASSWORD: admin123\n BOOTSTRAP_ADMIN_FULLNAME: Administrator\n BOOTSTRAP_ADMIN_EMAIL: admin@localhost\n BOOTSTRAP_UPDATE_ADMIN_PASSWORD: 'true'\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n WEBSEARCH_API_KEY: fdsfkjikmii\n WEBSEARCH_BASE_URL: http://websearch:8068\n WEBSEARCH_URL: http://websearch:8068\n TASK_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n IM_ENABLED: 'true'\n IM_RESPONSE_TIMEOUT: 300\n IM_MAX_MESSAGE_LENGTH: 4000\n LARK_ENABLED: 'true'\n LARK_APP_ID: ${LARK_APP_ID-}\n LARK_APP_SECRET: ${LARK_APP_SECRET-}\n ports:\n - 12001:8000\n command: 'python -m uvicorn backend.main:app --host 0.0.0.0 --port 8000 --reload\n --reload-dir /app/backend\n\n '\n restart: unless-stopped\n depends_on:\n sandbox:\n condition: service_started\n mongo:\n condition: service_started\n websearch:\n condition: service_started\n healthcheck:\n test:\n - CMD-SHELL\n - curl -fsS http://127.0.0.1:8000/api/v1/auth/status >/dev/null || exit 1\n interval: 5s\n timeout: 5s\n retries: 30\n redis:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-redis:release-v0.0.3\n restart: unless-stopped\n scheduler_api:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-task-service:release-v0.0.3\n environment:\n TZ: Asia/Shanghai\n DISPLAY_TIMEZONE: ${DISPLAY_TIMEZONE:-Asia/Shanghai}\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n CHAT_SERVICE_URL: http://backend:8000\n CHAT_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n DS_API_KEY: ${API_KEY:-}\n DS_URL: ${API_BASE:-https://api.deepseek.com/v1}\n DS_MODEL: ${MODEL_NAME:-deepseek-chat}\n ports:\n - 12002:8001\n command: uvicorn app.main:app --host 0.0.0.0 --port 8001\n restart: unless-stopped\n depends_on:\n mongo:\n condition: service_started\n redis:\n condition: service_started\n backend:\n condition: service_started\n celery_worker:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-task-service:release-v0.0.3\n environment:\n TZ: Asia/Shanghai\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n CHAT_SERVICE_URL: http://backend:8000\n CHAT_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n command: celery -A app.celery_app worker --loglevel=info\n restart: unless-stopped\n depends_on:\n scheduler_api:\n condition: service_started\n redis:\n condition: service_started\n backend:\n condition: service_started\n celery_beat:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-task-service:release-v0.0.3\n environment:\n TZ: Asia/Shanghai\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n command: celery -A app.celery_app beat --loglevel=info\n restart: unless-stopped\n depends_on:\n scheduler_api:\n condition: service_started\n redis:\n condition: service_started\n frontend:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-frontend:release-v0.0.3\n environment:\n BACKEND_URL: http://backend:8000\n TASK_SERVICE_URL: http://scheduler_api:8001\n VITE_DISPLAY_TIMEZONE: ${DISPLAY_TIMEZONE:-Asia/Shanghai}\n NPM_CONFIG_REGISTRY: https://registry.npmmirror.com\n NPM_CONFIG_CACHE: /npm-cache\n CHOKIDAR_USEPOLLING: 'true'\n CHOKIDAR_INTERVAL: '300'\n TZ: Asia/Shanghai\n ports:\n - 5173:80\n restart: unless-stopped\n depends_on:\n backend:\n condition: service_started\n scheduler_api:\n condition: service_started\nvolumes:\n scienceclaw_mongo_data: null\n scienceclaw_frontend_node_modules: null\n scienceclaw_frontend_npm_cache: null\n"}, "f45d9aa57666b13cf3a5dccf1ea8ccb56da5c56f": {"t": 1785761959.0103495, "n": 6762, "h": "9cfa7d4562953e50", "c": "services:\n sandbox:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-sandbox:release-v0.0.2\n security_opt:\n - seccomp:unconfined\n extra_hosts:\n - host.docker.internal:host-gateway\n shm_size: 2gb\n mem_limit: ${SANDBOX_MEM_LIMIT:-8g}\n cpus: ${SANDBOX_CPUS:-4}\n environment:\n TZ: Asia/Shanghai\n WEBSEARCH_URL: http://websearch:8068\n volumes:\n - ./Skills:/skills:ro\n - ./Tools:/app/Tools:ro\n - ./ScienceClaw/backend/builtin_skills:/builtin-skills:ro\n - ./workspace:/home/scienceclaw\n ports:\n - 18080:8080\n restart: unless-stopped\n healthcheck:\n test:\n - CMD-SHELL\n - curl -fsS http://127.0.0.1:8080/v1/docs >/dev/null || exit 1\n interval: 5s\n timeout: 3s\n retries: 30\n mongo:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-mongo:release-v0.0.2\n environment:\n MONGO_INITDB_ROOT_USERNAME: scienceone\n MONGO_INITDB_ROOT_PASSWORD: Yp51Bi1eEjC77sAt\n ports:\n - 27014:27017\n volumes:\n - scienceclaw_mongo_data:/data/db\n restart: unless-stopped\n searxng:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-searxng:release-v0.0.2\n environment:\n SEARXNG_BASE_URL: http://localhost:8080/\n SEARXNG_LIMITER: 'false'\n TZ: Asia/Shanghai\n volumes:\n - ./ScienceClaw/websearch/config/settings.yml:/etc/searxng/settings.yml\n ports:\n - 8080:8080\n restart: unless-stopped\n websearch:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-websearch:release-v0.0.2\n environment:\n SEARXNG_HOST: searxng\n SEARXNG_PORT: 8080\n API_HOST: 0.0.0.0\n API_PORT: 8068\n TZ: Asia/Shanghai\n API_KEY: fdsfkjikmii\n ports:\n - 8068:8068\n restart: unless-stopped\n depends_on:\n searxng:\n condition: service_started\n backend:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-backend:release-v0.0.2\n volumes:\n - ./Tools:/app/Tools\n - ./Skills:/app/Skills\n - ./workspace:/home/scienceclaw\n environment:\n SANDBOX_REST_URL: http://sandbox:8080\n WORKSPACE_DIR: /home/scienceclaw\n DS_API_KEY: ${API_KEY:-}\n DS_URL: ${API_BASE-https://api.deepseek.com/v1}\n DS_MODEL: ${MODEL_NAME-deepseek-chat}\n TEMPERATURE: ${TEMPERATURE-0.7}\n MAX_TOKENS: ${MAX_TOKENS-2000}\n LOG_LEVEL: ${LOG_LEVEL-INFO}\n FILE_DOWNLOAD_ALLOWED_PREFIXES: /tmp,/app,/home/scienceclaw\n TZ: Asia/Shanghai\n AUTH_PROVIDER: local\n BOOTSTRAP_ADMIN_ENABLED: 'true'\n BOOTSTRAP_ADMIN_USERNAME: admin\n BOOTSTRAP_ADMIN_PASSWORD: admin123\n BOOTSTRAP_ADMIN_FULLNAME: Administrator\n BOOTSTRAP_ADMIN_EMAIL: admin@localhost\n BOOTSTRAP_UPDATE_ADMIN_PASSWORD: 'true'\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n WEBSEARCH_API_KEY: fdsfkjikmii\n WEBSEARCH_BASE_URL: http://websearch:8068\n WEBSEARCH_URL: http://websearch:8068\n TASK_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n IM_ENABLED: 'true'\n IM_RESPONSE_TIMEOUT: 300\n IM_MAX_MESSAGE_LENGTH: 4000\n LARK_ENABLED: 'true'\n LARK_APP_ID: ${LARK_APP_ID-}\n LARK_APP_SECRET: ${LARK_APP_SECRET-}\n ports:\n - 12001:8000\n command: 'python -m uvicorn backend.main:app --host 0.0.0.0 --port 8000 --reload\n --reload-dir /app/backend\n\n '\n restart: unless-stopped\n depends_on:\n sandbox:\n condition: service_started\n mongo:\n condition: service_started\n websearch:\n condition: service_started\n healthcheck:\n test:\n - CMD-SHELL\n - curl -fsS http://127.0.0.1:8000/api/v1/auth/status >/dev/null || exit 1\n interval: 5s\n timeout: 5s\n retries: 30\n redis:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-redis:release-v0.0.2\n restart: unless-stopped\n scheduler_api:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-task-service:release-v0.0.2\n environment:\n TZ: Asia/Shanghai\n DISPLAY_TIMEZONE: ${DISPLAY_TIMEZONE:-Asia/Shanghai}\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n CHAT_SERVICE_URL: http://backend:8000\n CHAT_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n DS_API_KEY: ${API_KEY:-}\n DS_URL: ${API_BASE:-https://api.deepseek.com/v1}\n DS_MODEL: ${MODEL_NAME:-deepseek-chat}\n ports:\n - 12002:8001\n command: uvicorn app.main:app --host 0.0.0.0 --port 8001\n restart: unless-stopped\n depends_on:\n mongo:\n condition: service_started\n redis:\n condition: service_started\n backend:\n condition: service_started\n celery_worker:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-task-service:release-v0.0.2\n environment:\n TZ: Asia/Shanghai\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n CHAT_SERVICE_URL: http://backend:8000\n CHAT_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n command: celery -A app.celery_app worker --loglevel=info\n restart: unless-stopped\n depends_on:\n scheduler_api:\n condition: service_started\n redis:\n condition: service_started\n backend:\n condition: service_started\n celery_beat:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-task-service:release-v0.0.2\n environment:\n TZ: Asia/Shanghai\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n command: celery -A app.celery_app beat --loglevel=info\n restart: unless-stopped\n depends_on:\n scheduler_api:\n condition: service_started\n redis:\n condition: service_started\n frontend:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-frontend:release-v0.0.2\n environment:\n BACKEND_URL: http://backend:8000\n TASK_SERVICE_URL: http://scheduler_api:8001\n VITE_DISPLAY_TIMEZONE: ${DISPLAY_TIMEZONE:-Asia/Shanghai}\n NPM_CONFIG_REGISTRY: https://registry.npmmirror.com\n NPM_CONFIG_CACHE: /npm-cache\n CHOKIDAR_USEPOLLING: 'true'\n CHOKIDAR_INTERVAL: '300'\n TZ: Asia/Shanghai\n ports:\n - 5173:80\n restart: unless-stopped\n depends_on:\n backend:\n condition: service_started\n scheduler_api:\n condition: service_started\nvolumes:\n scienceclaw_mongo_data: null\n scienceclaw_frontend_node_modules: null\n scienceclaw_frontend_npm_cache: null\n"}, "555f4f27bbfe77e59f99a715f898e038eeab5354": {"t": 1785761960.5815759, "n": 6764, "h": "d0c07266d438af5d", "c": "services:\n sandbox:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-sandbox:release-20260316\n security_opt:\n - seccomp:unconfined\n extra_hosts:\n - host.docker.internal:host-gateway\n shm_size: 2gb\n mem_limit: ${SANDBOX_MEM_LIMIT:-8g}\n cpus: ${SANDBOX_CPUS:-4}\n environment:\n TZ: Asia/Shanghai\n WEBSEARCH_URL: http://websearch:8068\n volumes:\n - ./Skills:/skills:ro\n - ./Tools:/app/Tools:ro\n - ./ScienceClaw/backend/builtin_skills:/builtin-skills:ro\n - ./workspace:/home/scienceclaw\n ports:\n - 18080:8080\n restart: unless-stopped\n healthcheck:\n test:\n - CMD-SHELL\n - curl -fsS http://127.0.0.1:8080/v1/docs >/dev/null || exit 1\n interval: 5s\n timeout: 3s\n retries: 30\n mongo:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-mongo:release-v0.0.2\n environment:\n MONGO_INITDB_ROOT_USERNAME: scienceone\n MONGO_INITDB_ROOT_PASSWORD: Yp51Bi1eEjC77sAt\n ports:\n - 27014:27017\n volumes:\n - scienceclaw_mongo_data:/data/db\n restart: unless-stopped\n searxng:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-searxng:release-v0.0.2\n environment:\n SEARXNG_BASE_URL: http://localhost:8080/\n SEARXNG_LIMITER: 'false'\n TZ: Asia/Shanghai\n volumes:\n - ./ScienceClaw/websearch/config/settings.yml:/etc/searxng/settings.yml\n ports:\n - 8080:8080\n restart: unless-stopped\n websearch:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-websearch:release-v0.0.2\n environment:\n SEARXNG_HOST: searxng\n SEARXNG_PORT: 8080\n API_HOST: 0.0.0.0\n API_PORT: 8068\n TZ: Asia/Shanghai\n API_KEY: fdsfkjikmii\n ports:\n - 8068:8068\n restart: unless-stopped\n depends_on:\n searxng:\n condition: service_started\n backend:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-backend:release-v0.0.2\n volumes:\n - ./Tools:/app/Tools\n - ./Skills:/app/Skills\n - ./workspace:/home/scienceclaw\n environment:\n SANDBOX_REST_URL: http://sandbox:8080\n WORKSPACE_DIR: /home/scienceclaw\n DS_API_KEY: ${API_KEY:-}\n DS_URL: ${API_BASE-https://api.deepseek.com/v1}\n DS_MODEL: ${MODEL_NAME-deepseek-chat}\n TEMPERATURE: ${TEMPERATURE-0.7}\n MAX_TOKENS: ${MAX_TOKENS-2000}\n LOG_LEVEL: ${LOG_LEVEL-INFO}\n FILE_DOWNLOAD_ALLOWED_PREFIXES: /tmp,/app,/home/scienceclaw\n TZ: Asia/Shanghai\n AUTH_PROVIDER: local\n BOOTSTRAP_ADMIN_ENABLED: 'true'\n BOOTSTRAP_ADMIN_USERNAME: admin\n BOOTSTRAP_ADMIN_PASSWORD: admin123\n BOOTSTRAP_ADMIN_FULLNAME: Administrator\n BOOTSTRAP_ADMIN_EMAIL: admin@localhost\n BOOTSTRAP_UPDATE_ADMIN_PASSWORD: 'true'\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n WEBSEARCH_API_KEY: fdsfkjikmii\n WEBSEARCH_BASE_URL: http://websearch:8068\n WEBSEARCH_URL: http://websearch:8068\n TASK_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n IM_ENABLED: 'true'\n IM_RESPONSE_TIMEOUT: 300\n IM_MAX_MESSAGE_LENGTH: 4000\n LARK_ENABLED: 'true'\n LARK_APP_ID: ${LARK_APP_ID-}\n LARK_APP_SECRET: ${LARK_APP_SECRET-}\n ports:\n - 12001:8000\n command: 'python -m uvicorn backend.main:app --host 0.0.0.0 --port 8000 --reload\n --reload-dir /app/backend\n\n '\n restart: unless-stopped\n depends_on:\n sandbox:\n condition: service_started\n mongo:\n condition: service_started\n websearch:\n condition: service_started\n healthcheck:\n test:\n - CMD-SHELL\n - curl -fsS http://127.0.0.1:8000/api/v1/auth/status >/dev/null || exit 1\n interval: 5s\n timeout: 5s\n retries: 30\n redis:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-redis:release-v0.0.2\n restart: unless-stopped\n scheduler_api:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-task-service:release-v0.0.2\n environment:\n TZ: Asia/Shanghai\n DISPLAY_TIMEZONE: ${DISPLAY_TIMEZONE:-Asia/Shanghai}\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n CHAT_SERVICE_URL: http://backend:8000\n CHAT_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n DS_API_KEY: ${API_KEY:-}\n DS_URL: ${API_BASE:-https://api.deepseek.com/v1}\n DS_MODEL: ${MODEL_NAME:-deepseek-chat}\n ports:\n - 12002:8001\n command: uvicorn app.main:app --host 0.0.0.0 --port 8001\n restart: unless-stopped\n depends_on:\n mongo:\n condition: service_started\n redis:\n condition: service_started\n backend:\n condition: service_started\n celery_worker:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-task-service:release-v0.0.2\n environment:\n TZ: Asia/Shanghai\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n CHAT_SERVICE_URL: http://backend:8000\n CHAT_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n command: celery -A app.celery_app worker --loglevel=info\n restart: unless-stopped\n depends_on:\n scheduler_api:\n condition: service_started\n redis:\n condition: service_started\n backend:\n condition: service_started\n celery_beat:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-task-service:release-v0.0.2\n environment:\n TZ: Asia/Shanghai\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n command: celery -A app.celery_app beat --loglevel=info\n restart: unless-stopped\n depends_on:\n scheduler_api:\n condition: service_started\n redis:\n condition: service_started\n frontend:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-frontend:release-v0.0.2\n environment:\n BACKEND_URL: http://backend:8000\n TASK_SERVICE_URL: http://scheduler_api:8001\n VITE_DISPLAY_TIMEZONE: ${DISPLAY_TIMEZONE:-Asia/Shanghai}\n NPM_CONFIG_REGISTRY: https://registry.npmmirror.com\n NPM_CONFIG_CACHE: /npm-cache\n CHOKIDAR_USEPOLLING: 'true'\n CHOKIDAR_INTERVAL: '300'\n TZ: Asia/Shanghai\n ports:\n - 5173:80\n restart: unless-stopped\n depends_on:\n backend:\n condition: service_started\n scheduler_api:\n condition: service_started\nvolumes:\n scienceclaw_mongo_data: null\n scienceclaw_frontend_node_modules: null\n scienceclaw_frontend_npm_cache: null\n"}, "ba61c34bdb4b5036096c609aa6c9b74c5d9e51b1": {"t": 1785761962.7294264, "n": 6782, "h": "e9793f5ab2959eeb", "c": "services:\n sandbox:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-sandbox:release-20260314\n security_opt:\n - seccomp:unconfined\n extra_hosts:\n - host.docker.internal:host-gateway\n shm_size: 2gb\n mem_limit: ${SANDBOX_MEM_LIMIT:-8g}\n cpus: ${SANDBOX_CPUS:-4}\n environment:\n TZ: Asia/Shanghai\n WEBSEARCH_URL: http://websearch:8068\n volumes:\n - ./Skills:/skills:ro\n - ./Tools:/app/Tools:ro\n - ./ScienceClaw/backend/builtin_skills:/builtin-skills:ro\n - ./workspace:/home/scienceclaw\n ports:\n - 18080:8080\n restart: unless-stopped\n healthcheck:\n test:\n - CMD-SHELL\n - curl -fsS http://127.0.0.1:8080/v1/docs >/dev/null || exit 1\n interval: 5s\n timeout: 3s\n retries: 30\n mongo:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-mongo:release-20260314\n environment:\n MONGO_INITDB_ROOT_USERNAME: scienceone\n MONGO_INITDB_ROOT_PASSWORD: Yp51Bi1eEjC77sAt\n ports:\n - 27014:27017\n volumes:\n - scienceclaw_mongo_data:/data/db\n restart: unless-stopped\n searxng:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-searxng:release-20260314\n environment:\n SEARXNG_BASE_URL: http://localhost:8080/\n SEARXNG_LIMITER: 'false'\n TZ: Asia/Shanghai\n volumes:\n - ./ScienceClaw/websearch/config/settings.yml:/etc/searxng/settings.yml\n ports:\n - 8080:8080\n restart: unless-stopped\n websearch:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-websearch:release-20260314\n environment:\n SEARXNG_HOST: searxng\n SEARXNG_PORT: 8080\n API_HOST: 0.0.0.0\n API_PORT: 8068\n TZ: Asia/Shanghai\n API_KEY: fdsfkjikmii\n ports:\n - 8068:8068\n restart: unless-stopped\n depends_on:\n searxng:\n condition: service_started\n backend:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-backend:release-20260314\n volumes:\n - ./Tools:/app/Tools\n - ./Skills:/app/Skills\n - ./workspace:/home/scienceclaw\n environment:\n SANDBOX_REST_URL: http://sandbox:8080\n WORKSPACE_DIR: /home/scienceclaw\n DS_API_KEY: ${API_KEY:-}\n DS_URL: ${API_BASE-https://api.deepseek.com/v1}\n DS_MODEL: ${MODEL_NAME-deepseek-chat}\n TEMPERATURE: ${TEMPERATURE-0.7}\n MAX_TOKENS: ${MAX_TOKENS-2000}\n LOG_LEVEL: ${LOG_LEVEL-INFO}\n FILE_DOWNLOAD_ALLOWED_PREFIXES: /tmp,/app,/home/scienceclaw\n TZ: Asia/Shanghai\n AUTH_PROVIDER: local\n BOOTSTRAP_ADMIN_ENABLED: 'true'\n BOOTSTRAP_ADMIN_USERNAME: admin\n BOOTSTRAP_ADMIN_PASSWORD: admin123\n BOOTSTRAP_ADMIN_FULLNAME: Administrator\n BOOTSTRAP_ADMIN_EMAIL: admin@localhost\n BOOTSTRAP_UPDATE_ADMIN_PASSWORD: 'true'\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n WEBSEARCH_API_KEY: fdsfkjikmii\n WEBSEARCH_BASE_URL: http://websearch:8068\n WEBSEARCH_URL: http://websearch:8068\n TASK_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n IM_ENABLED: 'true'\n IM_RESPONSE_TIMEOUT: 300\n IM_MAX_MESSAGE_LENGTH: 4000\n LARK_ENABLED: 'true'\n LARK_APP_ID: ${LARK_APP_ID-}\n LARK_APP_SECRET: ${LARK_APP_SECRET-}\n ports:\n - 12001:8000\n command: 'python -m uvicorn backend.main:app --host 0.0.0.0 --port 8000 --reload\n --reload-dir /app/backend\n\n '\n restart: unless-stopped\n depends_on:\n sandbox:\n condition: service_started\n mongo:\n condition: service_started\n websearch:\n condition: service_started\n healthcheck:\n test:\n - CMD-SHELL\n - curl -fsS http://127.0.0.1:8000/api/v1/auth/status >/dev/null || exit 1\n interval: 5s\n timeout: 5s\n retries: 30\n redis:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-redis:release-20260314\n restart: unless-stopped\n scheduler_api:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-task-service:release-20260314\n environment:\n TZ: Asia/Shanghai\n DISPLAY_TIMEZONE: ${DISPLAY_TIMEZONE:-Asia/Shanghai}\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n CHAT_SERVICE_URL: http://backend:8000\n CHAT_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n DS_API_KEY: ${API_KEY:-}\n DS_URL: ${API_BASE:-https://api.deepseek.com/v1}\n DS_MODEL: ${MODEL_NAME:-deepseek-chat}\n ports:\n - 12002:8001\n command: uvicorn app.main:app --host 0.0.0.0 --port 8001\n restart: unless-stopped\n depends_on:\n mongo:\n condition: service_started\n redis:\n condition: service_started\n backend:\n condition: service_started\n celery_worker:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-task-service:release-20260314\n environment:\n TZ: Asia/Shanghai\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n CHAT_SERVICE_URL: http://backend:8000\n CHAT_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n command: celery -A app.celery_app worker --loglevel=info\n restart: unless-stopped\n depends_on:\n scheduler_api:\n condition: service_started\n redis:\n condition: service_started\n backend:\n condition: service_started\n celery_beat:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-task-service:release-20260314\n environment:\n TZ: Asia/Shanghai\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n command: celery -A app.celery_app beat --loglevel=info\n restart: unless-stopped\n depends_on:\n scheduler_api:\n condition: service_started\n redis:\n condition: service_started\n frontend:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-frontend:release-20260314\n environment:\n BACKEND_URL: http://backend:8000\n TASK_SERVICE_URL: http://scheduler_api:8001\n VITE_DISPLAY_TIMEZONE: ${DISPLAY_TIMEZONE:-Asia/Shanghai}\n NPM_CONFIG_REGISTRY: https://registry.npmmirror.com\n NPM_CONFIG_CACHE: /npm-cache\n CHOKIDAR_USEPOLLING: 'true'\n CHOKIDAR_INTERVAL: '300'\n TZ: Asia/Shanghai\n ports:\n - 5173:80\n restart: unless-stopped\n depends_on:\n backend:\n condition: service_started\n scheduler_api:\n condition: service_started\nvolumes:\n scienceclaw_mongo_data: null\n scienceclaw_frontend_node_modules: null\n scienceclaw_frontend_npm_cache: null\n"}, "2c657930945a4b5d9e0e6abb7d4b2c7cbb5410c4": {"t": 1785761966.8015263, "n": 6822, "h": "87d391ca5ea79759", "c": "services:\n sandbox:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-sandbox:release-20260314\n security_opt:\n - seccomp:unconfined\n extra_hosts:\n - host.docker.internal:host-gateway\n shm_size: 2gb\n mem_limit: ${SANDBOX_MEM_LIMIT:-8g}\n cpus: ${SANDBOX_CPUS:-4}\n environment:\n TZ: Asia/Shanghai\n WEBSEARCH_URL: http://websearch:8068\n volumes:\n - ./Skills:/skills:ro\n - ./Tools:/app/Tools:ro\n - ./ScienceClaw/backend/builtin_skills:/builtin-skills:ro\n - ./workspace:/home/scienceclaw\n ports:\n - 18080:8080\n restart: unless-stopped\n healthcheck:\n test:\n - CMD-SHELL\n - curl -fsS http://127.0.0.1:8080/v1/docs >/dev/null || exit 1\n interval: 5s\n timeout: 3s\n retries: 30\n mongo:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-mongo:release-20260314\n environment:\n MONGO_INITDB_ROOT_USERNAME: scienceone\n MONGO_INITDB_ROOT_PASSWORD: Yp51Bi1eEjC77sAt\n ports:\n - 27014:27017\n volumes:\n - scienceclaw_mongo_data:/data/db\n restart: unless-stopped\n searxng:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-searxng:release-20260314\n environment:\n SEARXNG_BASE_URL: http://localhost:8080/\n SEARXNG_LIMITER: 'false'\n TZ: Asia/Shanghai\n volumes:\n - ./ScienceClaw/websearch/config/settings.yml:/etc/searxng/settings.yml\n ports:\n - 8080:8080\n restart: unless-stopped\n websearch:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-websearch:release-20260314\n environment:\n SEARXNG_HOST: searxng\n SEARXNG_PORT: 8080\n API_HOST: 0.0.0.0\n API_PORT: 8068\n TZ: Asia/Shanghai\n API_KEY: fdsfkjikmii\n ports:\n - 8068:8068\n restart: unless-stopped\n depends_on:\n searxng:\n condition: service_started\n backend:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-backend:release-20260314\n volumes:\n - ./Tools:/app/Tools\n - ./Skills:/app/Skills\n - ./workspace:/home/scienceclaw\n environment:\n SANDBOX_REST_URL: http://sandbox:8080\n WORKSPACE_DIR: /home/scienceclaw\n DS_API_KEY: ${API_KEY:-}\n DS_URL: ${API_BASE-https://api.deepseek.com/v1}\n DS_MODEL: ${MODEL_NAME-deepseek-chat}\n TEMPERATURE: ${TEMPERATURE-0.7}\n MAX_TOKENS: ${MAX_TOKENS-2000}\n LOG_LEVEL: ${LOG_LEVEL-INFO}\n FILE_DOWNLOAD_ALLOWED_PREFIXES: /tmp,/app,/home/scienceclaw\n TZ: Asia/Shanghai\n AUTH_PROVIDER: local\n BOOTSTRAP_ADMIN_ENABLED: 'true'\n BOOTSTRAP_ADMIN_USERNAME: admin\n BOOTSTRAP_ADMIN_PASSWORD: admin123\n BOOTSTRAP_ADMIN_FULLNAME: Administrator\n BOOTSTRAP_ADMIN_EMAIL: admin@localhost\n BOOTSTRAP_UPDATE_ADMIN_PASSWORD: 'true'\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n WEBSEARCH_API_KEY: fdsfkjikmii\n WEBSEARCH_BASE_URL: http://websearch:8068\n WEBSEARCH_URL: http://websearch:8068\n TASK_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n IM_ENABLED: 'true'\n IM_RESPONSE_TIMEOUT: 300\n IM_MAX_MESSAGE_LENGTH: 4000\n LARK_ENABLED: 'true'\n LARK_APP_ID: ${LARK_APP_ID-}\n LARK_APP_SECRET: ${LARK_APP_SECRET-}\n ports:\n - 12001:8000\n command: 'python -m uvicorn backend.main:app --host 0.0.0.0 --port 8000 --reload\n --reload-dir /app/backend\n\n '\n restart: unless-stopped\n depends_on:\n sandbox:\n condition: service_started\n mongo:\n condition: service_started\n websearch:\n condition: service_started\n healthcheck:\n test:\n - CMD-SHELL\n - curl -fsS http://127.0.0.1:8000/api/v1/auth/status >/dev/null || exit 1\n interval: 5s\n timeout: 5s\n retries: 30\n redis:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-redis:release-20260314\n restart: unless-stopped\n scheduler_api:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-task-service:release-20260314\n environment:\n TZ: Asia/Shanghai\n DISPLAY_TIMEZONE: ${DISPLAY_TIMEZONE:-Asia/Shanghai}\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n CHAT_SERVICE_URL: http://backend:8000\n CHAT_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n DS_API_KEY: ${API_KEY:-}\n DS_URL: ${API_BASE:-https://api.deepseek.com/v1}\n DS_MODEL: ${MODEL_NAME:-deepseek-chat}\n ports:\n - 12002:8001\n command: uvicorn app.main:app --host 0.0.0.0 --port 8001\n restart: unless-stopped\n depends_on:\n mongo:\n condition: service_started\n redis:\n condition: service_started\n backend:\n condition: service_started\n celery_worker:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-task-service:release-20260314\n environment:\n TZ: Asia/Shanghai\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n CHAT_SERVICE_URL: http://backend:8000\n CHAT_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n command: celery -A app.celery_app worker --loglevel=info\n restart: unless-stopped\n depends_on:\n scheduler_api:\n condition: service_started\n redis:\n condition: service_started\n backend:\n condition: service_started\n celery_beat:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-task-service:release-20260314\n environment:\n TZ: Asia/Shanghai\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n command: celery -A app.celery_app beat --loglevel=info\n restart: unless-stopped\n depends_on:\n scheduler_api:\n condition: service_started\n redis:\n condition: service_started\n frontend:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-frontend:release-20260314\n environment:\n BACKEND_URL: http://backend:8000\n TASK_SERVICE_URL: http://scheduler_api:8001\n VITE_DISPLAY_TIMEZONE: ${DISPLAY_TIMEZONE:-Asia/Shanghai}\n NPM_CONFIG_REGISTRY: https://registry.npmmirror.com\n NPM_CONFIG_CACHE: /npm-cache\n CHOKIDAR_USEPOLLING: 'true'\n CHOKIDAR_INTERVAL: '300'\n TZ: Asia/Shanghai\n ports:\n - 5173:80\n restart: unless-stopped\n depends_on:\n backend:\n condition: service_started\n scheduler_api:\n condition: service_started\nvolumes:\n scienceclaw_mongo_data: null\n scienceclaw_frontend_node_modules: null\n scienceclaw_frontend_npm_cache: null\n"}, "1a486c3fdd4d4d00a4c64908bc3ab4020164fd72": {"t": 1785761968.7073505, "n": 6718, "h": "2b6e066f9b96c0f8", "c": "services:\n sandbox:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-sandbox:release-20260313\n security_opt:\n - seccomp:unconfined\n extra_hosts:\n - host.docker.internal:host-gateway\n shm_size: 2gb\n mem_limit: ${SANDBOX_MEM_LIMIT:-8g}\n cpus: ${SANDBOX_CPUS:-4}\n environment:\n TZ: Asia/Shanghai\n WEBSEARCH_URL: http://websearch:8068\n volumes:\n - ./Skills:/skills:ro\n - ./Tools:/app/Tools:ro\n - ./ScienceClaw/backend/builtin_skills:/builtin-skills:ro\n - ./workspace:/home/scienceclaw\n ports:\n - 18080:8080\n restart: unless-stopped\n healthcheck:\n test:\n - CMD-SHELL\n - curl -fsS http://127.0.0.1:8080/v1/docs >/dev/null || exit 1\n interval: 5s\n timeout: 3s\n retries: 30\n mongo:\n image: swr.cn-north-4.myhuaweicloud.com/claw/mongo:latest\n environment:\n MONGO_INITDB_ROOT_USERNAME: scienceone\n MONGO_INITDB_ROOT_PASSWORD: Yp51Bi1eEjC77sAt\n ports:\n - 27014:27017\n volumes:\n - scienceclaw_mongo_data:/data/db\n restart: unless-stopped\n searxng:\n image: swr.cn-north-4.myhuaweicloud.com/claw/searxng:latest\n environment:\n SEARXNG_BASE_URL: http://localhost:8080/\n SEARXNG_LIMITER: 'false'\n TZ: Asia/Shanghai\n volumes:\n - ./ScienceClaw/websearch/config/settings.yml:/etc/searxng/settings.yml\n ports:\n - 8080:8080\n restart: unless-stopped\n websearch:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-websearch:release-20260313\n environment:\n SEARXNG_HOST: searxng\n SEARXNG_PORT: 8080\n API_HOST: 0.0.0.0\n API_PORT: 8068\n TZ: Asia/Shanghai\n API_KEY: fdsfkjikmii\n ports:\n - 8068:8068\n restart: unless-stopped\n depends_on:\n searxng:\n condition: service_started\n backend:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-backend:release-20260313\n volumes:\n - ./Tools:/app/Tools\n - ./Skills:/app/Skills\n - ./workspace:/home/scienceclaw\n environment:\n SANDBOX_REST_URL: http://sandbox:8080\n WORKSPACE_DIR: /home/scienceclaw\n DS_API_KEY: ${API_KEY:-}\n DS_URL: ${API_BASE-https://api.deepseek.com/v1}\n DS_MODEL: ${MODEL_NAME-deepseek-chat}\n TEMPERATURE: ${TEMPERATURE-0.7}\n MAX_TOKENS: ${MAX_TOKENS-2000}\n LOG_LEVEL: ${LOG_LEVEL-INFO}\n FILE_DOWNLOAD_ALLOWED_PREFIXES: /tmp,/app,/home/scienceclaw\n TZ: Asia/Shanghai\n AUTH_PROVIDER: local\n BOOTSTRAP_ADMIN_ENABLED: 'true'\n BOOTSTRAP_ADMIN_USERNAME: admin\n BOOTSTRAP_ADMIN_PASSWORD: admin123\n BOOTSTRAP_ADMIN_FULLNAME: Administrator\n BOOTSTRAP_ADMIN_EMAIL: admin@localhost\n BOOTSTRAP_UPDATE_ADMIN_PASSWORD: 'true'\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n WEBSEARCH_API_KEY: fdsfkjikmii\n WEBSEARCH_BASE_URL: http://websearch:8068\n WEBSEARCH_URL: http://websearch:8068\n TASK_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n IM_ENABLED: 'true'\n IM_RESPONSE_TIMEOUT: 300\n IM_MAX_MESSAGE_LENGTH: 4000\n LARK_ENABLED: 'true'\n LARK_APP_ID: ${LARK_APP_ID-}\n LARK_APP_SECRET: ${LARK_APP_SECRET-}\n ports:\n - 12001:8000\n command: 'python -m uvicorn backend.main:app --host 0.0.0.0 --port 8000 --reload\n --reload-dir /app/backend\n\n '\n restart: unless-stopped\n depends_on:\n sandbox:\n condition: service_started\n mongo:\n condition: service_started\n websearch:\n condition: service_started\n healthcheck:\n test:\n - CMD-SHELL\n - curl -fsS http://127.0.0.1:8000/api/v1/auth/status >/dev/null || exit 1\n interval: 5s\n timeout: 5s\n retries: 30\n redis:\n image: swr.cn-north-4.myhuaweicloud.com/claw/redis:7-alpine\n restart: unless-stopped\n scheduler_api:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-task-service:release-20260313\n environment:\n TZ: Asia/Shanghai\n DISPLAY_TIMEZONE: ${DISPLAY_TIMEZONE:-Asia/Shanghai}\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n CHAT_SERVICE_URL: http://backend:8000\n CHAT_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n DS_API_KEY: ${API_KEY:-}\n DS_URL: ${API_BASE:-https://api.deepseek.com/v1}\n DS_MODEL: ${MODEL_NAME:-deepseek-chat}\n ports:\n - 12002:8001\n command: uvicorn app.main:app --host 0.0.0.0 --port 8001\n restart: unless-stopped\n depends_on:\n mongo:\n condition: service_started\n redis:\n condition: service_started\n backend:\n condition: service_started\n celery_worker:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-task-service:release-20260313\n environment:\n TZ: Asia/Shanghai\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n CHAT_SERVICE_URL: http://backend:8000\n CHAT_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n command: celery -A app.celery_app worker --loglevel=info\n restart: unless-stopped\n depends_on:\n scheduler_api:\n condition: service_started\n redis:\n condition: service_started\n backend:\n condition: service_started\n celery_beat:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-task-service:release-20260313\n environment:\n TZ: Asia/Shanghai\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n command: celery -A app.celery_app beat --loglevel=info\n restart: unless-stopped\n depends_on:\n scheduler_api:\n condition: service_started\n redis:\n condition: service_started\n frontend:\n image: swr.cn-north-4.myhuaweicloud.com/claw/scienceclaw-frontend:release-20260313\n environment:\n BACKEND_URL: http://backend:8000\n TASK_SERVICE_URL: http://scheduler_api:8001\n VITE_DISPLAY_TIMEZONE: ${DISPLAY_TIMEZONE:-Asia/Shanghai}\n NPM_CONFIG_REGISTRY: https://registry.npmmirror.com\n NPM_CONFIG_CACHE: /npm-cache\n CHOKIDAR_USEPOLLING: 'true'\n CHOKIDAR_INTERVAL: '300'\n TZ: Asia/Shanghai\n ports:\n - 5173:80\n restart: unless-stopped\n depends_on:\n backend:\n condition: service_started\n scheduler_api:\n condition: service_started\nvolumes:\n scienceclaw_mongo_data: null\n scienceclaw_frontend_node_modules: null\n scienceclaw_frontend_npm_cache: null\n"}}, "docker-compose-china.yml": {"3817e56a0ce35900a1bfa82f4b09c492f5fbfd4f": {"t": 1785746329.0956225, "n": 7769, "h": "75d8d167ab633128", "c": "# BuildKit 用于 Dockerfile 中 apt/pip/npm 构建缓存,建议先执行: export DOCKER_BUILDKIT=1\nservices:\n sandbox:\n build:\n context: ./ScienceClaw/sandbox\n dockerfile: Dockerfile.china\n image: scienceclaw-sandbox:local\n security_opt:\n - seccomp:unconfined\n extra_hosts:\n - \"host.docker.internal:host-gateway\"\n shm_size: \"2gb\"\n mem_limit: ${SANDBOX_MEM_LIMIT:-8g}\n cpus: ${SANDBOX_CPUS:-4}\n environment:\n TZ: Asia/Shanghai\n WEBSEARCH_URL: http://websearch:8068\n volumes:\n - ./Skills:/skills:ro\n - ./Tools:/app/Tools:ro\n - ./ScienceClaw/backend/builtin_skills:/builtin-skills:ro\n - ./workspace:/home/scienceclaw\n ports:\n - \"18080:8080\"\n restart: unless-stopped\n healthcheck:\n test: [\"CMD-SHELL\", \"curl -fsS http://127.0.0.1:8080/v1/docs >/dev/null || exit 1\"]\n interval: 5s\n timeout: 3s\n retries: 30\n\n mongo:\n image: scienceclaw-mongo:local\n build:\n context: ScienceClaw/mongo\n dockerfile: Dockerfile.china\n environment:\n MONGO_INITDB_ROOT_USERNAME: scienceone\n MONGO_INITDB_ROOT_PASSWORD: Yp51Bi1eEjC77sAt\n ports:\n - \"27014:27017\"\n volumes:\n - scienceclaw_mongo_data:/data/db\n restart: unless-stopped\n\n redis:\n image: scienceclaw-redis:local\n build:\n context: ScienceClaw/redis\n dockerfile: Dockerfile.china\n restart: unless-stopped\n\n # ── SearXNG 搜索引擎(websearch 服务的依赖) ──\n searxng:\n image: scienceclaw-searxng:local\n build:\n context: ScienceClaw/searxng\n dockerfile: Dockerfile.china\n environment:\n SEARXNG_BASE_URL: http://localhost:8080/\n SEARXNG_LIMITER: \"false\"\n TZ: Asia/Shanghai\n volumes:\n - ./ScienceClaw/websearch/config/settings.yml:/etc/searxng/settings.yml\n ports:\n - \"26080:8080\"\n restart: unless-stopped\n\n # ── 网页搜索 + 爬取服务(替代 Tavily) ──\n websearch:\n build:\n context: ./ScienceClaw/websearch\n dockerfile: Dockerfile.china\n image: scienceclaw-websearch:local\n environment:\n SEARXNG_HOST: searxng\n SEARXNG_PORT: 8080\n API_HOST: \"0.0.0.0\"\n API_PORT: 8068\n TZ: Asia/Shanghai\n API_KEY: \"fdsfkjikmii\"\n ports:\n - \"8068:8068\"\n restart: unless-stopped\n depends_on:\n searxng:\n condition: service_started\n\n backend:\n build:\n context: ./ScienceClaw/backend\n dockerfile: Dockerfile.china\n image: scienceclaw-backend:local\n volumes:\n - ./ScienceClaw/backend:/app/backend\n - ./ScienceClaw/backend/builtin_skills:/app/builtin_skills:ro\n - ./Tools:/app/Tools\n - ./Skills:/app/Skills\n - ./workspace:/home/scienceclaw\n environment:\n SANDBOX_REST_URL: http://sandbox:8080\n WORKSPACE_DIR: /home/scienceclaw\n DS_API_KEY: ${API_KEY:-}\n DS_URL: ${API_BASE-https://api.deepseek.com/v1}\n DS_MODEL: ${MODEL_NAME-deepseek-chat}\n TEMPERATURE: ${TEMPERATURE-0.7}\n MAX_TOKENS: ${MAX_TOKENS-2000}\n LOG_LEVEL: ${LOG_LEVEL-INFO}\n FILE_DOWNLOAD_ALLOWED_PREFIXES: /tmp,/app,/home/scienceclaw\n TZ: Asia/Shanghai\n AUTH_PROVIDER: local\n BOOTSTRAP_ADMIN_ENABLED: \"true\"\n BOOTSTRAP_ADMIN_USERNAME: admin\n BOOTSTRAP_ADMIN_PASSWORD: admin123\n BOOTSTRAP_ADMIN_FULLNAME: Administrator\n BOOTSTRAP_ADMIN_EMAIL: admin@localhost\n BOOTSTRAP_UPDATE_ADMIN_PASSWORD: \"true\"\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n TASK_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n WEBSEARCH_API_KEY: \"fdsfkjikmii\"\n # 网页搜索服务地址(Docker 内部通信)\n WEBSEARCH_BASE_URL: http://websearch:8068\n WEBSEARCH_URL: http://websearch:8068\n # 诊断模式:记录每步 LLM 调用的完整上下文,用于质量分析(设为空或删除此行关闭)\n DIAGNOSTIC_MODE: \"1\"\n IM_ENABLED: \"true\"\n IM_RESPONSE_TIMEOUT: 300\n IM_MAX_MESSAGE_LENGTH: 4000\n LARK_ENABLED: \"true\"\n LARK_APP_ID: ${LARK_APP_ID-}\n LARK_APP_SECRET: ${LARK_APP_SECRET-}\n ports:\n - \"12001:8000\"\n command: >\n python -m uvicorn backend.main:app --host 0.0.0.0 --port 8000 --reload --reload-dir /app/backend\n restart: unless-stopped\n depends_on:\n sandbox:\n condition: service_started\n mongo:\n condition: service_started\n websearch:\n condition: service_started\n healthcheck:\n test: [\"CMD-SHELL\", \"curl -fsS http://127.0.0.1:8000/api/v1/auth/status >/dev/null || exit 1\"]\n interval: 5s\n timeout: 5s\n retries: 30\n\n # ── 任务调度服务(Task Service)──\n scheduler_api:\n build:\n context: ScienceClaw/task-service\n dockerfile: Dockerfile.china\n image: scienceclaw-task-service:local\n environment:\n TZ: Asia/Shanghai\n DISPLAY_TIMEZONE: ${DISPLAY_TIMEZONE:-Asia/Shanghai}\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n CHAT_SERVICE_URL: http://backend:8000\n CHAT_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n DS_API_KEY: ${API_KEY:-}\n DS_URL: ${API_BASE:-https://api.deepseek.com/v1}\n DS_MODEL: ${MODEL_NAME:-deepseek-chat}\n ports:\n - \"12002:8001\"\n command: uvicorn app.main:app --host 0.0.0.0 --port 8001\n restart: unless-stopped\n depends_on:\n mongo:\n condition: service_started\n redis:\n condition: service_started\n backend:\n condition: service_started\n\n celery_worker:\n image: scienceclaw-task-service:local\n pull_policy: never\n environment:\n TZ: Asia/Shanghai\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n CHAT_SERVICE_URL: http://backend:8000\n CHAT_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n command: celery -A app.celery_app worker --loglevel=info\n restart: unless-stopped\n depends_on:\n scheduler_api:\n condition: service_started\n redis:\n condition: service_started\n backend:\n condition: service_started\n\n celery_beat:\n image: scienceclaw-task-service:local\n pull_policy: never\n environment:\n TZ: Asia/Shanghai\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n command: celery -A app.celery_app beat --loglevel=info\n restart: unless-stopped\n depends_on:\n scheduler_api:\n condition: service_started\n redis:\n condition: service_started\n\n frontend:\n image: swr.cn-north-4.myhuaweicloud.com/claw/node:20-bookworm-slim\n working_dir: /app\n environment:\n BACKEND_URL: http://backend:8000\n # 定时任务服务:Vite 代理 /task-service 时转发到该地址(容器内使用服务名)\n TASK_SERVICE_URL: http://scheduler_api:8001\n # 任务执行时间展示时区,默认北京时间(与 DISPLAY_TIMEZONE 一致)\n VITE_DISPLAY_TIMEZONE: ${DISPLAY_TIMEZONE:-Asia/Shanghai}\n NPM_CONFIG_REGISTRY: https://registry.npmmirror.com\n NPM_CONFIG_CACHE: /npm-cache\n CHOKIDAR_USEPOLLING: \"true\"\n CHOKIDAR_INTERVAL: \"300\"\n TZ: Asia/Shanghai\n volumes:\n - ./ScienceClaw/frontend:/app\n - scienceclaw_frontend_node_modules:/app/node_modules\n - scienceclaw_frontend_npm_cache:/npm-cache\n ports:\n - \"5173:5173\"\n command: >\n sh -lc \"npm install --no-fund --no-audit && npm run dev -- --host 0.0.0.0 --port 5173\"\n restart: unless-stopped\n depends_on:\n backend:\n condition: service_started\n scheduler_api:\n condition: service_started\n\nvolumes:\n scienceclaw_mongo_data:\n scienceclaw_frontend_node_modules:\n scienceclaw_frontend_npm_cache:\n"}, "868f5c9537dad212e24fde615a2cd56e18efc0b8": {"t": 1785761953.840246, "n": 7769, "h": "75d8d167ab633128", "c": "# BuildKit 用于 Dockerfile 中 apt/pip/npm 构建缓存,建议先执行: export DOCKER_BUILDKIT=1\nservices:\n sandbox:\n build:\n context: ./ScienceClaw/sandbox\n dockerfile: Dockerfile.china\n image: scienceclaw-sandbox:local\n security_opt:\n - seccomp:unconfined\n extra_hosts:\n - \"host.docker.internal:host-gateway\"\n shm_size: \"2gb\"\n mem_limit: ${SANDBOX_MEM_LIMIT:-8g}\n cpus: ${SANDBOX_CPUS:-4}\n environment:\n TZ: Asia/Shanghai\n WEBSEARCH_URL: http://websearch:8068\n volumes:\n - ./Skills:/skills:ro\n - ./Tools:/app/Tools:ro\n - ./ScienceClaw/backend/builtin_skills:/builtin-skills:ro\n - ./workspace:/home/scienceclaw\n ports:\n - \"18080:8080\"\n restart: unless-stopped\n healthcheck:\n test: [\"CMD-SHELL\", \"curl -fsS http://127.0.0.1:8080/v1/docs >/dev/null || exit 1\"]\n interval: 5s\n timeout: 3s\n retries: 30\n\n mongo:\n image: scienceclaw-mongo:local\n build:\n context: ScienceClaw/mongo\n dockerfile: Dockerfile.china\n environment:\n MONGO_INITDB_ROOT_USERNAME: scienceone\n MONGO_INITDB_ROOT_PASSWORD: Yp51Bi1eEjC77sAt\n ports:\n - \"27014:27017\"\n volumes:\n - scienceclaw_mongo_data:/data/db\n restart: unless-stopped\n\n redis:\n image: scienceclaw-redis:local\n build:\n context: ScienceClaw/redis\n dockerfile: Dockerfile.china\n restart: unless-stopped\n\n # ── SearXNG 搜索引擎(websearch 服务的依赖) ──\n searxng:\n image: scienceclaw-searxng:local\n build:\n context: ScienceClaw/searxng\n dockerfile: Dockerfile.china\n environment:\n SEARXNG_BASE_URL: http://localhost:8080/\n SEARXNG_LIMITER: \"false\"\n TZ: Asia/Shanghai\n volumes:\n - ./ScienceClaw/websearch/config/settings.yml:/etc/searxng/settings.yml\n ports:\n - \"26080:8080\"\n restart: unless-stopped\n\n # ── 网页搜索 + 爬取服务(替代 Tavily) ──\n websearch:\n build:\n context: ./ScienceClaw/websearch\n dockerfile: Dockerfile.china\n image: scienceclaw-websearch:local\n environment:\n SEARXNG_HOST: searxng\n SEARXNG_PORT: 8080\n API_HOST: \"0.0.0.0\"\n API_PORT: 8068\n TZ: Asia/Shanghai\n API_KEY: \"fdsfkjikmii\"\n ports:\n - \"8068:8068\"\n restart: unless-stopped\n depends_on:\n searxng:\n condition: service_started\n\n backend:\n build:\n context: ./ScienceClaw/backend\n dockerfile: Dockerfile.china\n image: scienceclaw-backend:local\n volumes:\n - ./ScienceClaw/backend:/app/backend\n - ./ScienceClaw/backend/builtin_skills:/app/builtin_skills:ro\n - ./Tools:/app/Tools\n - ./Skills:/app/Skills\n - ./workspace:/home/scienceclaw\n environment:\n SANDBOX_REST_URL: http://sandbox:8080\n WORKSPACE_DIR: /home/scienceclaw\n DS_API_KEY: ${API_KEY:-}\n DS_URL: ${API_BASE-https://api.deepseek.com/v1}\n DS_MODEL: ${MODEL_NAME-deepseek-chat}\n TEMPERATURE: ${TEMPERATURE-0.7}\n MAX_TOKENS: ${MAX_TOKENS-2000}\n LOG_LEVEL: ${LOG_LEVEL-INFO}\n FILE_DOWNLOAD_ALLOWED_PREFIXES: /tmp,/app,/home/scienceclaw\n TZ: Asia/Shanghai\n AUTH_PROVIDER: local\n BOOTSTRAP_ADMIN_ENABLED: \"true\"\n BOOTSTRAP_ADMIN_USERNAME: admin\n BOOTSTRAP_ADMIN_PASSWORD: admin123\n BOOTSTRAP_ADMIN_FULLNAME: Administrator\n BOOTSTRAP_ADMIN_EMAIL: admin@localhost\n BOOTSTRAP_UPDATE_ADMIN_PASSWORD: \"true\"\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n TASK_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n WEBSEARCH_API_KEY: \"fdsfkjikmii\"\n # 网页搜索服务地址(Docker 内部通信)\n WEBSEARCH_BASE_URL: http://websearch:8068\n WEBSEARCH_URL: http://websearch:8068\n # 诊断模式:记录每步 LLM 调用的完整上下文,用于质量分析(设为空或删除此行关闭)\n DIAGNOSTIC_MODE: \"1\"\n IM_ENABLED: \"true\"\n IM_RESPONSE_TIMEOUT: 300\n IM_MAX_MESSAGE_LENGTH: 4000\n LARK_ENABLED: \"true\"\n LARK_APP_ID: ${LARK_APP_ID-}\n LARK_APP_SECRET: ${LARK_APP_SECRET-}\n ports:\n - \"12001:8000\"\n command: >\n python -m uvicorn backend.main:app --host 0.0.0.0 --port 8000 --reload --reload-dir /app/backend\n restart: unless-stopped\n depends_on:\n sandbox:\n condition: service_started\n mongo:\n condition: service_started\n websearch:\n condition: service_started\n healthcheck:\n test: [\"CMD-SHELL\", \"curl -fsS http://127.0.0.1:8000/api/v1/auth/status >/dev/null || exit 1\"]\n interval: 5s\n timeout: 5s\n retries: 30\n\n # ── 任务调度服务(Task Service)──\n scheduler_api:\n build:\n context: ScienceClaw/task-service\n dockerfile: Dockerfile.china\n image: scienceclaw-task-service:local\n environment:\n TZ: Asia/Shanghai\n DISPLAY_TIMEZONE: ${DISPLAY_TIMEZONE:-Asia/Shanghai}\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n CHAT_SERVICE_URL: http://backend:8000\n CHAT_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n DS_API_KEY: ${API_KEY:-}\n DS_URL: ${API_BASE:-https://api.deepseek.com/v1}\n DS_MODEL: ${MODEL_NAME:-deepseek-chat}\n ports:\n - \"12002:8001\"\n command: uvicorn app.main:app --host 0.0.0.0 --port 8001\n restart: unless-stopped\n depends_on:\n mongo:\n condition: service_started\n redis:\n condition: service_started\n backend:\n condition: service_started\n\n celery_worker:\n image: scienceclaw-task-service:local\n pull_policy: never\n environment:\n TZ: Asia/Shanghai\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n CHAT_SERVICE_URL: http://backend:8000\n CHAT_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n command: celery -A app.celery_app worker --loglevel=info\n restart: unless-stopped\n depends_on:\n scheduler_api:\n condition: service_started\n redis:\n condition: service_started\n backend:\n condition: service_started\n\n celery_beat:\n image: scienceclaw-task-service:local\n pull_policy: never\n environment:\n TZ: Asia/Shanghai\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n command: celery -A app.celery_app beat --loglevel=info\n restart: unless-stopped\n depends_on:\n scheduler_api:\n condition: service_started\n redis:\n condition: service_started\n\n frontend:\n image: swr.cn-north-4.myhuaweicloud.com/claw/node:20-bookworm-slim\n working_dir: /app\n environment:\n BACKEND_URL: http://backend:8000\n # 定时任务服务:Vite 代理 /task-service 时转发到该地址(容器内使用服务名)\n TASK_SERVICE_URL: http://scheduler_api:8001\n # 任务执行时间展示时区,默认北京时间(与 DISPLAY_TIMEZONE 一致)\n VITE_DISPLAY_TIMEZONE: ${DISPLAY_TIMEZONE:-Asia/Shanghai}\n NPM_CONFIG_REGISTRY: https://registry.npmmirror.com\n NPM_CONFIG_CACHE: /npm-cache\n CHOKIDAR_USEPOLLING: \"true\"\n CHOKIDAR_INTERVAL: \"300\"\n TZ: Asia/Shanghai\n volumes:\n - ./ScienceClaw/frontend:/app\n - scienceclaw_frontend_node_modules:/app/node_modules\n - scienceclaw_frontend_npm_cache:/npm-cache\n ports:\n - \"5173:5173\"\n command: >\n sh -lc \"npm install --no-fund --no-audit && npm run dev -- --host 0.0.0.0 --port 5173\"\n restart: unless-stopped\n depends_on:\n backend:\n condition: service_started\n scheduler_api:\n condition: service_started\n\nvolumes:\n scienceclaw_mongo_data:\n scienceclaw_frontend_node_modules:\n scienceclaw_frontend_npm_cache:\n"}, "6c3f7f3f6f66673d8fbcced2e45ffcff1fe52011": {"t": 1785761955.1132648, "n": 7433, "h": "f92d885bdf76f792", "c": "# BuildKit 用于 Dockerfile 中 apt/pip/npm 构建缓存,建议先执行: export DOCKER_BUILDKIT=1\nservices:\n sandbox:\n build:\n context: ./ScienceClaw/sandbox\n dockerfile: Dockerfile.china\n image: scienceclaw-sandbox:local\n security_opt:\n - seccomp:unconfined\n extra_hosts:\n - \"host.docker.internal:host-gateway\"\n shm_size: \"2gb\"\n mem_limit: ${SANDBOX_MEM_LIMIT:-8g}\n cpus: ${SANDBOX_CPUS:-4}\n environment:\n TZ: Asia/Shanghai\n WEBSEARCH_URL: http://websearch:8068\n volumes:\n - ./Skills:/skills:ro\n - ./Tools:/app/Tools:ro\n - ./ScienceClaw/backend/builtin_skills:/builtin-skills:ro\n - ./workspace:/home/scienceclaw\n ports:\n - \"18080:8080\"\n restart: unless-stopped\n healthcheck:\n test: [\"CMD-SHELL\", \"curl -fsS http://127.0.0.1:8080/v1/docs >/dev/null || exit 1\"]\n interval: 5s\n timeout: 3s\n retries: 30\n\n mongo:\n image: swr.cn-north-4.myhuaweicloud.com/zdtc-rd/mongo:latest\n environment:\n MONGO_INITDB_ROOT_USERNAME: scienceone\n MONGO_INITDB_ROOT_PASSWORD: Yp51Bi1eEjC77sAt\n ports:\n - \"27014:27017\"\n volumes:\n - scienceclaw_mongo_data:/data/db\n restart: unless-stopped\n\n # ── SearXNG 搜索引擎(websearch 服务的依赖) ──\n searxng:\n image: swr.cn-north-4.myhuaweicloud.com/zdtc-rd/searxng:latest\n environment:\n SEARXNG_BASE_URL: http://localhost:8080/\n SEARXNG_LIMITER: \"false\"\n TZ: Asia/Shanghai\n volumes:\n - ./ScienceClaw/websearch/config/settings.yml:/etc/searxng/settings.yml\n ports:\n - \"26080:8080\"\n restart: unless-stopped\n\n # ── 网页搜索 + 爬取服务(替代 Tavily) ──\n websearch:\n build:\n context: ./ScienceClaw/websearch\n dockerfile: Dockerfile.china\n image: scienceclaw-websearch:local\n environment:\n SEARXNG_HOST: searxng\n SEARXNG_PORT: 8080\n API_HOST: \"0.0.0.0\"\n API_PORT: 8068\n TZ: Asia/Shanghai\n API_KEY: \"fdsfkjikmii\"\n ports:\n - \"8068:8068\"\n restart: unless-stopped\n depends_on:\n searxng:\n condition: service_started\n\n backend:\n build:\n context: ./ScienceClaw/backend\n dockerfile: Dockerfile.china\n image: scienceclaw-backend:local\n volumes:\n - ./ScienceClaw/backend:/app/backend\n - ./ScienceClaw/backend/builtin_skills:/app/builtin_skills:ro\n - ./Tools:/app/Tools\n - ./Skills:/app/Skills\n - ./workspace:/home/scienceclaw\n environment:\n SANDBOX_REST_URL: http://sandbox:8080\n WORKSPACE_DIR: /home/scienceclaw\n DS_API_KEY: ${API_KEY:-}\n DS_URL: ${API_BASE-https://api.deepseek.com/v1}\n DS_MODEL: ${MODEL_NAME-deepseek-chat}\n TEMPERATURE: ${TEMPERATURE-0.7}\n MAX_TOKENS: ${MAX_TOKENS-2000}\n LOG_LEVEL: ${LOG_LEVEL-INFO}\n FILE_DOWNLOAD_ALLOWED_PREFIXES: /tmp,/app,/home/scienceclaw\n TZ: Asia/Shanghai\n AUTH_PROVIDER: local\n BOOTSTRAP_ADMIN_ENABLED: \"true\"\n BOOTSTRAP_ADMIN_USERNAME: admin\n BOOTSTRAP_ADMIN_PASSWORD: admin123\n BOOTSTRAP_ADMIN_FULLNAME: Administrator\n BOOTSTRAP_ADMIN_EMAIL: admin@localhost\n BOOTSTRAP_UPDATE_ADMIN_PASSWORD: \"true\"\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n WEBSEARCH_API_KEY: \"fdsfkjikmii\"\n # 网页搜索服务地址(Docker 内部通信)\n WEBSEARCH_BASE_URL: http://websearch:8068\n WEBSEARCH_URL: http://websearch:8068\n TASK_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n IM_ENABLED: \"true\"\n IM_RESPONSE_TIMEOUT: 300\n IM_MAX_MESSAGE_LENGTH: 4000\n LARK_ENABLED: \"true\"\n LARK_APP_ID: ${LARK_APP_ID-}\n LARK_APP_SECRET: ${LARK_APP_SECRET-}\n ports:\n - \"12001:8000\"\n command: >\n python -m uvicorn backend.main:app --host 0.0.0.0 --port 8000 --reload --reload-dir /app/backend\n restart: unless-stopped\n depends_on:\n sandbox:\n condition: service_started\n mongo:\n condition: service_started\n websearch:\n condition: service_started\n healthcheck:\n test: [\"CMD-SHELL\", \"curl -fsS http://127.0.0.1:8000/api/v1/auth/status >/dev/null || exit 1\"]\n interval: 5s\n timeout: 5s\n retries: 30\n\n redis:\n image: swr.cn-north-4.myhuaweicloud.com/zdtc-rd/redis:7-alpine\n restart: unless-stopped\n\n # ── 任务调度服务(Task Service)──\n scheduler_api:\n build:\n context: ScienceClaw/task-service\n dockerfile: Dockerfile\n image: scienceclaw-task-service:local\n environment:\n TZ: Asia/Shanghai\n DISPLAY_TIMEZONE: ${DISPLAY_TIMEZONE:-Asia/Shanghai}\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n CHAT_SERVICE_URL: http://backend:8000\n CHAT_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n DS_API_KEY: ${API_KEY:-}\n DS_URL: ${API_BASE:-https://api.deepseek.com/v1}\n DS_MODEL: ${MODEL_NAME:-deepseek-chat}\n ports:\n - \"12002:8001\"\n command: uvicorn app.main:app --host 0.0.0.0 --port 8001\n restart: unless-stopped\n depends_on:\n mongo:\n condition: service_started\n redis:\n condition: service_started\n backend:\n condition: service_started\n\n celery_worker:\n image: scienceclaw-task-service:local\n pull_policy: never\n environment:\n TZ: Asia/Shanghai\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n CHAT_SERVICE_URL: http://backend:8000\n CHAT_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n command: celery -A app.celery_app worker --loglevel=info\n restart: unless-stopped\n depends_on:\n scheduler_api:\n condition: service_started\n redis:\n condition: service_started\n backend:\n condition: service_started\n\n celery_beat:\n image: scienceclaw-task-service:local\n pull_policy: never\n environment:\n TZ: Asia/Shanghai\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n command: celery -A app.celery_app beat --loglevel=info\n restart: unless-stopped\n depends_on:\n scheduler_api:\n condition: service_started\n redis:\n condition: service_started\n\n frontend:\n image: swr.cn-north-4.myhuaweicloud.com/zdtc-rd/node:20-bookworm-slim\n working_dir: /app\n environment:\n BACKEND_URL: http://backend:8000\n TASK_SERVICE_URL: http://scheduler_api:8001\n VITE_DISPLAY_TIMEZONE: ${DISPLAY_TIMEZONE:-Asia/Shanghai}\n NPM_CONFIG_REGISTRY: https://registry.npmmirror.com\n NPM_CONFIG_CACHE: /npm-cache\n CHOKIDAR_USEPOLLING: \"true\"\n CHOKIDAR_INTERVAL: \"300\"\n TZ: Asia/Shanghai\n volumes:\n - ./ScienceClaw/frontend:/app\n - scienceclaw_frontend_node_modules:/app/node_modules\n - scienceclaw_frontend_npm_cache:/npm-cache\n ports:\n - \"5173:5173\"\n command: >\n sh -lc \"npm ci --no-fund --no-audit && npm run dev -- --host 0.0.0.0 --port 5173\"\n restart: unless-stopped\n depends_on:\n backend:\n condition: service_started\n scheduler_api:\n condition: service_started\n\nvolumes:\n scienceclaw_mongo_data:\n scienceclaw_frontend_node_modules:\n scienceclaw_frontend_npm_cache:\n"}, "950415e7b043d41c6635a4f5e91191d7202720e6": {"t": 1785761956.929453, "n": 7432, "h": "51c4e4c492b7ff89", "c": "# BuildKit 用于 Dockerfile 中 apt/pip/npm 构建缓存,建议先执行: export DOCKER_BUILDKIT=1\nservices:\n sandbox:\n build:\n context: ./ScienceClaw/sandbox\n dockerfile: Dockerfile.china\n image: scienceclaw-sandbox:local\n security_opt:\n - seccomp:unconfined\n extra_hosts:\n - \"host.docker.internal:host-gateway\"\n shm_size: \"2gb\"\n mem_limit: ${SANDBOX_MEM_LIMIT:-8g}\n cpus: ${SANDBOX_CPUS:-4}\n environment:\n TZ: Asia/Shanghai\n WEBSEARCH_URL: http://websearch:8068\n volumes:\n - ./Skills:/skills:ro\n - ./Tools:/app/Tools:ro\n - ./ScienceClaw/backend/builtin_skills:/builtin-skills:ro\n - ./workspace:/home/scienceclaw\n ports:\n - \"18080:8080\"\n restart: unless-stopped\n healthcheck:\n test: [\"CMD-SHELL\", \"curl -fsS http://127.0.0.1:8080/v1/docs >/dev/null || exit 1\"]\n interval: 5s\n timeout: 3s\n retries: 30\n\n mongo:\n image: swr.cn-north-4.myhuaweicloud.com/zdtc-rd/mongo:latest\n environment:\n MONGO_INITDB_ROOT_USERNAME: scienceone\n MONGO_INITDB_ROOT_PASSWORD: Yp51Bi1eEjC77sAt\n ports:\n - \"27014:27017\"\n volumes:\n - scienceclaw_mongo_data:/data/db\n restart: unless-stopped\n\n # ── SearXNG 搜索引擎(websearch 服务的依赖) ──\n searxng:\n image: swr.cn-north-4.myhuaweicloud.com/zdtc-rd/searxng:latest\n environment:\n SEARXNG_BASE_URL: http://localhost:8080/\n SEARXNG_LIMITER: \"false\"\n TZ: Asia/Shanghai\n volumes:\n - ./ScienceClaw/websearch/config/settings.yml:/etc/searxng/settings.yml\n ports:\n - \"8080:8080\"\n restart: unless-stopped\n\n # ── 网页搜索 + 爬取服务(替代 Tavily) ──\n websearch:\n build:\n context: ./ScienceClaw/websearch\n dockerfile: Dockerfile.china\n image: scienceclaw-websearch:local\n environment:\n SEARXNG_HOST: searxng\n SEARXNG_PORT: 8080\n API_HOST: \"0.0.0.0\"\n API_PORT: 8068\n TZ: Asia/Shanghai\n API_KEY: \"fdsfkjikmii\"\n ports:\n - \"8068:8068\"\n restart: unless-stopped\n depends_on:\n searxng:\n condition: service_started\n\n backend:\n build:\n context: ./ScienceClaw/backend\n dockerfile: Dockerfile.china\n image: scienceclaw-backend:local\n volumes:\n - ./ScienceClaw/backend:/app/backend\n - ./ScienceClaw/backend/builtin_skills:/app/builtin_skills:ro\n - ./Tools:/app/Tools\n - ./Skills:/app/Skills\n - ./workspace:/home/scienceclaw\n environment:\n SANDBOX_REST_URL: http://sandbox:8080\n WORKSPACE_DIR: /home/scienceclaw\n DS_API_KEY: ${API_KEY:-}\n DS_URL: ${API_BASE-https://api.deepseek.com/v1}\n DS_MODEL: ${MODEL_NAME-deepseek-chat}\n TEMPERATURE: ${TEMPERATURE-0.7}\n MAX_TOKENS: ${MAX_TOKENS-2000}\n LOG_LEVEL: ${LOG_LEVEL-INFO}\n FILE_DOWNLOAD_ALLOWED_PREFIXES: /tmp,/app,/home/scienceclaw\n TZ: Asia/Shanghai\n AUTH_PROVIDER: local\n BOOTSTRAP_ADMIN_ENABLED: \"true\"\n BOOTSTRAP_ADMIN_USERNAME: admin\n BOOTSTRAP_ADMIN_PASSWORD: admin123\n BOOTSTRAP_ADMIN_FULLNAME: Administrator\n BOOTSTRAP_ADMIN_EMAIL: admin@localhost\n BOOTSTRAP_UPDATE_ADMIN_PASSWORD: \"true\"\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n WEBSEARCH_API_KEY: \"fdsfkjikmii\"\n # 网页搜索服务地址(Docker 内部通信)\n WEBSEARCH_BASE_URL: http://websearch:8068\n WEBSEARCH_URL: http://websearch:8068\n TASK_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n IM_ENABLED: \"true\"\n IM_RESPONSE_TIMEOUT: 300\n IM_MAX_MESSAGE_LENGTH: 4000\n LARK_ENABLED: \"true\"\n LARK_APP_ID: ${LARK_APP_ID-}\n LARK_APP_SECRET: ${LARK_APP_SECRET-}\n ports:\n - \"12001:8000\"\n command: >\n python -m uvicorn backend.main:app --host 0.0.0.0 --port 8000 --reload --reload-dir /app/backend\n restart: unless-stopped\n depends_on:\n sandbox:\n condition: service_started\n mongo:\n condition: service_started\n websearch:\n condition: service_started\n healthcheck:\n test: [\"CMD-SHELL\", \"curl -fsS http://127.0.0.1:8000/api/v1/auth/status >/dev/null || exit 1\"]\n interval: 5s\n timeout: 5s\n retries: 30\n\n redis:\n image: swr.cn-north-4.myhuaweicloud.com/zdtc-rd/redis:7-alpine\n restart: unless-stopped\n\n # ── 任务调度服务(Task Service)──\n scheduler_api:\n build:\n context: ScienceClaw/task-service\n dockerfile: Dockerfile\n image: scienceclaw-task-service:local\n environment:\n TZ: Asia/Shanghai\n DISPLAY_TIMEZONE: ${DISPLAY_TIMEZONE:-Asia/Shanghai}\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n CHAT_SERVICE_URL: http://backend:8000\n CHAT_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n DS_API_KEY: ${API_KEY:-}\n DS_URL: ${API_BASE:-https://api.deepseek.com/v1}\n DS_MODEL: ${MODEL_NAME:-deepseek-chat}\n ports:\n - \"12002:8001\"\n command: uvicorn app.main:app --host 0.0.0.0 --port 8001\n restart: unless-stopped\n depends_on:\n mongo:\n condition: service_started\n redis:\n condition: service_started\n backend:\n condition: service_started\n\n celery_worker:\n image: scienceclaw-task-service:local\n pull_policy: never\n environment:\n TZ: Asia/Shanghai\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n CHAT_SERVICE_URL: http://backend:8000\n CHAT_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n command: celery -A app.celery_app worker --loglevel=info\n restart: unless-stopped\n depends_on:\n scheduler_api:\n condition: service_started\n redis:\n condition: service_started\n backend:\n condition: service_started\n\n celery_beat:\n image: scienceclaw-task-service:local\n pull_policy: never\n environment:\n TZ: Asia/Shanghai\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n command: celery -A app.celery_app beat --loglevel=info\n restart: unless-stopped\n depends_on:\n scheduler_api:\n condition: service_started\n redis:\n condition: service_started\n\n frontend:\n image: swr.cn-north-4.myhuaweicloud.com/zdtc-rd/node:20-bookworm-slim\n working_dir: /app\n environment:\n BACKEND_URL: http://backend:8000\n TASK_SERVICE_URL: http://scheduler_api:8001\n VITE_DISPLAY_TIMEZONE: ${DISPLAY_TIMEZONE:-Asia/Shanghai}\n NPM_CONFIG_REGISTRY: https://registry.npmmirror.com\n NPM_CONFIG_CACHE: /npm-cache\n CHOKIDAR_USEPOLLING: \"true\"\n CHOKIDAR_INTERVAL: \"300\"\n TZ: Asia/Shanghai\n volumes:\n - ./ScienceClaw/frontend:/app\n - scienceclaw_frontend_node_modules:/app/node_modules\n - scienceclaw_frontend_npm_cache:/npm-cache\n ports:\n - \"5173:5173\"\n command: >\n sh -lc \"npm ci --no-fund --no-audit && npm run dev -- --host 0.0.0.0 --port 5173\"\n restart: unless-stopped\n depends_on:\n backend:\n condition: service_started\n scheduler_api:\n condition: service_started\n\nvolumes:\n scienceclaw_mongo_data:\n scienceclaw_frontend_node_modules:\n scienceclaw_frontend_npm_cache:\n"}, "1a486c3fdd4d4d00a4c64908bc3ab4020164fd72": {"t": 1785761983.1003947, "n": 7356, "h": "15552274bfd28242", "c": "services:\n sandbox:\n build:\n context: .\n dockerfile: ScienceClaw/sandbox/Dockerfile.china\n image: scienceclaw-sandbox:local\n security_opt:\n - seccomp:unconfined\n extra_hosts:\n - \"host.docker.internal:host-gateway\"\n shm_size: \"2gb\"\n mem_limit: ${SANDBOX_MEM_LIMIT:-8g}\n cpus: ${SANDBOX_CPUS:-4}\n environment:\n TZ: Asia/Shanghai\n WEBSEARCH_URL: http://websearch:8068\n volumes:\n - ./Skills:/skills:ro\n - ./Tools:/app/Tools:ro\n - ./ScienceClaw/backend/builtin_skills:/builtin-skills:ro\n - ./workspace:/home/scienceclaw\n ports:\n - \"18080:8080\"\n restart: unless-stopped\n healthcheck:\n test: [\"CMD-SHELL\", \"curl -fsS http://127.0.0.1:8080/v1/docs >/dev/null || exit 1\"]\n interval: 5s\n timeout: 3s\n retries: 30\n\n mongo:\n image: swr.cn-north-4.myhuaweicloud.com/zdtc-rd/mongo:latest\n environment:\n MONGO_INITDB_ROOT_USERNAME: scienceone\n MONGO_INITDB_ROOT_PASSWORD: Yp51Bi1eEjC77sAt\n ports:\n - \"27014:27017\"\n volumes:\n - scienceclaw_mongo_data:/data/db\n restart: unless-stopped\n\n # ── SearXNG 搜索引擎(websearch 服务的依赖) ──\n searxng:\n image: swr.cn-north-4.myhuaweicloud.com/zdtc-rd/searxng:latest\n environment:\n SEARXNG_BASE_URL: http://localhost:8080/\n SEARXNG_LIMITER: \"false\"\n TZ: Asia/Shanghai\n volumes:\n - ./ScienceClaw/websearch/config/settings.yml:/etc/searxng/settings.yml\n ports:\n - \"8080:8080\"\n restart: unless-stopped\n\n # ── 网页搜索 + 爬取服务(替代 Tavily) ──\n websearch:\n build:\n context: ./ScienceClaw/websearch\n dockerfile: Dockerfile.china\n image: scienceclaw-websearch:local\n environment:\n SEARXNG_HOST: searxng\n SEARXNG_PORT: 8080\n API_HOST: \"0.0.0.0\"\n API_PORT: 8068\n TZ: Asia/Shanghai\n API_KEY: \"fdsfkjikmii\"\n ports:\n - \"8068:8068\"\n restart: unless-stopped\n depends_on:\n searxng:\n condition: service_started\n\n backend:\n build:\n context: .\n dockerfile: ScienceClaw/backend/Dockerfile.china\n image: scienceclaw-backend:local\n volumes:\n - ./ScienceClaw/backend:/app/backend\n - ./ScienceClaw/backend/builtin_skills:/app/builtin_skills:ro\n - ./Tools:/app/Tools\n - ./Skills:/app/Skills\n - ./workspace:/home/scienceclaw\n environment:\n SANDBOX_REST_URL: http://sandbox:8080\n WORKSPACE_DIR: /home/scienceclaw\n DS_API_KEY: ${API_KEY:-}\n DS_URL: ${API_BASE-https://api.deepseek.com/v1}\n DS_MODEL: ${MODEL_NAME-deepseek-chat}\n TEMPERATURE: ${TEMPERATURE-0.7}\n MAX_TOKENS: ${MAX_TOKENS-2000}\n LOG_LEVEL: ${LOG_LEVEL-INFO}\n FILE_DOWNLOAD_ALLOWED_PREFIXES: /tmp,/app,/home/scienceclaw\n TZ: Asia/Shanghai\n AUTH_PROVIDER: local\n BOOTSTRAP_ADMIN_ENABLED: \"true\"\n BOOTSTRAP_ADMIN_USERNAME: admin\n BOOTSTRAP_ADMIN_PASSWORD: admin123\n BOOTSTRAP_ADMIN_FULLNAME: Administrator\n BOOTSTRAP_ADMIN_EMAIL: admin@localhost\n BOOTSTRAP_UPDATE_ADMIN_PASSWORD: \"true\"\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n WEBSEARCH_API_KEY: \"fdsfkjikmii\"\n # 网页搜索服务地址(Docker 内部通信)\n WEBSEARCH_BASE_URL: http://websearch:8068\n WEBSEARCH_URL: http://websearch:8068\n TASK_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n IM_ENABLED: \"true\"\n IM_RESPONSE_TIMEOUT: 300\n IM_MAX_MESSAGE_LENGTH: 4000\n LARK_ENABLED: \"true\"\n LARK_APP_ID: ${LARK_APP_ID-}\n LARK_APP_SECRET: ${LARK_APP_SECRET-}\n ports:\n - \"12001:8000\"\n command: >\n python -m uvicorn backend.main:app --host 0.0.0.0 --port 8000 --reload --reload-dir /app/backend\n restart: unless-stopped\n depends_on:\n sandbox:\n condition: service_started\n mongo:\n condition: service_started\n websearch:\n condition: service_started\n healthcheck:\n test: [\"CMD-SHELL\", \"curl -fsS http://127.0.0.1:8000/api/v1/auth/status >/dev/null || exit 1\"]\n interval: 5s\n timeout: 5s\n retries: 30\n\n redis:\n image: swr.cn-north-4.myhuaweicloud.com/zdtc-rd/redis:7-alpine\n restart: unless-stopped\n\n # ── 任务调度服务(Task Service)──\n scheduler_api:\n build:\n context: ScienceClaw/task-service\n dockerfile: Dockerfile\n image: scienceclaw-task-service:local\n environment:\n TZ: Asia/Shanghai\n DISPLAY_TIMEZONE: ${DISPLAY_TIMEZONE:-Asia/Shanghai}\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n CHAT_SERVICE_URL: http://backend:8000\n CHAT_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n DS_API_KEY: ${API_KEY:-}\n DS_URL: ${API_BASE:-https://api.deepseek.com/v1}\n DS_MODEL: ${MODEL_NAME:-deepseek-chat}\n ports:\n - \"12002:8001\"\n command: uvicorn app.main:app --host 0.0.0.0 --port 8001\n restart: unless-stopped\n depends_on:\n mongo:\n condition: service_started\n redis:\n condition: service_started\n backend:\n condition: service_started\n\n celery_worker:\n image: scienceclaw-task-service:local\n pull_policy: never\n environment:\n TZ: Asia/Shanghai\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n CHAT_SERVICE_URL: http://backend:8000\n CHAT_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n command: celery -A app.celery_app worker --loglevel=info\n restart: unless-stopped\n depends_on:\n scheduler_api:\n condition: service_started\n redis:\n condition: service_started\n backend:\n condition: service_started\n\n celery_beat:\n image: scienceclaw-task-service:local\n pull_policy: never\n environment:\n TZ: Asia/Shanghai\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n command: celery -A app.celery_app beat --loglevel=info\n restart: unless-stopped\n depends_on:\n scheduler_api:\n condition: service_started\n redis:\n condition: service_started\n\n frontend:\n image: swr.cn-north-4.myhuaweicloud.com/zdtc-rd/node:20-bookworm-slim\n working_dir: /app\n environment:\n BACKEND_URL: http://backend:8000\n TASK_SERVICE_URL: http://scheduler_api:8001\n VITE_DISPLAY_TIMEZONE: ${DISPLAY_TIMEZONE:-Asia/Shanghai}\n NPM_CONFIG_REGISTRY: https://registry.npmmirror.com\n NPM_CONFIG_CACHE: /npm-cache\n CHOKIDAR_USEPOLLING: \"true\"\n CHOKIDAR_INTERVAL: \"300\"\n TZ: Asia/Shanghai\n volumes:\n - ./ScienceClaw/frontend:/app\n - scienceclaw_frontend_node_modules:/app/node_modules\n - scienceclaw_frontend_npm_cache:/npm-cache\n ports:\n - \"5173:5173\"\n command: >\n sh -lc \"npm ci --no-fund --no-audit && npm run dev -- --host 0.0.0.0 --port 5173\"\n restart: unless-stopped\n depends_on:\n backend:\n condition: service_started\n scheduler_api:\n condition: service_started\n\nvolumes:\n scienceclaw_mongo_data:\n scienceclaw_frontend_node_modules:\n scienceclaw_frontend_npm_cache:\n"}}, "docker-compose.yml": {"3817e56a0ce35900a1bfa82f4b09c492f5fbfd4f": {"t": 1785746329.1036198, "n": 7457, "h": "11b10aeee527fcb1", "c": "# BuildKit 用于 Dockerfile 中 apt/pip/npm 构建缓存,建议先执行: export DOCKER_BUILDKIT=1\nservices:\n sandbox:\n build:\n context: ./ScienceClaw/sandbox\n image: scienceclaw-sandbox:local\n security_opt:\n - seccomp:unconfined\n extra_hosts:\n - \"host.docker.internal:host-gateway\"\n shm_size: \"2gb\"\n mem_limit: ${SANDBOX_MEM_LIMIT:-8g}\n cpus: ${SANDBOX_CPUS:-4}\n environment:\n TZ: Asia/Shanghai\n WEBSEARCH_URL: http://websearch:8068\n volumes:\n - ./Skills:/skills:ro\n - ./Tools:/app/Tools:ro\n - ./ScienceClaw/backend/builtin_skills:/builtin-skills:ro\n - ./workspace:/home/scienceclaw\n ports:\n - \"18080:8080\"\n restart: unless-stopped\n healthcheck:\n test: [\"CMD-SHELL\", \"curl -fsS http://127.0.0.1:8080/v1/docs >/dev/null || exit 1\"]\n interval: 5s\n timeout: 3s\n retries: 30\n\n mongo:\n image: mongo:latest\n environment:\n MONGO_INITDB_ROOT_USERNAME: scienceone\n MONGO_INITDB_ROOT_PASSWORD: Yp51Bi1eEjC77sAt\n ports:\n - \"27014:27017\"\n volumes:\n - scienceclaw_mongo_data:/data/db\n restart: unless-stopped\n\n redis:\n image: redis:7-alpine\n restart: unless-stopped\n\n # ── SearXNG 搜索引擎(websearch 服务的依赖) ──\n searxng:\n image: searxng/searxng:latest\n environment:\n SEARXNG_BASE_URL: http://localhost:8080/\n SEARXNG_LIMITER: \"false\"\n TZ: Asia/Shanghai\n volumes:\n - ./ScienceClaw/websearch/config/settings.yml:/etc/searxng/settings.yml\n ports:\n - \"26080:8080\"\n restart: unless-stopped\n\n # ── 网页搜索 + 爬取服务(替代 Tavily) ──\n websearch:\n build:\n context: ./ScienceClaw/websearch\n dockerfile: Dockerfile\n image: scienceclaw-websearch:local\n environment:\n SEARXNG_HOST: searxng\n SEARXNG_PORT: 8080\n API_HOST: \"0.0.0.0\"\n API_PORT: 8068\n TZ: Asia/Shanghai\n API_KEY: \"fdsfkjikmii\"\n ports:\n - \"8068:8068\"\n restart: unless-stopped\n depends_on:\n searxng:\n condition: service_started\n\n backend:\n build:\n context: ./ScienceClaw/backend\n additional_contexts:\n websearch: ./ScienceClaw/websearch\n image: scienceclaw-backend:local\n volumes:\n - ./ScienceClaw/backend:/app/backend\n - ./ScienceClaw/backend/builtin_skills:/app/builtin_skills:ro\n - ./Tools:/app/Tools\n - ./Skills:/app/Skills\n - ./workspace:/home/scienceclaw\n environment:\n SANDBOX_REST_URL: http://sandbox:8080\n WORKSPACE_DIR: /home/scienceclaw\n DS_API_KEY: ${API_KEY:-}\n DS_URL: ${API_BASE-https://api.deepseek.com/v1}\n DS_MODEL: ${MODEL_NAME-deepseek-chat}\n TEMPERATURE: ${TEMPERATURE-0.7}\n MAX_TOKENS: ${MAX_TOKENS-2000}\n LOG_LEVEL: ${LOG_LEVEL-INFO}\n FILE_DOWNLOAD_ALLOWED_PREFIXES: /tmp,/app,/home/scienceclaw\n TZ: Asia/Shanghai\n AUTH_PROVIDER: local\n BOOTSTRAP_ADMIN_ENABLED: \"true\"\n BOOTSTRAP_ADMIN_USERNAME: admin\n BOOTSTRAP_ADMIN_PASSWORD: admin123\n BOOTSTRAP_ADMIN_FULLNAME: Administrator\n BOOTSTRAP_ADMIN_EMAIL: admin@localhost\n BOOTSTRAP_UPDATE_ADMIN_PASSWORD: \"true\"\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n TASK_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n WEBSEARCH_API_KEY: \"fdsfkjikmii\"\n # 网页搜索服务地址(Docker 内部通信)\n WEBSEARCH_BASE_URL: http://websearch:8068\n WEBSEARCH_URL: http://websearch:8068\n # 诊断模式:记录每步 LLM 调用的完整上下文,用于质量分析(设为空或删除此行关闭)\n DIAGNOSTIC_MODE: \"1\"\n IM_ENABLED: \"true\"\n IM_RESPONSE_TIMEOUT: 300\n IM_MAX_MESSAGE_LENGTH: 4000\n LARK_ENABLED: \"true\"\n LARK_APP_ID: ${LARK_APP_ID-}\n LARK_APP_SECRET: ${LARK_APP_SECRET-}\n ports:\n - \"12001:8000\"\n command: >\n python -m uvicorn backend.main:app --host 0.0.0.0 --port 8000 --reload --reload-dir /app/backend\n restart: unless-stopped\n depends_on:\n sandbox:\n condition: service_started\n mongo:\n condition: service_started\n websearch:\n condition: service_started\n healthcheck:\n test: [\"CMD-SHELL\", \"curl -fsS http://127.0.0.1:8000/api/v1/auth/status >/dev/null || exit 1\"]\n interval: 5s\n timeout: 5s\n retries: 30\n\n # ── 任务调度服务(Task Service)──\n scheduler_api:\n build:\n context: ScienceClaw/task-service\n dockerfile: Dockerfile\n image: scienceclaw-task-service:local\n environment:\n TZ: Asia/Shanghai\n DISPLAY_TIMEZONE: ${DISPLAY_TIMEZONE:-Asia/Shanghai}\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n CHAT_SERVICE_URL: http://backend:8000\n CHAT_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n DS_API_KEY: ${API_KEY:-}\n DS_URL: ${API_BASE:-https://api.deepseek.com/v1}\n DS_MODEL: ${MODEL_NAME:-deepseek-chat}\n ports:\n - \"12002:8001\"\n command: uvicorn app.main:app --host 0.0.0.0 --port 8001\n restart: unless-stopped\n depends_on:\n mongo:\n condition: service_started\n redis:\n condition: service_started\n backend:\n condition: service_started\n\n celery_worker:\n image: scienceclaw-task-service:local\n pull_policy: never\n environment:\n TZ: Asia/Shanghai\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n CHAT_SERVICE_URL: http://backend:8000\n CHAT_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n command: celery -A app.celery_app worker --loglevel=info\n restart: unless-stopped\n depends_on:\n scheduler_api:\n condition: service_started\n redis:\n condition: service_started\n backend:\n condition: service_started\n\n celery_beat:\n image: scienceclaw-task-service:local\n pull_policy: never\n environment:\n TZ: Asia/Shanghai\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n command: celery -A app.celery_app beat --loglevel=info\n restart: unless-stopped\n depends_on:\n scheduler_api:\n condition: service_started\n redis:\n condition: service_started\n\n frontend:\n image: node:20-bookworm-slim\n working_dir: /app\n environment:\n BACKEND_URL: http://backend:8000\n # 定时任务服务:Vite 代理 /task-service 时转发到该地址(容器内使用服务名)\n TASK_SERVICE_URL: http://scheduler_api:8001\n # 任务执行时间展示时区,默认北京时间(与 DISPLAY_TIMEZONE 一致)\n VITE_DISPLAY_TIMEZONE: ${DISPLAY_TIMEZONE:-Asia/Shanghai}\n NPM_CONFIG_REGISTRY: https://registry.npmmirror.com\n NPM_CONFIG_CACHE: /npm-cache\n CHOKIDAR_USEPOLLING: \"true\"\n CHOKIDAR_INTERVAL: \"300\"\n TZ: Asia/Shanghai\n volumes:\n - ./ScienceClaw/frontend:/app\n - scienceclaw_frontend_node_modules:/app/node_modules\n - scienceclaw_frontend_npm_cache:/npm-cache\n ports:\n - \"5173:5173\"\n command: >\n sh -lc \"npm install --no-fund --no-audit && npm run dev -- --host 0.0.0.0 --port 5173\"\n restart: unless-stopped\n depends_on:\n backend:\n condition: service_started\n scheduler_api:\n condition: service_started\n\nvolumes:\n scienceclaw_mongo_data:\n scienceclaw_frontend_node_modules:\n scienceclaw_frontend_npm_cache:\n"}, "6c3f7f3f6f66673d8fbcced2e45ffcff1fe52011": {"t": 1785761946.0685868, "n": 7457, "h": "11b10aeee527fcb1", "c": "# BuildKit 用于 Dockerfile 中 apt/pip/npm 构建缓存,建议先执行: export DOCKER_BUILDKIT=1\nservices:\n sandbox:\n build:\n context: ./ScienceClaw/sandbox\n image: scienceclaw-sandbox:local\n security_opt:\n - seccomp:unconfined\n extra_hosts:\n - \"host.docker.internal:host-gateway\"\n shm_size: \"2gb\"\n mem_limit: ${SANDBOX_MEM_LIMIT:-8g}\n cpus: ${SANDBOX_CPUS:-4}\n environment:\n TZ: Asia/Shanghai\n WEBSEARCH_URL: http://websearch:8068\n volumes:\n - ./Skills:/skills:ro\n - ./Tools:/app/Tools:ro\n - ./ScienceClaw/backend/builtin_skills:/builtin-skills:ro\n - ./workspace:/home/scienceclaw\n ports:\n - \"18080:8080\"\n restart: unless-stopped\n healthcheck:\n test: [\"CMD-SHELL\", \"curl -fsS http://127.0.0.1:8080/v1/docs >/dev/null || exit 1\"]\n interval: 5s\n timeout: 3s\n retries: 30\n\n mongo:\n image: mongo:latest\n environment:\n MONGO_INITDB_ROOT_USERNAME: scienceone\n MONGO_INITDB_ROOT_PASSWORD: Yp51Bi1eEjC77sAt\n ports:\n - \"27014:27017\"\n volumes:\n - scienceclaw_mongo_data:/data/db\n restart: unless-stopped\n\n redis:\n image: redis:7-alpine\n restart: unless-stopped\n\n # ── SearXNG 搜索引擎(websearch 服务的依赖) ──\n searxng:\n image: searxng/searxng:latest\n environment:\n SEARXNG_BASE_URL: http://localhost:8080/\n SEARXNG_LIMITER: \"false\"\n TZ: Asia/Shanghai\n volumes:\n - ./ScienceClaw/websearch/config/settings.yml:/etc/searxng/settings.yml\n ports:\n - \"26080:8080\"\n restart: unless-stopped\n\n # ── 网页搜索 + 爬取服务(替代 Tavily) ──\n websearch:\n build:\n context: ./ScienceClaw/websearch\n dockerfile: Dockerfile\n image: scienceclaw-websearch:local\n environment:\n SEARXNG_HOST: searxng\n SEARXNG_PORT: 8080\n API_HOST: \"0.0.0.0\"\n API_PORT: 8068\n TZ: Asia/Shanghai\n API_KEY: \"fdsfkjikmii\"\n ports:\n - \"8068:8068\"\n restart: unless-stopped\n depends_on:\n searxng:\n condition: service_started\n\n backend:\n build:\n context: ./ScienceClaw/backend\n additional_contexts:\n websearch: ./ScienceClaw/websearch\n image: scienceclaw-backend:local\n volumes:\n - ./ScienceClaw/backend:/app/backend\n - ./ScienceClaw/backend/builtin_skills:/app/builtin_skills:ro\n - ./Tools:/app/Tools\n - ./Skills:/app/Skills\n - ./workspace:/home/scienceclaw\n environment:\n SANDBOX_REST_URL: http://sandbox:8080\n WORKSPACE_DIR: /home/scienceclaw\n DS_API_KEY: ${API_KEY:-}\n DS_URL: ${API_BASE-https://api.deepseek.com/v1}\n DS_MODEL: ${MODEL_NAME-deepseek-chat}\n TEMPERATURE: ${TEMPERATURE-0.7}\n MAX_TOKENS: ${MAX_TOKENS-2000}\n LOG_LEVEL: ${LOG_LEVEL-INFO}\n FILE_DOWNLOAD_ALLOWED_PREFIXES: /tmp,/app,/home/scienceclaw\n TZ: Asia/Shanghai\n AUTH_PROVIDER: local\n BOOTSTRAP_ADMIN_ENABLED: \"true\"\n BOOTSTRAP_ADMIN_USERNAME: admin\n BOOTSTRAP_ADMIN_PASSWORD: admin123\n BOOTSTRAP_ADMIN_FULLNAME: Administrator\n BOOTSTRAP_ADMIN_EMAIL: admin@localhost\n BOOTSTRAP_UPDATE_ADMIN_PASSWORD: \"true\"\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n TASK_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n WEBSEARCH_API_KEY: \"fdsfkjikmii\"\n # 网页搜索服务地址(Docker 内部通信)\n WEBSEARCH_BASE_URL: http://websearch:8068\n WEBSEARCH_URL: http://websearch:8068\n # 诊断模式:记录每步 LLM 调用的完整上下文,用于质量分析(设为空或删除此行关闭)\n DIAGNOSTIC_MODE: \"1\"\n IM_ENABLED: \"true\"\n IM_RESPONSE_TIMEOUT: 300\n IM_MAX_MESSAGE_LENGTH: 4000\n LARK_ENABLED: \"true\"\n LARK_APP_ID: ${LARK_APP_ID-}\n LARK_APP_SECRET: ${LARK_APP_SECRET-}\n ports:\n - \"12001:8000\"\n command: >\n python -m uvicorn backend.main:app --host 0.0.0.0 --port 8000 --reload --reload-dir /app/backend\n restart: unless-stopped\n depends_on:\n sandbox:\n condition: service_started\n mongo:\n condition: service_started\n websearch:\n condition: service_started\n healthcheck:\n test: [\"CMD-SHELL\", \"curl -fsS http://127.0.0.1:8000/api/v1/auth/status >/dev/null || exit 1\"]\n interval: 5s\n timeout: 5s\n retries: 30\n\n # ── 任务调度服务(Task Service)──\n scheduler_api:\n build:\n context: ScienceClaw/task-service\n dockerfile: Dockerfile\n image: scienceclaw-task-service:local\n environment:\n TZ: Asia/Shanghai\n DISPLAY_TIMEZONE: ${DISPLAY_TIMEZONE:-Asia/Shanghai}\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n CHAT_SERVICE_URL: http://backend:8000\n CHAT_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n DS_API_KEY: ${API_KEY:-}\n DS_URL: ${API_BASE:-https://api.deepseek.com/v1}\n DS_MODEL: ${MODEL_NAME:-deepseek-chat}\n ports:\n - \"12002:8001\"\n command: uvicorn app.main:app --host 0.0.0.0 --port 8001\n restart: unless-stopped\n depends_on:\n mongo:\n condition: service_started\n redis:\n condition: service_started\n backend:\n condition: service_started\n\n celery_worker:\n image: scienceclaw-task-service:local\n pull_policy: never\n environment:\n TZ: Asia/Shanghai\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n CHAT_SERVICE_URL: http://backend:8000\n CHAT_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n command: celery -A app.celery_app worker --loglevel=info\n restart: unless-stopped\n depends_on:\n scheduler_api:\n condition: service_started\n redis:\n condition: service_started\n backend:\n condition: service_started\n\n celery_beat:\n image: scienceclaw-task-service:local\n pull_policy: never\n environment:\n TZ: Asia/Shanghai\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n command: celery -A app.celery_app beat --loglevel=info\n restart: unless-stopped\n depends_on:\n scheduler_api:\n condition: service_started\n redis:\n condition: service_started\n\n frontend:\n image: node:20-bookworm-slim\n working_dir: /app\n environment:\n BACKEND_URL: http://backend:8000\n # 定时任务服务:Vite 代理 /task-service 时转发到该地址(容器内使用服务名)\n TASK_SERVICE_URL: http://scheduler_api:8001\n # 任务执行时间展示时区,默认北京时间(与 DISPLAY_TIMEZONE 一致)\n VITE_DISPLAY_TIMEZONE: ${DISPLAY_TIMEZONE:-Asia/Shanghai}\n NPM_CONFIG_REGISTRY: https://registry.npmmirror.com\n NPM_CONFIG_CACHE: /npm-cache\n CHOKIDAR_USEPOLLING: \"true\"\n CHOKIDAR_INTERVAL: \"300\"\n TZ: Asia/Shanghai\n volumes:\n - ./ScienceClaw/frontend:/app\n - scienceclaw_frontend_node_modules:/app/node_modules\n - scienceclaw_frontend_npm_cache:/npm-cache\n ports:\n - \"5173:5173\"\n command: >\n sh -lc \"npm install --no-fund --no-audit && npm run dev -- --host 0.0.0.0 --port 5173\"\n restart: unless-stopped\n depends_on:\n backend:\n condition: service_started\n scheduler_api:\n condition: service_started\n\nvolumes:\n scienceclaw_mongo_data:\n scienceclaw_frontend_node_modules:\n scienceclaw_frontend_npm_cache:\n"}, "950415e7b043d41c6635a4f5e91191d7202720e6": {"t": 1785761957.8992453, "n": 7456, "h": "8ae2a1d570f452f5", "c": "# BuildKit 用于 Dockerfile 中 apt/pip/npm 构建缓存,建议先执行: export DOCKER_BUILDKIT=1\nservices:\n sandbox:\n build:\n context: ./ScienceClaw/sandbox\n image: scienceclaw-sandbox:local\n security_opt:\n - seccomp:unconfined\n extra_hosts:\n - \"host.docker.internal:host-gateway\"\n shm_size: \"2gb\"\n mem_limit: ${SANDBOX_MEM_LIMIT:-8g}\n cpus: ${SANDBOX_CPUS:-4}\n environment:\n TZ: Asia/Shanghai\n WEBSEARCH_URL: http://websearch:8068\n volumes:\n - ./Skills:/skills:ro\n - ./Tools:/app/Tools:ro\n - ./ScienceClaw/backend/builtin_skills:/builtin-skills:ro\n - ./workspace:/home/scienceclaw\n ports:\n - \"18080:8080\"\n restart: unless-stopped\n healthcheck:\n test: [\"CMD-SHELL\", \"curl -fsS http://127.0.0.1:8080/v1/docs >/dev/null || exit 1\"]\n interval: 5s\n timeout: 3s\n retries: 30\n\n mongo:\n image: mongo:latest\n environment:\n MONGO_INITDB_ROOT_USERNAME: scienceone\n MONGO_INITDB_ROOT_PASSWORD: Yp51Bi1eEjC77sAt\n ports:\n - \"27014:27017\"\n volumes:\n - scienceclaw_mongo_data:/data/db\n restart: unless-stopped\n\n redis:\n image: redis:7-alpine\n restart: unless-stopped\n\n # ── SearXNG 搜索引擎(websearch 服务的依赖) ──\n searxng:\n image: searxng/searxng:latest\n environment:\n SEARXNG_BASE_URL: http://localhost:8080/\n SEARXNG_LIMITER: \"false\"\n TZ: Asia/Shanghai\n volumes:\n - ./ScienceClaw/websearch/config/settings.yml:/etc/searxng/settings.yml\n ports:\n - \"8080:8080\"\n restart: unless-stopped\n\n # ── 网页搜索 + 爬取服务(替代 Tavily) ──\n websearch:\n build:\n context: ./ScienceClaw/websearch\n dockerfile: Dockerfile\n image: scienceclaw-websearch:local\n environment:\n SEARXNG_HOST: searxng\n SEARXNG_PORT: 8080\n API_HOST: \"0.0.0.0\"\n API_PORT: 8068\n TZ: Asia/Shanghai\n API_KEY: \"fdsfkjikmii\"\n ports:\n - \"8068:8068\"\n restart: unless-stopped\n depends_on:\n searxng:\n condition: service_started\n\n backend:\n build:\n context: ./ScienceClaw/backend\n additional_contexts:\n websearch: ./ScienceClaw/websearch\n image: scienceclaw-backend:local\n volumes:\n - ./ScienceClaw/backend:/app/backend\n - ./ScienceClaw/backend/builtin_skills:/app/builtin_skills:ro\n - ./Tools:/app/Tools\n - ./Skills:/app/Skills\n - ./workspace:/home/scienceclaw\n environment:\n SANDBOX_REST_URL: http://sandbox:8080\n WORKSPACE_DIR: /home/scienceclaw\n DS_API_KEY: ${API_KEY:-}\n DS_URL: ${API_BASE-https://api.deepseek.com/v1}\n DS_MODEL: ${MODEL_NAME-deepseek-chat}\n TEMPERATURE: ${TEMPERATURE-0.7}\n MAX_TOKENS: ${MAX_TOKENS-2000}\n LOG_LEVEL: ${LOG_LEVEL-INFO}\n FILE_DOWNLOAD_ALLOWED_PREFIXES: /tmp,/app,/home/scienceclaw\n TZ: Asia/Shanghai\n AUTH_PROVIDER: local\n BOOTSTRAP_ADMIN_ENABLED: \"true\"\n BOOTSTRAP_ADMIN_USERNAME: admin\n BOOTSTRAP_ADMIN_PASSWORD: admin123\n BOOTSTRAP_ADMIN_FULLNAME: Administrator\n BOOTSTRAP_ADMIN_EMAIL: admin@localhost\n BOOTSTRAP_UPDATE_ADMIN_PASSWORD: \"true\"\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n TASK_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n WEBSEARCH_API_KEY: \"fdsfkjikmii\"\n # 网页搜索服务地址(Docker 内部通信)\n WEBSEARCH_BASE_URL: http://websearch:8068\n WEBSEARCH_URL: http://websearch:8068\n # 诊断模式:记录每步 LLM 调用的完整上下文,用于质量分析(设为空或删除此行关闭)\n DIAGNOSTIC_MODE: \"1\"\n IM_ENABLED: \"true\"\n IM_RESPONSE_TIMEOUT: 300\n IM_MAX_MESSAGE_LENGTH: 4000\n LARK_ENABLED: \"true\"\n LARK_APP_ID: ${LARK_APP_ID-}\n LARK_APP_SECRET: ${LARK_APP_SECRET-}\n ports:\n - \"12001:8000\"\n command: >\n python -m uvicorn backend.main:app --host 0.0.0.0 --port 8000 --reload --reload-dir /app/backend\n restart: unless-stopped\n depends_on:\n sandbox:\n condition: service_started\n mongo:\n condition: service_started\n websearch:\n condition: service_started\n healthcheck:\n test: [\"CMD-SHELL\", \"curl -fsS http://127.0.0.1:8000/api/v1/auth/status >/dev/null || exit 1\"]\n interval: 5s\n timeout: 5s\n retries: 30\n\n # ── 任务调度服务(Task Service)──\n scheduler_api:\n build:\n context: ScienceClaw/task-service\n dockerfile: Dockerfile\n image: scienceclaw-task-service:local\n environment:\n TZ: Asia/Shanghai\n DISPLAY_TIMEZONE: ${DISPLAY_TIMEZONE:-Asia/Shanghai}\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n CHAT_SERVICE_URL: http://backend:8000\n CHAT_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n DS_API_KEY: ${API_KEY:-}\n DS_URL: ${API_BASE:-https://api.deepseek.com/v1}\n DS_MODEL: ${MODEL_NAME:-deepseek-chat}\n ports:\n - \"12002:8001\"\n command: uvicorn app.main:app --host 0.0.0.0 --port 8001\n restart: unless-stopped\n depends_on:\n mongo:\n condition: service_started\n redis:\n condition: service_started\n backend:\n condition: service_started\n\n celery_worker:\n image: scienceclaw-task-service:local\n pull_policy: never\n environment:\n TZ: Asia/Shanghai\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n CHAT_SERVICE_URL: http://backend:8000\n CHAT_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n command: celery -A app.celery_app worker --loglevel=info\n restart: unless-stopped\n depends_on:\n scheduler_api:\n condition: service_started\n redis:\n condition: service_started\n backend:\n condition: service_started\n\n celery_beat:\n image: scienceclaw-task-service:local\n pull_policy: never\n environment:\n TZ: Asia/Shanghai\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n command: celery -A app.celery_app beat --loglevel=info\n restart: unless-stopped\n depends_on:\n scheduler_api:\n condition: service_started\n redis:\n condition: service_started\n\n frontend:\n image: node:20-bookworm-slim\n working_dir: /app\n environment:\n BACKEND_URL: http://backend:8000\n # 定时任务服务:Vite 代理 /task-service 时转发到该地址(容器内使用服务名)\n TASK_SERVICE_URL: http://scheduler_api:8001\n # 任务执行时间展示时区,默认北京时间(与 DISPLAY_TIMEZONE 一致)\n VITE_DISPLAY_TIMEZONE: ${DISPLAY_TIMEZONE:-Asia/Shanghai}\n NPM_CONFIG_REGISTRY: https://registry.npmmirror.com\n NPM_CONFIG_CACHE: /npm-cache\n CHOKIDAR_USEPOLLING: \"true\"\n CHOKIDAR_INTERVAL: \"300\"\n TZ: Asia/Shanghai\n volumes:\n - ./ScienceClaw/frontend:/app\n - scienceclaw_frontend_node_modules:/app/node_modules\n - scienceclaw_frontend_npm_cache:/npm-cache\n ports:\n - \"5173:5173\"\n command: >\n sh -lc \"npm install --no-fund --no-audit && npm run dev -- --host 0.0.0.0 --port 5173\"\n restart: unless-stopped\n depends_on:\n backend:\n condition: service_started\n scheduler_api:\n condition: service_started\n\nvolumes:\n scienceclaw_mongo_data:\n scienceclaw_frontend_node_modules:\n scienceclaw_frontend_npm_cache:\n"}, "2c657930945a4b5d9e0e6abb7d4b2c7cbb5410c4": {"t": 1785761959.675443, "n": 7450, "h": "26e228feb57d4273", "c": "services:\n sandbox:\n build:\n context: ./ScienceClaw/sandbox\n additional_contexts:\n websearch: ./ScienceClaw/websearch\n image: scienceclaw-sandbox:local\n security_opt:\n - seccomp:unconfined\n extra_hosts:\n - \"host.docker.internal:host-gateway\"\n shm_size: \"2gb\"\n mem_limit: ${SANDBOX_MEM_LIMIT:-8g}\n cpus: ${SANDBOX_CPUS:-4}\n environment:\n TZ: Asia/Shanghai\n WEBSEARCH_URL: http://websearch:8068\n volumes:\n - ./Skills:/skills:ro\n - ./Tools:/app/Tools:ro\n - ./ScienceClaw/backend/builtin_skills:/builtin-skills:ro\n - ./workspace:/home/scienceclaw\n ports:\n - \"18080:8080\"\n restart: unless-stopped\n healthcheck:\n test: [\"CMD-SHELL\", \"curl -fsS http://127.0.0.1:8080/v1/docs >/dev/null || exit 1\"]\n interval: 5s\n timeout: 3s\n retries: 30\n\n mongo:\n image: mongo:latest\n environment:\n MONGO_INITDB_ROOT_USERNAME: scienceone\n MONGO_INITDB_ROOT_PASSWORD: Yp51Bi1eEjC77sAt\n ports:\n - \"27014:27017\"\n volumes:\n - scienceclaw_mongo_data:/data/db\n restart: unless-stopped\n\n redis:\n image: redis:7-alpine\n restart: unless-stopped\n\n # ── SearXNG 搜索引擎(websearch 服务的依赖) ──\n searxng:\n image: searxng/searxng:latest\n environment:\n SEARXNG_BASE_URL: http://localhost:8080/\n SEARXNG_LIMITER: \"false\"\n TZ: Asia/Shanghai\n volumes:\n - ./ScienceClaw/websearch/config/settings.yml:/etc/searxng/settings.yml\n ports:\n - \"8080:8080\"\n restart: unless-stopped\n\n # ── 网页搜索 + 爬取服务(替代 Tavily) ──\n websearch:\n build:\n context: ./ScienceClaw/websearch\n dockerfile: Dockerfile\n image: scienceclaw-websearch:local\n environment:\n SEARXNG_HOST: searxng\n SEARXNG_PORT: 8080\n API_HOST: \"0.0.0.0\"\n API_PORT: 8068\n TZ: Asia/Shanghai\n API_KEY: \"fdsfkjikmii\"\n ports:\n - \"8068:8068\"\n restart: unless-stopped\n depends_on:\n searxng:\n condition: service_started\n\n backend:\n build:\n context: ./ScienceClaw/backend\n additional_contexts:\n websearch: ./ScienceClaw/websearch\n image: scienceclaw-backend:local\n volumes:\n - ./ScienceClaw/backend:/app/backend\n - ./ScienceClaw/backend/builtin_skills:/app/builtin_skills:ro\n - ./Tools:/app/Tools\n - ./Skills:/app/Skills\n - ./workspace:/home/scienceclaw\n environment:\n SANDBOX_REST_URL: http://sandbox:8080\n WORKSPACE_DIR: /home/scienceclaw\n DS_API_KEY: ${API_KEY:-}\n DS_URL: ${API_BASE-https://api.deepseek.com/v1}\n DS_MODEL: ${MODEL_NAME-deepseek-chat}\n TEMPERATURE: ${TEMPERATURE-0.7}\n MAX_TOKENS: ${MAX_TOKENS-2000}\n LOG_LEVEL: ${LOG_LEVEL-INFO}\n FILE_DOWNLOAD_ALLOWED_PREFIXES: /tmp,/app,/home/scienceclaw\n TZ: Asia/Shanghai\n AUTH_PROVIDER: local\n BOOTSTRAP_ADMIN_ENABLED: \"true\"\n BOOTSTRAP_ADMIN_USERNAME: admin\n BOOTSTRAP_ADMIN_PASSWORD: admin123\n BOOTSTRAP_ADMIN_FULLNAME: Administrator\n BOOTSTRAP_ADMIN_EMAIL: admin@localhost\n BOOTSTRAP_UPDATE_ADMIN_PASSWORD: \"true\"\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n TASK_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n WEBSEARCH_API_KEY: \"fdsfkjikmii\"\n # 网页搜索服务地址(Docker 内部通信)\n WEBSEARCH_BASE_URL: http://websearch:8068\n WEBSEARCH_URL: http://websearch:8068\n # 诊断模式:记录每步 LLM 调用的完整上下文,用于质量分析(设为空或删除此行关闭)\n DIAGNOSTIC_MODE: \"1\"\n IM_ENABLED: \"true\"\n IM_RESPONSE_TIMEOUT: 300\n IM_MAX_MESSAGE_LENGTH: 4000\n LARK_ENABLED: \"true\"\n LARK_APP_ID: ${LARK_APP_ID-}\n LARK_APP_SECRET: ${LARK_APP_SECRET-}\n ports:\n - \"12001:8000\"\n command: >\n python -m uvicorn backend.main:app --host 0.0.0.0 --port 8000 --reload --reload-dir /app/backend\n restart: unless-stopped\n depends_on:\n sandbox:\n condition: service_started\n mongo:\n condition: service_started\n websearch:\n condition: service_started\n healthcheck:\n test: [\"CMD-SHELL\", \"curl -fsS http://127.0.0.1:8000/api/v1/auth/status >/dev/null || exit 1\"]\n interval: 5s\n timeout: 5s\n retries: 30\n\n # ── 任务调度服务(Task Service)──\n scheduler_api:\n build:\n context: ScienceClaw/task-service\n dockerfile: Dockerfile\n image: scienceclaw-task-service:local\n environment:\n TZ: Asia/Shanghai\n DISPLAY_TIMEZONE: ${DISPLAY_TIMEZONE:-Asia/Shanghai}\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n CHAT_SERVICE_URL: http://backend:8000\n CHAT_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n DS_API_KEY: ${API_KEY:-}\n DS_URL: ${API_BASE:-https://api.deepseek.com/v1}\n DS_MODEL: ${MODEL_NAME:-deepseek-chat}\n ports:\n - \"12002:8001\"\n command: uvicorn app.main:app --host 0.0.0.0 --port 8001\n restart: unless-stopped\n depends_on:\n mongo:\n condition: service_started\n redis:\n condition: service_started\n backend:\n condition: service_started\n\n celery_worker:\n image: scienceclaw-task-service:local\n pull_policy: never\n environment:\n TZ: Asia/Shanghai\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n CHAT_SERVICE_URL: http://backend:8000\n CHAT_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n command: celery -A app.celery_app worker --loglevel=info\n restart: unless-stopped\n depends_on:\n scheduler_api:\n condition: service_started\n redis:\n condition: service_started\n backend:\n condition: service_started\n\n celery_beat:\n image: scienceclaw-task-service:local\n pull_policy: never\n environment:\n TZ: Asia/Shanghai\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n command: celery -A app.celery_app beat --loglevel=info\n restart: unless-stopped\n depends_on:\n scheduler_api:\n condition: service_started\n redis:\n condition: service_started\n\n frontend:\n image: node:20-bookworm-slim\n working_dir: /app\n environment:\n BACKEND_URL: http://backend:8000\n # 定时任务服务:Vite 代理 /task-service 时转发到该地址(容器内使用服务名)\n TASK_SERVICE_URL: http://scheduler_api:8001\n # 任务执行时间展示时区,默认北京时间(与 DISPLAY_TIMEZONE 一致)\n VITE_DISPLAY_TIMEZONE: ${DISPLAY_TIMEZONE:-Asia/Shanghai}\n NPM_CONFIG_REGISTRY: https://registry.npmmirror.com\n NPM_CONFIG_CACHE: /npm-cache\n CHOKIDAR_USEPOLLING: \"true\"\n CHOKIDAR_INTERVAL: \"300\"\n TZ: Asia/Shanghai\n volumes:\n - ./ScienceClaw/frontend:/app\n - scienceclaw_frontend_node_modules:/app/node_modules\n - scienceclaw_frontend_npm_cache:/npm-cache\n ports:\n - \"5173:5173\"\n command: >\n sh -lc \"npm install --no-fund --no-audit && npm run dev -- --host 0.0.0.0 --port 5173\"\n restart: unless-stopped\n depends_on:\n backend:\n condition: service_started\n scheduler_api:\n condition: service_started\n\nvolumes:\n scienceclaw_mongo_data:\n scienceclaw_frontend_node_modules:\n scienceclaw_frontend_npm_cache:\n"}, "1a486c3fdd4d4d00a4c64908bc3ab4020164fd72": {"t": 1785761981.3835554, "n": 7368, "h": "94cfe55170641f62", "c": "services:\n sandbox:\n build:\n context: .\n dockerfile: ScienceClaw/sandbox/Dockerfile\n image: scienceclaw-sandbox:local\n security_opt:\n - seccomp:unconfined\n extra_hosts:\n - \"host.docker.internal:host-gateway\"\n shm_size: \"2gb\"\n mem_limit: ${SANDBOX_MEM_LIMIT:-8g}\n cpus: ${SANDBOX_CPUS:-4}\n environment:\n TZ: Asia/Shanghai\n WEBSEARCH_URL: http://websearch:8068\n volumes:\n - ./Skills:/skills:ro\n - ./Tools:/app/Tools:ro\n - ./ScienceClaw/backend/builtin_skills:/builtin-skills:ro\n - ./workspace:/home/scienceclaw\n ports:\n - \"18080:8080\"\n restart: unless-stopped\n healthcheck:\n test: [\"CMD-SHELL\", \"curl -fsS http://127.0.0.1:8080/v1/docs >/dev/null || exit 1\"]\n interval: 5s\n timeout: 3s\n retries: 30\n\n mongo:\n image: mongo:latest\n environment:\n MONGO_INITDB_ROOT_USERNAME: scienceone\n MONGO_INITDB_ROOT_PASSWORD: Yp51Bi1eEjC77sAt\n ports:\n - \"27014:27017\"\n volumes:\n - scienceclaw_mongo_data:/data/db\n restart: unless-stopped\n\n redis:\n image: redis:7-alpine\n restart: unless-stopped\n\n # ── SearXNG 搜索引擎(websearch 服务的依赖) ──\n searxng:\n image: searxng/searxng:latest\n environment:\n SEARXNG_BASE_URL: http://localhost:8080/\n SEARXNG_LIMITER: \"false\"\n TZ: Asia/Shanghai\n volumes:\n - ./ScienceClaw/websearch/config/settings.yml:/etc/searxng/settings.yml\n ports:\n - \"8080:8080\"\n restart: unless-stopped\n\n # ── 网页搜索 + 爬取服务(替代 Tavily) ──\n websearch:\n build:\n context: ./ScienceClaw/websearch\n dockerfile: Dockerfile\n image: scienceclaw-websearch:local\n environment:\n SEARXNG_HOST: searxng\n SEARXNG_PORT: 8080\n API_HOST: \"0.0.0.0\"\n API_PORT: 8068\n TZ: Asia/Shanghai\n API_KEY: \"fdsfkjikmii\"\n ports:\n - \"8068:8068\"\n restart: unless-stopped\n depends_on:\n searxng:\n condition: service_started\n\n backend:\n build:\n context: .\n dockerfile: ScienceClaw/backend/Dockerfile\n image: scienceclaw-backend:local\n volumes:\n - ./ScienceClaw/backend:/app/backend\n - ./ScienceClaw/backend/builtin_skills:/app/builtin_skills:ro\n - ./Tools:/app/Tools\n - ./Skills:/app/Skills\n - ./workspace:/home/scienceclaw\n environment:\n SANDBOX_REST_URL: http://sandbox:8080\n WORKSPACE_DIR: /home/scienceclaw\n DS_API_KEY: ${API_KEY:-}\n DS_URL: ${API_BASE-https://api.deepseek.com/v1}\n DS_MODEL: ${MODEL_NAME-deepseek-chat}\n TEMPERATURE: ${TEMPERATURE-0.7}\n MAX_TOKENS: ${MAX_TOKENS-2000}\n LOG_LEVEL: ${LOG_LEVEL-INFO}\n FILE_DOWNLOAD_ALLOWED_PREFIXES: /tmp,/app,/home/scienceclaw\n TZ: Asia/Shanghai\n AUTH_PROVIDER: local\n BOOTSTRAP_ADMIN_ENABLED: \"true\"\n BOOTSTRAP_ADMIN_USERNAME: admin\n BOOTSTRAP_ADMIN_PASSWORD: admin123\n BOOTSTRAP_ADMIN_FULLNAME: Administrator\n BOOTSTRAP_ADMIN_EMAIL: admin@localhost\n BOOTSTRAP_UPDATE_ADMIN_PASSWORD: \"true\"\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n TASK_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n WEBSEARCH_API_KEY: \"fdsfkjikmii\"\n # 网页搜索服务地址(Docker 内部通信)\n WEBSEARCH_BASE_URL: http://websearch:8068\n WEBSEARCH_URL: http://websearch:8068\n # 诊断模式:记录每步 LLM 调用的完整上下文,用于质量分析(设为空或删除此行关闭)\n DIAGNOSTIC_MODE: \"1\"\n IM_ENABLED: \"true\"\n IM_RESPONSE_TIMEOUT: 300\n IM_MAX_MESSAGE_LENGTH: 4000\n LARK_ENABLED: \"true\"\n LARK_APP_ID: ${LARK_APP_ID-}\n LARK_APP_SECRET: ${LARK_APP_SECRET-}\n ports:\n - \"12001:8000\"\n command: >\n python -m uvicorn backend.main:app --host 0.0.0.0 --port 8000 --reload --reload-dir /app/backend\n restart: unless-stopped\n depends_on:\n sandbox:\n condition: service_started\n mongo:\n condition: service_started\n websearch:\n condition: service_started\n healthcheck:\n test: [\"CMD-SHELL\", \"curl -fsS http://127.0.0.1:8000/api/v1/auth/status >/dev/null || exit 1\"]\n interval: 5s\n timeout: 5s\n retries: 30\n\n # ── 任务调度服务(Task Service)──\n scheduler_api:\n build:\n context: ScienceClaw/task-service\n dockerfile: Dockerfile\n image: scienceclaw-task-service:local\n environment:\n TZ: Asia/Shanghai\n DISPLAY_TIMEZONE: ${DISPLAY_TIMEZONE:-Asia/Shanghai}\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n CHAT_SERVICE_URL: http://backend:8000\n CHAT_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n DS_API_KEY: ${API_KEY:-}\n DS_URL: ${API_BASE:-https://api.deepseek.com/v1}\n DS_MODEL: ${MODEL_NAME:-deepseek-chat}\n ports:\n - \"12002:8001\"\n command: uvicorn app.main:app --host 0.0.0.0 --port 8001\n restart: unless-stopped\n depends_on:\n mongo:\n condition: service_started\n redis:\n condition: service_started\n backend:\n condition: service_started\n\n celery_worker:\n image: scienceclaw-task-service:local\n pull_policy: never\n environment:\n TZ: Asia/Shanghai\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n CHAT_SERVICE_URL: http://backend:8000\n CHAT_SERVICE_API_KEY: ${TASK_SERVICE_API_KEY:-}\n command: celery -A app.celery_app worker --loglevel=info\n restart: unless-stopped\n depends_on:\n scheduler_api:\n condition: service_started\n redis:\n condition: service_started\n backend:\n condition: service_started\n\n celery_beat:\n image: scienceclaw-task-service:local\n pull_policy: never\n environment:\n TZ: Asia/Shanghai\n MONGODB_HOST: mongo\n MONGODB_PORT: 27017\n MONGODB_DB: ai_agent\n MONGODB_USER: scienceone\n MONGODB_PASSWORD: Yp51Bi1eEjC77sAt\n REDIS_URL: redis://redis:6379/0\n command: celery -A app.celery_app beat --loglevel=info\n restart: unless-stopped\n depends_on:\n scheduler_api:\n condition: service_started\n redis:\n condition: service_started\n\n frontend:\n image: node:20-bookworm-slim\n working_dir: /app\n environment:\n BACKEND_URL: http://backend:8000\n # 定时任务服务:Vite 代理 /task-service 时转发到该地址(容器内使用服务名)\n TASK_SERVICE_URL: http://scheduler_api:8001\n # 任务执行时间展示时区,默认北京时间(与 DISPLAY_TIMEZONE 一致)\n VITE_DISPLAY_TIMEZONE: ${DISPLAY_TIMEZONE:-Asia/Shanghai}\n NPM_CONFIG_REGISTRY: https://registry.npmmirror.com\n NPM_CONFIG_CACHE: /npm-cache\n CHOKIDAR_USEPOLLING: \"true\"\n CHOKIDAR_INTERVAL: \"300\"\n TZ: Asia/Shanghai\n volumes:\n - ./ScienceClaw/frontend:/app\n - scienceclaw_frontend_node_modules:/app/node_modules\n - scienceclaw_frontend_npm_cache:/npm-cache\n ports:\n - \"5173:5173\"\n command: >\n sh -lc \"npm install --no-fund --no-audit && npm run dev -- --host 0.0.0.0 --port 5173\"\n restart: unless-stopped\n depends_on:\n backend:\n condition: service_started\n scheduler_api:\n condition: service_started\n\nvolumes:\n scienceclaw_mongo_data:\n scienceclaw_frontend_node_modules:\n scienceclaw_frontend_npm_cache:\n"}}}}