Files
pikasTech-unidesk/config.json
T
Codex 80b98404a7 Allow Code Queue PUT proxy requests
(cherry picked from commit b78d2fe33ccdcc941d4e6a118acb459384986314)
2026-05-17 16:09:46 +00:00

830 lines
25 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.
{
"project": {
"name": "unidesk",
"timezone": "Etc/UTC"
},
"runtime": {
"typescript": "bun",
"bunVersion": "1.3.13"
},
"network": {
"host": "0.0.0.0",
"publicHost": "74.48.78.17",
"core": {
"port": 18080,
"containerPort": 8080
},
"frontend": {
"port": 18081,
"containerPort": 8080
},
"database": {
"port": 15432,
"containerPort": 5432
},
"providerIngress": {
"port": 18082,
"containerPort": 8081
},
"restrictedHostAccess": {
"bindHost": "0.0.0.0",
"allowedSourceCidrs": [
"36.49.30.105/32",
"59.72.97.73/32"
]
}
},
"database": {
"user": "unidesk",
"password": "unidesk_dev_password",
"name": "unidesk",
"volume": "unidesk_pgdata_10gb",
"volumeSize": "15GB"
},
"providerGateway": {
"id": "main-server",
"name": "Main Server Provider",
"token": "unidesk-dev-token-change-me",
"labels": {
"host": "main-server",
"role": "self-provider",
"docker": true
},
"heartbeatIntervalMs": 15000,
"reconnectBaseMs": 1000,
"reconnectMaxMs": 30000,
"metrics": {
"diskPath": "/"
},
"upgrade": {
"hostProjectRoot": "/root/unidesk",
"workspacePath": "/workspace",
"composeFile": "docker-compose.yml",
"composeEnvFile": ".state/docker-compose.env",
"composeProject": "unidesk",
"service": "provider-gateway",
"runnerImage": "unidesk_provider-gateway"
}
},
"docker": {
"composeFile": "docker-compose.yml",
"projectName": "unidesk"
},
"microservices": [
{
"id": "findjob",
"name": "FindJob",
"providerId": "D601",
"description": "FindJob 纯后端服务,部署在 D601 Docker 中,UniDesk frontend 负责统一前端展示。",
"repository": {
"url": "https://gitee.com/Lyon1998/findjob",
"commitId": "2d43212c5f474df5d87820985a6c75a8c2e7ac42",
"dockerfile": "Dockerfile",
"composeFile": "docker-compose.yml",
"composeService": "server",
"containerName": "findjob-server"
},
"backend": {
"nodeBaseUrl": "http://host.docker.internal:3254",
"nodeBindHost": "127.0.0.1",
"nodePort": 3254,
"proxyMode": "provider-gateway-http",
"frontendOnly": true,
"public": false,
"allowedPathPrefixes": [
"/api/"
],
"healthPath": "/api/health",
"timeoutMs": 12000,
"allowedMethods": [
"GET",
"HEAD"
]
},
"development": {
"providerId": "D601",
"sshPassthrough": true,
"worktreePath": "/home/ubuntu/findjob"
},
"frontend": {
"route": "/apps/findjob",
"integrated": true
},
"deployment": {
"mode": "unidesk-direct"
}
},
{
"id": "pipeline",
"name": "Pipeline v2",
"providerId": "D601",
"description": "Pipeline v2 观测后端部署在 D601 Docker 中,UniDesk frontend 负责渲染组件矩阵、运行状态、epoch 甘特图和运行材料索引。",
"repository": {
"url": "https://github.com/pikasTech/pipeline",
"commitId": "87811a8d43edf216a4f4d8efa55bbb96bad8df14",
"dockerfile": "Dockerfile",
"composeFile": "docker-compose.yml",
"composeService": "pipeline-control",
"containerName": "pipeline-v2-control"
},
"backend": {
"nodeBaseUrl": "http://host.docker.internal:18082",
"nodeBindHost": "127.0.0.1",
"nodePort": 18082,
"proxyMode": "provider-gateway-http",
"frontendOnly": true,
"public": false,
"allowedPathPrefixes": [
"/health",
"/api/",
"/oa/"
],
"healthPath": "/health",
"timeoutMs": 15000,
"allowedMethods": [
"GET",
"HEAD",
"POST"
]
},
"development": {
"providerId": "D601",
"sshPassthrough": true,
"worktreePath": "/home/ubuntu/pipeline"
},
"frontend": {
"route": "/apps/pipeline",
"integrated": true
},
"deployment": {
"mode": "unidesk-direct"
}
},
{
"id": "met-nonlinear",
"name": "MET Nonlinear",
"providerId": "D601",
"description": "MET Nonlinear 训练编排用户服务,TS 后端部署在 D601 Docker 中,按需拉起 TensorFlow 2.6 GPU 训练容器并由 UniDesk frontend 展示队列、进度和历史记录。",
"repository": {
"url": "https://github.com/pikasTech/met_nonlinear",
"commitId": "9fcdfc0b505e52cc88cf51b196543dc055da2334",
"dockerfile": "docker/unidesk/Dockerfile.ml",
"composeFile": "docker-compose.unidesk.yml",
"composeService": "met-nonlinear-ts",
"containerName": "met-nonlinear-ts"
},
"backend": {
"nodeBaseUrl": "http://host.docker.internal:3288",
"nodeBindHost": "127.0.0.1",
"nodePort": 3288,
"proxyMode": "provider-gateway-http",
"frontendOnly": true,
"public": false,
"allowedMethods": [
"GET",
"HEAD",
"POST",
"PUT"
],
"allowedPathPrefixes": [
"/health",
"/api/"
],
"healthPath": "/health",
"timeoutMs": 90000
},
"development": {
"providerId": "D601",
"sshPassthrough": true,
"worktreePath": "/home/ubuntu/met_nonlinear"
},
"frontend": {
"route": "/apps/met-nonlinear",
"integrated": true
},
"deployment": {
"mode": "unidesk-direct"
}
},
{
"id": "claudeqq",
"name": "ClaudeQQ",
"providerId": "D601",
"description": "ClaudeQQ 是由 D601 k3s 控制平面代管的 QQ 消息网关用户服务,为 UniDesk、主 server 和其他用户服务提供 QQ 消息事件订阅与消息推送 API。",
"repository": {
"url": "https://gitee.com/lyon1998/agent_skills",
"commitId": "203b1f46684c91340ecbbd8a74502bd55e4f2011",
"dockerfile": "claudeqq/Dockerfile",
"composeFile": "src/components/microservices/k3sctl-adapter/k3s/claudeqq.k3s.json",
"composeService": "claudeqq",
"containerName": "k3s:claudeqq"
},
"backend": {
"nodeBaseUrl": "k3s://claudeqq",
"nodeBindHost": "k3s://unidesk/claudeqq",
"nodePort": 3290,
"proxyMode": "k3sctl-adapter-http",
"frontendOnly": true,
"public": false,
"allowedMethods": [
"GET",
"HEAD",
"POST",
"DELETE"
],
"allowedPathPrefixes": [
"/health",
"/logs",
"/api/"
],
"healthPath": "/health",
"timeoutMs": 30000
},
"development": {
"providerId": "D601",
"sshPassthrough": true,
"worktreePath": "/home/ubuntu/.agents/skills/claudeqq"
},
"frontend": {
"route": "/apps/claudeqq",
"integrated": true
},
"deployment": {
"mode": "k3sctl-managed",
"adapterServiceId": "k3sctl-adapter",
"k3sServiceId": "claudeqq",
"namespace": "unidesk",
"expectedNodeIds": [
"D601"
],
"activeNodeId": "D601"
}
},
{
"id": "todo-note",
"name": "Todo Note",
"providerId": "main-server",
"description": "Todo Note 纯后端服务,从 D518 /mnt/d/work/todo_note 迁移到主 server Docker,使用 UniDesk PostgreSQL 存储,UniDesk frontend 负责统一前端展示。",
"repository": {
"url": "https://gitee.com/Lyon1998/todo_note",
"commitId": "a14ce0eb855a685fa17b47adacd54623e72cd2ff",
"dockerfile": "Dockerfile",
"composeFile": "docker-compose.yml",
"composeService": "todo-note",
"containerName": "todo-note-backend"
},
"backend": {
"nodeBaseUrl": "http://todo-note:4211",
"nodeBindHost": "todo-note",
"nodePort": 4211,
"proxyMode": "provider-gateway-http",
"frontendOnly": true,
"public": false,
"allowedMethods": [
"GET",
"HEAD",
"POST",
"DELETE"
],
"allowedPathPrefixes": [
"/api/"
],
"healthPath": "/api/health",
"timeoutMs": 12000
},
"development": {
"providerId": "main-server",
"sshPassthrough": true,
"worktreePath": "/root/todo_note"
},
"frontend": {
"route": "/apps/todo-note",
"integrated": true
},
"deployment": {
"mode": "unidesk-direct"
}
},
{
"id": "project-manager",
"name": "Project Manager",
"providerId": "main-server",
"description": "项目管理用户服务,部署在主 server Docker 中,使用 UniDesk PostgreSQL 保存合作项目清单,支持项目增删改查、Excel 导入和 Excel 导出。",
"repository": {
"url": "https://github.com/pikasTech/unidesk",
"commitId": "a278de032d5cdb91010466ac1e2183c79026550d",
"dockerfile": "src/components/microservices/project-manager/Dockerfile",
"composeFile": "docker-compose.yml",
"composeService": "project-manager",
"containerName": "project-manager-backend"
},
"backend": {
"nodeBaseUrl": "http://project-manager:4233",
"nodeBindHost": "project-manager",
"nodePort": 4233,
"proxyMode": "provider-gateway-http",
"frontendOnly": true,
"public": false,
"allowedMethods": [
"GET",
"HEAD",
"POST",
"PUT",
"DELETE"
],
"allowedPathPrefixes": [
"/health",
"/logs",
"/api/"
],
"healthPath": "/health",
"timeoutMs": 30000
},
"development": {
"providerId": "main-server",
"sshPassthrough": true,
"worktreePath": "/root/unidesk"
},
"frontend": {
"route": "/apps/project-manager",
"integrated": true
},
"deployment": {
"mode": "unidesk-direct"
}
},
{
"id": "baidu-netdisk",
"name": "Baidu Netdisk",
"providerId": "main-server",
"description": "容器化百度网盘存储用户服务,提供 OAuth 设备码登录、根目录浏览和 staging 目录上传下载任务。",
"repository": {
"url": "https://github.com/pikasTech/unidesk",
"commitId": "ae462ed9ef8057909fee9eabfadce5ed55e958a2",
"dockerfile": "src/components/microservices/baidu-netdisk/Dockerfile",
"composeFile": "docker-compose.yml",
"composeService": "baidu-netdisk",
"containerName": "baidu-netdisk-backend"
},
"backend": {
"nodeBaseUrl": "http://baidu-netdisk:4244",
"nodeBindHost": "baidu-netdisk",
"nodePort": 4244,
"proxyMode": "provider-gateway-http",
"frontendOnly": true,
"public": false,
"allowedMethods": [
"GET",
"HEAD",
"POST",
"DELETE"
],
"allowedPathPrefixes": [
"/health",
"/logs",
"/api/"
],
"healthPath": "/health",
"timeoutMs": 120000
},
"development": {
"providerId": "main-server",
"sshPassthrough": true,
"worktreePath": "/root/unidesk"
},
"frontend": {
"route": "/apps/baidu-netdisk",
"integrated": true
},
"deployment": {
"mode": "unidesk-direct"
}
},
{
"id": "filebrowser",
"name": "File Browser D518",
"providerId": "D518",
"description": "File Browser WebUI 用户服务,部署在 D518 WSL provider Docker 中,挂载 provider host / 到 /srv,包含 /mnt/c 等 Windows 盘符;主 server 不再运行 File Browser 容器以节省资源。",
"repository": {
"url": "https://github.com/filebrowser/filebrowser",
"commitId": "ca5e249e3c0c94159c2136a0cd431a424eb18472",
"dockerfile": "docker.io/filebrowser/filebrowser:v2.63.3",
"composeFile": "docker run --restart unless-stopped",
"composeService": "unidesk-filebrowser-d518",
"containerName": "unidesk-filebrowser-d518"
},
"backend": {
"nodeBaseUrl": "http://host.docker.internal:4251",
"nodeBindHost": "0.0.0.0",
"nodePort": 4251,
"proxyMode": "provider-gateway-http",
"frontendOnly": true,
"public": false,
"allowedMethods": [
"GET",
"HEAD",
"POST",
"PUT",
"PATCH",
"DELETE"
],
"allowedPathPrefixes": [
"/"
],
"healthPath": "/health",
"timeoutMs": 120000
},
"development": {
"providerId": "D518",
"sshPassthrough": true,
"worktreePath": "/"
},
"frontend": {
"route": "/apps/filebrowser",
"integrated": true
},
"deployment": {
"mode": "unidesk-direct"
}
},
{
"id": "filebrowser-d601",
"name": "File Browser D601",
"providerId": "D601",
"description": "File Browser WebUI 用户服务,部署在 D601 WSL provider Docker 中,挂载 provider host / 到 /srv,包含 /mnt/c 等 Windows 盘符。",
"repository": {
"url": "https://github.com/filebrowser/filebrowser",
"commitId": "ca5e249e3c0c94159c2136a0cd431a424eb18472",
"dockerfile": "docker.io/filebrowser/filebrowser:v2.63.3",
"composeFile": "docker run --restart unless-stopped",
"composeService": "unidesk-filebrowser-d601",
"containerName": "unidesk-filebrowser-d601"
},
"backend": {
"nodeBaseUrl": "http://host.docker.internal:4251",
"nodeBindHost": "127.0.0.1",
"nodePort": 4251,
"proxyMode": "provider-gateway-http",
"frontendOnly": true,
"public": false,
"allowedMethods": [
"GET",
"HEAD",
"POST",
"PUT",
"PATCH",
"DELETE"
],
"allowedPathPrefixes": [
"/"
],
"healthPath": "/health",
"timeoutMs": 120000
},
"development": {
"providerId": "D601",
"sshPassthrough": true,
"worktreePath": "/"
},
"frontend": {
"route": "/apps/filebrowser",
"integrated": true
},
"deployment": {
"mode": "unidesk-direct"
}
},
{
"id": "oa-event-flow",
"name": "OA Event Flow",
"providerId": "main-server",
"description": "统一 OA 事件流与统计中心用户服务,为 Code Queue 和 Pipeline 提供事件表、tag 订阅、Trace/STEP stats 投影和事件可见性页面。",
"repository": {
"url": "https://github.com/pikasTech/unidesk",
"commitId": "b36d7f94d7a7db9527ca823a98599106096b3c91",
"dockerfile": "src/components/microservices/oa-event-flow/Dockerfile",
"composeFile": "docker-compose.yml",
"composeService": "oa-event-flow",
"containerName": "oa-event-flow-backend"
},
"backend": {
"nodeBaseUrl": "http://oa-event-flow:4255",
"nodeBindHost": "oa-event-flow",
"nodePort": 4255,
"proxyMode": "provider-gateway-http",
"frontendOnly": true,
"public": false,
"allowedMethods": [
"GET",
"HEAD",
"POST"
],
"allowedPathPrefixes": [
"/health",
"/logs",
"/api/"
],
"healthPath": "/health",
"timeoutMs": 30000
},
"development": {
"providerId": "main-server",
"sshPassthrough": true,
"worktreePath": "/root/unidesk"
},
"frontend": {
"route": "/apps/oa-event-flow",
"integrated": true
},
"deployment": {
"mode": "unidesk-direct"
}
},
{
"id": "k3sctl-adapter",
"name": "k3s Control Plane",
"providerId": "D601",
"description": "k3sctl-adapter 是 UniDesk 直管的 k3s 控制平面适配微服务,连接 D601 原生 k3s/k3sctl 控制平面,并通过 k3s 标准服务路由代理 D601 上的代管微服务。",
"repository": {
"url": "https://github.com/pikasTech/unidesk",
"commitId": "4d9eed65132f158b2323b128aabed5613cb15627",
"dockerfile": "src/components/microservices/k3sctl-adapter/Dockerfile",
"composeFile": "src/components/microservices/k3sctl-adapter/docker-compose.d601.yml",
"composeService": "k3sctl-adapter",
"containerName": "k3sctl-adapter"
},
"backend": {
"nodeBaseUrl": "http://host.docker.internal:4266",
"nodeBindHost": "127.0.0.1",
"nodePort": 4266,
"proxyMode": "provider-gateway-http",
"frontendOnly": true,
"public": false,
"allowedMethods": [
"GET",
"HEAD",
"POST",
"DELETE",
"PUT",
"PATCH"
],
"allowedPathPrefixes": [
"/health",
"/logs",
"/api/"
],
"healthPath": "/health",
"timeoutMs": 30000
},
"deployment": {
"mode": "unidesk-direct"
},
"development": {
"providerId": "D601",
"sshPassthrough": true,
"worktreePath": "/home/ubuntu/cq-deploy"
},
"frontend": {
"route": "/apps/k3sctl",
"integrated": true
}
},
{
"id": "code-queue",
"name": "Code Queue",
"providerId": "D601",
"description": "Code Queue 的用户服务 ID 保持稳定;队列管理、提交、历史和轻量 Trace 读取默认由主 server code-queue-mgr 直管 PostgreSQLD601 k3s Code Queue 只负责 scheduler/runner、active run steer/interrupt 和执行态写回。",
"repository": {
"url": "https://github.com/pikasTech/unidesk",
"commitId": "2a9f60d57401bf9d6165e44af30c2f21ada79320",
"dockerfile": "src/components/microservices/code-queue/Dockerfile",
"composeFile": "src/components/microservices/k3sctl-adapter/k3s/code-queue.k3s.json",
"composeService": "code-queue",
"containerName": "k3s:code-queue"
},
"backend": {
"nodeBaseUrl": "k3s://code-queue",
"nodeBindHost": "k3s://unidesk/code-queue",
"nodePort": 4222,
"proxyMode": "k3sctl-adapter-http",
"frontendOnly": true,
"public": false,
"allowedMethods": [
"GET",
"HEAD",
"POST",
"DELETE",
"PATCH"
],
"allowedPathPrefixes": [
"/health",
"/logs",
"/api/"
],
"healthPath": "/health",
"timeoutMs": 30000
},
"development": {
"providerId": "D601",
"sshPassthrough": true,
"worktreePath": "/home/ubuntu/unidesk-code-queue-deploy"
},
"frontend": {
"route": "/apps/code-queue",
"integrated": true
},
"deployment": {
"mode": "k3sctl-managed",
"adapterServiceId": "k3sctl-adapter",
"k3sServiceId": "code-queue",
"namespace": "unidesk",
"expectedNodeIds": [
"D601"
],
"activeNodeId": "D601"
}
},
{
"id": "code-queue-mgr",
"name": "Code Queue Manager",
"providerId": "main-server",
"description": "code-queue-mgr 是主 server 直管的轻量 Code Queue 控制面,只连接主 PostgreSQL,负责队列 CRUD、任务提交、历史摘要和轻量 Trace 读取;不包含 Codex/OpenCode/Playwright/Chromium/runner 依赖。",
"repository": {
"url": "https://github.com/pikasTech/unidesk",
"commitId": "local",
"dockerfile": "src/components/microservices/code-queue-mgr/Dockerfile",
"composeFile": "docker-compose.yml",
"composeService": "code-queue-mgr",
"containerName": "code-queue-mgr-backend"
},
"backend": {
"nodeBaseUrl": "http://code-queue-mgr:4278",
"nodeBindHost": "code-queue-mgr",
"nodePort": 4278,
"proxyMode": "unidesk-direct",
"frontendOnly": true,
"public": false,
"allowedMethods": [
"GET",
"HEAD",
"POST",
"PUT",
"PATCH",
"DELETE"
],
"allowedPathPrefixes": [
"/health",
"/live",
"/logs",
"/api/"
],
"healthPath": "/health",
"timeoutMs": 10000
},
"deployment": {
"mode": "internal-sidecar"
},
"development": {
"providerId": "main-server",
"sshPassthrough": false,
"worktreePath": "/root/unidesk/src/components/microservices/code-queue-mgr"
},
"frontend": {
"route": "/apps/code-queue-mgr",
"integrated": false
}
},
{
"id": "mdtodo",
"name": "MDTODO",
"providerId": "D601",
"description": "MDTODO 是由 D601 k3s 控制面代管的 Markdown TODO 后端,读取原 F:\\Work\\vscode-mdtodo 工作区,UniDesk frontend 负责统一任务树、编辑和状态展示。",
"repository": {
"url": "https://github.com/pikasTech/unidesk",
"commitId": "local",
"dockerfile": "src/components/microservices/mdtodo/Dockerfile",
"composeFile": "src/components/microservices/k3sctl-adapter/k3s/mdtodo.k3s.json",
"composeService": "mdtodo",
"containerName": "k3s:mdtodo"
},
"backend": {
"nodeBaseUrl": "k3s://mdtodo",
"nodeBindHost": "k3s://unidesk/mdtodo",
"nodePort": 4267,
"proxyMode": "k3sctl-adapter-http",
"frontendOnly": true,
"public": false,
"allowedMethods": [
"GET",
"HEAD",
"POST",
"PUT",
"PATCH",
"DELETE"
],
"allowedPathPrefixes": [
"/health",
"/live",
"/logs",
"/api/"
],
"healthPath": "/health",
"timeoutMs": 30000
},
"development": {
"providerId": "D601",
"sshPassthrough": true,
"worktreePath": "/home/ubuntu/cq-deploy/src/components/microservices/mdtodo"
},
"frontend": {
"route": "/apps/mdtodo",
"integrated": true
},
"deployment": {
"mode": "k3sctl-managed",
"adapterServiceId": "k3sctl-adapter",
"k3sServiceId": "mdtodo",
"namespace": "unidesk",
"expectedNodeIds": [
"D601"
],
"activeNodeId": "D601"
}
},
{
"id": "decision-center",
"name": "Decision Center",
"providerId": "D601",
"description": "Decision Center 是由 D601 k3s 控制面代管的决策权威记录服务,用于沉淀会议记录、决议、目标、问题分级、停放事项和证据;参谋对话仍使用 Codex 原生会话。",
"repository": {
"url": "https://github.com/pikasTech/unidesk",
"commitId": "f4787a8cf0ddb9a773c05d86ea3dca5e8d93bd35",
"dockerfile": "src/components/microservices/decision-center/Dockerfile",
"composeFile": "src/components/microservices/k3sctl-adapter/k3s/decision-center.k3s.json",
"composeService": "decision-center",
"containerName": "k3s:decision-center"
},
"backend": {
"nodeBaseUrl": "k3s://decision-center",
"nodeBindHost": "k3s://unidesk/decision-center",
"nodePort": 4277,
"proxyMode": "k3sctl-adapter-http",
"frontendOnly": true,
"public": false,
"allowedMethods": [
"GET",
"HEAD",
"POST",
"PUT",
"DELETE"
],
"allowedPathPrefixes": [
"/health",
"/live",
"/logs",
"/api/"
],
"healthPath": "/health",
"timeoutMs": 30000
},
"development": {
"providerId": "D601",
"sshPassthrough": true,
"worktreePath": "/home/ubuntu/cq-deploy/src/components/microservices/decision-center"
},
"frontend": {
"route": "/apps/decision-center",
"integrated": true
},
"deployment": {
"mode": "k3sctl-managed",
"adapterServiceId": "k3sctl-adapter",
"k3sServiceId": "decision-center",
"namespace": "unidesk",
"expectedNodeIds": [
"D601"
],
"activeNodeId": "D601"
}
}
],
"paths": {
"stateDir": ".state",
"logsDir": "logs",
"docsReferenceDir": "docs/reference"
},
"sshForwarding": {
"mode": "optional-maintenance-only",
"keyDir": "/root/.unidesk/host-ssh",
"host": "host.docker.internal",
"port": 22,
"user": "root"
},
"auth": {
"username": "admin",
"password": "Liang6516.",
"sessionSecret": "unidesk-dev-session-secret-change-me",
"sessionTtlSeconds": 86400
}
}