MeshCentral on Ubuntu 24.04

(Self-Hosted Remote Management + Node.js + Nginx + SSL)

MeshCentral is a powerful, open-source remote management and remote access platform used to control, monitor, and administer computers and servers over the internet or local networks. It supports remote desktop, terminal access, file transfer, device grouping, user permissions, and out-of-band management, all through a secure web interface.

Unlike proprietary tools such as TeamViewer or AnyDesk, MeshCentral can be fully self-hosted, giving you complete ownership of devices, credentials, and connection data. This makes it ideal for system administrators, MSPs, IT teams, and privacy-focused organizations.

Running MeshCentral on Ubuntu 24.04 LTS (Noble Numbat) provides a modern, secure, and long-term supported operating system. Ubuntu 24.04 ships with systemd 255, OpenSSL 3, and excellent Node.js support, making it a solid foundation for a production-grade remote management server.


Architecture Overview

LayerComponentRole
OSUbuntu 24.04 LTSStable, long-term supported Linux base
RuntimeNode.js LTS (18 / 20)Runs the MeshCentral server
ApplicationMeshCentralWeb UI, device management, relay
DatabaseBuilt-in (NeDB / SQLite)Stores users, devices, settings
Reverse ProxyNginx (optional)HTTPS termination and routing
TLSLet’s Encrypt / PKISecure encrypted connections
ClientsBrowsers + AgentsRemote access and device control

MeshCentral uses a single-service architecture, which makes it lightweight, easy to deploy, and simple to maintain.


Why Use MeshCentral?

  • Fully self-hosted — no vendor lock-in
  • Remote desktop & terminal — browser-based access
  • Agent-based management — Windows, Linux, macOS
  • Granular permissions — users, groups, roles
  • WebSocket-based connections — efficient and fast
  • File transfer & power controls
  • Multi-tenant capable — ideal for MSPs
  • Open-source & actively maintained
  • Very low resource usage

MeshCentral is designed for secure, scalable remote administration without relying on third-party clouds.


MeshCentral vs Other Remote Management Tools

Feature / CapabilityMeshCentralTeamViewerAnyDeskGuacamole
HostingSelf-hostedCloud onlyCloud onlySelf-hosted
Open-source✅ Yes❌ No❌ No✅ Yes
Data ownershipFull controlVendor-controlledVendor-controlledFull control
Agent-based✅ Yes✅ Yes✅ Yes❌ No
Web UI✅ Yes❌ No❌ No✅ Yes
CostFreePaidPaidFree

MeshCentral stands out for control, transparency, and scalability.


Security & Best Practices on Ubuntu 24.04

  • Always run MeshCentral over HTTPS.
  • Use Let’s Encrypt SSL certificates with automatic renewal.
  • Bind MeshCentral to localhost and expose it via Nginx.
  • Store secrets only in environment variables or config files.
  • Disable public account creation if not needed.
  • Use strong passwords and role-based access.
  • Enable UFW firewall and allow only ports 80 / 443.
  • Keep Ubuntu, Node.js, and MeshCentral updated.
  • Regularly back up:
    • MeshCentral data directory
    • Configuration files
  • Monitor logs for authentication and connection events.

Typical Use Cases

  • Remote server administration
  • IT support and helpdesk operations
  • MSPs managing multiple clients
  • Remote access for home labs
  • Device monitoring and inventory
  • Secure alternative to TeamViewer
  • Enterprise or privacy-sensitive environments

Deploying MeshCentral on Ubuntu 24.04 gives you a secure, scalable, and fully self-hosted remote management solution — combining modern Node.js performance with full infrastructure control, strong encryption, and long-term OS stability.


Step 1: Create a Server Instance on Shape.Host

Before starting, you need a VPS with a public IP address.

Log in to https://shape.host

Click Create → Instance

Shape.host Resources dashboard with Create > Instance highlighted.

Choose a data center close to your location

Shape.host instance form with the data center location selector highlighted.

Select a plan with at least:

2 CPU cores

4 GB RAM

30–40 GB SSD

Choose Ubuntu 24.04 (64-bit)

Shape.host instance form with the operating system image selector highlighted.

Create the instance and wait for provisioning

Shape.host instance form with the Create Instance button highlighted.

Copy the public IP address

Shape.host Resources dashboard with the server IP address highlighted.

Step 2: Connect to the Server (Linux, macOS & Windows)

Linux / macOS

