Skip to content

Installing on Windows

This guide covers installing Moneta Pay POS on a Windows server or PC. The installer handles downloading binaries, installing dependencies, and configuring the system.

Video Walkthrough

Watch the complete installation process from start to finish:

Prerequisites

  • Windows 10 or later (64-bit)
  • Administrator access — the installer must run as Administrator
  • Internet connection — to download binaries and dependencies
  • 4 GB RAM minimum (8 GB recommended)

Run the Installer

Open PowerShell as Administrator (right-click the Start menu → "Windows PowerShell (Admin)") and run:

powershell
irm https://get.moneta-pay.app/scripts/install.ps1 | iex

Install a Specific Version

powershell
.\install.ps1 -Version v0.27.2

What the Installer Does

The installer runs through six phases automatically:

Phase 1: Download & Extract

  • Downloads the latest release from the Moneta Pay CDN
  • Verifies the SHA256 checksum
  • Extracts binaries to C:\MonetaPOS
  • Adds the install directory to your system PATH

Phase 2: PostgreSQL

Checks for an existing PostgreSQL installation (versions 13–17). If none is found, it downloads and installs PostgreSQL 16 unattended.

  • A secure random password is generated and saved to C:\MonetaPOS\pg_password.txt
  • PostgreSQL is added to the system PATH
  • The connection is verified before proceeding

Keep Your Password Safe

The PostgreSQL superuser password is stored in C:\MonetaPOS\pg_password.txt. Do not delete this file.

Phase 3: WireGuard

Downloads and installs WireGuard if not already present. Required for the Remote Access feature.

Phase 4: Firewall

Opens two ports in Windows Firewall:

PortServicePurpose
3000DashboardWeb management interface
8080POS APIBackend API for POS clients

Phase 5: Setup Wizard

The installer launches the dashboard and opens the Setup Wizard in your browser. Complete the wizard to configure your database, business details, and printers.

INFO

The wizard is documented separately since it's identical on Windows and Linux. See Setup Wizard.

Phase 6: Windows Services

After the wizard completes, Windows services are registered (auto-start on boot):

Service NameBinaryPurpose
moneta-pos-dashboarddashboard-server.exeWeb dashboard on port 3000
moneta-pos-servermoneta-pos-server.exePOS API server on port 8080
moneta-pos-print-workerevent-print-worker.exeThermal printer job processing

Managing Services

powershell
cd C:\MonetaPOS

# Check status
.\moneta-pos-server.exe status
.\dashboard-server.exe status
.\event-print-worker.exe status

# Stop / Start / Restart
.\moneta-pos-server.exe stop
.\moneta-pos-server.exe start
.\moneta-pos-server.exe restart

.\dashboard-server.exe stop
.\dashboard-server.exe start
.\dashboard-server.exe restart

.\event-print-worker.exe stop
.\event-print-worker.exe start
.\event-print-worker.exe restart

Or use Windows Services (services.msc) to manage moneta-pos-server, moneta-pos-dashboard, and moneta-pos-print-worker.

Updating

Re-run the installer to update:

powershell
irm https://get.moneta-pay.app/scripts/install.ps1 | iex

The installer is idempotent — it downloads the new version, replaces the binaries, and restarts services. Your configuration and data are preserved.

Uninstalling

powershell
cd C:\MonetaPOS

# Remove services
.\moneta-pos-server.exe stop
.\moneta-pos-server.exe uninstall
.\dashboard-server.exe stop
.\dashboard-server.exe uninstall
.\event-print-worker.exe stop
.\event-print-worker.exe uninstall

# Remove WireGuard tunnel (if configured)
wireguard.exe /uninstalltunnelservice wg0

# Delete install directory
Remove-Item -Recurse -Force C:\MonetaPOS

Optionally uninstall PostgreSQL via Add or Remove Programs.

Troubleshooting

Dashboard not loading

Symptom: Browser shows "connection refused" at http://localhost:3000

powershell
# Check service
.\dashboard-server.exe status

# Start if stopped
.\dashboard-server.exe start

# Check if port is in use
netstat -an | findstr :3000

POS API not responding

Symptom: Dashboard shows "Server Unreachable"

powershell
# Run manually to see errors
.\moneta-pos-server.exe stop
.\moneta-pos-server.exe -config C:\MonetaPOS\config.yaml

PostgreSQL connection issues

powershell
# Check if PostgreSQL is running
Get-Service postgresql*

# Start if stopped
Start-Service postgresql-x64-16

# Test connection
$env:PGPASSWORD = (Get-Content C:\MonetaPOS\pg_password.txt)
& "C:\Program Files\PostgreSQL\16\bin\psql.exe" -U postgres -c "SELECT 1"

License errors

powershell
# Verify license file exists
Test-Path C:\MonetaPOS\license.json

# Restart server to reload license
.\moneta-pos-server.exe restart

VPN / Remote Access issues

See the Remote Access troubleshooting guide, or check the basics:

powershell
# Tunnel service running?
sc query WireGuardTunnel$wg0

# WireGuard handshake?
wg show wg0

# Firewall rule exists?
netsh advfirewall firewall show rule name="WireGuard VPN Inbound"

If the firewall rule is missing:

powershell
netsh advfirewall firewall add rule name="WireGuard VPN Inbound" dir=in action=allow localip=<your-vpn-subnet> remoteip=10.100.0.0/16 protocol=any

Find your subnet in C:\MonetaPOS\wg0.conf under the Address line.

Next Steps

Moneta Pay POS — Built for African Restaurants