Skip to main content
Get OwnPay running on your machine for development and contribution - on Windows, macOS, or Linux. The fast path below takes about 2 minutes after the prerequisites are installed.
New to the codebase? Read ARCHITECTURE.md first.

Prerequisites

Tip: The all-in-one stacks below (Laragon / Herd / Docker) bundle PHP + MySQL + a web server so you don’t install them separately.
Check your PHP version and extensions:

Quick Start - all platforms (~2 minutes)

This uses PHP’s built-in web server, so it works identically on Windows, macOS, and Linux. No web-server config needed.
Now open http://localhost:8000 in your browser. You’ll be redirected to the /install wizard - it generates your .env, imports the schema, and creates your admin account for you. No manual .env editing required.
The installer writes a lock file at storage/.installed. To re-run the installer, delete that file (and drop/recreate the DB).

Platform-specific all-in-one stacks

Prefer a real web server and pretty *.test domains? Use a bundled stack. The Quick Start still applies - just point the stack’s web root at public/. Laragon bundles PHP, MySQL, Apache/Nginx, and auto-creates .test domains.
  1. Install Laragon and start it (Start All).
  2. Make sure the bundled PHP is 8.3+ (Menu → PHP → Version). Switch if needed.
  3. Put the project in Laragon’s www folder: C:\laragon\www\ownpay.
  4. Laragon auto-creates the vhost http://ownpay.test (Menu → Reload/Restart All if it doesn’t appear).
  5. Create the database in HeidiSQL (bundled) or run the CREATE DATABASE command above.
  6. Visit http://ownpay.test → the installer wizard runs.
Laragon’s document root maps to the project’s public/ automatically via the bundled rewrite rules.
Herd is a free, one-click PHP environment (PHP + Nginx + dnsmasq for .test domains).
  1. Install Herd. It ships PHP 8.3+ and Composer.
  2. Add the folder that contains the project as a Parked path (Herd → Settings → General), or herd park from the parent directory.
  3. Herd serves it at https://ownpay.test (Herd points the site at public/ automatically).
  4. Start MySQL with DBngin (free) or Homebrew (brew install mysql && brew services start mysql), then create the ownpay database.
  5. Visit https://ownpay.test → the installer wizard runs.
Homebrew-only alternative: brew install [email protected] composer mysql then use the Quick Start built-in-server path.

🐧 Linux - native packages

(Fedora: sudo dnf install php-cli php-mysqlnd php-mbstring php-bcmath php-json composer mariadb-server.) For a production-like Nginx/Apache vhost, point the document root at public/ and route all requests to public/index.php (an Apache .htaccess is already included; an nginx.conf.example ships in the repo root).

After install - verify your setup

Run the same checks CI does:
All three should pass on a clean checkout.

Optional: local payment-gateway callbacks

External gateways (bKash, Stripe, etc.) can’t reach localhost/*.test. To test real redirects/webhooks, expose your local server with a tunnel and set GATEWAY_CALLBACK_URL in .env:

Troubleshooting


Project layout & where to start

See ARCHITECTURE.md for the full map. Most contributions touch:
  • src/Controller/ - HTTP handlers
  • src/Service/ - business logic
  • src/Repository/ - data access
  • modules/gateways/ - payment integrations (see the Plugin Developer Guide)
  • templates/ - Twig views
Happy hacking! 🚀
Last modified on July 15, 2026