ssh root@YOUR_SERVER_IP

Windows (PowerShell / Windows Terminal)

ssh root@YOUR_SERVER_IP

Windows (PuTTY)

  • Host Name: YOUR_SERVER_IP
  • Port: 22
  • Connection type: SSH
  • Username: root

Step 3: Update the System

apt update
  • Refreshes the package index
apt upgrade -y
  • Installs all available security and system updates
  • Ensures compatibility with Node.js and MeshCentral
Terminal showing APT package management commands and output.

Step 4: Install Required Dependencies

apt install curl ca-certificates gnupg

This installs:

  • curl – used to download external scripts and resources
  • ca-certificates – ensures secure HTTPS connections
  • gnupg – required for repository verification
Terminal showing systemd service management commands or output.

Step 5: Install Node.js 20 (Required by MeshCentral)

MeshCentral requires a modern Node.js version.

curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
  • Adds the official NodeSource repository for Node.js 20
apt install nodejs
Terminal showing systemd service management commands or output.

Verify installation:

node -v
npm -v
Terminal showing Node.js or npm version output.

Step 6: Install MeshCentral

Create the application directory:

mkdir -p /opt/meshcentral
cd /opt/meshcentral

Install MeshCentral via npm:

npm install meshcentral
Terminal showing npm package installation messages.

Create the data directory:

mkdir -p /opt/meshcentral/meshcentral-data

Step 7: Initial MeshCentral Configuration

Create the configuration file:

nano /opt/meshcentral/meshcentral-data/config.json
Terminal showing file and directory setup commands.

Initial configuration:

{
  "settings": {
    "cert": "mesh.example.com",
    "port": 443,
    "redirPort": 80,
    "selfUpdate": false
  },
  "domains": {
    "": {
      "title": "MeshCentral",
      "newAccounts": true
    }
  }
}

What this does

  • Sets the domain name used by MeshCentral
  • Listens on ports 443 (HTTPS) and 80 (redirect)
  • Disables automatic self-updates
  • Allows initial account creation

Start MeshCentral manually (test run):

MeshCentral server configuration excerpt.
node /opt/meshcentral/node_modules/meshcentral

Stop it with Ctrl + C after confirming it starts correctly.

Terminal displaying MeshCentral startup and certificate messages.

Step 8: Create a systemd Service

Create the service file:

nano /etc/systemd/system/meshcentral.service

Paste:

[Unit]
Description=MeshCentral Server
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/node /opt/meshcentral/node_modules/meshcentral
WorkingDirectory=/opt/meshcentral
Restart=always
RestartSec=10
Environment=NODE_ENV=production

[Install]
WantedBy=multi-user.target
Terminal showing a systemd service unit configuration.

Reload systemd:

systemctl daemon-reload

Enable and start MeshCentral:

systemctl enable meshcentral
systemctl start meshcentral

Check status:

systemctl status meshcentral
Terminal showing the interactive process monitor.

Step 9: Enable Let’s Encrypt SSL

Edit the configuration file again:

nano /opt/meshcentral/meshcentral-data/config.json

Final production configuration:

{
  "settings": {
    "cert": "ubuntu-tutorials.shape.host",
    "port": 443,
    "redirPort": 80,
    "selfUpdate": false,
    "letsencrypt": {
      "email": "contact@shape.host",
      "names": "ubuntu-tutorials.shape.host",
      "production": true
    }
  },
  "domains": {
    "": {
      "title": "MeshCentral",
      "newAccounts": false
    }
  }
}

What changed

  • Enables Let’s Encrypt SSL
  • Uses a real domain and email
  • Disables public account creation (recommended for security)
Terminal showing the GNU nano editor and configuration text.

Restart MeshCentral:

systemctl restart meshcentral

Step 10: Access MeshCentral

Open your browser:

https://ubuntu-tutorials.shape.host

You now have:

A fully self-hosted MeshCentral server

Running on Ubuntu 24.04

Secured with Let’s Encrypt HTTPS

Managed via systemd

MeshCentral account registration form.
MeshCentral device management screen.

You installed MeshCentral on Ubuntu 24.04, configured it as a persistent system service, and secured it with Let’s Encrypt SSL. This setup is ideal for managing remote systems, servers, and devices in a secure, centralized way.

For hosting remote management platforms with stability, performance, and full root access, Shape.Host Linux SSD VPS provides a reliable and scalable foundation for production environments.