A high-performance, web-based remote desktop server for Haiku OS. This application allows you to control your Haiku system remotely via any modern web browser using WebRTC for low-latency video streaming and WebSocket for input control.
- Web-Based Client: No client software required. Works in Chrome, Firefox, Safari, etc.
- Low Latency: Uses efficient video codecs (VP8/VP9) and WebRTC streaming.
- Input Injection: Full mouse and keyboard control via a custom Input Server Add-on.
- Clipboard Sync: Bidirectional text clipboard synchronization between client and server.
- Secure: Uses SSL/TLS on port 8443.
- Native Integration: Installs as a native Haiku package with Deskbar integration.
The system consists of two main components:
- Screen Server (
screen_server): The main userland application. It captures the screen, encodes the video stream, serves the web interface, and handles network communication. - Virtual Input Add-on (
VirtualMouse): A system add-on (input_serverdevice) that allows the server to inject mouse and keyboard events directly into the OS input stream.
Note: The server automatically installs the input add-on to /boot/home/config/non-packaged/add-ons/input_server/devices/ upon first launch if it's not present.
- Haiku OS (x86_64)
-
Install Dependencies
pkgman install cmake gcc make nodejs20 rsync protobuf_devel x264_devel npm
-
Clone the repository:
git clone https://github.com/your-repo/HaikuRemoteDesktop.git cd HaikuRemoteDesktop -
Create a build directory:
mkdir build cd build -
Configure and Build:
cmake .. make
-
Create Haiku Package (.hpkg): To generate an installable package:
make package_haiku
This will create
HaikuRemoteDesktop-<version>-x86_64.hpkgin your build directory.
- Double-click the generated
HaikuRemoteDesktop-*-x86_64.hpkgto install it. - Open the Deskbar, navigate to Applications, and launch HaikuRemoteDesktop.
- The server will start in the background.
From the build directory:
dist/screen_server- Open a web browser on another machine on the same network.
- Navigate to:
https://<haiku-ip-address>:8443 - Accept the self-signed certificate warning (first time only).
- You should now see your Haiku desktop!
You can build this project from Linux using the provided Dockerfile.
Run this command in your terminal where the Dockerfile is located:
docker build -t my-haiku-app .You can now run the build. The Dockerfile already contains all necessary dependencies.
We mount the current directory to /work so that the compiled binary appears in your local folder.
docker run --rm -v $(pwd):/work my-haiku-appNote: The build uses a "staged" target (stage_haiku) because the package create tool has limitations in the cross-compilation environment.
The compiled binaries and assets will be available in:
build/package_staging/
You can copy this folder to your Haiku system and run package create manually if you need a .hpkg, or just run the executable directly.
- Web Assets: Located in
src/UserlandServer/index.html. - Port Configuration: Default port is 8443.
- Logs: Server logs to stdout/stderr. Input driver logs to syslog.
- This application was mostly vibe-coded using Antigravity and Gemini 3.0
MIT License