⚡
SelfHostStackOpen-Source Directory

Why Migrate Away from TeamViewer & AnyDesk?

Commercial remote desktop licenses lock you into expensive per-seat pricing and pass your desktop video traffic through third-party relay servers. Self-hosting your own rendezvous and relay servers gives you ultra-low-latency P2P encrypted connections, unlimited concurrent devices, custom-branded desktop clients, and zero commercial use false-positive blocks.

Top 2 Recommended Open-Source Replacements

Tested, self-contained, and production-ready. Click any tool to inspect verified docker-compose configurations, hardware sizing, and deployment guides.

RustDesk

AGPL-3.0⭐ 76.0k+

Ultra-fast, full-featured remote desktop software written in Rust with custom self-hosted rendezvous and relay servers.

Min RAM512 MB
Min CPU1 vCPU
GitHub Repo ↗

✅ Advantages

  • Extremely lightweight server written in Rust (<50MB RAM footprint)
  • Direct peer-to-peer streaming avoids server bandwidth bottlenecks
  • Completely free for unlimited technicians and remote machines

⚠️ Trade-offs / Limitations

  • Requires opening specific UDP/TCP relay ports (21115-21119) on VPS firewall
  • Advanced multi-user web dashboard is part of RustDesk Pro or community web addon

Core Features

▸End-to-end encryption with ChaCha20-Poly1305 and Ed25519 keypairs
▸Direct P2P connections whenever possible for near-zero latency video
▸Self-hosted hbbs (ID/Rendezvous) and hbbr (Relay) server daemons
▸Cross-platform native clients for Windows, macOS, Linux, Android, and iOS
▸Built-in file transfer, TCP port tunneling, and multi-monitor switching
📄 docker-compose.yml
Production Ready
version: '3.8'
services:
  hbbs:
    image: rustdesk/rustdesk-server:latest
    container_name: rustdesk-hbbs
    command: hbbs -r relay.yourdomain.com:21117 -k _
    volumes:
      - rustdesk-data:/root
    network_mode: "host"
    restart: always
    depends_on:
      - hbbr
  hbbr:
    image: rustdesk/rustdesk-server:latest
    container_name: rustdesk-hbbr
    command: hbbr -k _
    volumes:
      - rustdesk-data:/root
    network_mode: "host"
    restart: always
volumes:
  rustdesk-data:

🚀 5-Minute Deployment Guide

  1. 1Spin up a $4/mo Hetzner or DigitalOcean VPS.
  2. 2Save docker-compose.yml for hbbs (rendezvous server) and hbbr (relay server).
  3. 3Run `docker compose up -d`.
  4. 4Retrieve your public server key from the `data/id_ed25519.pub` file.
  5. 5Enter your server IP and key in the RustDesk client settings on your devices.

Recommended Cloud VPS for RustDesk

Compare all VPS hosts →
Hetzner Cloud€3.79/mo

CX22 (2 vCPU, 4GB RAM, 40GB NVMe)

Rust binary consumes under 30MB RAM; handles hundreds of concurrent relays.

Deploy on Hetzner →
DigitalOcean$6.00/mo

Basic Droplet (1 vCPU, 1GB RAM, 25GB SSD)

Low latency relay servers with $200 free credit.

Claim $200 DO Credit →
Vultr$6.00/mo

Cloud Compute (1 vCPU, 1GB RAM, 25GB NVMe)

32+ datacenter locations for lowest latency remote sessions.

Deploy on Vultr →

MeshCentral

Apache-2.0⭐ 6.8k+

Complete web-based remote device management and remote desktop web console for complete fleet administration.

Min RAM512 MB
Min CPU1 vCPU
GitHub Repo ↗

✅ Advantages

  • Zero client installation needed for the operator (runs entirely in browser)
  • Handles complex NAT traversal and corporate firewalls seamlessly
  • Full remote command prompt and background file transfer without interrupting the user

⚠️ Trade-offs / Limitations

  • Web interface uses traditional styling
  • Extensive config.json file with dozens of security options to tune

Core Features

▸Browser-only remote desktop, interactive terminal, and file explorer
▸Multi-platform background agent for silent fleet management
▸Hardware-level Intel AMT and vPro out-of-band management support
▸Granular user permissions, 2FA security, and LDAP/Active Directory integration
📄 docker-compose.yml
Production Ready
version: '3.8'
services:
  meshcentral:
    image: uld заселение / meshcentral:latest
    image: tyoff/meshcentral:latest
    container_name: meshcentral
    restart: always
    environment:
      - HOSTNAME=mesh.yourdomain.com
      - REVERSE_PROXY=true
      - REVERSE_PROXY_TLS_PORT=443
      - IFRAME=false
    ports:
      - "4430:4430"
    volumes:
      - mesh-data:/opt/meshcentral/meshcentral-data
      - mesh-files:/opt/meshcentral/meshcentral-files
volumes:
  mesh-data:
  mesh-files:

🚀 5-Minute Deployment Guide

  1. 1Launch a basic 1GB RAM VPS.
  2. 2Create docker-compose.yml and set hostname/session keys in config.json.
  3. 3Run `docker compose up -d`.
  4. 4Open web portal on port 4430 and create device mesh groups.
  5. 5Install MeshAgent on Windows, macOS, and Linux endpoints for seamless browser control.

Recommended Cloud VPS for MeshCentral

Compare all VPS hosts →
Hetzner Cloud€3.79/mo

CX22 (2 vCPU, 4GB RAM, 40GB NVMe)

Lightweight Node.js architecture.

Deploy on Hetzner →
DigitalOcean$6.00/mo

Basic Droplet (1 vCPU, 1GB RAM, 25GB SSD)

Includes $200 trial credits.

Claim $200 DO Credit →
Vultr$6.00/mo

Cloud Compute (1 vCPU, 1GB RAM, 25GB NVMe)

Stable remote management backbone.

Deploy on Vultr →

Quick Specification Matrix

ToolLicenseMin RAMMin CPUGitHub RepoPrimary Advantage
TeamViewer & AnyDesk (Proprietary)Proprietary ClosedManaged CloudManaged CloudN/ATurnkey onboarding with vendor lock-in & paywalls
RustDeskAGPL-3.0512 MB1 vCPUrustdesk/rustdeskExtremely lightweight server written in Rust (<50MB RAM footprint)
MeshCentralApache-2.0512 MB1 vCPUYlianst/MeshCentralZero client installation needed for the operator (runs entirely in browser)
Starter Stack Pack — $29

Skip the setup: get the production-ready stack

Don't stitch together configs from five different READMEs. Get all 5 production-hardened Docker Compose stacks — Postgres, Redis, SSL auto-renewal, and backup scripts — ready to deploy in minutes.

⚡n8nVisual workflow automation
📊UmamiPrivacy-first web analytics
🛡️Uptime KumaUptime monitoring & alerts
🔐VaultwardenBitwarden-compatible vault
☁️NextcloudDropbox/Drive replacement
Get the Stack Pack — $29 →

One-time purchase · Instant download · Production-ready

esc
↑↓ navigate↵ open