Skip to main content
Latest: v0.2.0
OwnPay features a built-in web installer that checks server configurations, sets up the database schema, and bootstraps your master administrator account. Visit your domain once files are uploaded to complete the setup - no command-line experience required.
Choose your environment below. Shared Hosting is for users with a cPanel or Plesk plan. VPS is for users comfortable with the Linux command line. Docker is for developers who prefer containerized deployment.

Select Your Environment

Choose your target environment to begin the deployment guide:

Shared Hosting

Standard hosting plans running control panels like cPanel, Plesk, or DirectAdmin.

VPS / Cloud Server

Dedicated virtual private server running Ubuntu or Debian with full root access.

Docker Container

Containerized stack using Docker Compose for local environments or cloud scaling.
Ensure your hosting node satisfies the following specifications before installing:

Required PHP Extensions

OwnPay requires the following extensions to be active: mbstring, pdo_mysql, gd, curl, zip, json, openssl, bcmath, intl

Shared Hosting

Shared hosting is the most common deployment method. Hosts like Hostinger, Namecheap, SiteGround, Bluehost, and others fully support OwnPay.
1

Download the Release Package

Download the latest stable release package directly:Alternatively, you can manually select a version:
  1. Visit the official OwnPay GitHub Releases page.
  2. Identify the top Latest Release tag (e.g. v0.2.0).
  3. Under the Assets section, download the .zip archive (e.g. ownpay-0.2.0.zip).
2

Upload files to your server

Upload the downloaded zip archive to your domain’s root folder (usually public_html or a custom subfolder).
  1. Access your cPanel account dashboard.
  2. Open the File Manager utility.
  3. Navigate to your target web folder (e.g., public_html or public_html/pay).
  4. Click Upload at the top, select the .zip archive, and wait for completion.
3

Extract the Archive

Unpack the uploaded file on the server. Ensure files are extracted directly into the domain’s root folder.
  1. Right-click the uploaded .zip archive inside the File Manager.
  2. Choose Extract from the action menu.
  3. Verify the directory path is correct and click Extract Files.
[!WARNING] Verify the extraction did not create a double-nested folder layout like public_html/ownpay-vX.Y.Z/. If it did, enter that directory, select all contents, move them up one level directly into public_html/, and delete the empty folder.
4

Create a MySQL Database

Create an empty database and database user. Record the credentials.
  1. Search for MySQL Databases on the cPanel home page.
  2. Under Create New Database, enter a name (e.g., ownpay_db) and click Create.
  3. Under Add New User, enter a username (e.g., ownpay_user) and a secure password. Click Create User.
  4. Under Add User To Database, select the user and database you just created, click Add, check ALL PRIVILEGES, and confirm changes.
[!TIP] Write down your credentials. The installer wizard will prompt you for:
  • Database Name
  • Database User
  • Database Password
  • Database Host (typically localhost or 127.0.0.1)
5

Select PHP 8.3

Make sure your domain is configured to use PHP version 8.3.
  1. Open Select PHP Version (or MultiPHP Manager) in cPanel.
  2. Check the box for your target domain.
  3. Select PHP 8.3 from the dropdown menu and click Apply.
6

Launch the Web Installer

Open your web browser and visit:
The setup wizard will guide you through the remaining steps:
  • Environment Verification: Checks folder permissions (storage/ and public/assets/uploads/ must be writable) and PHP extensions.
  • Database Configuration: Provide the database credentials from Step 4.
  • System Initialization: Automatically runs database migrations, creates the ledger, and sets up settings tables.
  • Administrator Onboarding: Register your master administrator credentials and first brand name.

VPS / Cloud Server

For dedicated cloud servers (Ubuntu or Debian), you can perform a custom command-line installation.
1

Install System Dependencies

Update packages and install Nginx, MySQL, PHP 8.3 with required extensions, Composer, and Node.js.
2

Clone the Codebase

Clone the repository directly into your web server’s directory.
3

Install Library Dependencies

Run composer and npm installs to pull library dependencies and compile UI assets.
4

Initialize Environment Configuration

Copy the sample environment template and generate your app secret key.
Open .env using your editor (e.g., nano .env) to input your database credentials, system URL, and email transport configs.
5

Set Folder Permissions

Grant Nginx access to modify files within the storage and assets directories.
6

Build Database Schema

Initialize the database structures and seed mandatory platform roles, base currencies, and records.
7

Configure Nginx Virtual Host

Create a server block config pointing to /var/www/ownpay/public.
8

Complete Administrative Setup

Navigate to https://yourdomain.com/install in your browser to run the web onboarding and create your administrative account.

Docker

Deploy OwnPay using Docker Compose.
1

Clone the Repository

2

Prepare Environment

Create your environment config file:
Open .env and fill in custom database variables, secret keys, and passwords.
3

Start Containers

Launch the containers in detached (background) mode.
4

Bootstrap Database Schema

Build database tables and seed required setup records.
5

Run Setup Wizard

Access http://localhost:8080/install in your browser to configure your dashboard.

Post-Installation Recommendations

Once your installation completes, perform these two configuration steps to ensure platform reliability:
  1. SMTP Configuration: Go to System > Settings > Mail Settings and configure your email gateway so invoice notifications, receipts, and OTP messages dispatch successfully.
  2. Setup System Cron: Map a cron job to trigger every minute targeting the command scheduler:
    This handles background tasks such as plugin update checks, device heartbeats, and webhook retry dispatches.

Troubleshooting Guide

A 500 error typically indicates a script runtime crash.
  • Fix: Check APP_DEBUG=true in .env to output error messages directly to the browser.
  • Check Logs: Review file entries under storage/logs/ on your server for stack traces.
  • File Permissions: Ensure Nginx or Apache has permission to read and write to storage/ and public/assets/uploads/.
A completely blank page with no HTTP response details typically indicates a fatal compilation or startup error before the logger boots.
  • Fix: Verify all mandatory PHP extensions are active by executing php -m in terminal or checking the PHP Info page in cPanel.
  • Memory Limit: Confirm your PHP runtime has at least 512M memory allocated (memory_limit directive in php.ini).
This error indicates OwnPay cannot establish a link to the MySQL instance.
  • Fix: Double-check host parameters inside .env. If database and application are on the same machine, use 127.0.0.1 instead of localhost.
  • User Rights: Verify the user has been granted ALL PRIVILEGES on the database schema.
  • Port Check: Check that MySQL is active and listening on port 3306.
Folder permission issues block OwnPay from writing log tracks or storing session cache files.
  • Fix: On shared hosting, use File Manager to change permissions of the storage/ directory and its children to 755 or 775.
  • Server Owner: On a VPS, ensure directories are owned by the web worker user: sudo chown -R www-data:www-data storage/.

What’s next?

Quickstart guide

Follow the 5-minute quickstart to configure your first gateway and accept a test payment.

Create a brand

Set up your first brand with a custom domain, logo, and payment gateways.

Developer integration

Integrate OwnPay into your application using the REST API or SDKs.

Production hardening

Secure your deployment with SSL, Redis caching, and firewall rules.
Last modified on July 15, 2026