{ "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 } }, "database": { "user": "unidesk", "password": "unidesk_dev_password", "name": "unidesk", "volume": "unidesk_pgdata_10gb", "volumeSize": "10GB" }, "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 } }, { "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/" ], "healthPath": "/health", "timeoutMs": 15000, "allowedMethods": [ "GET", "HEAD", "POST" ] }, "development": { "providerId": "D601", "sshPassthrough": true, "worktreePath": "/home/ubuntu/pipeline" }, "frontend": { "route": "/apps/pipeline", "integrated": true } }, { "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 } }, { "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 } }, { "id": "codex-queue", "name": "Codex Queue", "providerId": "main-server", "description": "Codex Queue 是主 server 承载的 Codex app-server 编排微服务,用于串行任务队列、运行中输出、追加 prompt、打断会话、异常中断判定和自动重试。", "repository": { "url": "https://github.com/pikasTech/unidesk", "commitId": "2aaf0447a62c336f3a488d77516edbf05ff1d742", "dockerfile": "src/components/microservices/codex-queue/Dockerfile", "composeFile": "docker-compose.yml", "composeService": "codex-queue", "containerName": "codex-queue-backend" }, "backend": { "nodeBaseUrl": "http://codex-queue:4222", "nodeBindHost": "codex-queue", "nodePort": 4222, "proxyMode": "provider-gateway-http", "frontendOnly": true, "public": false, "allowedMethods": [ "GET", "HEAD", "POST", "DELETE" ], "allowedPathPrefixes": [ "/health", "/logs", "/api/" ], "healthPath": "/health", "timeoutMs": 30000 }, "development": { "providerId": "main-server", "sshPassthrough": true, "worktreePath": "/root/unidesk" }, "frontend": { "route": "/apps/codex-queue", "integrated": true } } ], "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 } }