# MeshCentral Installation on Ubuntu Server

These Instructions follow the steps of starting personal MeshCentral remote support server. Prerequisites require you to have set up ubuntu server, and have DNS record set up to point to this ip:443. It's good idea to use cloudflare tunnel or other type of tunneling service so you don't need to do port forwarding.

#### Installing Steps for MeshCentral

1. Update Server

```bash
sudo apt update && sudo apt upgrade -y
```

2. Install Node.js

```bash
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo bash -
sudo apt install -y nodejs   
```

3. Create MesCentral Directory

```bash
sudo mkdir /opt/meshcentral
cd /opt/meshcentral   
```

4. Install MeshCentral

```bash
sudo npm install meshcentral   
```

5. Create Dedicated User

```bash
sudo useradd -r -d /opt/meshcentral -s /sbin/nologin meshcentral
sudo chown -R meshcentral:meshcentral /opt/meshcentral   
```

6. Grant Port 443 Access

```bash
sudo setcap 'cap_net_bind_service=+ep' $(which node)   
```

7. Start MeshCentral

```bash
sudo -u meshcentral node node_modules/meshcentral   
```

8. Configure for Port 443

```bash
sudo nano /opt/meshcentral/meshcentral-data/config.json   
```

Replace in json file:

```json
{
  "settings": {
    "cert": "remote.cyberclaw.org",
    "port": 443,
    "redirPort": 80,
    "wanonly": true
  },
  "domains": {
    "": {
      "title": "My MeshCentral",
      "newAccounts": true
    }
  }
}   
```

9. Create Systemd Service

```bash
sudo nano /etc/systemd/system/meshcentral.service   
```

Add:

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

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

[Install]
WantedBy=multi-user.target   
```

10. Enable and Start Service

```bash
sudo systemctl daemon-reload
sudo systemctl enable meshcentral.service --now
sudo systemctl status meshcentral.service   
```

Login via domain set up for meshcentral. Go to create account. First Time account creation will be admin account.