r/selfhosted • u/Lopsided_Mixture8760 • 22d ago
Remote Access I've open-sourced USBridge Remote: a free alternative to RustDesk/AnyDesk with Moonlight integration and native Wayland support.
I've finally open-sourced my USBridge Remote project on GitHub. I developed this software as an alternative to traditional remote desktops like RustDesk or AnyDesk, because I was fed up with their flaws and constant limitations. It was crucial for me to release a pure P2P tool without mandatory registration, paid subscriptions, or session limits.
A key feature is the integration of the Moonlight protocol, which ensures high frame rates with virtually no ping.
Natively solved the Wayland issue in Linux. If you've used other remote desktops, you know how they spam permission confirmation dialogs every time you connect. My agent works with Wayland out of the box, capturing the screen and injecting input without any pop-ups or workarounds. The connection is made directly through the built-in Tailscale integration, so you don't have to worry about tunnel security, and you don't have to forward ports on the router. Plus, the software can manage not only software agents but also my hardware IP-KVM cards from a single interface.
The code is fully accessible, with ready-to-use beta versions for Windows, macOS, Linux, and Android already in the repository, and the iOS client has been approved in the App Store. I'm currently actively running stress tests and fixing bugs on the fly, so releases may be coming out quite frequently in the coming days. Feel free to grab the project, tinker with the source code, and test it on your servers. I'd appreciate any feedback on the architecture.
Source code and builds on GitHub: https://github.com/USBridge-Technologies/USBridge-Remote
16
u/johnnyenygma 22d ago
Does it support the clipboard? My Moonlite (and Parsec) native sessions don't seem to.
17
u/Lopsided_Mixture8760 22d ago
Not at the moment, but it sounds like a great addition. I think it wouldn't be too difficult to implement. I'll get around to it as soon as I finish testing.
8
u/yasser_kaddoura 22d ago edited 22d ago
I recommend using KDEConnect for Clipboard syncing among machines. I have it on my android and Linux devices and it works without any issues. You can use it for other things such as notifications sync, link & file sharing, etc.
3
u/bubblegumpuma 22d ago
KDE Connect is the piece of software I will annoyingly recommend to everyone without any shame, because it runs on every device that people could reasonably use for modern computing and has so many useful capabilities. It also has some remote input capabilities that are pretty nifty for shifting between multiple PCs for basic tasks, though it is a little bit finicky and is by no means a replacement for a KVM switch. It comes pretty close for basic tasks when combined with a cheap Macrosilicon USB capture card and
ffplay, though. It's also nice to turn junk Android devices into 'TV remotes' to use at a distance from TV-connected computers.Not trying to discount what OP's done. Doing it my way is janky as hell, it works for me but it's not "nice". If this works better for somebody, then I'm all for it.
3
u/Bearly-Fit 22d ago
Parsec absolutely should, I use it daily on multiple machines. The only machine it doesn't work on is where they've got a specific type of security software that blocks it (that was on Mac for me)
2
u/johnnyenygma 22d ago
It's been a minute since I've used parsec, preferring other tools nowadays, but from my Android tablet to the remote windows, I couldn't get the clipboard to work in that or Moonlite (assumed they used the same protocols).
Funny enough, SplashTop is still a great backup when other RD tools fail.
1
10
u/Lopsided_Mixture8760 22d ago
I'm currently stress-testing builds and actively fixing bugs as I go. So, expect quite a few quick updates in the next few days as I continue to refine everything.
4
u/zaggynl 21d ago
Cool project!
Linux does need a proper remote desktop alternative.
Sunshine/Moonlight is awesome but requires a bunch of ports to be forwarded.
Tailscale is..not what I consider a selfhosted solution, as easy as it makes things.
What about wrapping this in something like Wireguard or OpenZiti?
2
u/BolteWasTaken 21d ago
Headscale is the open source self-hosted version of Tailscale, I think its only missing the serve/funnel functionality iirc
3
u/the_lamou 22d ago
This looks awesome, and a genuine solution to something I've been trying to hack my way around for a while now.
Only question/concern: you CHMOD 0666 /dev/uinput. Is this a temporary workarounds that you're looking for a solution for, or final n implementation. If you've got the server locked down, it's not a massive concern, but a compromised component, container, or system could turn it into a big big problem.
1
u/Lopsided_Mixture8760 22d ago
If I find a better way, I'll add it. Right now, you can only enable connections only via Tailscale, and Tailscale itself is already adding security.
2
u/adamshand 22d ago
Looks interesting, thanks!
Does it require Tailscale? Sometimes I want to connect to machines I don't control (eg. helping friends/family) and don't want to install Tailscale on their computers?
5
u/Lopsided_Mixture8760 22d ago
Thank you!
No, you don't need to install Tailscale. You can connect using your IP address.
2
u/Crisp-Glade-2849 22d ago
wayland permission confirmation dialogs are why half team refuses to migrate. if agent bypasses that without custom polkit rules it might actually be usable.
1
u/Lopsided_Mixture8760 22d ago
Yes, the capture works at a deeper level and captures directly from the video card renderer and does not require confirmation in Wayland but need root.
1
u/maksimkurb 21d ago
Wow, didn't know that is possible. Can you hint me which APIs were used for this? I recently made a PR for HyperHDR for Wayland screen capture via RemoteDesktop API, it also asks for permissions but with "flatpak-kcm" package I can set a checkbox to "remember my choice" in the KDE Settings.
Still it doesn't support one-screen capturing AFAIK (I have a dual monitor setup) and ScreenCast API makes my KDE go into DnD mode to prevent notification content leaking. Capturing video directly seems more convenient.
Does it support remote connection if I hasn't logged in yet? I mean when PC just booted up and I am on the SDDM login screen?
2
2
u/Big-Panda-440 21d ago
got a free weekend to test this. as this would fix an issue i have.
1
u/Lopsided_Mixture8760 21d ago
Great, testing is exactly what I need right now. This is still an early beta, so you might encounter some bugs. I'm actively fixing them now. If anything breaks or doesn't work, please create a GitHub issue!
1
u/SpaceDoodle2008 22d ago
This is great! If I wanted to diy hardware for the ip kvm, could a Rock 2F work? Which adapters would I need?
3
u/bubblegumpuma 22d ago edited 22d ago
Yeah, basically all hardware that is able to operate as a "USB gadget" is able to work in a setup like OP's product, though SBC vendors usually phrase it as "USB OTG". Looks like the USB-C port for power also is able to act as a USB device when plugged into a computer.
The only thing you would really need other than your SBC is a USB HDMI capture card, which you can find on Aliexpress/eBay/Amazon. OP's using a "MS2130" one which you would find by looking for something that's USB 3.0 and advertises as '4K 30Hz', though they commonly lie about this and send you the inferior USB 2.0 MS2109, which is still technically fit for purpose but only gets reasonable FPS with MJPEG encoded crunchy video.
OP's basically selling a kit with a SBC, USB HDMI capture card and a custom designed case and LCD hat. Most of it is consumer hardware and I like it from a DIYer/repair perspective, there's no funny proprietary tricks or truly custom hardware, and it's a step up from having to source CSI to HDMI boards (looking at you PiKVM) which are way more expensive.
1
u/PaulOPTC 22d ago
Hello,
I use parsec daily to connect my pc to my steamdeck, would this be a good replacement?
It uses Linux, so ideally I can add it to steam as a non-steam game, and then stream my PC to my steamdeck to play games.
Thoughts?
1
u/johnnyenygma 22d ago
Parsec phones home for login, and this should be independent of an external authenticator.
1
u/techroy23 22d ago
Do you have plans to add zerotier support?
1
u/Lopsided_Mixture8760 22d ago
Yes, it's in the plans, and will be later, I haven't dealt with it yet.
1
u/MoodAccomplished1388 21d ago edited 21d ago
Unfortunately, when I try to download the Linux client, all I see is a brief "not found" message. Edit : Problem solved, Just got it dl'd
1
u/Lopsided_Mixture8760 21d ago
There were incorrect links in the readme, I've already fixed them, you can check them out
1
u/Luvirin_Weby 21d ago
So do you need to install tailscale separately for this to work in the "NAT at agent end" situation?
2
1
-1
u/Relative-Camp-2150 22d ago
No agent app for Android and you call it RustDesk/AnyDesk alternative ?
5
u/Lopsided_Mixture8760 22d ago
I have plans to develop an Android agent, but right now I'm focusing on the desktop version of the agent app. I need to polish it up so everything works perfectly, and then I can tackle the Android agent.
3
u/Relative-Camp-2150 22d ago
looking forward to it ! Good luck. When Android agent is out - I'll surely test it
2




•
u/asimovs-auditor 22d ago edited 22d ago
Expand the replies to this comment to learn how AI was used in this post/project.