Choose how to install the server
Step by step from an empty VM to the first enrolled computers: Install a self-hosted RMM and enroll the first computers.
| Way | Best for | Needs |
|---|---|---|
| 1. Ready-made VM image | Import, start, sign in — in a few minutes | VMware, Proxmox/KVM or Hyper-V |
| 2. Appliance ISO | A new VM or a physical server, unattended | Internet access during installation |
| 3. Install script | An existing Debian, Ubuntu, AlmaLinux or Rocky Linux server | Root and internet access |
| 4. Packages by hand | Your own PostgreSQL, configuration management | The deb or rpm package of the release |
| 5. Docker | An existing Docker host, NAS or home lab | Docker with the Compose plugin |
The server needs 2 vCPU, 2–4 GB RAM and a 16 GB disk. Agents connect to it on TCP 8444; the console on TCP 8443 is only for your own networks.
1. Ready-made VM image
VMware ESXi, Workstation, VirtualBox
ESXi Host Client: Create / Register VM → Deploy a virtual machine from an OVF or OVA file. vSphere: Deploy OVF Template.
Proxmox VE and KVM
Create a VM without a disk (2 vCPU, 2–4 GB RAM, VirtIO network), import the disk, attach it as SCSI boot disk.
Hyper-V (generation 1)
Unzip, create a generation 1 VM with 2–4 GB RAM and choose the VHDX as its disk.
On Proxmox VE, after copying the image to the node:
qm importdisk <vmid> rmmzit-appliance.qcow2 local-lvm
Start the VM: its screen shows the console address and a setup token. Open https://<address>:8443, accept the self-signed certificate once, enter the token and create the first administrator with two-factor sign-in. The appliance gets its address by DHCP; on the VM's screen, sign in as rzadmin (first password rmmzit, must be changed) to set a static address, the server name and the time zone.
2. Appliance ISO
rmmzit-appliance.iso — boot a VM or server from it. After 5 seconds the unattended installation starts: it erases the first disk, installs Debian, PostgreSQL and RMMZit in 10–20 minutes, and then shows the console address and the setup token.
3. Install script
On Debian, Ubuntu, AlmaLinux or Rocky Linux (x86-64), as root:
curl -fsSL https://github.com/Max-Zit/rmmzit/releases/latest/download/install.sh | sudo sh
The script installs PostgreSQL, downloads the newest release, verifies its signature, creates the database and starts the service. Run it again to update. Options: --version X, --db postgres://…, --no-auto-updates. To read it first:
curl -fsSLO https://github.com/Max-Zit/rmmzit/releases/latest/download/install.sh
less install.sh
sudo sh install.sh
4. Packages and agents
sudo apt install ./rmmzit-server_X_amd64.deb # Debian, Ubuntu
sudo dnf install ./rmmzit-server-X-1.x86_64.rpm # AlmaLinux, Rocky Linux
Set RMMZIT_DB in /etc/rmmzit/server.env, then systemctl enable --now rmmzit-server. The setup token is in /var/lib/rmmzit/setup-token.txt. These files carry the version in their name and are listed on the release page:
| File | What |
|---|---|
rmmzit-server_X_amd64.deb, .rpm | The server, for installation by hand |
rmmzit-agent-X-x64.msi | Windows agent — Windows 10, 11, Server 2016 and newer |
rmmzit-agent-X-linux-amd64, -arm64 | Linux agent for x86-64 and ARM64 |
| SHA256SUMS | Checksums of the release files |
| SOURCE-CODE.txt | Where to get the source code of everything in the images |
Install an agent
In the console, add a customer and a site and create an enrollment code on the site (RZ1-…). The site page offers the downloads and the exact commands — also a Group Policy startup script and the Microsoft Intune settings.
msiexec /i rmmzit-agent-x64.msi /qn ENROLLCODE="RZ1-…" # Windows
sudo ./rmmzit-agent-linux-amd64 install --code "RZ1-…" # Linux (systemd)
Agents update themselves to the server's version.
5. Docker
The server is also a container image, ghcr.io/max-zit/rmmzit, built from the same signed package. Put docker-compose.yml and .env.example into a folder, copy .env.example to .env and set a database password, then:
docker compose up -d
docker compose exec rmmzit rmmzit-server -setup-token
Ports: 8443 (console), 8444 (agents). Update with docker compose pull && docker compose up -d; the server backs up its database before a new version changes it. The tag latest follows official releases, testing release candidates.
Verify a download
sha256sum -c SHA256SUMS --ignore-missing
The server, the agents and the install script verify the signed release manifest before installing anything; see Security.
Updating
Settings → RMMZit updates checks GitHub for new releases and installs them, optionally automatically. Only releases signed with the RMMZit release key are installed; the server backs up its database first and rolls back if the new version does not start. The Testing channel offers release candidates for a test server. Settings → Console backup keeps daily backups of the database, keys and certificates for a restore on a new machine.