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(thedomextension is provided byphp-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
- Visit the app and register an account.
- Verify your email if email verification is enabled.
- Open the Dashboard โ your API token is generated automatically and shown there.
- Add at least one payment provider before making API calls.