[ANN] Haiku Remote Desktop - Zero-client remote control for Haiku

Hi everyone,

I’m excited to announce the release of Haiku Remote Desktop, a new application that allows you to view and control your Haiku system entirely from a web browser.

What is it? It is a native C++ application that captures the screen, encodes it using VP8/VP9, and streams it efficiently to a web interface. It allows for full interaction thanks to a custom Input Server device driver that maps browser events to local mouse and keyboard input.

Key Features:

Zero-Client: Works in any modern web browser (Chrome, Firefox, Safari, etc.). No VNC or RDP viewer required.
High Performance: Low-latency streaming optimized for responsiveness.
Headless-Friendly: Perfect for managing headless servers or virtual machines.
Native: deeply integrated with the Haiku API and Input Server.
Getting Started: You can download the latest package here: https://github.com/ltouati/HaikuRemoteDesktop/releases/tag/v1.0.0

Usage is simple: just install the package and launch the application. It will start a server (defaulting to port 8443) that you can access from any device on your network.

Github Repo: https://github.com/ltouati/HaikuRemoteDesktop

I would love to hear your feedback or any bug reports!

Cheers, Lionel

18 Likes

The app does not build successfully on my R1/beta5 system. If I strictly follow the build prerequisites the build complains that the node executable is missing. If I install nodejs from our package repository the build process complains about missing modules.

Here’s the full output from the make command:
[ 9%] Built target virtual_input_server_addon
[ 13%] Generating style.css from input.css
node:internal/modules/cjs/loader:1148
throw err;
^

Error: Cannot find module ‘/boot/home/Temp/compile/HaikuRemoteDesktop/src/UserlandServer/node_modules/tailwindcss/lib/cli.js’
at Module._resolveFilename (node:internal/modules/cjs/loader:1145:15)
at Module._load (node:internal/modules/cjs/loader:986:27)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:174:12)
at node:internal/main/run_main_module:28:49 {
code: ‘MODULE_NOT_FOUND’,
requireStack:
}

Node.js v20.15.1
make[2]: *** [src/UserlandServer/CMakeFiles/screen_server.dir/build.make:92: src/UserlandServer/style.css] Error 1
make[1]: *** [CMakeFiles/Makefile2:195: src/UserlandServer/CMakeFiles/screen_server.dir/all] Error 2
make: *** [Makefile:91: all] Error 2

Seems weird to me that a C++ app has Javascript in it…

Nevermind, I re-read to see it has a web interface.

I tested the package and it works fine, but the streaming is not yet high-performance—it’s still impressive, though. I ran Haiku on VirtualBox with a bridged network.

Hi @BlueSky thanks for the feedback, I’ve updated the code to compile properly. Check README.md file for the packages to install

Hi @VERITAS

Thx a lot !!!, I’ve published a new version and package that fixes some performance issues. First I’ve changed the way screen copying is done and use a BDirectWindow. I’ve also added a x264 encoder that is much faster.

Happy to get your feedback on the new version

(https://github.com/ltouati/HaikuRemoteDesktop/releases/tag/untagged-74f0c426d2c9bd0e489a)

5 Likes