|
-**🛡️ Complete Ownership**
+### 🛡️
+**Complete Ownership**
-Your financial infrastructure stays on your server. No middlemen. No third-party access. Ever.
+Your financial infrastructure lives on your server. No middlemen, no third-party access, no vendor lock-in. Ever.
|
-**⚡ Built for Builders**
+### ⚡
+**Built for Builders**
-Engineered for developers and businesses who demand professional-grade payment infrastructure.
+A clean custom core, a sandboxed plugin system, and a full REST API — engineered for developers who demand control.
|
-**🌍 Community-Driven**
+### 🌍
+**Open & Community-Driven**
-AGPL-3.0 licensed. Open source forever. Shaped by the community, for the community.
+AGPL-3.0 licensed and free forever. Transparent, auditable, and shaped by the community that runs it.
|
@@ -74,36 +116,141 @@ AGPL-3.0 licensed. Open source forever. Shaped by the community, for the communi
---
-## ⚡ How OwnPay Works
+##
+
+
+
-
+#### 💳 Payments & Checkout
+- **120+ payment gateway integrations** (plugin-based)
+- Manual & API gateways + express checkout
+- Hosted checkout, payment links, invoices & payment intents
+- Refunds with atomic, balance-validated reversals
+- Multi-currency with automatic conversion
-
+#### 🏢 Multi-Brand by Design
+- One owner, many brands (stores) — fully isolated
+- Per-brand domains, gateways, customers & ledgers
+- White-label custom-domain checkout
+- Per-brand theming — logo, colors, custom CSS/JS
+
+ |
+
+
+#### 🔐 Security & Accounting
+- Double-entry ledger engine (bcmath precision)
+- AES-256-GCM PII encryption · Argon2id passwords
+- CSRF, strict CSP, rate limiting, SSRF guards
+- Staff RBAC — granular roles & permissions
+
+#### 🧩 Platform & Operations
+- Sandboxed plugin/addon system + domain hook engine
+- Mobile companion app — device pairing, JWT, SMS verification
+- Full i18n — admin panel **and** customer checkout
+- REST API (merchant / mobile / admin) + webhooks
+- Signed, atomic, rollback-safe self-update engine
+
+ |
+
+
+
+
---
-## ▶️ Live Demo
+##
⚡ How It Works
-
+```mermaid
+flowchart LR
+ M["🏪 Merchant / Store"] -->|Create payment| O["⚙️ OwnPay Core"]
+ O -->|White-label checkout| C["👤 Customer"]
+ C -->|Pays via| G["💳 Gateway / MFS"]
+ G -->|Callback + webhook| O
+ O -->|Verified result + ledger entry| M
+```
+
+OwnPay sits on **your** server between your store and the world's payment providers. It renders a branded checkout, routes the payment through the gateway the customer chose, verifies the result (checksum + signature + webhook), books a double-entry ledger record, and notifies your store — all without a third party ever touching your data.
+
+> Want the deep dive? Read the **[Architecture Guide →](docs/ARCHITECTURE.md)**
+
+---
+
+##
🚀 Deploy to Your Server
-> **The OwnPay live demo is coming soon.**
-> Experience the full platform firsthand before the official public release.
+OwnPay ships as a **self-contained release archive** — the same zip works on **shared hosting, a VPS, or a dedicated server**, and doubles as the installer. No build step required.
+> **Requirements:** PHP **8.3+** (`bcmath`, `json`, `mbstring`, `openssl`, `pdo_mysql`, `curl`) · MySQL 8 / MariaDB 10.4+ · HTTPS strongly recommended.
+
+
+🌐 Shared Hosting (cPanel / DirectAdmin — no SSH needed)
-[](https://demo.ownpay.org)
+1. **Download** the latest [`ownpay-x.y.z.zip`](https://github.com/own-pay/OwnPay/releases/latest) release.
+2. In your hosting **File Manager**, upload and extract it into your site directory.
+3. Create a **MySQL database** + user and note the credentials.
+4. Point your domain's **document root to the `public/` folder** (or extract so `public/` maps to your web root).
+5. Visit your domain — the **`/install` wizard** checks requirements, writes `.env`, imports the schema, and creates your admin account.
-
+That's it. Dependencies (`vendor/`) are bundled in the release, so Composer is **not** required on the server.
+
+
+
+
+🖥️ VPS / Dedicated Server (Nginx or Apache + PHP-FPM)
+
+
+```bash
+# 1. Get the release (or git clone for source installs)
+cd /var/www
+curl -L -o ownpay.zip https://github.com/own-pay/OwnPay/releases/latest/download/ownpay.zip
+unzip ownpay.zip -d ownpay && cd ownpay
+
+# 2. (Source installs only — release zips already bundle vendor/)
+# composer install --no-dev --optimize-autoloader
+
+# 3. Make runtime dirs writable by the web server
+chown -R www-data:www-data storage public/assets/uploads
+```
+
+Point your web server's root at **`public/`** and route all requests to `public/index.php`. An Apache `.htaccess` is included; an `nginx.conf.example` ships in the repo root. Then open your domain and complete the **`/install`** wizard.
+
+
+
+
---
-## 🏗️ Tech Stack
+##
🧑💻 Run Locally / Contribute
+
+Testing OwnPay or contributing? Get a local instance running in **~2 minutes** on Windows, macOS, or Linux:
+
+```bash
+git clone https://github.com/own-pay/OwnPay.git
+cd OwnPay
+composer install
+mysql -u root -p -e "CREATE DATABASE ownpay CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
+php -S localhost:8000 -t public # then open http://localhost:8000 → /install wizard
+```
+
+> 🛠️ **Full local guide** (Laragon · Herd · native · tunnels · troubleshooting): **[docs/LOCAL_SETUP.md](docs/LOCAL_SETUP.md)**
+> 🤝 **Ready to contribute?** Start with **[CONTRIBUTING.md](CONTRIBUTING.md)** — coding standards, workflow & PR process.
+
+Run the same checks CI does before opening a PR:
+
+```bash
+composer test # PHPUnit
+composer analyse # PHPStan (level 9)
+composer lint # Twig + JS + CSS
+```
+
+---
+
+##
🏗️ Tech Stack
-

+
@@ -117,12 +264,12 @@ AGPL-3.0 licensed. Open source forever. Shaped by the community, for the communi
| Component | Technology |
|:---|:---|
-| Language | PHP 8.2+ · Strict Types |
-| Database | MySQL 8.x / MariaDB 10.6+ |
-| Package Mgr | Composer v2 |
-| Migrations | Doctrine Migrations |
+| Language | PHP 8.3+ · Strict Types |
+| Database | MySQL 8.x / MariaDB 10.4+ |
+| Package Manager | Composer v2 |
+| Migrations | Custom SQL migrations |
| DI Container | PSR-11 · Custom · Auto-wiring |
-| REST API | JSON · Webhook Callbacks |
+| API | REST (JSON) · Webhook callbacks |
@@ -133,8 +280,8 @@ AGPL-3.0 licensed. Open source forever. Shaped by the community, for the communi
|:---|:---|
| Field Encryption | AES-256-GCM |
| Password Hashing | Argon2id |
-| Templating | Twig 3.14 · Flowbite · Alpine.js |
-| CSS Framework | Tailwind CSS 3.4 |
+| Templating | Twig 3.x · Server-rendered |
+| Frontend | Vanilla CSS + JS · No build step |
| Static Analysis | PHPStan Level 9 |
| Deployment | Shared · VPS · Dedicated |
@@ -142,189 +289,197 @@ AGPL-3.0 licensed. Open source forever. Shaped by the community, for the communi
|