A browser-based desktop-style workspace: draggable windows, taskbar, and small apps (Welcome, todos, calculator, minesweeper, file explorer, notepad, terminal).
- Node.js 20+
- MongoDB (local or Atlas), unless you use Docker Compose (Mongo is included there)
Copy .env.example to .env and set at least MONGODB_URI and AUTH_SECRET (32+ characters).
npm install
npm run devOpen http://localhost:3000.
WebSocket protocol summary: docs/websocket.md.
npm run build
npm startSigned-in sessions use a JWT stored in sessionStorage and sent over the app WebSocket (/api/ws). Use a strong AUTH_SECRET and consider a shorter SESSION_MAX_AGE_SEC in code if you need tighter session lifetime.
docker compose up -d --buildRequires AUTH_SECRET in .env next to docker-compose.yaml. The stack uses the bundled MongoDB URL by default.