manifestVersion: v1 environment: dev namespace: hwlab-dev endpoint: http://74.48.78.17:16667 health: method: GET path: /health/live responseFormat: json publicEndpoints: frontend: url: http://74.48.78.17:16666 protocol: http host: 74.48.78.17 port: 16666 serviceId: hwlab-cloud-web frpProxy: hwlab-dev-cloud-web api: url: http://74.48.78.17:16667 protocol: http host: 74.48.78.17 port: 16667 serviceId: hwlab-edge-proxy frpProxy: hwlab-dev-edge-proxy frp: server: address: 74.48.78.17 bindPort: 7000 proxies: - name: hwlab-dev-cloud-web endpointId: frontend type: tcp localServiceId: hwlab-cloud-web localHost: hwlab-cloud-web.hwlab-dev.svc.cluster.local localPort: 8080 remotePort: 16666 - name: hwlab-dev-edge-proxy endpointId: api type: tcp localServiceId: hwlab-edge-proxy localHost: hwlab-edge-proxy.hwlab-dev.svc.cluster.local localPort: 6667 remotePort: 16667 k3s: serviceMappings: - serviceId: hwlab-cloud-api name: hwlab-cloud-api namespace: hwlab-dev port: 6667 targetPort: http - serviceId: hwlab-cloud-web name: hwlab-cloud-web namespace: hwlab-dev port: 8080 targetPort: http - serviceId: hwlab-gateway name: hwlab-gateway namespace: hwlab-dev port: 7001 targetPort: http - serviceId: hwlab-agent-skills name: hwlab-agent-skills namespace: hwlab-dev port: 7430 targetPort: http - serviceId: hwlab-edge-proxy name: hwlab-edge-proxy namespace: hwlab-dev port: 6667 targetPort: http profiles: dev: name: dev enabled: true namespace: hwlab-dev endpoint: http://74.48.78.17:16667 notes: DEV-only k3s deployment skeleton. D601 reaches the master edge through frp reverse tunnel. prod: name: prod enabled: false namespace: hwlab-prod notes: Reserved placeholder only. PROD deployment and acceptance are explicitly out of scope. nodes: G14: gitopsRoot: deploy/gitops/g14 sourceRepo: git@github.com:pikasTech/HWLAB.git publicHost: 74.48.78.17 lanes: v02: name: v0.2 node: G14 sourceBranch: v0.2 gitopsBranch: v0.2-gitops namespace: hwlab-v02 endpoint: https://hwlab.74-48-78-17.nip.io publicEndpoints: frontend: https://hwlab.74-48-78-17.nip.io api: https://hwlab.74-48-78-17.nip.io legacyFrontend: http://74.48.78.17:19666 legacyApi: http://74.48.78.17:19667 artifactCatalog: deploy/artifact-catalog.v02.json runtimePath: runtime-v02 imageTagMode: full envReuseServices: - hwlab-cloud-api - hwlab-cloud-web - hwlab-gateway - hwlab-edge-proxy - hwlab-agent-skills bootScripts: hwlab-cloud-api: deploy/runtime/boot/hwlab-cloud-api.sh hwlab-cloud-web: deploy/runtime/boot/hwlab-cloud-web.sh hwlab-gateway: deploy/runtime/boot/hwlab-gateway.sh hwlab-edge-proxy: deploy/runtime/boot/hwlab-edge-proxy.sh hwlab-agent-skills: deploy/runtime/boot/hwlab-agent-skills.sh serviceDeclarations: hwlab-cloud-api: runtimeKind: bun-command entrypoint: cmd/hwlab-cloud-api/main.ts artifactKind: bun-command healthPath: /health/live healthPort: 6667 componentPaths: - cmd/hwlab-cloud-api/ - cmd/hwlab-codex-api-responses-forwarder/ - cmd/hwlab-deepseek-responses-bridge/ - deploy/runtime/boot/hwlab-codex-api-responses-forwarder.sh - deploy/runtime/boot/hwlab-deepseek-responses-bridge.sh - internal/cloud/ - internal/db/ - internal/audit/ - internal/agent/agentrun-dispatch.mjs - internal/agent/prompts/ - skills/hwlab-agent-runtime/ env: {} observable: true hwlab-cloud-web: runtimeKind: cloud-web entrypoint: web/hwlab-cloud-web/index.html artifactKind: cloud-web healthPath: /health/live healthPort: 8080 componentPaths: - web/hwlab-cloud-web/ - internal/dev-entrypoint/cloud-web-runtime.mjs - internal/dev-entrypoint/cloud-web-proxy.mjs - internal/dev-entrypoint/cloud-web-routes.mjs - tools/src/hwlab-cli/trace-renderer.ts env: {} observable: true hwlab-gateway: runtimeKind: bun-command entrypoint: cmd/hwlab-gateway/main.ts artifactKind: bun-command healthPath: /health/live healthPort: 7001 componentPaths: - cmd/hwlab-gateway/ - internal/sim/ env: {} observable: false hwlab-edge-proxy: runtimeKind: bun-command entrypoint: cmd/hwlab-edge-proxy/main.ts artifactKind: bun-command healthPath: /health healthPort: 6667 componentPaths: - cmd/hwlab-edge-proxy/ - internal/dev-entrypoint/http.mjs env: {} observable: true hwlab-agent-skills: runtimeKind: skills-bundle entrypoint: skills/hwlab-agent-runtime/SKILL.md artifactKind: skills-bundle healthPath: /health/live healthPort: 7430 componentPaths: - skills/ env: {} observable: true envRecipe: osPackages: - ca-certificates - git bunVersion: 1.3.13 downloadStack: httpProxy: http://127.0.0.1:10808 httpsProxy: http://127.0.0.1:10808 noProxy: - 127.0.0.1 - localhost - ::1 - hyueapi.com - .hyueapi.com npmRegistry: https://registry.npmjs.org/ npmFetchTimeoutMs: 300000 bunPackages: x64: '@oven/bun-linux-x64' arm64: '@oven/bun-linux-aarch64' launcherPath: deploy/runtime/launcher/hwlab-env-reuse-launcher.ts runtimeNodeModulesPath: /opt/hwlab-env/node_modules additionalEnvPaths: - internal/dev-entrypoint/artifact-runtime.mjs - scripts/artifact-publish.mjs - scripts/g14-artifact-publish.mjs - scripts/src/dev-artifact-services.mjs hwpodAliases: - command: hwpod script: tools/hwpod-cli.ts - command: hwpod-ctl script: tools/hwpod-ctl.ts - command: hwpod-compiler script: tools/hwpod-compiler-cli.ts bootConfig: template: default overrides: {} services: - serviceId: hwlab-cloud-api env: HWLAB_CLOUD_DB_URL: secretRef:hwlab-cloud-api-v02-db/database-url HWLAB_CLOUD_DB_CONTRACT: v02-redacted-presence-only HWLAB_ACCESS_CONTROL_REQUIRED: "1" HWLAB_BOOTSTRAP_ADMIN_ID: usr_v02_admin HWLAB_BOOTSTRAP_ADMIN_USERNAME: admin HWLAB_BOOTSTRAP_ADMIN_DISPLAY_NAME: HWLAB v0.2 Admin HWLAB_BOOTSTRAP_ADMIN_PASSWORD_HASH: secretRef:hwlab-v02-bootstrap-admin/password-hash HWLAB_BOOTSTRAP_ADMIN_API_KEY_ID: key_master_server_admin HWLAB_BOOTSTRAP_ADMIN_API_KEY: secretRef:hwlab-v02-master-server-admin-api-key/api-key HWLAB_KEYCLOAK_ISSUER: https://auth.74-48-78-17.nip.io/realms/hwlab HWLAB_KEYCLOAK_CLIENT_ID: hwlab-cloud-web HWLAB_KEYCLOAK_CLIENT_SECRET: secretRef:hwlab-cloud-web-client/client-secret HWLAB_CODE_AGENT_ADAPTER: agentrun-v01 AGENTRUN_MGR_URL: http://agentrun-mgr.agentrun-v01.svc.cluster.local:8080 HWLAB_CODE_AGENT_AGENTRUN_PROVIDER_ID: G14 HWLAB_CODE_AGENT_AGENTRUN_RUNNER_NAMESPACE: agentrun-v01 HWLAB_CODE_AGENT_AGENTRUN_SECRET_NAMESPACE: agentrun-v01 HWLAB_CODE_AGENT_AGENTRUN_REPO_URL: http://git-mirror-http.devops-infra.svc.cluster.local/pikasTech/HWLAB.git v03: name: v0.3 node: G14 sourceBranch: v0.3 gitopsBranch: v0.3-gitops namespace: hwlab-v03 endpoint: https://hwlab-v03.74-48-78-17.nip.io publicEndpoints: frontend: https://hwlab-v03.74-48-78-17.nip.io api: https://hwlab-v03.74-48-78-17.nip.io legacyFrontend: http://74.48.78.17:19766 legacyApi: http://74.48.78.17:19767 artifactCatalog: deploy/artifact-catalog.v03.json runtimePath: runtime-v03 imageTagMode: full envReuseServices: - hwlab-cloud-api - hwlab-cloud-web - hwlab-gateway - hwlab-edge-proxy - hwlab-agent-skills bootScripts: hwlab-cloud-api: deploy/runtime/boot/hwlab-cloud-api.sh hwlab-cloud-web: deploy/runtime/boot/hwlab-cloud-web.sh hwlab-gateway: deploy/runtime/boot/hwlab-gateway.sh hwlab-edge-proxy: deploy/runtime/boot/hwlab-edge-proxy.sh hwlab-agent-skills: deploy/runtime/boot/hwlab-agent-skills.sh serviceDeclarations: hwlab-cloud-api: runtimeKind: bun-command entrypoint: cmd/hwlab-cloud-api/main.ts artifactKind: bun-command healthPath: /health/live healthPort: 6667 componentPaths: - cmd/hwlab-cloud-api/ - cmd/hwlab-codex-api-responses-forwarder/ - cmd/hwlab-deepseek-responses-bridge/ - deploy/runtime/boot/hwlab-codex-api-responses-forwarder.sh - deploy/runtime/boot/hwlab-deepseek-responses-bridge.sh - internal/cloud/ - internal/db/ - internal/audit/ - internal/agent/agentrun-dispatch.mjs - internal/agent/prompts/ - skills/hwlab-agent-runtime/ env: {} observable: true hwlab-cloud-web: runtimeKind: cloud-web entrypoint: web/hwlab-cloud-web/index.html artifactKind: cloud-web healthPath: /health/live healthPort: 8080 componentPaths: - web/hwlab-cloud-web/ - internal/dev-entrypoint/cloud-web-runtime.mjs - internal/dev-entrypoint/cloud-web-proxy.mjs - internal/dev-entrypoint/cloud-web-routes.mjs - tools/src/hwlab-cli/trace-renderer.ts env: {} observable: true hwlab-gateway: runtimeKind: bun-command entrypoint: cmd/hwlab-gateway/main.ts artifactKind: bun-command healthPath: /health/live healthPort: 7001 componentPaths: - cmd/hwlab-gateway/ - internal/sim/ env: {} observable: false hwlab-edge-proxy: runtimeKind: bun-command entrypoint: cmd/hwlab-edge-proxy/main.ts artifactKind: bun-command healthPath: /health healthPort: 6667 componentPaths: - cmd/hwlab-edge-proxy/ - internal/dev-entrypoint/http.mjs env: {} observable: true hwlab-agent-skills: runtimeKind: skills-bundle entrypoint: skills/hwlab-agent-runtime/SKILL.md artifactKind: skills-bundle healthPath: /health/live healthPort: 7430 componentPaths: - skills/ env: {} observable: true envRecipe: osPackages: - ca-certificates - git bunVersion: 1.3.13 downloadStack: httpProxy: http://127.0.0.1:10808 httpsProxy: http://127.0.0.1:10808 noProxy: - 127.0.0.1 - localhost - ::1 - hyueapi.com - .hyueapi.com npmRegistry: https://registry.npmjs.org/ npmFetchTimeoutMs: 300000 bunPackages: x64: '@oven/bun-linux-x64' arm64: '@oven/bun-linux-aarch64' launcherPath: deploy/runtime/launcher/hwlab-env-reuse-launcher.ts runtimeNodeModulesPath: /opt/hwlab-env/node_modules additionalEnvPaths: - internal/dev-entrypoint/artifact-runtime.mjs - scripts/artifact-publish.mjs - scripts/g14-artifact-publish.mjs - scripts/src/dev-artifact-services.mjs hwpodAliases: - command: hwpod script: tools/hwpod-cli.ts - command: hwpod-ctl script: tools/hwpod-ctl.ts - command: hwpod-compiler script: tools/hwpod-compiler-cli.ts bootConfig: template: default overrides: {} services: - serviceId: hwlab-cloud-api env: HWLAB_CLOUD_DB_URL: secretRef:hwlab-cloud-api-v03-db/database-url HWLAB_CLOUD_DB_CONTRACT: v03-redacted-presence-only HWLAB_ACCESS_CONTROL_REQUIRED: "1" HWLAB_BOOTSTRAP_ADMIN_ID: usr_v03_admin HWLAB_BOOTSTRAP_ADMIN_USERNAME: admin HWLAB_BOOTSTRAP_ADMIN_DISPLAY_NAME: HWLAB v0.3 Admin HWLAB_BOOTSTRAP_ADMIN_PASSWORD_HASH: secretRef:hwlab-v03-bootstrap-admin/password-hash HWLAB_BOOTSTRAP_ADMIN_API_KEY_ID: key_master_server_admin HWLAB_BOOTSTRAP_ADMIN_API_KEY: secretRef:hwlab-v03-master-server-admin-api-key/api-key HWLAB_KEYCLOAK_ISSUER: https://auth.74-48-78-17.nip.io/realms/hwlab HWLAB_KEYCLOAK_CLIENT_ID: hwlab-cloud-web HWLAB_KEYCLOAK_CLIENT_SECRET: secretRef:hwlab-cloud-web-client/client-secret HWLAB_CODE_AGENT_ADAPTER: agentrun-v01 AGENTRUN_MGR_URL: http://agentrun-mgr.agentrun-v01.svc.cluster.local:8080 HWLAB_CODE_AGENT_AGENTRUN_PROVIDER_ID: G14 HWLAB_CODE_AGENT_AGENTRUN_RUNNER_NAMESPACE: agentrun-v01 HWLAB_CODE_AGENT_AGENTRUN_SECRET_NAMESPACE: agentrun-v01 HWLAB_CODE_AGENT_AGENTRUN_REPO_URL: http://git-mirror-http.devops-infra.svc.cluster.local/pikasTech/HWLAB.git services: - serviceId: hwlab-cloud-api namespace: hwlab-dev healthPath: /health/live profile: dev replicas: 1 env: HWLAB_ENVIRONMENT: dev HWLAB_PUBLIC_ENDPOINT: http://74.48.78.17:16667 HWLAB_CLOUD_API_PORT: "6667" HWLAB_RUNTIME_SUBSTITUTE_FORBIDDEN: unidesk-backend,provider-gateway,microservice-proxy HWLAB_CLOUD_DB_URL: secretRef:hwlab-cloud-api-dev-db/database-url HWLAB_CLOUD_DB_SSL_MODE: disable HWLAB_CLOUD_DB_CONTRACT: dev-redacted-presence-only HWLAB_CLOUD_RUNTIME_ADAPTER: postgres HWLAB_CLOUD_RUNTIME_DURABLE: "true" HWLAB_M3_IO_CONTROL_ENABLED: "false" HWLAB_CODE_AGENT_PROVIDER: codex-stdio HWLAB_CODE_AGENT_MODEL: gpt-5.5 HWLAB_CODE_AGENT_TIMEOUT_MS: "1200000" HWLAB_CODE_AGENT_OPENAI_BASE_URL: http://127.0.0.1:49280/responses HWLAB_CODE_AGENT_CODEX_STDIO_ENABLED: "1" HWLAB_CODE_AGENT_CODEX_STDIO_SUPERVISOR: repo-owned HWLAB_CODE_AGENT_WORKSPACE: /workspace/hwlab HWLAB_CODE_AGENT_CODEX_WORKSPACE: /workspace/hwlab HWLAB_CODE_AGENT_CODEX_SANDBOX: danger-full-access HWLAB_CODE_AGENT_CODEX_COMMAND: /app/node_modules/.bin/codex CODEX_HOME: /codex-home NO_PROXY: hyueapi.com,.hyueapi.com,hyui.com,.hyui.com,127.0.0.1,localhost,::1,api.minimaxi.com,.minimaxi.com no_proxy: hyueapi.com,.hyueapi.com,hyui.com,.hyui.com,127.0.0.1,localhost,::1,api.minimaxi.com,.minimaxi.com OPENAI_API_KEY: secretRef:hwlab-code-agent-provider/openai-api-key HWLAB_CODE_AGENT_SKILLS_DIRS: /app/skills:/data/user-skills HWLAB_PREINSTALLED_SKILLS_DIR: /app/skills HWLAB_USER_SKILLS_DIR: /data/user-skills HWLAB_CODE_AGENT_DEFAULT_PROVIDER_PROFILE: deepseek HWLAB_CODE_AGENT_DEEPSEEK_MODEL: deepseek-chat HWLAB_CODE_AGENT_DEEPSEEK_BASE_URL: http://hwlab-deepseek-proxy.hwlab-dev.svc.cluster.local:4000/v1/responses HWLAB_CODE_AGENT_CODEX_API_MODEL: gpt-5.5 HWLAB_CODE_AGENT_CODEX_API_BASE_URL: http://127.0.0.1:49280/responses HWLAB_CODE_AGENT_CODEX_API_UPSTREAM_BASE_URL: https://hyueapi.com HWLAB_CODE_AGENT_CODEX_API_FORWARDER_PORT: "49280" - serviceId: hwlab-cloud-web namespace: hwlab-dev healthPath: /health/live profile: dev replicas: 1 env: HWLAB_ENVIRONMENT: dev HWLAB_API_BASE_URL: http://hwlab-cloud-api.hwlab-dev.svc.cluster.local:6667 HWLAB_CLOUD_WEB_PROXY_TIMEOUT_MS: "1260000" - serviceId: hwlab-gateway namespace: hwlab-dev healthPath: /health/live profile: dev replicas: 0 env: HWLAB_GATEWAY_MODE: hardware-boundary HWLAB_ENVIRONMENT: dev - serviceId: hwlab-edge-proxy namespace: hwlab-dev healthPath: /health/live profile: dev replicas: 1 env: HWLAB_EDGE_LISTEN: 0.0.0.0:6667 HWLAB_EDGE_UPSTREAM: http://hwlab-cloud-api.hwlab-dev.svc.cluster.local:6667 HWLAB_EDGE_PROXY_TIMEOUT_MS: "1260000" - serviceId: hwlab-agent-skills namespace: hwlab-dev healthPath: /health/live profile: dev replicas: 1 env: {} createdAt: 2026-05-21T00:00:00Z