24 votes

Sanity check - always-on machine + laptop with remote desktop

I'm looking for a new laptop as my current one is falling apart, and one option that seems quite tempting at the moment is getting a desktop machine, leaving it running away in the background, and then accessing it using remote desktop software from a laptop (or even tablet) most of the time. My logic is that I want a fairly decent device for programming on and occasional games, but I also want something portable that I can carry into every room of my flat. I've also been experimenting more with Tailscale and using my laptop as a remote development machine and my phone as a dumb terminal while traveling abroad, and that's worked fairly well, so I'm interested in how far I can take this concept. Plus the idea of also being able to use my main device as a small homelab is kind of appealing as well.

The plan would be:

  • Framework Desktop sits somewhere at home and is on all the time. My wife has a Framework laptop that she's quite impressed with, I realise the value proposition for desktop computers is less given there's already so much possibility to configure and upgrade, but I've never built a PC myself before and I don't want to complicate this setup too much.
    '* A dumb terminal device that I can carry around with me. For now, that'll probably be my current laptop as long as it lasts, but in the future maybe a cheap Chromebook or even a tablet that I can connect a keyboard and mouse to.
  • Moonlight/Sunshine setup for the remote desktop side of things. From what I can tell, this can stream both individual applications but also the whole desktop, and works with various clients.
  • Tailscale to access all of this outside the home. This is less important but it would be convenient. And if I go down the homelab direction, also for being able to access my self-hosted services remotely or running my personal website off my own hardware.

Things I'm concerned about:

  • German connection speeds are, broadly speaking, poor, especially with upload speeds. I'm looking at maybe 300M down, 50M up. Inside my local network that won't affect me, but if I did want to take my laptop with me, I don't have a good sense of whether the remote desktop aspect is really feasible.
  • The Framework desktop - I like the company, and I like the idea of a repairable desktop that's still sold as a single unit and not something where I need to buy everything myself. But I also don't have a good sense of how much of a premium I'd be paying here, vs either building something completely from scratch or buying a more typical desktop
  • The laptop would probably live in the living room because that's where all the other technology (in particular the modem) in our house lives. It's fine if it makes a noise while I'm actively using it to watch things, but I'd need it to be very quiet the rest of the time. Framework does sell a fan that is specifically designed to be quiet, but I'm not sure if this is "it's quiet compared to having a normal computer fan on" or "it's quiet compared to having turned all my devices off for the night".

Does anyone have any experience with this kind of setup, and is this something that would reasonably work, or am I completely missing something obvious that makes this a terrible awful idea that nobody should do?

Thanks in advance!

