Setup Wizard
The setup wizard runs in your browser and configures your Moneta Pay POS from scratch. It's identical on Windows and Linux — the wizard is served by the dashboard-server binary at http://localhost:3000/setup.
Overview
The wizard has four steps:
- Database — Create and configure the PostgreSQL database
- Business — Enter your restaurant details
- Printers — Connect thermal printers
- Execute — Finalize setup, request a license, and start the server
Step 1: Database
The wizard provisions your PostgreSQL database automatically:
- Creates the
moneta_posdatabase and user - Runs all schema migrations
- Installs the event queue event queue extension (used for printing and fiscal compliance)
What you need to provide:
| Field | Default | Description |
|---|---|---|
| Host | localhost | PostgreSQL server address |
| Port | 5432 | PostgreSQL port |
| Superuser Password | (auto-filled on Windows) | The postgres user password |
On Windows, the installer pre-fills the password. On Linux, enter the password you set during PostgreSQL installation.
TIP
The wizard creates a dedicated moneta_pos database user with a randomly generated password. You don't need to create this manually.
Step 2: Business Details
Configure your restaurant:
| Field | Description |
|---|---|
| Business Name | Your restaurant name (appears on receipts) |
| Country | Select from 10 supported African countries (Kenya, Uganda, Tanzania, Rwanda, Burundi, DRC, South Sudan, South Africa, Nigeria, Ethiopia) |
| VAT Registered | Toggle on if your business is registered for VAT — enables tax calculation |
| Business email — verified via a one-time code (OTP) sent to this address |
The country selection determines default tax rules (e.g., Kenya: 16% VAT + 2% CTL) and currency.
You'll also create the admin account here:
| Field | Description |
|---|---|
| Username | Admin login username |
| Password | Admin login password |
Remember Your Credentials
The admin username and password are needed to log into the dashboard after setup. There's no password reset without database access.
Step 3: Printers
Configure your thermal printers. Printers connect via TCP/IP over your local network.
Receipt Printer
The customer-facing printer for payment receipts:
| Field | Example | Description |
|---|---|---|
| Name | "Reception Printer" | Friendly name |
| IP Address | 192.168.1.100 | Printer's network IP |
| Port | 9100 | TCP port (standard for ESC/POS) |
Kitchen Printers
One or more printers for kitchen order tickets. Each kitchen printer can be assigned to specific menu categories (e.g., "Bar" printer only gets drink orders).
| Field | Example | Description |
|---|---|---|
| Name | "Kitchen Main" | Friendly name |
| IP Address | 192.168.1.101 | Printer's network IP |
| Port | 9100 | TCP port |
| Categories | Food, Starters | Menu categories routed to this printer |
Skip for Now
You can skip printer configuration and set it up later in Admin → Printers from the dashboard.
Step 4: Execute
The final step runs all configuration tasks:
- Writing configuration — generates
config.yamlwith database credentials, JWT secrets, and server settings - Creating database schema — runs migrations to create all tables
- Running migrations — applies any pending schema changes
- Installing event queue — sets up event queue for async printing and fiscal events
- Seeding data — creates the admin user, default menu categories, and business record
- Requesting trial license — contacts the Moneta Pay portal to issue a trial license
- Registering VPN tunnel — sets up WireGuard for remote access (if available)
- Starting POS Server — launches the backend API server
Trial License
The wizard automatically requests a trial license from the Moneta Pay portal:
| Feature | Trial Limits |
|---|---|
| Duration | 21 days |
| Waiters | 15 |
| Terminals | 3 |
| Features | All features (Analytics, Stock Engine, ESD, M-PESA, Credit, Remote Access) |
| Grace Period | 7 days after expiry |
To continue after the trial, purchase a plan at portal.moneta-pay.app.
Email Verification
If you enter an email address during setup, the wizard sends a verification code to confirm your identity. This links your installation to your portal account for license management.
After the Wizard
Once the wizard completes:
- The dashboard redirects to the login page
- Log in with the admin credentials you created in Step 2
- You'll see the System Health page showing your server version, license status, and active terminals
What's Running
| Service | URL | Purpose |
|---|---|---|
| Dashboard | http://localhost (port 80 via nginx) | Web management interface |
| POS API | http://localhost:8080 | Backend for POS clients and the dashboard |
TIP
Nginx is configured as a reverse proxy on port 80, forwarding to the dashboard on port 3000. You can access the dashboard at http://<server-ip> without specifying a port.
Configuration Files
C:\MonetaPOS\config.yaml # Server configuration
C:\MonetaPOS\license.json # License file
C:\MonetaPOS\pg_password.txt # PostgreSQL password/etc/moneta_pay/server.yaml # Server configuration
/etc/moneta_pay/license.json # License fileNext Steps
Your POS is ready to use. Here's what to do next:
- Take your first order — walkthrough of the order flow
- Add waiters — create staff accounts
- Set up printers — if you skipped printer config
- Enable remote access — manage your POS from anywhere
- Configure fiscal compliance — tax authority integration setup
Re-running the Wizard
The wizard only runs once. After completion, a .setup_complete marker file is created. If you need to re-run it (e.g., to reconfigure from scratch):
Remove-Item C:\MonetaPOS\.setup_complete
.\dashboard-server.exe restartsudo rm /etc/moneta_pay/.setup_complete
sudo systemctl restart moneta-pos-dashboardThen open http://localhost:3000/setup again.
DANGER
Re-running the wizard on an existing installation will overwrite your configuration. Your database data is preserved, but the config file and license will be regenerated.