Skip to content
MoftgateMoftgate Docs
Product guide

Appliance Installation — Coming Soon

The Moftgate virtual appliance images are being finalized. The full installation guide will be published once the downloads are available.

Installation Video#

System Requirements#

vCPU4 cores (minimum 2)
Memory8 GB RAM (minimum 4 GB)
Disk60 GB thin/thick provisioned
HypervisorOVA: VMware ESXi/Workstation/Fusion, VirtualBox 7+ · VHDX: Hyper-V · qcow2: Proxmox VE, KVM/libvirt, XCP-ng
NetworkDHCP or static IPv4; agents must reach the appliance on TCP 4222
Guest OSIncluded: Ubuntu Server 24.04 LTS (no manual OS install required)
Sensor Deployment Gateway provides pre-configured agent binaries for Windows, macOS, and Linux deployment.
Moftgate agent deployment screen
Close image

RMM Module CPU / RAM / Disk Sizing by Endpoint Count#

Scale ProfileEndpoint (Agent) CountvCPURAMDisk (SSD / NVMe)Concurrent Remote Sessions & Workload Capacity
Lab / PoC (Minimum)1 – 50 Endpoints2 vCPU4 GB60 GB1–2 concurrent remote sessions, basic inventory and monitoring
Small Scale (Starter)50 – 250 Endpoints4 vCPU8 GB100 GB3–5 concurrent remote sessions, standard patch and script automation
Medium Scale (Standard)250 – 1,000 Endpoints6 vCPU16 GB200 GB5–10 concurrent remote sessions, intensive package/patch deployment
Large Scale (Corporate)1,000 – 2,500 Endpoints8 vCPU32 GB350 GB10–20 concurrent remote sessions, high-frequency telemetry and auditing
High Density (Enterprise)2,500 – 5,000 Endpoints12 – 16 vCPU48 – 64 GB500+ GB25+ concurrent remote sessions, fleet-wide automations
5,000+ Endpoints5,000+ Endpoints16+ vCPU64+ GB1 TB+ NVMeSeparation of database and application tiers (Cluster/HA) is recommended
1Step

Download and Import the Appliance Image#

The Moftgate appliance images are being finalized. Pick the hypervisor format you plan to use; downloads will appear here once the release is live.

Appliance Image

This format will be released soon.

Coming Soon
Coming Soon
The appliance image is not yet available for download. Detailed import instructions will be published here once the release is live.
2Step

Power On - Automatic First-Boot Provisioning#

On the first boot, the moftgate-firstboot systemd service provisions the appliance automatically. This takes about 2–5 minutes and runs only once.

  • Generates unique secrets: APP_KEY, database and Redis passwords, license encryption key, and a company ID.
  • Writes a hardened .env file with 0600 permissions under /opt/moftgate.
  • Starts PostgreSQL, Redis, and NATS, then runs database migrations and the initial seed.
  • Prepares the first-run setup wizard - no pre-generated credentials are stored on the appliance.
  • Registers the bundled endpoint agents (Windows, macOS, Linux) so they are ready to deploy.
VM console - provisioning log
tail -f /var/log/moftgate-firstboot.log
3Step

Complete the First-Run Setup Wizard#

When provisioning finishes, the VM console banner shows the panel URL. Open it in a browser:

shell
http://<vm-ip>

On the first visit, the panel opens a setup wizard: create the administrator account with your own e-mail and password, then sign in. No pre-generated credentials are stored anywhere on the appliance.

Shell access
Need shell access for maintenance? SSH is disabled on the appliance - sign in through your hypervisor’s VM console as moftgate / moftgate. Ubuntu forces a password change at the first login.

Network Ports and Firewall Rules#

Only four ports are published on the appliance host. PostgreSQL and Redis stay inside the container network and are never reachable from outside.

PortService
80 / TCPWeb Panel (nginx)
4222 / TCPNATS (agent channel)
8222 / TCPNATS monitoring
9222 / TCPNATS WebSocket

What Runs Inside the Appliance#

nginx

Reverse proxy and static asset serving on port 80

app

Laravel application (PHP 8.4 FPM) - panel, API, license checks

horizon

Queue worker for jobs, notifications, and automation pipelines

scheduler

Cron runner for periodic tasks (stale run detection, reports)

gateway

Rust ingestion service: NATS agent telemetry → PostgreSQL

db

PostgreSQL 15 - system of record (not exposed to the host)

redis

Cache, sessions, and queue backend (not exposed to the host)

nats

Message bus for real-time agent and UI communication

Day-2 Operations#

The whole stack is managed by a single systemd unit. Run these commands from the hypervisor’s VM console - the appliance does not accept remote shell (SSH) sessions:

Status, logs, restart
systemctl status moftgate-stack
sudo systemctl restart moftgate-stack
cd /opt/moftgate && docker compose -f docker-compose.ova.yml --env-file .env ps
docker compose -f docker-compose.ova.yml --env-file .env logs -f

If the VM gets a new IP address (DHCP), the render-env.sh helper rewrites APP_URL and the WebSocket endpoint at every boot - no manual reconfiguration needed. A static IP or DHCP reservation is still recommended for production.

Deploy Endpoint Agents#

Windows, macOS, and Linux agent installers are bundled inside the appliance and registered automatically at first boot. In the panel, go to Settings → Endpoint Visibility → Agent Versions to download them. Agents connect back to the appliance over NATS on TCP 4222.

Offline buffering
If the server is unreachable, agents keep collecting data locally (up to 3 days or 1 GB) and stream it back gradually once connectivity returns - without flooding the network.
End-user visibility
The agents also ship with a system tray icon for end users. See the Agent System Tray guide.

Post-Install Security Checklist#

  • 1SSH is disabled by design - administer the VM only through the hypervisor console and the web panel.
  • 2Change the console password at first login - the appliance enforces this automatically.
  • 3Complete the first-run setup wizard with a strong admin password before connecting agents.
  • 4Give the appliance a static IP or DHCP reservation so agents always reach the same address.
  • 5Place the panel behind your reverse proxy or TLS terminator for HTTPS access in production.
  • 6Restrict inbound firewall rules to ports 80, 4222, and 9222; expose 8222 only to monitoring systems.

Troubleshooting#

Panel not loading?
From the VM console, check that provisioning finished: systemctl status moftgate-firstboot and review /var/log/moftgate-firstboot.log.
Containers down?
Run docker compose -f /opt/moftgate/docker-compose.ova.yml --env-file /opt/moftgate/.env ps to see which service failed, then check its logs.
Agents cannot connect?
Confirm TCP 4222 is open between endpoints and the appliance, and that MOFTGATE_NATS_WS_URL matches the current VM IP.
Forgot the admin password?
Re-run the setup command inside the app container to rotate it: docker compose -f docker-compose.ova.yml --env-file .env run --rm --no-deps app php artisan moftgate:ova-setup.
Still need help?

Our engineering team can guide appliance sizing, network design, and agent rollout.