
Cloud Workspace Platform
- React
- TypeScript
- Express
- Prisma
- PostgreSQL
- Redis
- BullMQ
- Docker
- Traefik
- AWS S3
Overview
A self-hosted alternative to cloud development environments: a control plane that hands each user their own containerized workspace with a real editor, and manages the full lifecycle — provisioning, idling, stopping, archiving, and restoring.
Highlights
- Per-user isolation enforced at the container boundary and routed by Traefik.
- Idle-timeout auto-stop via background workers reclaims compute without losing work.
- S3-backed persistence restores a workspace exactly where it left off, even after its container is gone.
- One API surface for create / list / start / stop / delete, with queue-driven orchestration behind it.
Architecture
Services
- Frontend — React + TypeScript + Tailwind.
- API — Express + TypeScript + Prisma, exposing the workspace control-plane endpoints.
- Worker — BullMQ + Redis processing asynchronous jobs (provision, stop, archive, restore).
- Proxy — Traefik routing subdomain-style URLs to the correct workspace container.
- Storage — PostgreSQL for metadata, Docker volumes for live sessions, AWS S3 for archives.
Lifecycle
- A create request writes workspace metadata and enqueues a provisioning job.
- The worker starts a
code-servercontainer with a per-workspace volume and registers routing. - An idle monitor enqueues a stop job; the container is torn down and its archive synced to S3.
- On the next request, the archive is pulled back and the container is recreated around it.
