Orbit is a secure, mobile-first interface for cloud development environments. It acts as a bridge between a mobile device and a containerized workspace ("Planet"), providing both remote desktop (VNC) capabilities and an AI-assisted control layer.
The system follows a Zero Trust architecture where the core workspace is isolated from the public network.
- Client (Flutter): Authenticates using mutual TLS (mTLS) with a client-side certificate.
- Gateway (Nginx): The single entry point (Port 443). Verifies client identity before routing traffic.
- Planet (Docker): The protected environment containing:
- VS Code Server: Full IDE running in the browser.
- XFCE Desktop: Lightweight GUI accessible via VNC.
- MCP Server (Python): An AI Agent that executes commands and queries via secure WebSockets.
- Zero Trust Security: Access requires a valid PKCS#12 client certificate. Passwords alone are insufficient.
- Antigravity IDE: Switch between visual remote desktop and code-focused VS Code environments instantly.
- Neural Link: Integrated LLM (OpenAI) allows natural language interaction with the server infrastructure.
- Glassmorphic UI: High-performance Flutter interface designed for modern mobile devices.
- Docker & Docker Compose
- Flutter SDK (for client build)
- OpenAI API Key (optional, for AI features)
-
Generate Certificates Run the included script to generate the Certificate Authority and keys.
./generate_certs.sh
-
Configure Environment Create a
.envfile in the root directory.MCP_SECRET=your_secure_secret VNC_PASSWORD=your_vnc_password OPENAI_API_KEY=sk-... (Request for AI features) -
Build and Run
docker-compose up --build -d
-
Install Certificate Transfer the generated
cloud/gateway/certs/client.p12to your mobile device and install it in the OS security settings (User Credentials). -
Build App Ensure the certificate is also present in
client/orbit_app/assets/client.p12for the application asset bundle.cd client/orbit_app flutter run
This project uses self-signed certificates for demonstration purposes. For production deployments, ensure the CA key is stored offline and consider using a trusted certificate authority for the server endpoint.