Vexio Documentation

Complete guide for installing and configuring the Vexio invoicing system

Welcome to Vexio

Vexio is a professional invoicing and subscription management platform built with Laravel. It enables freelancers, agencies, and businesses to create invoices, manage clients, accept payments, and handle subscriptions with a powerful admin panel.

Invoice Management

Create, send, and track professional invoices with automated reminders and payment status tracking.

Subscription Plans

Configure recurring subscription plans with monthly or yearly billing cycles and automated activation.

Client Portal

Give clients a dedicated portal to view invoice history, make payments, and manage their profile.

Multi-Language Support

Full support for 7 languages including English, Czech, Slovak, Spanish, French, Portuguese, and German.

Documentation Purpose

This guide covers system requirements, installation procedures for cPanel and VPS environments, configuration steps, and troubleshooting for the Vexio platform.

Server Requirements

Before installing Vexio, ensure your server meets the following minimum requirements. These are essential for the application to run correctly.

Software Requirements

Recommended Hardware

cPanel Requirements

For installation on cPanel-based hosting, verify the following items are available:

Shared Hosting Notice

Some shared hosting plans may not support Node.js or SSH. We recommend a VPS or cloud server for full functionality. Verify with your hosting provider before purchasing.

VPS Requirements

For VPS installation, you have full control over the environment. We recommend the following specifications:

cPanel Installation

Quick Install (Recommended)

The fastest way to install Vexio on cPanel in just 3 steps.

Create MySQL Database

Go to cPanel → MySQL Databases. Create a new database and a user with All Privileges. Save the credentials.

Upload & Configure .env

Upload the Vexio files to public_html (or subdomain folder). Rename .env.example to .env and fill in your database credentials:

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=your_database_name
DB_USERNAME=your_database_user
DB_PASSWORD=your_database_password
Tip

Set directory permissions: chmod -R 775 storage/ bootstrap/cache/ via SSH or cPanel File Manager.

Visit /install

Open your browser and go to https://yourdomain.com/install. Click the install button. The system will automatically:

  • Run database migrations
  • Seed default data (admin user, plans, settings, mail templates)
  • Import and activate all available addons
  • Create an installation lock

After completion, login at /login with:

Email: admin@demo.com
Password: 123456
Security

Change the default admin password immediately after the first login!

Follow the steps below to install Vexio on your cPanel server manually:

Create MySQL Database

Go to cPanel → MySQL Databases. Create a new database and a user with All Privileges. Save the credentials for later.

Tip

Use a strong password. You will need these for the .env file.

Upload Source Code

Upload the Vexio ZIP archive to your desired directory (public_html or subdomain folder) via cPanel File Manager or FTP.

Extract Files

Right-click the ZIP file in File Manager and select Extract. Ensure all files including hidden ones like .env.example are extracted.

Set Directory Permissions

Set proper permissions for Laravel storage and cache directories:

# Via SSH terminal
chmod -R 775 storage/
chmod -R 775 bootstrap/cache/
chmod -R 775 public/uploads/

Configure PHP Version

In cPanel → PHP Selector, set PHP to version 8.4+. Enable: BCMath, Ctype, Fileinfo, JSON, Mbstring, OpenSSL, PDO, Tokenizer, XML, GD, Curl.

Install Dependencies

Access SSH Terminal and run Composer to install PHP dependencies:

# Navigate to the app directory
cd ~/public_html
composer install --optimize-autoloader --no-dev

If Composer is unavailable via SSH, run it locally and upload the vendor/ directory.

Configure Environment

Copy .env.example to .env and update database credentials:

cp .env.example .env

Generate Application Key

php artisan key:generate

Run Database Migrations

php artisan migrate --force

Build Frontend Assets

Install Node.js deps and compile assets via Vite:

npm install
npm run build

Create Storage Link

php artisan storage:link

Access the System

Visit your domain. The first registered user becomes the admin. Complete setup at /admin/settings.

Security Warning

Never commit the .env file. Ensure storage/ and bootstrap/cache/ are not publicly accessible. Change default credentials immediately.

VPS Installation

Follow the steps below to install Vexio on a fresh Ubuntu 22.04/24.04 VPS:

Update the System

Connect via SSH and update packages:

sudo apt update && sudo apt upgrade -y

Install PHP & Extensions

# Add PHP repository
sudo apt install -y software-properties-common
sudo add-apt-repository -y ppa:ondrej/php
sudo apt update

# Install PHP 8.4 (minimum) or PHP 8.5 (recommended)
sudo apt install -y php8.4 php8.4-cli php8.4-common php8.4-mysql php8.4-xml php8.4-mbstring php8.4-curl php8.4-gd php8.4-bcmath php8.4-zip php8.4-fpm
# For PHP 8.5, replace 8.4 with 8.5 in the package names
sudo apt install -y php8.5 php8.5-cli php8.5-common php8.5-mysql php8.5-xml php8.5-mbstring php8.5-curl php8.5-gd php8.5-bcmath php8.5-zip php8.5-fpm

Install Composer

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php --install-dir=/usr/local/bin --filename=composer
php -r "unlink('composer-setup.php');"

Install MySQL

sudo apt install -y mysql-server
sudo mysql_secure_installation

# Create database
sudo mysql -u root -p

-- Inside MySQL:
CREATE DATABASE vexio CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'vexio'@'localhost' IDENTIFIED BY 'strong_password';
GRANT ALL PRIVILEGES ON vexio.* TO 'vexio'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Install Nginx

sudo apt install -y nginx
sudo systemctl enable nginx
sudo systemctl start nginx

Install Node.js

curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs
node --version

Deploy the Application

Clone or upload files to /var/www/vexio:

