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./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/.
🪟 Windows - Laragon (recommended)
Laragon bundles PHP, MySQL, Apache/Nginx, and auto-creates.test domains.
- Install Laragon and start it (Start All).
- Make sure the bundled PHP is 8.3+ (Menu → PHP → Version). Switch if needed.
- Put the project in Laragon’s
wwwfolder:C:\laragon\www\ownpay. - Laragon auto-creates the vhost
http://ownpay.test(Menu → Reload/Restart All if it doesn’t appear). - Create the database in HeidiSQL (bundled) or run the
CREATE DATABASEcommand above. - Visit http://ownpay.test → the installer wizard runs.
Laragon’s document root maps to the project’s public/ automatically via the bundled rewrite rules.
🍎 macOS - Laravel Herd (recommended)
Herd is a free, one-click PHP environment (PHP + Nginx + dnsmasq for.test domains).
- Install Herd. It ships PHP 8.3+ and Composer.
- Add the folder that contains the project as a Parked path (Herd → Settings → General), or
herd parkfrom the parent directory. - Herd serves it at
https://ownpay.test(Herd points the site atpublic/automatically). - Start MySQL with DBngin (free) or Homebrew (
brew install mysql && brew services start mysql), then create theownpaydatabase. - Visit https://ownpay.test → the installer wizard runs.
brew install [email protected] composer mysql then use the Quick Start built-in-server path.
🐧 Linux - native packages
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:Optional: local payment-gateway callbacks
External gateways (bKash, Stripe, etc.) can’t reachlocalhost/*.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 handlerssrc/Service/- business logicsrc/Repository/- data accessmodules/gateways/- payment integrations (see the Plugin Developer Guide)templates/- Twig views