Getting Started

Self-Hosted Installation

MoneyUnify Switch is a standard, self-hosted PHP application. You host it yourself, which keeps every credential, customer, and transaction inside infrastructure you control.

#Requirements

Dependency Version Download
PHP 8.4 or newer (with dom and gd extensions) php.net/downloads
Composer 2.x getcomposer.org/download
Node.js 20 or newer nodejs.org/download
Database SQLite (default), MySQL, or PostgreSQL SQLite ยท MySQL ยท PostgreSQL

The default configuration uses SQLite, so no separate database server is required to get started.

#Installing PHP and its extensions

You can grab the PHP source or a Windows build from php.net/downloads, but on macOS and Linux it's easiest to install PHP (and the dom + gd extensions this app needs) through your package manager.

macOS โ€” using Homebrew. The Homebrew PHP formula already bundles the dom and gd extensions, so a single install is enough:

 1brew install php       # PHP 8.4+ with dom, gd, mbstring, curl, sqlite3, โ€ฆ
 2brew install composer  # Composer 2.x
 3brew install node      # Node.js 20+

Linux โ€” Debian / Ubuntu (apt). Extensions are shipped as separate packages, so install them alongside the PHP CLI:

 1sudo apt update
 2sudo apt install -y php8.4-cli php8.4-dom php8.4-gd \
 3    php8.4-mbstring php8.4-curl php8.4-xml php8.4-sqlite3

On Fedora / RHEL the equivalent is sudo dnf install php-cli php-xml php-gd php-mbstring php-pdo (the dom extension is provided by php-xml).

After installing, confirm the version and that the required extensions are loaded:

 1php -v                  # should report 8.4 or newer
 2php -m | grep -E 'dom|gd'   # both "dom" and "gd" should be listed

If an extension is missing, install its package (e.g. php8.4-gd) and re-run the check โ€” no PHP reconfiguration is needed.

#Quick start

Clone the repository and run the bundled setup script, which installs dependencies, prepares your environment file, generates an app key, runs the migrations, and builds the front-end assets:

 1git clone <your-fork-url> mu-switch
 2cd mu-switch
 3composer setup

composer setup runs the following for you:

 1composer install
 2cp .env.example .env          # only if .env does not exist yet
 3php artisan key:generate
 4php artisan migrate --force
 5npm install
 6npm run build

#Database

The application ships with DB_CONNECTION=sqlite. Create the database file (the migrations will populate it):

 1touch database/database.sqlite
 2php artisan migrate

To use MySQL or PostgreSQL instead, set the DB_* values in .env before running php artisan migrate.

#Building the documentation index

This documentation site is served under /docs. Its search and navigation are backed by a small SQLite index that you build once after installation (and whenever you change the docs):

 1php artisan docs:index --fresh

#Running the app

For local development, the dev script runs the web server, queue worker, log viewer, and Vite together:

 1composer dev

Then open the app in your browser:

  • Application: http://localhost:8000
  • Documentation: http://localhost:8000/docs

In production, serve the app with your usual PHP stack (Nginx or Apache with PHP-FPM, or a managed PHP host) and run npm run build to compile assets.

#Create your first account

  1. Visit the app and register an account.
  2. Verify your email if email verification is enabled.
  3. Open the Dashboard โ€” your API token is generated automatically and shown there.
  4. Add at least one payment provider before making API calls.