Version : v2026.10
Before installing, verify the server with monofor check. It is read-only — it changes nothing — and it reports everything the installation will insist on.
Changed in v2026.10. The monofor.sh -check shell script is gone. The checks now live in the monofor binary, and the installation itself re-runs them, so a server that passes check will not be stopped later by a surprise.
1. Get the tool
Run the bootstrap script without a code — it then only installs the binary at /usr/local/bin/monofor and stops:
curl -fsSL https://services.monofor.com/install/latest/install.sh | sudo bash
It verifies the download against the published SHA256SUMS before installing it.
To do it by hand instead:
cd /tmp curl -fsSLO https://services.monofor.com/install/v2026.10/monofor-linux-amd64 curl -fsSLO https://services.monofor.com/install/v2026.10/SHA256SUMS sha256sum --ignore-missing -c SHA256SUMS sudo install -m 0755 monofor-linux-amd64 /usr/local/bin/monofor
Builds for macOS and Windows are published as well, so the check can be run from a workstation.
2. Run it as root
The check needs root privileges. Elevate first:
sudo su -
or prefix each command with sudo, which is what the examples below do.
3. Check the server
sudo monofor check
Example output:
__ __ __ | \/ | ___ _ __ ___ / _| ___ _ __ | |\/| |/ _ \| '_ \ / _ \ | |_ / _ \| '__| | | | | (_) | | | | (_) || _| (_) | | |_| |_|\___/|_| |_|\___/ |_| \___/|_| AI Security, Identity, Access, Privilege, Governance Installer v2026.10 (build 202610280904) · monofor.com ────────────────────────────────────────────────────────── ── Checking this server ────────────────────────────────────── ✓ Operating system Debian GNU/Linux 13 ✓ CPUs 8 ✓ Memory 16.8 GB ✓ Disk space 100.7 GB free on / (/var/lib/docker: Docker's images, volumes and containers) ✓ Docker running (version 29.9.1) ✓ Docker Swarm active (manager) ✓ Monofor repository reachable ✓ Monofor downloads reachable ✓ Monofor services reachable Without a code: checked against a PoC's recommended size (8 CPUs, 16 GB memory, 100 GB free disk for Docker's data); the code's own values apply at install. ✓ This server is ready. Next step: monofor install
Disk space is measured on the disk that holds Docker’s data folder, /var/lib/docker, where the product images, containers and volumes go — on a server with a separate /var partition, that partition, not /. From installers newer than v2026.11 the line names the disk it measured (up to v2026.11 it measured /), for example Disk space 100.7 GB free on /var (/var/lib/docker: Docker’s images, volumes and containers), and a second Disk space line appears for /opt/monofor when that folder is on yet another disk. When that disk is too small and another disk has room, the check names it, for example → /data has 400.0 GB free: the install offers to keep Docker’s data there, or add --docker-data-root /data/docker.
4. Check the installation code as well
Add --code to validate the code and the DNS records of its domain. The check never uses the code up, so run it as often as you like:
sudo monofor check --code ABC123
The code report is one of three states:
State | Meaning |
|---|---|
still free | Not used yet — it can be installed here |
used by this server | This installation already owns it; re-running the install continues it |
used by another installation | It cannot be installed on this server — ask for a new code |
Example output on a server that already owns the code:
── Checking this server ──────────────────────────────────────
✓ Operating system Debian GNU/Linux 13
✓ CPUs 8
✓ Memory 16.8 GB
✓ Disk space 100.7 GB free on / (/var/lib/docker: Docker's images, volumes and containers)
✓ Docker running (version 29.9.1)
✓ Docker Swarm active (manager)
✓ Monofor repository reachable
✓ Monofor downloads reachable
✓ Monofor services reachable
✓ Installation code ABC123 · used by this server · poc example.com on docker,
Monosign v2026.10-hf01, tenant 2d8af8a6-…
→ (a re-run will continue the same installation)
✓ DNS records all records found
✓ This server is ready. Next step: monofor install --code ABC123
Without --code, the DNS records are not checked — the installer does not yet know the domain. To check DNS without a code, name the domain yourself:
sudo monofor check --dns-name example.com
5. What the check covers
Item | What it verifies | If it fails |
|---|---|---|
Operating system | Distribution and version against the supported list | Re-install the server with a supported OS |
CPUs / Memory / Disk space | Against the PoC thresholds — 8 cores, 16 GB, 100 GB free on the disk that holds Docker’s data ( | Resize the server. On a VM, grow the disk before taking snapshots — most hypervisors refuse to extend a disk that has one |
Docker | Docker Engine installed and running | Install it, or let the installer do it with |
Docker Swarm | Swarm state on this server | Nothing to do on a fresh server; the installer initializes it |
Monofor repository |
| Open outbound TCP/443, check the proxy |
Monofor downloads | The download store reachable — installation files | As above |
Monofor services | Licensing and push services reachable | As above |
Installation code | Valid, and free / owned by this server / owned by another installation | Ask your Monofor contact for a code |
DNS records | Every product name of the code's domain resolves | Add the missing A records, or plan to install with |
The host firewall is not part of the check and does not need to be disabled — see PoC Requirements - Latest. The installer opens its own ports during installation.
6. When something fails
Failures are marked ✗ with the reason and a suggested fix, and the command exits non-zero — 4 when a check failed — so it can be used in a script.
✗ Installation code the installation code is invalid or has expired — ask your Monofor
contact for a new one
→ Check the code with your Monofor contact. No internet here? Use: monofor check --offline
Without a code: checked against a PoC's recommended size (8 CPUs, 16 GB memory, 100 GB free disk for Docker's data); the code's own values apply at install.
✗ 1 problem(s) found. Fix the items marked ✗ above, then run 'monofor check' again.
A code already consumed by a different installation reports as invalid or expired in this build; if you are confident the code was issued and never used here, confirm its state with your Monofor contact rather than assuming it expired.
7. Offline servers
On a server with no internet access, check the offline bundle instead of the network:
sudo monofor check --offline sudo monofor check --offline /path/to/bundle.zip
This verifies the offline files and image archives and skips every network test.
8. Sharing the result
monofor check writes no report file. Capture the output and send it to your Sales Engineer:
sudo monofor check --code ABC123 2>&1 | tee /tmp/monofor-check.txt
Next step
When every item is ✓, continue with PoC Installation - Latest — or PoC Installation - Quick Start - Latest for the short version.