How to Install MeshCentral on Debian 12
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.











