Web platform for uploading and running Zephyr native_sim binaries inside isolated containers, with live UART streaming, advanced networking options, debugging hooks, and artifact collection.
- Binary upload and ELF metadata analysis
- Session lifecycle management (create/start/stop/pause/resume/restore)
- Live UART streaming with SSE
- Advanced networking support:
- SocketCAN
- TAP interfaces (bridge or pasta mode)
- Bluetooth HCI and HCI-over-UART
- UART-based network forwarding
- PCAP capture and download
- Remote debugger integration (gdbserver proxy)
- Coverage and sanitizer artifact collection
- Docker and Docker Compose
- Go 1.25+
- Node.js 20+
- gVisor
runsc(recommended)
cd zephyr-simulator-server
git submodule update --init --recursive
docker build -f Dockerfile.emulator -t zephyr-emulator:latest .
go mod download
docker compose up -d- Frontend: http://localhost:80
- API: http://localhost:8080/api
- Health: http://localhost:8080/api/health
Production deployment for DigitalOcean + Cloudflare + Caddy is documented in docs/deploy/PRODUCTION_DEPLOYMENT.md.
Core commands on the droplet:
./scripts/deploy/deploy_prod.sh
./scripts/deploy/upgrade_prod.sh
./scripts/deploy/rollback_prod.shBackend:
go run ./cmd/server/main.goFrontend:
cd web
npm install
npm run devgo test -v ./...Focused handler tests:
go test -v ./internal/handlers -run TestSessionLifecycleHandlers
go test -v ./internal/handlers -run TestAdvancedNetworkingIntegrationThe firmware/ directory contains buildable Zephyr native_sim examples for smoke and feature validation.
Quick flow:
cd firmware
./_scripts/build_all.sh
./_scripts/upload_all.sh http://localhost:8080See firmware/README.md and firmware/TESTING.md for details.
docs/API_REFERENCE.md— Full endpoint list and request examplesdocs/OPERATIONS.md— Runtime config, host setup, and ops troubleshootingdocs/TESTING.md— Test strategy and execution commandsdocs/ARCHITECTURE.md— System architecture overviewdocs/DATABASE_SCHEMA.md— PocketBase collection schemaNATIVE_SIM_TESTABLE_FEATURES.md— Native simulator feature coverage matrix
Apache 2.0 (see LICENSE)