How to Install MeshCentral on Debian 12

Estimated reading: 3 minutes 350 views

Introduction

MeshCentral is a free and open-source remote management platform that allows you to remotely access and manage devices through a web browser.

This guide explains how to install MeshCentral on Debian 12.

After completing this tutorial, you will have:

  • A working MeshCentral server
  • HTTPS access through your server IP
  • Automatic startup using systemd
  • Remote device management capabilities

Step 1: Connect to the Server

Linux / macOS

ssh root@YOUR_SERVER_IP

Windows (PowerShell / Windows Terminal)

ssh root@YOUR_SERVER_IP

Windows (PuTTY)

Open PuTTY and enter:

  • Host Name: YOUR_SERVER_IP
  • Port: 22
  • Connection Type: SSH

Log in as: root


Step 2: Update the System

Refresh the Debian package index:

apt update

Install all available updates:

apt upgrade -y


Step 3: Install Required Dependencies

Install required packages:

apt install -y curl ca-certificates gnupg

 


Step 4: Install Node.js 20

Node.js is required to run MeshCentral.

Add the official NodeSource repository:

curl -fsSL https://deb.nodesource.com/setup_20.x | bash -

Install Node.js:

apt install -y nodejs

Verify the installation:

node -v
npm -v


Step 5: Install MeshCentral

Create the MeshCentral directory:

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

Install MeshCentral:

npm install meshcentral

Create the data directory:

mkdir -p /opt/meshcentral/meshcentral-data

Step 6: Configure MeshCentral

Create the configuration file:

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

Paste the following configuration:

{
  "settings": {
    "cert": "YOUR_SERVER_IP",
    "port": 443,
    "redirPort": 80,
    "selfUpdate": false
  },
  "domains": {
    "": {
      "title": "MeshCentral",
      "newAccounts": true
    }
  }
}


Step 7: Test MeshCentral

Start MeshCentral manually:

node /opt/meshcentral/node_modules/meshcentral

Open your browser and visit:

https://YOUR_SERVER_IP

Stop MeshCentral after testing:

Ctrl + C

Step 8: Create a systemd Service

Create the service file:

nano /etc/systemd/system/meshcentral.service

Paste the following configuration:

[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

Reload systemd:

systemctl daemon-reload

Enable MeshCentral at startup:

systemctl enable meshcentral

Start the service:

systemctl start meshcentral

Check the service status:

systemctl status meshcentral


Step 9: Install and Configure UFW Firewall

Install Uncomplicated Firewall:

apt install -y ufw

Allow SSH access:

ufw allow 22/tcp

Allow HTTP and HTTPS traffic:

ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 22/tcp

Enable UFW:

ufw enable

Check firewall status:

ufw status


Step 10: Access MeshCentral

Open your browser and visit:

https://YOUR_SERVER_IP

Create your administrator account on first login.

Your MeshCentral server is now installed and ready to use.


Important Notes

Since this setup uses only an IP address, MeshCentral automatically generates a self-signed SSL certificate.

Browsers may display warnings such as:

  • “Your connection is not private”
  • “Potential security risk ahead”

This is normal for IP-based HTTPS setups.

Let’s Encrypt does not issue SSL certificates for raw IP addresses. A domain name is required for trusted SSL certificates.


Conclusion

You have successfully installed MeshCentral on Debian 12 using only a public IP address.

The server is now running as a persistent systemd service and is ready for remote device management through a web browser.

Share this Doc

How to Install MeshCentral on Debian 12

Or copy link

CONTENTS