19 comments

  1. [6]
    JCAPER
    Link
    I have a pretty similar setup at home, and it works really well despite some caveats. I have a desktop with nvidia, running Fedora and I use it as my gaming machine. It’s connected to both a...

    I have a pretty similar setup at home, and it works really well despite some caveats.

    I have a desktop with nvidia, running Fedora and I use it as my gaming machine. It’s connected to both a monitor and a TV, but when I prefer to be in bed or in another room, I stream games with my Steam Deck. I use moonlight/sunshine for that, which so far has been the pair that has given me fewer issues.

    I also could stream from outside, but I never really tried it. I have a raspberry pi working as a tailscale node exit and running pi hole as well.

    Your plan will work, but there are some things to keep in mind:

    • it’s a nitpick - as I stream games often, so emphasis on this being a nitpick - but I can always tell that I’m streaming, which makes it a bit less enjoyable than just being physically at the PC. There’s virtually no latency and you could play fighting games if you wanted (while on LAN), but there’s always some blurriness in the image. You can crank up the quality of the image at the cost using more bandwidth, but in my experience there’s always a bit of blurriness.

    • make sure your desktop is plugged with ethernet. Don’t even bother trying wifi, trust me

    • I don’t remember if it’s the same with windows, but with linux, you need to give it a monitor or a dummy HDMI in order for sunshine to work. This wasn’t an issue for me, but I remember reading about this. In your case a dummy HDMI should work and trick linux into thinking you have a monitor connected.

    • another issue with linux is that at startup, you need to make it log into your user account without password, as otherwise sunshine won’t run (on Windows this isn’t an issue, sunshine runs while at login screen)

    • ideally, your desktop should render the display at the same resolution as your laptop, else the quality will suffer - I despise streaming in my macbook air, as its resolution is higher than what my desktop outputs (1080p)

    • there are a few games that refuse to recognize your controller. Kingdom Come 2 for example. If I use a controller with the desktop, no issues. If I try using while streaming (be it with my steam deck builtin buttons or a ds4 controller), no dice.

    • You can use moonlight to wake your desktop via LAN - which is what I do. But this won’t work with Tailscale. I don’t remember the technical reasons, it’s something you can’t do (or easily do) with Tailscale. What I ended up doing was building a terminal command on my raspberry, which when triggered, makes my raspberry wake up my desktop.

    • If that’s a dealbreaker, you can use OpenVPN instead of Tailscale. That one works.

    • You will need to open an UDP port for tailscale. The guides I followed focused so much on the idea that you can use Tailscale without opening ports, that they failed to mention that without it your connection suffers. Your phone uses a lot more battery and the connection is really slow without it.

    These are some things off the top of my head. But feel free to ask me anything

    All of this is to say: there will be some caveats, but generally speaking, your plan will work

    14 votes
    1. [5]
      Weldawadyathink
      Link Parent
      Most of the time, you shouldn’t need to open any ports to use tailscale. I would say it’s probably not a good idea to recommend it by default. It only is necessary if you are connecting through a...

      Most of the time, you shouldn’t need to open any ports to use tailscale. I would say it’s probably not a good idea to recommend it by default. It only is necessary if you are connecting through a relay server. As long as it’s direct, you have no need for more open ports. To test, run tailscale status and see if the nodes you care about are marked as direct. If they are relay, you may need to open ports. I would be quite surprised if anybody with a consumer router needs to open ports.

      5 votes
      1. [4]
        JCAPER
        Link Parent
        Thanks for the correction mate, I assumed what happened to me was universal. My tailscale, regardless of device, would always connect via relays. I had to open a port to make the direct connection.

        Thanks for the correction mate, I assumed what happened to me was universal.

        My tailscale, regardless of device, would always connect via relays. I had to open a port to make the direct connection.

        1 vote
        1. [3]
          Weldawadyathink
          Link Parent
          I’ve had to do it for things like oracle cloud with very strictly defined firewall rules. But it’s weird that you had to do it for a home setup. Are you by chance behind carrier grade NAT? That is...

          I’ve had to do it for things like oracle cloud with very strictly defined firewall rules. But it’s weird that you had to do it for a home setup. Are you by chance behind carrier grade NAT? That is one of the common times you may need to open ports.

          1 vote
          1. [2]
            JCAPER
            Link Parent
            Doesn't look like it. My Wan IP from my router matches the IP I get from "what is my ip" Maybe it has to do with my router? It's an Asus GT-AXE16000 (got it for free). Claude suspects - put here a...

            Doesn't look like it. My Wan IP from my router matches the IP I get from "what is my ip"

            Maybe it has to do with my router? It's an Asus GT-AXE16000 (got it for free).

            Claude suspects - put here a huge grain of salt because I didn't validate it in the router - that my router isn't offering UPnP/NAT-PMP/PCP, so Tailscale can't request to open ports. His smoking gun is PortMapping not showing anything when I run tailscale netcheck in my raspberry.

            1. Weldawadyathink
              Link Parent
              That is very strange. For many configs, they don’t even need upnp. It makes it easier, but they have traversal techniques that don’t require open ports. Maybe that router gives hard nat.

              That is very strange. For many configs, they don’t even need upnp. It makes it easier, but they have traversal techniques that don’t require open ports. Maybe that router gives hard nat.

              2 votes
  2. nacho
    Link
    I guess I'm a snob. Unlike others in this thread, the latency gets to me. 50-100ms is frustrating when I do stuff where there's a lot of clicking or jumping between interfaces. I'm blessed with...

    I guess I'm a snob.

    Unlike others in this thread, the latency gets to me. 50-100ms is frustrating when I do stuff where there's a lot of clicking or jumping between interfaces.

    I'm blessed with extremely generous wireless networking speeds due to work, so I've tried running games in high resolutions with high graphics settings and sending the stream to a remote device. That works well, but drains battery rapidly due to the volume of traffic sent (and receiving a large signal. Especially sending high quality sound seems to tax my "dumb" endpoint device).

    Consequently, I have a powerful laptop.


    However, for compiling, doing math, rendering, exporting files etc, what you outline is amazing and works terrifically, even just being on 4G/5G network out in the field.

    But if you need to do those things, I'd maybe expect terminal access to a much stronger machine/environment from work anyway?

    7 votes
  3. teaearlgraycold
    Link
    Unless it's streaming within LAN (which I enjoy with my Steam Deck) I hate streaming a desktop. I also hate VPNs (actual VPNs like TailScale, not secure tunnel VPNs like Mullvad). VPNs are the...

    Unless it's streaming within LAN (which I enjoy with my Steam Deck) I hate streaming a desktop. I also hate VPNs (actual VPNs like TailScale, not secure tunnel VPNs like Mullvad). VPNs are the final boss of NAT, and I don't like NAT. But I'll take port-forwarding and NAT over TailScale any day. People are too worried about security. I've been running servers with public SSH ports for so many years and, as far as I know, there have been no issues with that.

    I just have a nice laptop that does everything I need. In my case that's an M3 Macbook Air w/ 24GiB of memory. If you can afford a good enough laptop to handle >90% of your use cases just do that. The same chip that's in the Framework desktop is also in various laptops/tablets. Don't go for a complex setup just because it seems cool.

    4 votes
  4. crulife
    Link
    As a reality check: 50M is a pretty good upload speed, more than enough for most 4K streaming. Stability and latency are more significant. A simple wireguard setup will be enough for securing the...

    As a reality check: 50M is a pretty good upload speed, more than enough for most 4K streaming. Stability and latency are more significant.

    A simple wireguard setup will be enough for securing the link. Roughly about 10 lines of configuration on both sides, and generating and moving some public keys around. LLMs are good for helping with that.

    Netcup dedicated hosts are pretty good in my opinion and not terribly expensive. At least yet. And they are located in Germany.

    3 votes
  5. skybrian
    Link
    For programming (but not games), Linux VM’s in the cloud are quite a nice alternative. I’m very happy with exe.dev’s $20/month plan. At least, for web development.

    For programming (but not games), Linux VM’s in the cloud are quite a nice alternative. I’m very happy with exe.dev’s $20/month plan. At least, for web development.

    2 votes
  6. Omnicrola
    Link
    I've used a similar setup with Parsec for the last few years and like it. I leave it running on my home desktop machine and connect from my laptop whenever I want to work on something but don't...

    I've used a similar setup with Parsec for the last few years and like it. I leave it running on my home desktop machine and connect from my laptop whenever I want to work on something but don't want/need the full dual screen setup (or the room is too hot, the AC isn't good in that room). It's really nice to be able to leave half a dozen windows open while I'm in the middle of something, and then come back later without having to actually close and reopen or restart anything.

    2 votes
  7. Nihilego
    Link
    I have read into this before, unfortunately I haven't come to a good conclusion, RDP/VNC has worse streaming but the way it treats mouse movements/input latency seems to be what it excels at,...

    I have read into this before, unfortunately I haven't come to a good conclusion, RDP/VNC has worse streaming but the way it treats mouse movements/input latency seems to be what it excels at, Moonlight/Sunshine is what I would use but it doesn't seem to like different aspect ratios, so left it as is.

    I didn't even look that much into using it onlime after that, because CGNAT and U/D speeds being significantly worse than yours. Thought of Tailscale but their pricing structure was weird, and will require me to configure stuff anyway.

    2 votes
  8. [2]
    Jack_the_Derpo
    Link
    Sorry to reality check you but you mentioned being on DSL. You need to get real data for your worst and best cases for streaming, maybe from your current laptop as server and an Android phone as...

    Sorry to reality check you but you mentioned being on DSL.

    You need to get real data for your worst and best cases for streaming, maybe from your current laptop as server and an Android phone as client.

    Pay attention to latency (it's been a decade for me, but I remember RTT being almost 40ms on ADSL) and critically, udp packet loss. Even just a little bit of packet loss is going to ruin your time doing Sunshine over Tailscale. It'll be a good setup for work, but unusable for play in my experience.

    Just the RTT latency might make this infeasible on top of the ~1-3 frames of delay inherent in the streaming pipeline.

    Also seriously reconsider getting a framework desktop. While I commend your focus on repair, realistically and economically speaking, ATX (bog standard desktops) are king of the hill because replacement is faster and the ecosystem is designed to accommodate it. Not to mention the better perf/€. The Framework desktop is just too niche unless you want it for local AI.

    2 votes
    1. Johz
      Link Parent
      Good shouts! I did try out the laptop<->phone connection, although only briefly. For working it was more than good enough, although I only tried gaming out on LAN connections, so I should probably...

      Good shouts! I did try out the laptop<->phone connection, although only briefly. For working it was more than good enough, although I only tried gaming out on LAN connections, so I should probably test that out again under less ideal conditions. But I suspect that matches how I'd be using this setup anyway — gaming while at home, but doing idle programming/tinkering while on the move. But I will double check how that gets set up.

      2 votes
  9. [4]
    creesch
    (edited )
    Link
    That should be possible. For the remote desktop part I'd recommend using Moonlight in combination with Sunshine. A bit of history there, Moonlight is a client originally written to act with...

    That should be possible. For the remote desktop part I'd recommend using Moonlight in combination with Sunshine. A bit of history there, Moonlight is a client originally written to act with Nvidia's remote desktop thing for gaming. Nvidia announced it would no longer be available and Sunshine basically stepped in to replace the Nvidia part.

    I have used basically the setup you describe in the past. But mostly just in the house, not remotely.

    But, 50mbs up should be enough when on the road for most things, though it will likely add more latency. Something to keep in mind for gaming.

    Edit:
    Heh, did gloss over the fact that you also mentioned moonlight and sunshine. So yeah. No notes :P

    1 vote
    1. [3]
      Johz
      Link Parent
      I'll treat that as independent confirmation that Moonlight/Sunshine isn't a bad choice then! :D Out of interest, why did you stop using this setup? And what was the biggest nuisance you found with it?

      I'll treat that as independent confirmation that Moonlight/Sunshine isn't a bad choice then! :D

      Out of interest, why did you stop using this setup? And what was the biggest nuisance you found with it?

      1 vote
      1. [2]
        creesch
        Link Parent
        I never used it as a permanent setup. Mostly in cases where I want to sit outside and do some stuff I can't do otherwise and a few times when I have been sick where I use a light portable monitor...

        Out of interest, why did you stop using this setup?

        I never used it as a permanent setup. Mostly in cases where I want to sit outside and do some stuff I can't do otherwise and a few times when I have been sick where I use a light portable monitor and my phone in dex mode to basically have my desktop in bed without all the weight and heat production that comes from a laptop.

        So I might use it again in the future.

        Last year I also recommended it to @kfwyre who was so happy with it that I received multiple follow up pings about it.

        And what was the biggest nuisance you found with it?

        Resolution can be a bit annoying to deal with and you do need to have a display plugged in or do something with a virtual display if I remember correctly.

        Other than that it isn't difficult to set up.

        4 votes
        1. kfwyre
          (edited )
          Link Parent
          I’m still thrilled with my Sunshine/Moonlight setup! I use it literally every single day, often between multiple different devices. I even stream games to my treadmill TV so I can play them while...

          I’m still thrilled with my Sunshine/Moonlight setup! I use it literally every single day, often between multiple different devices.

          I even stream games to my treadmill TV so I can play them while walking.

          Thanks again, creesch!

          4 votes
  10. Exemplary
    Link
    Why don't you try with Shadow PC?

    I don't have a good sense of whether the remote desktop aspect is really feasible.

    Why don't you try with Shadow PC?

    1 vote