sudo mkdir -p /var/www/vexio
sudo chown -R $USER:$USER /var/www/vexio
git clone [repo] /var/www/vexio

Install PHP Dependencies

cd /var/www/vexio
composer install --optimize-autoloader --no-dev

Configure Environment

cp .env.example .env
nano .env

APP_NAME=Vexio
APP_ENV=production
APP_DEBUG=false
APP_URL=https://yourdomain.com

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=vexio
DB_USERNAME=vexio
DB_PASSWORD=strong_password

Generate Key & Migrate

php artisan key:generate
php artisan migrate --force
php artisan storage:link

Build Frontend Assets

npm install
npm run build

Set Permissions

sudo chown -R www-data:www-data storage/ bootstrap/cache/ public/uploads/
sudo chmod -R 775 storage/ bootstrap/cache/ public/uploads/

Configure Nginx

Create the Nginx server block:

sudo nano /etc/nginx/sites-available/vexio

server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;
    root /var/www/vexio/public;
    index index.php;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php8.4-fpm.sock (or php8.5-fpm for PHP 8.5);
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht { deny all; }
    location ~ \.env { deny all; }
}

sudo ln -s /etc/nginx/sites-available/vexio /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

Install SSL Certificate

sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
sudo certbot renew --dry-run

Configure Queue Worker

Set up Laravel queue worker with Supervisor:

sudo apt install -y supervisor
sudo nano /etc/supervisor/conf.d/vexio-worker.conf

[program:vexio-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/vexio/artisan queue:work --sleep=3 --tries=3 --max-time=3600
autostart=true
autorestart=true
user=www-data
numprocs=2
redirect_stderr=true
stdout_logfile=/var/www/vexio/storage/logs/worker.log

sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start vexio-worker:*

Schedule Cron Job

Add Laravel scheduler to crontab:

sudo crontab -u www-data -e

* * * * * cd /var/www/vexio && php artisan schedule:run >> /dev/null 2>&1
Installation Complete

Visit https://yourdomain.com. Register the first account to become the administrator. Configure settings at /admin/settings.

Post-Installation Steps

After installation, complete the following to configure your Vexio instance:

  1. Configure System Settings — Go to /admin/settings to set site name, logo, currency, timezone, and contact info.
  2. Set Up Payment Gateways — Navigate to /admin/settings/payment-gateway to configure Stripe, PayPal, etc.
  3. Create Subscription Plans — Go to /admin/plans to set up pricing tiers.
  4. Configure Mail Settings — Set up SMTP in /admin/settings for sending invoices.
  5. Test the System — Create a test client, generate an invoice, and verify the payment flow.
First User is Admin

The first registered user becomes the system administrator with full access to the admin panel.

License Activation

To activate your Vexio license, enter the following license key at /license/activate.

# License Key:
31CB1-4F278-E94A7-A3F71
# User:
Vexio
License Management

After activation, the admin can verify the license status or deactivate it at any time via the License button in the admin panel top bar, or directly:

Open /license

Demo Access

You can test the full functionality of Vexio using the demo environment below.

Demo URL: https://vexio.ooguy.com/login
Email: admin@demo.com
Password: 123456
Security Notice

Change the password immediately after first login. These credentials are for testing only.

Environment Configuration

The .env file contains essential configuration. Key variables:

Database Settings

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=vexio
DB_USERNAME=vexio_user
DB_PASSWORD=your_secure_password

Application Settings

APP_NAME=Vexio
APP_ENV=production
APP_DEBUG=false
APP_URL=https://yourdomain.com

Mail Configuration

MAIL_MAILER=smtp
MAIL_HOST=smtp.yourprovider.com
MAIL_PORT=587
MAIL_USERNAME=your@email.com
MAIL_PASSWORD=your_password
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=noreply@yourdomain.com
MAIL_FROM_NAME=${APP_NAME}
Security

Set APP_DEBUG=false in production. Never expose your .env file. Add it to .gitignore.

Admin Panel Setup

Configure your system through the admin panel at /admin after logging in with the first registered account.

Branding

Upload logo, favicon, set site name at /admin/settings.

Payment Gateways

Configure Stripe, PayPal, Razorpay, Mollie and more at /admin/settings/payment-gateway.

Subscription Plans

Create pricing plans with monthly/yearly billing at /admin/plans.

Mail Templates

Customize email templates for invoices and notifications at /admin/mail-templates.

Telegram Integration

Configure Telegram bot for real-time notifications at /admin/telegram.

Localization

Set timezone, date format, currency, and manage 7-language translations.

Technical Support

Our support team is ready to help with any questions or issues related to Vexio.

Need Help?

Contact our technical support team. We will respond as quickly as possible!

phplicenser@gmail.com

Business Hours

Monday to Friday, 9am to 6pm (CET)

Response Time

We respond within 24 business hours

Documentation

Review this documentation before contacting us

Before Contacting Us

Provide details about the issue, including error messages, server logs, Laravel log files (storage/logs/laravel.log), and the installation step where the problem occurs.

Frequently Asked Questions (FAQ)

Can I install Vexio on shared hosting?

Yes, if your host supports PHP 8.4+, Composer, MySQL, and SSH. We recommend VPS for best performance.

How do I update Vexio?

Backup database and files, replace with new version, then run composer install --no-dev, npm install && npm run build, php artisan migrate --force, php artisan optimize:clear.

Is SSL required?

Yes, SSL is required for secure payment processing and Telegram API integration.

Which VPS provider do you recommend?

We recommend DigitalOcean, Vultr, Linode, or Hetzner. Choose a plan with at least 2GB RAM.

What should I include in a support request?

Include error messages, Laravel logs (storage/logs/laravel.log), server details, and the step where the issue occurs.