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:
irm https://get.moneta-pay.app/scripts/install.ps1 | iexInstall a Specific Version
.\install.ps1 -Version v0.27.2What 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:
| Port | Service | Purpose |
|---|---|---|
| 3000 | Dashboard | Web management interface |
| 8080 | POS API | Backend 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 Name | Binary | Purpose |
|---|---|---|
moneta-pos-dashboard | dashboard-server.exe | Web dashboard on port 3000 |
moneta-pos-server | moneta-pos-server.exe | POS API server on port 8080 |
moneta-pos-print-worker | event-print-worker.exe | Thermal printer job processing |
Managing Services
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 restartOr 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:
irm https://get.moneta-pay.app/scripts/install.ps1 | iexThe installer is idempotent — it downloads the new version, replaces the binaries, and restarts services. Your configuration and data are preserved.
Uninstalling
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:\MonetaPOSOptionally uninstall PostgreSQL via Add or Remove Programs.
Troubleshooting
Dashboard not loading
Symptom: Browser shows "connection refused" at http://localhost:3000
# Check service
.\dashboard-server.exe status
# Start if stopped
.\dashboard-server.exe start
# Check if port is in use
netstat -an | findstr :3000POS API not responding
Symptom: Dashboard shows "Server Unreachable"
# Run manually to see errors
.\moneta-pos-server.exe stop
.\moneta-pos-server.exe -config C:\MonetaPOS\config.yamlPostgreSQL connection issues
# 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
# Verify license file exists
Test-Path C:\MonetaPOS\license.json
# Restart server to reload license
.\moneta-pos-server.exe restartVPN / Remote Access issues
See the Remote Access troubleshooting guide, or check the basics:
# 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:
netsh advfirewall firewall add rule name="WireGuard VPN Inbound" dir=in action=allow localip=<your-vpn-subnet> remoteip=10.100.0.0/16 protocol=anyFind your subnet in C:\MonetaPOS\wg0.conf under the Address line.
Next Steps
- Setup Wizard — if you haven't completed it yet
- Remote Access — set up VPN for remote management
- Printer Setup — connect thermal printers