Select Your Environment
Choose your target environment to begin the deployment guide:Shared Hosting
VPS / Cloud Server
Docker Container
System Requirements Checklist
System Requirements Checklist
Required PHP Extensions
OwnPay requires the following extensions to be active:mbstring, pdo_mysql, gd, curl, zip, json, openssl, bcmath, intlShared Hosting
Shared hosting is the most common deployment method. Hosts like Hostinger, Namecheap, SiteGround, Bluehost, and others fully support OwnPay.Download the Release Package
- Visit the official OwnPay GitHub Releases page.
- Identify the top Latest Release tag (e.g.
v0.2.0). - Under the Assets section, download the
.ziparchive (e.g.ownpay-0.2.0.zip).
Upload files to your server
public_html or a custom subfolder).- cPanel File Manager
- Plesk Files
- DirectAdmin Manager
- FTP Client (FileZilla)
- Access your cPanel account dashboard.
- Open the File Manager utility.
- Navigate to your target web folder (e.g.,
public_htmlorpublic_html/pay). - Click Upload at the top, select the
.ziparchive, and wait for completion.
Extract the Archive
- cPanel
- Plesk
- DirectAdmin
- Right-click the uploaded
.ziparchive inside the File Manager. - Choose Extract from the action menu.
- Verify the directory path is correct and click Extract Files.
[!WARNING] Verify the extraction did not create a double-nested folder layout likepublic_html/ownpay-vX.Y.Z/. If it did, enter that directory, select all contents, move them up one level directly intopublic_html/, and delete the empty folder.
Create a MySQL Database
- cPanel Databases
- Plesk Databases
- DirectAdmin Databases
- Search for MySQL Databases on the cPanel home page.
- Under Create New Database, enter a name (e.g.,
ownpay_db) and click Create. - Under Add New User, enter a username (e.g.,
ownpay_user) and a secure password. Click Create User. - 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
localhostor127.0.0.1)
Select PHP 8.3
- cPanel Selector
- Plesk PHP Settings
- DirectAdmin Selector
- Open Select PHP Version (or MultiPHP Manager) in cPanel.
- Check the box for your target domain.
- Select PHP 8.3 from the dropdown menu and click Apply.
Launch the Web Installer
- Environment Verification: Checks folder permissions (
storage/andpublic/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.Install System Dependencies
Clone the Codebase
Install Library Dependencies
Initialize Environment Configuration
.env using your editor (e.g., nano .env) to input your database credentials, system URL, and email transport configs.Set Folder Permissions
Build Database Schema
Configure Nginx Virtual Host
/var/www/ownpay/public.Complete Administrative Setup
https://yourdomain.com/install in your browser to run the web onboarding and create your administrative account.Docker
Deploy OwnPay using Docker Compose.Clone the Repository
Prepare Environment
.env and fill in custom database variables, secret keys, and passwords.Start Containers
Bootstrap Database Schema
Run Setup Wizard
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:- SMTP Configuration: Go to System > Settings > Mail Settings and configure your email gateway so invoice notifications, receipts, and OTP messages dispatch successfully.
- 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
500 Internal Server Error
500 Internal Server Error
- Fix: Check
APP_DEBUG=truein.envto 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/andpublic/assets/uploads/.
Blank Page / White Screen
Blank Page / White Screen
- Fix: Verify all mandatory PHP extensions are active by executing
php -min terminal or checking the PHP Info page in cPanel. - Memory Limit: Confirm your PHP runtime has at least
512Mmemory allocated (memory_limitdirective inphp.ini).
Database Connection Failed
Database Connection Failed
- Fix: Double-check host parameters inside
.env. If database and application are on the same machine, use127.0.0.1instead oflocalhost. - User Rights: Verify the user has been granted
ALL PRIVILEGESon the database schema. - Port Check: Check that MySQL is active and listening on port
3306.
Permission Denied / Writable Errors
Permission Denied / Writable Errors
- Fix: On shared hosting, use File Manager to change permissions of the
storage/directory and its children to755or775. - Server Owner: On a VPS, ensure directories are owned by the web worker user:
sudo chown -R www-data:www-data storage/.