2.4 KiB
2.4 KiB
2026-03-15 – Dev routing + status exposure
Summary
Work focused on the dev-container path for code-server and the frontend/API state gap.
Completed
API / routing
- Added dev-only routing hook during provisioning
- Reused existing Cloudflare + Technitium record creation for dev containers
- Added Traefik dynamic file creation for dev containers
- Kept existing game publish flow untouched
- Remote Traefik writes now use SSH service account model
- Added
zlhSSH user path for proxy writes
Agent / runtime validation
- Confirmed code-server artifact was the correct compiled release artifact
- Confirmed code-server installs correctly inside dev containers
- Confirmed code-server process launches successfully
- Confirmed code-server binds to
0.0.0.0:6000 - Confirmed agent remains on
:18888
API / frontend status
- Added API endpoint(s) to expose polled agent status back to frontend
- Frontend host/console status now updates correctly from API state
- Console availability issue was frontend/API state exposure, not PTY transport
Important confirmations
Code-server process
Observed process:
/opt/zlh/services/code-server/lib/node /opt/zlh/services/code-server \
--bind-addr 0.0.0.0:6000 \
--auth password \
/home/dev/workspace
This confirmed earlier confusion — ss showed the process as node because
code-server runs on Node internally. The process is code-server, not a
conflicting Node runtime process.
Proxy/service path
Confirmed working pieces:
- Traefik loads dev dynamic file
- Traefik router and service are created
- backend target resolves to container IP on
:6000 - API can write remote Traefik config via SSH automation
- internal/private-network checks from proxy side pass as expected
Current blocker
External browser access to:
https://dev-6062.zerolaghub.dev
is still not complete.
State at end of session:
- Traefik route exists
- backend service exists
- code-server runs inside container
- frontend/API status path is fixed
- browser still fails externally with connection-closed / blocked-origin behavior
This remains an explicit open thread and should not be treated as solved.
Notes
- Hostname format must remain consistent (
dev-<vmid>) - Game publish flow must remain untouched
- Dev routing is additive only
- Proxy SSH must remain service-account based (
zlh)