Web-based control interface for live video streaming with cellular bonding. Built with Svelte 5 (frontend) and Bun (backend).
pnpm install
pnpm devOpens at http://localhost:5173. Backend runs on port 3001.
CeraUI/
├── apps/
│ ├── frontend/ # Svelte 5 PWA
│ └── backend/ # Bun/TypeScript server
├── packages/
│ ├── rpc/ # Shared RPC schemas
│ └── i18n/ # Internationalization (10 languages)
└── docs/ # Documentation
| Command | Description |
|---|---|
pnpm dev |
Start frontend + backend with mprocs TUI |
pnpm build |
Build for production |
pnpm frontend:dev |
Frontend only |
pnpm frontend:build |
Build frontend only |
Development mode includes hardware mocking:
pnpm dev # Default: 3 modems + WiFi
pnpm dev:single-modem # 1 modem, no WiFi
pnpm dev:streaming # Active streaming simulation
MOCK_SCENARIO=streaming-active pnpm dev # Override inlineAll optional in development mode:
| Variable | Dev Default | Description |
|---|---|---|
VITE_SOCKET_ENDPOINT |
ws://localhost |
WebSocket URL |
VITE_SOCKET_PORT |
3001 |
WebSocket port |
MOCK_SCENARIO |
multi-modem-wifi |
Hardware mock scenario |
BUILD_ARCH=arm64 ./scripts/build/build-debian-package.sh
BUILD_ARCH=amd64 ./scripts/build/build-debian-package.shARM64: Orange Pi 5/5+, Radxa Rock 5B, NVIDIA Jetson Orin
AMD64: Intel N100/N200 Mini PCs, standard x86 computers
See BUILD_PIPELINE.md for full build documentation.
| Document | Description |
|---|---|
| ARCHITECTURE.md | System overview and data flow diagrams |
| BUILD_PIPELINE.md | Build system and CI/CD |
| APT_VERSION_CONTROL.md | Debian package versioning |
| BRANDING.md | Branding guidelines |
| apps/frontend/docs/DEVTOOLS.md | Development tools |
| apps/frontend/docs/SCREENSHOTS.md | Screenshot automation |
pnpm --filter frontend add [package] # Add dependency to frontend
pnpm add -w [package] # Add shared dependency
pnpm clean # Clean all build artifacts- Frontend: Svelte 5, TailwindCSS, shadcn-svelte, Vite
- Backend: Bun, TypeScript, WebSocket RPC
- Build: pnpm workspaces, mprocs
If you find CeraUI useful, consider supporting CeraLive development: