Contents

Rustdesk Fargate Service?

Contents

I have a couple scenarios in which I manage remote machines. I have a headless mac studio and some linux desktops that I remote into on my local network. Also, I occasionally need to support a family office situated across the country, this process is usually over FaceTime. I’d like to get to a scenario where I have a trusted service I could rely on to broker that connection.

99% of the time is primarily spent using Apple’s native Remote Desktop Client. It does the bare minimum for me on my local network. Though, there is always a disgruntled or unsatisfied lingering thought bubble with the overall experience. Coordinating screen resolution is always a gamble. If left running for too long, the client just crashes with no indication of any errors what soever. So I am regularly just rebooting the service and re-logging into the service. The whole thing wreaks of clamshell mac era when the magic sauce wasn’t quite figured out. I’m also, not setup to remote from anywhere. Yes, I could set up remote ssh tunnels over Cloudflare and port hop(I do), but that doesn’t help with the family office scenario.

I thought it would be nice to have a private remote service in which I could facilitate remote access. As I went on my search, I set criteria to be open-sourced implemented in rust. RustDesk sounds like an answer, though currently less excited as releases seem to have dwindled, in promotion of the pro version… there is also the complication that I can no longer get it function correctly with the last update…

Regardless, the concept still exists to set up a ECS service to host the broker server.

Concept

Stand up service on an ECS cluster with Fargate.
Create Cluster Create Task Definition Map image, commands, ports Fargate things Get Service working… Probably needs a wrapper to invoke the a new session? Pass client ID & password? Keep them ephemeral and short lived…

They do provide docker-compose example and also arm64 platform. So simple enough first steps.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
version: '3'

networks:
  rustdesk-net:
    external: false

services:
  hbbs:
    container_name: hbbs
    ports:
      - 21115:21115
      - 21116:21116
      - 21116:21116/udp
      - 21118:21118
    image: rustdesk/rustdesk-server:latest-arm64v8
    command: hbbs -r example.com:21117
    volumes:
      - ./data:/root
    networks:
      - rustdesk-net
    depends_on:
      - hbbr
    restart: unless-stopped

  hbbr:
    container_name: hbbr
    ports:
      - 21117:21117
      - 21119:21119
    image: rustdesk/rustdesk-server:latest-arm64v8
    command: hbbr
    volumes:
      - ./data:/root
    networks:
      - rustdesk-net
    restart: unless-stopped

#blog