feat: add code queue services and baidu netdisk
This commit is contained in:
+86
-35
@@ -16,7 +16,7 @@ services:
|
||||
- "-c"
|
||||
- "logging_collector=on"
|
||||
- "-c"
|
||||
- "log_directory=/var/log/unidesk"
|
||||
- "log_directory=/var/log/unidesk/${UNIDESK_LOG_DAY}"
|
||||
- "-c"
|
||||
- "log_filename=${UNIDESK_LOG_PREFIX}_database.log"
|
||||
- "-c"
|
||||
@@ -56,7 +56,8 @@ services:
|
||||
DATABASE_VOLUME_NAME: "${UNIDESK_DATABASE_VOLUME}"
|
||||
DATABASE_VOLUME_SIZE: "${UNIDESK_DATABASE_VOLUME_SIZE}"
|
||||
MICROSERVICES_JSON: "${UNIDESK_MICROSERVICES_JSON:-[]}"
|
||||
LOG_FILE: "/var/log/unidesk/${UNIDESK_LOG_PREFIX}_backend-core.jsonl"
|
||||
LOG_FILE: "/var/log/unidesk/${UNIDESK_LOG_DAY}/${UNIDESK_LOG_PREFIX}_backend-core.jsonl"
|
||||
UNIDESK_LOG_RETENTION_BYTES: "${UNIDESK_LOG_RETENTION_BYTES:-1GiB}"
|
||||
volumes:
|
||||
- ${UNIDESK_LOG_DIR}:/var/log/unidesk
|
||||
healthcheck:
|
||||
@@ -81,8 +82,8 @@ services:
|
||||
TODO_NOTE_BACKEND_ONLY: "1"
|
||||
DATABASE_URL: "postgres://${UNIDESK_DATABASE_USER}:${UNIDESK_DATABASE_PASSWORD}@database:5432/${UNIDESK_DATABASE_NAME}"
|
||||
TODO_NOTE_LOGS_DIR: "logs"
|
||||
LOG_FILE: "/var/log/unidesk/${UNIDESK_LOG_PREFIX}_todo-note.jsonl"
|
||||
TODO_NOTE_LOG_PATH: "/var/log/unidesk/${UNIDESK_LOG_PREFIX}_todo-note.jsonl"
|
||||
LOG_FILE: "/var/log/unidesk/${UNIDESK_LOG_DAY}/${UNIDESK_LOG_PREFIX}_todo-note.jsonl"
|
||||
TODO_NOTE_LOG_PATH: "/var/log/unidesk/${UNIDESK_LOG_DAY}/${UNIDESK_LOG_PREFIX}_todo-note.jsonl"
|
||||
TODO_NOTE_REMINDER_CLAUDEQQ_ENABLED: "${UNIDESK_TODO_NOTE_REMINDER_CLAUDEQQ_ENABLED:-true}"
|
||||
TODO_NOTE_REMINDER_CLAUDEQQ_BASE_URL: "${UNIDESK_TODO_NOTE_REMINDER_CLAUDEQQ_BASE_URL:-http://backend-core:8080/api/microservices/claudeqq/proxy}"
|
||||
TODO_NOTE_REMINDER_CLAUDEQQ_TARGET_TYPE: "${UNIDESK_TODO_NOTE_REMINDER_CLAUDEQQ_TARGET_TYPE:-private}"
|
||||
@@ -100,12 +101,14 @@ services:
|
||||
timeout: 3s
|
||||
retries: 20
|
||||
|
||||
codex-queue:
|
||||
code-queue:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: src/components/microservices/codex-queue/Dockerfile
|
||||
container_name: codex-queue-backend
|
||||
dockerfile: src/components/microservices/code-queue/Dockerfile
|
||||
container_name: code-queue-backend
|
||||
restart: unless-stopped
|
||||
mem_limit: 600m
|
||||
memswap_limit: 1536m
|
||||
depends_on:
|
||||
- database
|
||||
- backend-core
|
||||
@@ -115,32 +118,46 @@ services:
|
||||
HOST: "0.0.0.0"
|
||||
PORT: "4222"
|
||||
DATABASE_URL: "postgres://${UNIDESK_DATABASE_USER}:${UNIDESK_DATABASE_PASSWORD}@database:5432/${UNIDESK_DATABASE_NAME}"
|
||||
CODEX_QUEUE_DATA_DIR: "/var/lib/unidesk/codex-queue"
|
||||
CODEX_QUEUE_WORKDIR: "/root/unidesk"
|
||||
CODEX_QUEUE_CODEX_HOME: "/var/lib/unidesk/codex-queue/codex-home"
|
||||
CODEX_QUEUE_SOURCE_CODEX_CONFIG: "/root/.codex/config.toml"
|
||||
CODEX_QUEUE_DEFAULT_MODEL: "gpt-5.5"
|
||||
CODEX_QUEUE_MODELS: "gpt-5.5,gpt-5.4-mini,gpt-5.4"
|
||||
CODEX_QUEUE_MODEL_REASONING_EFFORTS: "gpt-5.5=xhigh"
|
||||
CODEX_QUEUE_SANDBOX: "danger-full-access"
|
||||
CODEX_QUEUE_APPROVAL_POLICY: "never"
|
||||
CODEX_QUEUE_MAX_ATTEMPTS: "99"
|
||||
CODEX_QUEUE_NOTIFY_CLAUDEQQ_ENABLED: "${UNIDESK_CODEX_QUEUE_NOTIFY_CLAUDEQQ_ENABLED:-true}"
|
||||
CODEX_QUEUE_NOTIFY_CLAUDEQQ_BASE_URL: "${UNIDESK_CODEX_QUEUE_NOTIFY_CLAUDEQQ_BASE_URL:-http://backend-core:8080/api/microservices/claudeqq/proxy}"
|
||||
CODEX_QUEUE_NOTIFY_CLAUDEQQ_TARGET_TYPE: "${UNIDESK_CODEX_QUEUE_NOTIFY_CLAUDEQQ_TARGET_TYPE:-private}"
|
||||
CODEX_QUEUE_NOTIFY_CLAUDEQQ_USER_ID: "${UNIDESK_CODEX_QUEUE_NOTIFY_CLAUDEQQ_USER_ID:-645275593}"
|
||||
CODEX_QUEUE_NOTIFY_CLAUDEQQ_GROUP_ID: "${UNIDESK_CODEX_QUEUE_NOTIFY_CLAUDEQQ_GROUP_ID:-}"
|
||||
CODEX_QUEUE_NOTIFY_CLAUDEQQ_MAX_RESPONSE_CHARS: "${UNIDESK_CODEX_QUEUE_NOTIFY_CLAUDEQQ_MAX_RESPONSE_CHARS:-12000}"
|
||||
CODEX_QUEUE_NOTIFY_CLAUDEQQ_TIMEOUT_MS: "${UNIDESK_CODEX_QUEUE_NOTIFY_CLAUDEQQ_TIMEOUT_MS:-15000}"
|
||||
CODEX_QUEUE_NOTIFY_CLAUDEQQ_SEND_ATTEMPTS: "${UNIDESK_CODEX_QUEUE_NOTIFY_CLAUDEQQ_SEND_ATTEMPTS:-3}"
|
||||
CODE_QUEUE_DATA_DIR: "/var/lib/unidesk/code-queue"
|
||||
CODE_QUEUE_WORKDIR: "/root/unidesk"
|
||||
CODE_QUEUE_CODEX_HOME: "/var/lib/unidesk/code-queue/codex-home"
|
||||
CODE_QUEUE_OPENCODE_XDG_DIR: "/var/lib/unidesk/code-queue/opencode-xdg"
|
||||
CODE_QUEUE_SOURCE_CODEX_CONFIG: "/root/.codex/config.toml"
|
||||
CODE_QUEUE_DEFAULT_MODEL: "gpt-5.5"
|
||||
CODE_QUEUE_MODELS: "gpt-5.5,gpt-5.4-mini,gpt-5.4,minimax-m2.7"
|
||||
CODE_QUEUE_MODEL_REASONING_EFFORTS: "gpt-5.5=xhigh"
|
||||
CODE_QUEUE_SANDBOX: "danger-full-access"
|
||||
CODE_QUEUE_APPROVAL_POLICY: "never"
|
||||
CODE_QUEUE_MAX_ATTEMPTS: "99"
|
||||
CODE_QUEUE_MAX_ACTIVE_QUEUES: "${UNIDESK_CODE_QUEUE_MAX_ACTIVE_QUEUES:-1}"
|
||||
NODE_OPTIONS: "${UNIDESK_CODE_QUEUE_NODE_OPTIONS:---max-old-space-size=768}"
|
||||
CODE_QUEUE_IN_MEMORY_OUTPUT_RECORDS: "${UNIDESK_CODE_QUEUE_IN_MEMORY_OUTPUT_RECORDS:-10}"
|
||||
CODE_QUEUE_IN_MEMORY_EVENT_RECORDS: "${UNIDESK_CODE_QUEUE_IN_MEMORY_EVENT_RECORDS:-10}"
|
||||
CODE_QUEUE_CODEX_SQLITE_LOG_EXPORT_BATCH_SIZE: "${UNIDESK_CODE_QUEUE_CODEX_SQLITE_LOG_EXPORT_BATCH_SIZE:-500}"
|
||||
CODE_QUEUE_MAIN_PROVIDER_ID: "main-server"
|
||||
CODE_QUEUE_REMOTE_WORKDIR: "${UNIDESK_CODE_QUEUE_REMOTE_WORKDIR:-/home/ubuntu}"
|
||||
CODE_QUEUE_EXECUTION_PROVIDER_IDS: "${UNIDESK_CODE_QUEUE_EXECUTION_PROVIDER_IDS:-D601}"
|
||||
CODE_QUEUE_DEV_CONTAINER_MASTER_HOST: "${UNIDESK_PUBLIC_HOST}"
|
||||
CODE_QUEUE_DEV_CONTAINER_DEFAULT_PROVIDER_ID: "${UNIDESK_CODE_QUEUE_DEV_CONTAINER_DEFAULT_PROVIDER_ID:-D601}"
|
||||
CODE_QUEUE_DEV_CONTAINER_IMAGE: "${UNIDESK_CODE_QUEUE_DEV_CONTAINER_IMAGE:-}"
|
||||
CODE_QUEUE_DEV_CONTAINER_WORKDIR: "${UNIDESK_CODE_QUEUE_DEV_CONTAINER_WORKDIR:-/home/ubuntu}"
|
||||
CODE_QUEUE_NOTIFY_CLAUDEQQ_ENABLED: "${UNIDESK_CODE_QUEUE_NOTIFY_CLAUDEQQ_ENABLED:-true}"
|
||||
CODE_QUEUE_NOTIFY_CLAUDEQQ_BASE_URL: "${UNIDESK_CODE_QUEUE_NOTIFY_CLAUDEQQ_BASE_URL:-http://backend-core:8080/api/microservices/claudeqq/proxy}"
|
||||
CODE_QUEUE_NOTIFY_CLAUDEQQ_TARGET_TYPE: "${UNIDESK_CODE_QUEUE_NOTIFY_CLAUDEQQ_TARGET_TYPE:-private}"
|
||||
CODE_QUEUE_NOTIFY_CLAUDEQQ_USER_ID: "${UNIDESK_CODE_QUEUE_NOTIFY_CLAUDEQQ_USER_ID:-645275593}"
|
||||
CODE_QUEUE_NOTIFY_CLAUDEQQ_GROUP_ID: "${UNIDESK_CODE_QUEUE_NOTIFY_CLAUDEQQ_GROUP_ID:-}"
|
||||
CODE_QUEUE_NOTIFY_CLAUDEQQ_MAX_RESPONSE_CHARS: "${UNIDESK_CODE_QUEUE_NOTIFY_CLAUDEQQ_MAX_RESPONSE_CHARS:-12000}"
|
||||
CODE_QUEUE_NOTIFY_CLAUDEQQ_TIMEOUT_MS: "${UNIDESK_CODE_QUEUE_NOTIFY_CLAUDEQQ_TIMEOUT_MS:-15000}"
|
||||
CODE_QUEUE_NOTIFY_CLAUDEQQ_SEND_ATTEMPTS: "${UNIDESK_CODE_QUEUE_NOTIFY_CLAUDEQQ_SEND_ATTEMPTS:-3}"
|
||||
OPENAI_API_KEY: "${OPENAI_API_KEY:-}"
|
||||
CRS_OAI_KEY: "${CRS_OAI_KEY:-}"
|
||||
MINIMAX_API_KEY: "${UNIDESK_CODEX_QUEUE_MINIMAX_API_KEY:-}"
|
||||
MINIMAX_API_BASE: "${UNIDESK_CODEX_QUEUE_MINIMAX_API_BASE:-https://api.minimaxi.com/v1}"
|
||||
MINIMAX_MODEL: "${UNIDESK_CODEX_QUEUE_MINIMAX_MODEL:-MiniMax-M2.7}"
|
||||
MINIMAX_JUDGE_TIMEOUT_MS: "${UNIDESK_CODEX_QUEUE_MINIMAX_JUDGE_TIMEOUT_MS:-60000}"
|
||||
MINIMAX_JUDGE_REPAIR_ATTEMPTS: "${UNIDESK_CODEX_QUEUE_MINIMAX_JUDGE_REPAIR_ATTEMPTS:-2}"
|
||||
LOG_FILE: "/var/log/unidesk/${UNIDESK_LOG_PREFIX}_codex-queue.jsonl"
|
||||
MINIMAX_API_KEY: "${UNIDESK_CODE_QUEUE_MINIMAX_API_KEY:-}"
|
||||
MINIMAX_API_BASE: "${UNIDESK_CODE_QUEUE_MINIMAX_API_BASE:-https://api.minimaxi.com/v1}"
|
||||
MINIMAX_MODEL: "${UNIDESK_CODE_QUEUE_MINIMAX_MODEL:-MiniMax-M2.7}"
|
||||
MINIMAX_JUDGE_TIMEOUT_MS: "${UNIDESK_CODE_QUEUE_MINIMAX_JUDGE_TIMEOUT_MS:-60000}"
|
||||
MINIMAX_JUDGE_REPAIR_ATTEMPTS: "${UNIDESK_CODE_QUEUE_MINIMAX_JUDGE_REPAIR_ATTEMPTS:-2}"
|
||||
LOG_FILE: "/var/log/unidesk/${UNIDESK_LOG_DAY}/${UNIDESK_LOG_PREFIX}_code-queue.jsonl"
|
||||
UNIDESK_LOG_RETENTION_BYTES: "${UNIDESK_LOG_RETENTION_BYTES:-1GiB}"
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- .:/root/unidesk
|
||||
@@ -148,7 +165,7 @@ services:
|
||||
- /root/.codex/config.toml:/root/.codex/config.toml:ro
|
||||
- ${UNIDESK_HOST_ROOT_SSH_DIR:-/root/.ssh}:/root/.ssh:ro
|
||||
- ${UNIDESK_LOG_DIR}:/var/log/unidesk
|
||||
- ./.state/codex-queue:/var/lib/unidesk/codex-queue
|
||||
- ./.state/code-queue:/var/lib/unidesk/code-queue
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
healthcheck:
|
||||
@@ -172,7 +189,8 @@ services:
|
||||
HOST: "0.0.0.0"
|
||||
PORT: "4233"
|
||||
DATABASE_URL: "postgres://${UNIDESK_DATABASE_USER}:${UNIDESK_DATABASE_PASSWORD}@database:5432/${UNIDESK_DATABASE_NAME}"
|
||||
LOG_FILE: "/var/log/unidesk/${UNIDESK_LOG_PREFIX}_project-manager.jsonl"
|
||||
LOG_FILE: "/var/log/unidesk/${UNIDESK_LOG_DAY}/${UNIDESK_LOG_PREFIX}_project-manager.jsonl"
|
||||
UNIDESK_LOG_RETENTION_BYTES: "${UNIDESK_LOG_RETENTION_BYTES:-1GiB}"
|
||||
volumes:
|
||||
- ${UNIDESK_LOG_DIR}:/var/log/unidesk
|
||||
healthcheck:
|
||||
@@ -181,6 +199,37 @@ services:
|
||||
timeout: 3s
|
||||
retries: 20
|
||||
|
||||
baidu-netdisk:
|
||||
image: baidu-netdisk
|
||||
build:
|
||||
context: .
|
||||
dockerfile: src/components/microservices/baidu-netdisk/Dockerfile
|
||||
container_name: baidu-netdisk-backend
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- database
|
||||
expose:
|
||||
- "4244"
|
||||
environment:
|
||||
HOST: "0.0.0.0"
|
||||
PORT: "4244"
|
||||
DATABASE_URL: "postgres://${UNIDESK_DATABASE_USER}:${UNIDESK_DATABASE_PASSWORD}@database:5432/${UNIDESK_DATABASE_NAME}"
|
||||
BAIDU_NETDISK_CLIENT_ID: "${UNIDESK_BAIDU_NETDISK_CLIENT_ID:-}"
|
||||
BAIDU_NETDISK_CLIENT_SECRET: "${UNIDESK_BAIDU_NETDISK_CLIENT_SECRET:-}"
|
||||
BAIDU_NETDISK_TOKEN_KEY: "${UNIDESK_BAIDU_NETDISK_TOKEN_KEY:-}"
|
||||
BAIDU_NETDISK_APP_ROOT: "${UNIDESK_BAIDU_NETDISK_APP_ROOT:-/apps/UniDeskBaiduNetdisk}"
|
||||
BAIDU_NETDISK_STAGING_DIR: "/data/staging"
|
||||
LOG_FILE: "/var/log/unidesk/${UNIDESK_LOG_DAY}/${UNIDESK_LOG_PREFIX}_baidu-netdisk.jsonl"
|
||||
UNIDESK_LOG_RETENTION_BYTES: "${UNIDESK_LOG_RETENTION_BYTES:-1GiB}"
|
||||
volumes:
|
||||
- ${UNIDESK_LOG_DIR}:/var/log/unidesk
|
||||
- ./.state/baidu-netdisk/staging:/data/staging
|
||||
healthcheck:
|
||||
test: ["CMD", "bun", "-e", "fetch('http://127.0.0.1:4244/health').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"]
|
||||
interval: 5s
|
||||
timeout: 3s
|
||||
retries: 20
|
||||
|
||||
frontend:
|
||||
build:
|
||||
context: .
|
||||
@@ -200,7 +249,8 @@ services:
|
||||
AUTH_PASSWORD: "${UNIDESK_AUTH_PASSWORD}"
|
||||
SESSION_SECRET: "${UNIDESK_SESSION_SECRET}"
|
||||
SESSION_TTL_SECONDS: "${UNIDESK_SESSION_TTL_SECONDS}"
|
||||
LOG_FILE: "/var/log/unidesk/${UNIDESK_LOG_PREFIX}_frontend.jsonl"
|
||||
LOG_FILE: "/var/log/unidesk/${UNIDESK_LOG_DAY}/${UNIDESK_LOG_PREFIX}_frontend.jsonl"
|
||||
UNIDESK_LOG_RETENTION_BYTES: "${UNIDESK_LOG_RETENTION_BYTES:-1GiB}"
|
||||
volumes:
|
||||
- ${UNIDESK_LOG_DIR}:/var/log/unidesk
|
||||
healthcheck:
|
||||
@@ -237,7 +287,8 @@ services:
|
||||
PROVIDER_UPGRADE_COMPOSE_PROJECT: "${UNIDESK_PROVIDER_UPGRADE_COMPOSE_PROJECT}"
|
||||
PROVIDER_UPGRADE_SERVICE: "${UNIDESK_PROVIDER_UPGRADE_SERVICE}"
|
||||
PROVIDER_UPGRADE_RUNNER_IMAGE: "${UNIDESK_PROVIDER_UPGRADE_RUNNER_IMAGE}"
|
||||
LOG_FILE: "/var/log/unidesk/${UNIDESK_LOG_PREFIX}_provider-gateway.jsonl"
|
||||
LOG_FILE: "/var/log/unidesk/${UNIDESK_LOG_DAY}/${UNIDESK_LOG_PREFIX}_provider-gateway.jsonl"
|
||||
UNIDESK_LOG_RETENTION_BYTES: "${UNIDESK_LOG_RETENTION_BYTES:-1GiB}"
|
||||
HOST_SSH_HOST: "${UNIDESK_HOST_SSH_HOST}"
|
||||
HOST_SSH_PORT: "${UNIDESK_HOST_SSH_PORT}"
|
||||
HOST_SSH_USER: "${UNIDESK_HOST_SSH_USER}"
|
||||
|
||||
Reference in New Issue
Block a user