System Requirements

Deprixa Plus requires a standard LEMP or LAMP stack. The following are minimum and recommended specifications.

Component Minimum Recommended Notes
PHP 8.2 8.3+ Extensions required: BCMath, Ctype, cURL, DOM, Fileinfo, JSON, Mbstring, OpenSSL, PCRE, PDO, Tokenizer, XML, GD or Imagick
Web Server Nginx 1.18 / Apache 2.4 Nginx 1.24+ Nginx is strongly recommended for production. Apache requires mod_rewrite.
Database MySQL 8.0 MySQL 8.0+ MariaDB 10.6+ is also supported. PostgreSQL is not tested.
Node.js 18 LTS 20 LTS Required only for building frontend assets. Not needed in production if you use pre-built assets.
Composer 2.5 2.6+ PHP package manager.
Redis Optional 7.x (strongly recommended) Used for cache, sessions, and job queues. Without Redis, file-based drivers are used which are slower under load.
RAM 1 GB 4 GB+ For small teams. Larger installations benefit from 8+ GB.
Storage 5 GB 50+ GB Depends on shipment label volume and file uploads (logos, employee documents).
OS Ubuntu 20.04 LTS Ubuntu 22.04 / 24.04 LTS macOS and Windows WSL2 are supported for local development only. Production should use Linux.

Supported Hosting Environments

Deprixa Plus can be installed on: VPS/dedicated servers (DigitalOcean, Linode, Hetzner, AWS EC2 — full control, recommended for production), Hostinger Business or Premium shared hosting (SSH access required — see the Hostinger installation guide below), and local development servers including Laravel Herd, Laragon, Laravel Valet, Docker/Sail, WAMP, WSL2+LAMP, DDEV, Native Linux, MAMP, and XAMPP (see the local installation guide below for all 10 environments).

Basic shared hosting without SSH access is not supported because Composer and Artisan commands must be run at least once during setup.

Local Development Setup

Use this guide to run Deprixa Plus on your own computer for development or testing. Node.js is required on local machines to compile the frontend assets. Choose the environment that best fits your operating system and experience level.

10 Supported Local Environments

This section covers setup instructions for Laravel Herd, Laragon, Laravel Valet, Docker / Laravel Sail, WAMP, WSL2 + LAMP, DDEV, Native Linux, MAMP, and XAMPP. All environments require PHP 8.2+, Composer 2.6+, Node.js 20+ LTS, and MySQL 8.0+ (or MariaDB 10.6+). Pick the one you are most comfortable with and jump to its section below.

Quick Comparison

Environment OS Best For Difficulty
Laravel Herd RECOMMENDEDmacOS / WindowsFastest zero-config setupEasy
Laragon RECOMMENDEDWindowsBest all-in-one for WindowsEasy
Laravel ValetmacOSLightweight CLI-driven devEasy
Docker / Laravel SailCross-platformReproducible, containerized environmentsMedium
WAMPWindowsClassic Windows AMP stackEasy
WSL2 + LAMPWindowsLinux-like dev on WindowsAdvanced
DDEVCross-platformDocker-based with per-project configMedium
Native LinuxUbuntu / DebianDirect LEMP stack on LinuxMedium
MAMPmacOSClassic macOS AMP stackEasy
XAMPPWindows / macOSClassic cross-platform AMP stackEasy

1. Laravel Herd (macOS / Windows) RECOMMENDED

Laravel Herd is a blazing-fast, native development environment that bundles PHP, Nginx, MySQL, and Node.js. No Docker or virtual machines required.

Prerequisites

Download and install Laravel Herd from herd.laravel.com. Herd includes PHP, Nginx, MySQL, and Node.js built-in — no extra installs needed. Make sure Composer is available globally (Herd installs it automatically).

  1. 1

    Park Your Projects Folder

    Open Herd and go to Settings → General → Paths. Add your projects directory (e.g., ~/Sites or ~/Herd). Every folder inside a parked directory automatically becomes a .test domain.

  2. 2

    Extract Project Files

    Extract the downloaded ZIP into your parked directory. The folder name becomes the URL:

    bash
    # Extract to ~/Herd/deprixa-plus
    # URL will be: http://deprixa-plus.test
  3. 3

    Install Dependencies

    bash
    cd ~/Herd/deprixa-plus
    composer install
  4. 4

    Configure Environment

    bash
    cp .env.example .env
    php artisan key:generate

    Open .env and set APP_URL=http://deprixa-plus.test, APP_ENV=local, and APP_DEBUG=true.

  5. 5

    Build Frontend Assets

    bash
    npm install && npm run build
    php artisan storage:link
  6. 6

    Create Database and Run Wizard

    Open TablePlus (or any MySQL client) and create an empty database named deprixa_plus. Then open your browser and visit:

    URL
    http://deprixa-plus.test/install

    Follow the 5-step wizard. Use 127.0.0.1 as the database host and root / empty password (Herd default).

Pro Tip

Use herd secure deprixa-plus to enable HTTPS locally. Herd also lets you switch PHP versions instantly via the menu bar — useful for testing compatibility.

2. Laragon (Windows) RECOMMENDED FOR WINDOWS

Laragon is a portable, fast, and lightweight development environment for Windows. It auto-creates virtual hosts and includes Apache, MySQL, PHP, Node.js, and more.

Prerequisites

Download and install Laragon Full from laragon.org. The full edition includes PHP 8.2+, MySQL 8, Apache, Node.js, npm, Composer, and HeidiSQL. Ensure PHP 8.2+ is selected in Laragon → Menu → PHP.

  1. 1

    Extract Project Files

    Extract the downloaded ZIP into Laragon's web root. Laragon auto-creates a virtual host for each folder:

    path
    C:\laragon\www\deprixa-plus

    The artisan file must be at the root of this folder. Laragon will auto-create deprixa-plus.test as the virtual host.

  2. 2

    Start Services

    Open Laragon and click "Start All". This launches Apache, MySQL, and sets up the virtual host automatically. If prompted, allow Laragon to update the Windows hosts file.

  3. 3

    Install Dependencies

    Click "Terminal" in Laragon (or open Cmder/cmd) — Laragon adds PHP, Composer, and Node to the PATH automatically:

    bash — Laragon Terminal
    cd C:\laragon\www\deprixa-plus
    composer install
    cp .env.example .env
    php artisan key:generate
  4. 4

    Build Frontend and Create Symlink

    bash
    npm install && npm run build
    php artisan storage:link

    Open .env and set APP_URL=http://deprixa-plus.test, APP_ENV=local, and APP_DEBUG=true.

  5. 5

    Create Database and Run Wizard

    Open HeidiSQL (built into Laragon — right-click tray icon → MySQL → HeidiSQL) and create an empty database named deprixa_plus. Then visit:

    URL
    http://deprixa-plus.test/install

    Follow the 5-step wizard. Default Laragon MySQL credentials: host 127.0.0.1, port 3306, user root, password empty.

Pro Tip

Laragon supports switching PHP versions via Menu → PHP. You can also enable SSL per site by right-clicking the Laragon tray icon → Apache → SSL → deprixa-plus.

3. Laravel Valet (macOS)

Laravel Valet is a lightweight macOS development environment that uses Nginx under the hood. It consumes minimal resources and automatically serves sites from parked directories.

Prerequisites

Homebrew, PHP 8.2+ (via brew install php), Composer (globally installed), Node.js 20+ LTS, and MySQL 8 (via brew install mysql).

  1. 1

    Install and Configure Valet

    bash
    composer global require laravel/valet
    valet install
    
    # Park your projects directory
    cd ~/Sites
    valet park

    Every folder inside ~/Sites is now automatically served as folder-name.test.

  2. 2

    Set Up MySQL and Create Database

    bash
    brew install mysql
    brew services start mysql
    mysql -u root -e "CREATE DATABASE deprixa_plus;"
  3. 3

    Extract and Install Project

    Extract the ZIP to ~/Sites/deprixa-plus, then install dependencies:

    bash
    cd ~/Sites/deprixa-plus
    composer install
    cp .env.example .env
    php artisan key:generate
    npm install && npm run build
    php artisan storage:link

    Set APP_URL=http://deprixa-plus.test in .env.

  4. 4

    Run the Installation Wizard

    URL
    http://deprixa-plus.test/install

    Follow the 5-step wizard. Use 127.0.0.1 as the host, root as the user, and an empty password (Homebrew MySQL default).

Pro Tip

Run valet secure deprixa-plus to serve the site over HTTPS with a trusted local certificate. This is useful for testing features that require a secure connection (e.g., service workers, clipboard API).

4. Docker / Laravel Sail (Cross-platform)

Laravel Sail provides a Docker-powered local development environment. It runs MySQL, PHP, Node.js, and all dependencies inside containers — nothing needs to be installed on your host machine except Docker.

Prerequisites

Docker Desktop must be installed and running. On Windows, enable WSL2 backend in Docker Desktop settings. No local PHP, Composer, or Node.js installation required — everything runs inside containers.

  1. 1

    Bootstrap Composer via Docker

    Extract the ZIP to your desired folder, then install PHP dependencies using a temporary Docker container:

    bash
    cd deprixa-plus
    
    docker run --rm \
      -u "$(id -u):$(id -g)" \
      -v "$(pwd):/var/www/html" \
      -w /var/www/html \
      laravelsail/php83-composer:latest \
      composer install --ignore-platform-reqs
  2. 2

    Configure Environment for Sail

    bash
    cp .env.example .env

    Edit .env and set the following values for Sail's MySQL container:

    .env
    APP_URL=http://localhost
    DB_HOST=mysql
    DB_PORT=3306
    DB_DATABASE=deprixa_plus
    DB_USERNAME=sail
    DB_PASSWORD=password
  3. 3

    Start Sail Containers

    bash
    ./vendor/bin/sail up -d

    Wait for all containers to start. The first run downloads Docker images and may take a few minutes.

  4. 4

    Install Dependencies Inside Sail

    bash
    ./vendor/bin/sail artisan key:generate
    ./vendor/bin/sail npm install
    ./vendor/bin/sail npm run build
    ./vendor/bin/sail artisan storage:link
  5. 5

    Run the Installation Wizard

    Sail's MySQL container auto-creates the database. Visit:

    URL
    http://localhost/install

    In the wizard database step, use host mysql, user sail, password password, database deprixa_plus.

Pro Tip

Add alias sail='./vendor/bin/sail' to your shell profile to shorten commands (e.g., sail up -d, sail artisan migrate). Use sail down to stop all containers.

5. WAMP (Windows)

WampServer provides Apache, MySQL, and PHP on Windows. It uses a system tray icon for managing services and includes phpMyAdmin for database management.

Prerequisites

Download and install WampServer from wampserver.com. After installation, click the WAMP tray icon → PHP → Version and select PHP 8.2+. Install Composer globally and Node.js 20+ LTS separately.

  1. 1

    Extract Project Files

    path
    C:\wamp64\www\deprixa-plus
  2. 2

    Create Database via phpMyAdmin

    Start WAMP (tray icon should turn green), then open http://localhost/phpmyadmin. Create a new database named deprixa_plus with utf8mb4_unicode_ci collation.

  3. 3

    Install Dependencies

    Open Command Prompt or PowerShell:

    bash — Command Prompt
    cd C:\wamp64\www\deprixa-plus
    composer install
    cp .env.example .env
    php artisan key:generate
    npm install && npm run build
    php artisan storage:link

    Set APP_URL=http://localhost/deprixa-plus/public in .env.

  4. 4

    Run the Installation Wizard

    URL
    http://localhost/deprixa-plus/public/install

    Default WAMP MySQL credentials: host 127.0.0.1, user root, password empty.

Pro Tip

If PHP is not in your PATH, add WAMP's PHP directory to your system PATH: C:\wamp64\bin\php\php8.3.x. Alternatively, use the full path to php.exe in your commands.

6. WSL2 + LAMP (Windows)

Run a full Linux LAMP/LEMP stack inside Windows Subsystem for Linux 2. This gives you a production-like environment directly on Windows with near-native performance.

Prerequisites

Install Ubuntu 22.04 (or 24.04) from the Microsoft Store. WSL2 must be enabled (wsl --install from PowerShell as admin). You will also need Node.js 20+ LTS and Composer installed inside the WSL Ubuntu instance.

  1. 1

    Install LEMP Stack Inside WSL

    bash — WSL Ubuntu
    sudo apt update && sudo apt upgrade -y
    sudo apt install -y nginx mysql-server php8.3-fpm php8.3-mysql \
      php8.3-mbstring php8.3-xml php8.3-curl php8.3-zip php8.3-gd \
      php8.3-bcmath php8.3-intl php8.3-readline unzip
  2. 2

    Configure MySQL

    bash
    sudo service mysql start
    sudo mysql -e "CREATE USER 'deprixa'@'localhost' IDENTIFIED BY 'secret';"
    sudo mysql -e "CREATE DATABASE deprixa_plus;"
    sudo mysql -e "GRANT ALL PRIVILEGES ON deprixa_plus.* TO 'deprixa'@'localhost';"
    sudo mysql -e "FLUSH PRIVILEGES;"
  3. 3

    Extract and Install Project

    bash
    # Extract ZIP to /var/www/deprixa-plus
    cd /var/www/deprixa-plus
    sudo chown -R $USER:www-data .
    composer install
    cp .env.example .env
    php artisan key:generate
    npm install && npm run build
    php artisan storage:link
    chmod -R 775 storage bootstrap/cache
  4. 4

    Configure Nginx Virtual Host

    nginx — /etc/nginx/sites-available/deprixa-plus
    server {
        listen 80;
        server_name deprixa.test;
        root /var/www/deprixa-plus/public;
        index index.php;
    
        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }
    
        location ~ \.php$ {
            fastcgi_pass unix:/run/php/php8.3-fpm.sock;
            fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
            include fastcgi_params;
        }
    }
    bash
    sudo ln -s /etc/nginx/sites-available/deprixa-plus /etc/nginx/sites-enabled/
    sudo nginx -t && sudo service nginx restart
  5. 5

    Update Windows Hosts File and Run Wizard

    Open C:\Windows\System32\drivers\etc\hosts in Notepad (as Administrator) and add:

    hosts
    127.0.0.1   deprixa.test

    Set APP_URL=http://deprixa.test in .env and visit http://deprixa.test/install. Use host 127.0.0.1, user deprixa, password secret in the wizard.

Pro Tip

Store your project files inside the WSL filesystem (e.g., /var/www/) rather than on the Windows mount (/mnt/c/) for significantly better I/O performance. You can access WSL files from Windows Explorer at \\wsl$\Ubuntu.

7. DDEV (Cross-platform)

DDEV is an open-source Docker-based local development tool with per-project configuration files. It supports Laravel out of the box and provides automatic HTTPS, database management, and easy sharing.

Prerequisites

Docker Desktop and DDEV must be installed. Install DDEV via Homebrew (brew install ddev/ddev/ddev) on macOS/Linux, or via the official installer on Windows. See ddev.readthedocs.io for details.

  1. 1

    Configure DDEV Project

    Extract the ZIP to a folder and initialize DDEV:

    bash
    cd deprixa-plus
    ddev config --project-type=laravel --docroot=public --php-version=8.3
  2. 2

    Start DDEV and Install Dependencies

    bash
    ddev start
    ddev composer install
    ddev exec cp .env.example .env
    ddev artisan key:generate
    ddev npm install
    ddev npm run build
    ddev artisan storage:link
  3. 3

    Configure Environment for DDEV

    Edit .env inside the project with the DDEV database credentials:

    .env
    APP_URL=https://deprixa-plus.ddev.site
    DB_HOST=db
    DB_PORT=3306
    DB_DATABASE=db
    DB_USERNAME=db
    DB_PASSWORD=db
  4. 4

    Run the Installation Wizard

    URL
    https://deprixa-plus.ddev.site/install

    In the wizard database step, use host db, user db, password db, database db.

Pro Tip

DDEV provides HTTPS automatically. Use ddev describe to see all URLs and credentials. Use ddev share to create a temporary public URL for sharing your local site with others.

8. Native Linux (Ubuntu / Debian)

Install a full LEMP stack directly on your Linux machine. This gives you a production-like environment without any abstraction layers.

Prerequisites

Ubuntu 22.04/24.04 or Debian 12+. You will install Nginx, MySQL 8, PHP 8.3-FPM, Composer, and Node.js 20+ LTS via apt and official repositories.

  1. 1

    Install the LEMP Stack

    bash
    sudo apt update && sudo apt install -y nginx mysql-server \
      php8.3-fpm php8.3-mysql php8.3-mbstring php8.3-xml php8.3-curl \
      php8.3-zip php8.3-gd php8.3-bcmath php8.3-intl unzip
    
    # Install Composer
    curl -sS https://getcomposer.org/installer | php
    sudo mv composer.phar /usr/local/bin/composer
    
    # Install Node.js 20 LTS
    curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
    sudo apt install -y nodejs
  2. 2

    Set Up MySQL and Project

    bash
    sudo mysql -e "CREATE DATABASE deprixa_plus;"
    sudo mysql -e "CREATE USER 'deprixa'@'localhost' IDENTIFIED BY 'secret';"
    sudo mysql -e "GRANT ALL ON deprixa_plus.* TO 'deprixa'@'localhost';"
    
    # Extract project
    cd /var/www/deprixa-plus
    sudo chown -R $USER:www-data .
    composer install
    cp .env.example .env
    php artisan key:generate
    npm install && npm run build
    php artisan storage:link
    chmod -R 775 storage bootstrap/cache
  3. 3

    Quick Test with Artisan Serve (Optional)

    For quick testing without configuring Nginx, you can use Laravel's built-in server:

    bash
    php artisan serve --host=0.0.0.0 --port=8000
    # Visit http://localhost:8000/install
  4. 4

    Production-like Nginx Configuration (Recommended)

    For a proper setup, create an Nginx vhost:

    nginx — /etc/nginx/sites-available/deprixa-plus
    server {
        listen 80;
        server_name deprixa-plus.local;
        root /var/www/deprixa-plus/public;
        index index.php;
    
        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }
    
        location ~ \.php$ {
            fastcgi_pass unix:/run/php/php8.3-fpm.sock;
            fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
            include fastcgi_params;
        }
    }
    bash
    sudo ln -s /etc/nginx/sites-available/deprixa-plus /etc/nginx/sites-enabled/
    sudo nginx -t && sudo systemctl restart nginx
    # Add "127.0.0.1 deprixa-plus.local" to /etc/hosts
    # Visit http://deprixa-plus.local/install

Pro Tip

Use php artisan serve for quick testing and Nginx for a production-like environment. For active frontend development, run npm run dev in a separate terminal for hot module replacement with Vite.

9. MAMP (macOS)

MAMP is a classic local server environment for macOS that bundles Apache, MySQL, and PHP with a graphical interface.

Prerequisites

Download and install MAMP from mamp.info. Also install Composer globally and Node.js 20+ LTS. In MAMP, go to Preferences → PHP and select PHP 8.2 or 8.3.

  1. 1

    Place the Files

    Extract the downloaded ZIP into MAMP's document root:

    path
    /Applications/MAMP/htdocs/deprixa-plus/

    The file artisan must be at the root of this folder.

  2. 2

    Start MAMP and Create Database

    Open MAMP and start both Apache and MySQL services. Go to MAMP → Preferences → PHP and confirm PHP 8.2 or 8.3 is selected.

    Create an empty database using phpMyAdmin at http://localhost:8888/phpmyadmin.

  3. 3

    Install Dependencies

    On MAMP you may need to use MAMP's PHP binary explicitly:

    bash — MAMP (macOS)
    cd /Applications/MAMP/htdocs/deprixa-plus
    /Applications/MAMP/bin/php/php8.3.x/bin/php /usr/local/bin/composer install

    If Composer is not in your PATH, download it from getcomposer.org and run it as php composer.phar install.

  4. 4

    Configure Environment

    bash
    cp .env.example .env
    php artisan key:generate

    Open .env and set APP_URL=http://localhost:8888/deprixa-plus/public (adjust port to match MAMP's Apache port — default is 8888). Set APP_ENV=local and APP_DEBUG=true.

  5. 5

    Build Frontend and Create Symlink

    bash
    npm install && npm run build
    php artisan storage:link

    For active development, use npm run dev instead of npm run build for hot module replacement.

  6. 6

    Run the Installation Wizard

    URL
    http://localhost:8888/deprixa-plus/public/install

    Follow the 5-step wizard. Use 127.0.0.1 as the host, 3306 as the port (or 8889 if using MAMP default MySQL port), and root / root as credentials.

Pro Tip

MAMP's default MySQL port is 8889 (not the standard 3306). Check MAMP → Preferences → Ports to confirm. If using MAMP Pro, you can set up custom virtual hosts for cleaner URLs like deprixa-plus.test.

10. XAMPP (Windows / macOS)

XAMPP is a popular cross-platform Apache, MySQL, PHP, and Perl distribution. It is easy to install and works on both Windows and macOS.

Prerequisites

Download and install XAMPP from apachefriends.org (choose the PHP 8.2+ version). Also install Composer globally and Node.js 20+ LTS.

  1. 1

    Place the Files

    Extract the downloaded ZIP into XAMPP's document root:

    • Windows: C:\xampp\htdocs\deprixa-plus\
    • macOS: /Applications/XAMPP/htdocs/deprixa-plus/

    The file artisan must be at the root of this folder.

  2. 2

    Start XAMPP and Create Database

    Open the XAMPP Control Panel and start Apache and MySQL. Then open phpMyAdmin at http://localhost/phpmyadmin and create a new database named deprixa_plus with utf8mb4_unicode_ci collation.

  3. 3

    Install Dependencies

    bash — XAMPP (Windows)
    cd C:\xampp\htdocs\deprixa-plus
    composer install
    cp .env.example .env
    php artisan key:generate
    bash — XAMPP (macOS)
    cd /Applications/XAMPP/htdocs/deprixa-plus
    composer install
    cp .env.example .env
    php artisan key:generate

    Set APP_URL=http://localhost/deprixa-plus/public, APP_ENV=local, and APP_DEBUG=true in .env.

  4. 4

    Build Frontend and Create Symlink

    bash
    npm install && npm run build
    php artisan storage:link

    For active development, use npm run dev instead of npm run build for hot module replacement.

  5. 5

    Run the Installation Wizard

    URL
    http://localhost/deprixa-plus/public/install

    Follow the 5-step wizard. Default XAMPP MySQL credentials: host 127.0.0.1, port 3306, user root, password empty.

Pro Tip

On Windows, if PHP or Composer are not recognized in the command prompt, add XAMPP's PHP directory to your system PATH: C:\xampp\php. On macOS, you may need to use the full path: /Applications/XAMPP/bin/php.

Installation Steps

Deprixa Plus uses a web-based installation wizard. You prepare the server via the command line (steps 1–6), then complete the setup through your browser (step 7). Each step must complete successfully before proceeding to the next.

  1. 1

    Extract the Source Code

    Download the ZIP file from your Envato purchase page (CodeCanyon). Log in to your Envato account, go to your purchases, find Deprixa Plus, and click Download → All files & documentation.

    Extract the downloaded ZIP to your web server directory. For example:

    • Linux VPS/production: /var/www/html/deprixa-plus
    • MAMP (macOS): /Applications/MAMP/htdocs/deprixa-plus
    • XAMPP (Windows/macOS): C:\xampp\htdocs\deprixa-plus

    Upload the contents of the ZIP so that the artisan file is directly at the root of your chosen directory (e.g., /var/www/html/deprixa-plus/artisan).

  2. 2

    Install PHP Dependencies

    Run Composer to install all backend packages. Use --no-dev in production to exclude development-only packages and --optimize-autoloader for a performance-optimized class map.

    bash
    composer install --no-dev --optimize-autoloader
  3. 3

    Configure the Environment File

    Copy the example environment file and generate a new application encryption key. The key must be generated before running any other Artisan commands.

    bash
    cp .env.example .env
    php artisan key:generate

    Open .env with your preferred editor and fill in at minimum the APP_URL and mail settings. The database credentials will be configured through the wizard in step 7.

  4. 4

    Build Frontend Assets

    Pre-built assets included in the ZIP

    The distribution ZIP already includes the compiled frontend in public/build/. If that folder exists and contains a manifest.json, you can skip this step entirely — Node.js and npm are NOT required on the production server. Only run this step if you modified the frontend source code or if the public/build/ folder is missing.

    If you need to rebuild the frontend (e.g., after modifying React source files), install Node dependencies and compile. Always use npm run build on production (not dev):

    bash
    npm install
    npm run build

    The node_modules/ folder (~500 MB) is only needed during the build — do not upload it to production. Only the compiled output in public/build/ needs to be present on the server.

  5. 5

    Configure Nginx Web Server

    Point your Nginx server block to the /public directory. Below is a complete, production-ready configuration:

    nginx
    server {
        listen 80;
        listen [::]:80;
        server_name yourdomain.com www.yourdomain.com;
        root /var/www/deprixa-plus/public;
    
        add_header X-Frame-Options "SAMEORIGIN";
        add_header X-Content-Type-Options "nosniff";
    
        index index.php;
    
        charset utf-8;
    
        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }
    
        location = /favicon.ico { access_log off; log_not_found off; }
        location = /robots.txt  { access_log off; log_not_found off; }
    
        error_page 404 /index.php;
    
        location ~ \.php$ {
            fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
            fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
            include fastcgi_params;
            fastcgi_hide_header X-Powered-By;
        }
    
        location ~ /\.(?!well-known).* {
            deny all;
        }
    
        client_max_body_size 64M;
    }

    After saving the config, enable it and test:

    bash
    ln -s /etc/nginx/sites-available/deprixa /etc/nginx/sites-enabled/
    nginx -t
    systemctl reload nginx
  6. 6

    Set Directory Permissions and Storage Symlink

    Laravel needs write access to storage/ and bootstrap/cache/. Set the owner to your web server user (typically www-data on Ubuntu). Then create the public storage symlink.

    bash
    chown -R www-data:www-data /var/www/deprixa-plus
    chmod -R 775 /var/www/deprixa-plus/storage
    chmod -R 775 /var/www/deprixa-plus/bootstrap/cache
    php artisan storage:link
  7. 7

    Run the Installation Wizard

    Open your browser and navigate to https://yourdomain.com/install. The wizard will guide you through 5 steps:

    Wizard URL

    Navigate to /install on your domain. For example: https://app.yourdomain.com/install. The wizard is only accessible before the application has been installed. Once installation is complete, this URL is disabled automatically.

    Step 1 — Requirements Check

    The wizard automatically checks that your PHP version, required extensions (PDO, OpenSSL, cURL, Zip, Mbstring, GD), and directory permissions are met. All checks must pass before continuing.

    URL: /install

    Step 1 — Requirements check screen showing all PHP extensions and directory permissions

    Step 2 — License Validation

    Validates your Envato purchase. Enter your Envato Purchase Code and your Envato username. The system contacts the license server to confirm the purchase is valid before proceeding.

    URL: /install/license

    Step 2 — License validation screen with purchase code and username fields

    Step 3 — Database & Company

    Enter your MySQL connection details (host, port, database name, username, password) and your company information (name, email, phone, country, address). The wizard creates the database if it does not exist and imports the application schema automatically.

    URL: /install/database

    Step 3 — Database configuration and company information form

    After entering your credentials, click Test Connection to verify the database is reachable before proceeding:

    Step 3 — Database connection test successful

    Step 4 — Admin User

    Create the first administrator account. Enter a name, email address, and password. This account will have full Super Admin access to the system.

    URL: /install/admin

    Step 4 — Administrator account creation with name, email and password fields

    Step 5 — Preferences

    Configure the system defaults: language (Spanish or English), timezone, currency, date format, weight unit (kg/lb), and dimension unit (cm/in). You can also load optional demo data to explore the system with sample shipments and customers.

    URL: /install/preferences

    Step 5 — System preferences: language, timezone, currency, date format, units

    Installation Complete

    Once all steps are finished, the wizard displays a success screen. You will be redirected to the login page.

    Installation complete — Welcome back screen with login redirect

    Where to Find Your Purchase Code

    Log in to Envato Market (codecanyon.net) → click your avatar → Downloads → find Deprixa Plus → click License certificate & purchase code. The purchase code is a UUID in the format xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.

    When the wizard finishes, you will be redirected to /login. Use the admin credentials you created in Step 4 to log in.

Installation on Hostinger Shared Hosting

Hostinger Business and Premium plans include SSH access and support PHP 8.2/8.3, making them compatible with Deprixa Plus. The key difference from a VPS is that you use the Hostinger File Manager or FTP to upload files and the Hostinger hPanel to create the database — SSH is used only for running Composer and Artisan commands.

Important: Use the pre-built ZIP — do NOT upload node_modules

The deployment ZIP already contains public/build/ (compiled frontend assets) and vendor/ (PHP dependencies). You do not need Node.js, npm, or Composer on the Hostinger server. Never upload the node_modules/ folder — it is ~500 MB and not needed on the server.

  1. 1

    Create a MySQL Database in hPanel

    Log in to your Hostinger account → go to hPanel → Databases → MySQL Databases. Click Create a new MySQL database & user. Write down the database name, username, and password — you will need them in the installation wizard.

    The database host on Hostinger is typically 127.0.0.1.

  2. 2

    Upload the Files

    In hPanel, go to File Manager and navigate to the public_html folder (or a subdomain directory if you're installing on a subdomain). Upload the deployment ZIP and extract it there.

    After extraction, the file structure should look like:

    text
    public_html/
    ├── app/
    ├── bootstrap/
    ├── config/
    ├── database/
    ├── public/          ← web root should point here
    │   ├── build/       ← compiled frontend (must exist)
    │   └── index.php
    ├── resources/
    ├── routes/
    ├── storage/
    ├── vendor/          ← PHP dependencies (must exist)
    ├── .env.example
    └── artisan

    If you are installing in a subdomain, set the subdomain's document root to point to the public/ folder inside the uploaded directory. Do this in hPanel → Subdomains → Edit → Document Root.

  3. 3

    Configure .env via File Manager

    In File Manager, find .env.example, duplicate it and rename the copy to .env. Open .env and set at minimum:

    env
    APP_NAME="Deprixa Plus"
    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=your_database_name
    DB_USERNAME=your_database_user
    DB_PASSWORD=your_database_password

    Leave APP_KEY blank for now — you will generate it via SSH in the next step.

  4. 4

    Connect via SSH and Generate App Key

    In hPanel, go to Advanced → SSH Access to get your SSH credentials and enable SSH if not already active. Then connect from your terminal:

    bash — your local terminal
    ssh username@yourdomain.com -p 65002

    Once connected, navigate to the project folder and generate the app key:

    bash — SSH session on Hostinger
    cd ~/public_html            # or ~/domains/yourdomain.com/public_html
    php artisan key:generate
    php artisan storage:link

    If you installed into a subdirectory (e.g., public_html/app/), adjust the path accordingly. The storage:link command creates the symlink so uploaded files (logos, attachments) are publicly accessible.

  5. 5

    Set Directory Permissions via SSH

    bash — SSH session on Hostinger
    chmod -R 775 storage bootstrap/cache
  6. 6

    Configure the Document Root

    Hostinger must serve the public/ directory, not the root of the project. In hPanel:

    • For the main domain: go to hPanel → Hosting → Manage → Files → Document Root and set it to public_html/public (if you placed the project files directly in public_html).
    • For a subdomain: go to hPanel → Subdomains → Edit → Document Root and point it to the public/ subfolder inside your uploaded directory.

    If your hosting plan does not allow changing the document root, you can move the contents of the public/ folder into public_html/ and update public/index.php paths — but this is not recommended. Using a subdomain with the correct document root is the cleanest approach.

  7. 7

    Run the Installation Wizard

    Open your browser and navigate to https://yourdomain.com/install. Follow the 5-step wizard. In Step 3, enter the database credentials you created in Step 1 of this guide.

    Cron Job on Hostinger

    After installation, add a cron job in hPanel → Advanced → Cron Jobs. Set the command to: php ~/public_html/artisan schedule:run and the interval to every minute (use the "Once per minute" preset). This is required for scheduled notifications and auto-status updates to work.

Environment Variables Reference (.env)

All configuration is done through the .env file at the project root. Never commit this file to version control. Database credentials entered in the installation wizard are written to this file automatically.

Application Settings

VariableExample ValueDescription
APP_NAMEDeprixa PlusApplication name shown in emails, browser tab, and UI header.
APP_ENVproductionSet to production on live servers. local for development. Controls error verbosity.
APP_KEYbase64:…Auto-generated by php artisan key:generate. Never change on production — all encrypted data will become unreadable.
APP_DEBUGfalseSet to false in production. When true, detailed error stack traces are shown to users — a major security risk.
APP_URLhttps://app.yourdomain.comFull URL of your installation including protocol. Used for asset URLs, email links, and API base paths.

Database

These values are written automatically by the installation wizard when you complete Step 3. You can also set or update them manually here.

VariableExample ValueDescription
DB_CONNECTIONmysqlDatabase driver. Supported: mysql, mariadb.
DB_HOST127.0.0.1Database server hostname or IP. Use 127.0.0.1 for local, or your RDS/Cloud DB endpoint.
DB_PORT3306MySQL default port. Change if your DB server uses a non-standard port.
DB_DATABASEdeprixaName of the database. The wizard creates it automatically if it does not exist.
DB_USERNAMEdeprixa_userDatabase user. Should have SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX privileges.
DB_PASSWORDstr0ngP@ssword!Database user password. Use a strong, randomly generated password.

Cache, Session & Queue

VariableExample ValueDescription
CACHE_DRIVERredisCache backend. Options: redis (recommended), file, database, array.
SESSION_DRIVERredisSession storage. Options: redis (recommended), file, cookie, database.
QUEUE_CONNECTIONredisQueue backend for background jobs (notifications, exports). Options: redis, database, sync.
REDIS_HOST127.0.0.1Redis server hostname.
REDIS_PORT6379Redis port. Default is 6379.
REDIS_PASSWORDnullRedis authentication password. Set to null if no password is configured.

Mail Configuration

VariableExample ValueDescription
MAIL_MAILERsmtpMail driver. Options: smtp, ses (AWS), mailgun, log (dev only), array.
MAIL_HOSTsmtp.mailgun.orgSMTP server hostname. Use your ESP's SMTP endpoint.
MAIL_PORT587SMTP port. 587 (TLS/STARTTLS) is standard. 465 for SSL. 25 for unencrypted (not recommended).
MAIL_ENCRYPTIONtlsEncryption method: tls or ssl.
MAIL_USERNAMEpostmaster@yourdomain.comSMTP authentication username (usually your email address or API key).
MAIL_PASSWORDyour-smtp-passwordSMTP authentication password.
MAIL_FROM_ADDRESSnoreply@yourdomain.comThe "From" email address for all outgoing system emails.
MAIL_FROM_NAMEDeprixa PlusThe "From" display name shown in email clients.

File Storage (Optional S3)

By default, uploaded files (logos, attachments) are stored on the local server filesystem. To use AWS S3 or a compatible object storage service instead, set the following variables.

VariableExample ValueDescription
FILESYSTEM_DISKlocalDefault disk for file storage. Options: local (server filesystem) or s3 (AWS S3 or compatible).
AWS_ACCESS_KEY_IDAKIA…AWS IAM access key. Required only when FILESYSTEM_DISK=s3.
AWS_SECRET_ACCESS_KEYwJalrX…AWS IAM secret key. Required only when using S3.
AWS_DEFAULT_REGIONus-east-1AWS region where your S3 bucket is located.
AWS_BUCKETdeprixa-filesYour S3 bucket name.
AWS_URLhttps://deprixa-files.s3.amazonaws.comPublic base URL for your S3 bucket. Used to generate file URLs.

First-Run Checklist

After the installation wizard completes, log in with the admin account you created and finish these steps before going live:

Cron Job for Scheduled Tasks

Add the following entry to your server's crontab (crontab -e as the web server user or root):

cron
* * * * * www-data php /var/www/deprixa-plus/artisan schedule:run >> /dev/null 2>&1

Queue Worker (Supervisord)

For production, use Supervisord to keep the queue worker running. Create /etc/supervisor/conf.d/deprixa-worker.conf:

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

Common Installation Errors

Error Cause Fix
License verification fails Wrong purchase code or Envato username, or the license server cannot be reached. Double-check the purchase code (UUID format) and your exact Envato username. Verify the server has outbound internet access on port 443.
Database connection fails in wizard Step 3 MySQL is not running, the credentials are wrong, or the host is incorrect. Run systemctl status mysql. Verify the host, port, username, and password. Use 127.0.0.1 instead of localhost for TCP connections.
No application encryption key has been specified APP_KEY is empty in .env. Run php artisan key:generate. Ensure the .env file exists.
White page / 500 error Storage or bootstrap/cache is not writable. Run chmod -R 775 storage bootstrap/cache and ensure the web server user owns these directories.
Class "App\Models\..." not found Composer autoloader is outdated. Run composer dump-autoload --optimize.
Assets not loading (404 on /build/*.js) npm run build was not run or the public/build directory is missing. Run npm install && npm run build. Verify that public/build/manifest.json exists.
Images/logos not loading (404 on /storage/...) Storage symlink not created. Run php artisan storage:link. Verify that public/storage is a symlink.
TokenMismatchException / 419 Page Expired CSRF token mismatch, usually because SESSION_DRIVER is misconfigured. Verify CACHE_DRIVER and SESSION_DRIVER in .env. If using Redis, ensure Redis is running. Run php artisan config:clear.
Email not being sent MAIL_* settings are wrong or queue worker is not running. Check MAIL_* variables. Verify SMTP credentials with a tool like MailTrap. Ensure queue worker is running if using async queues.
Permission denied when writing files Web server user does not own the storage directory. Run chown -R www-data:www-data storage bootstrap/cache.

Next Steps

With installation complete, explore the Settings module to configure your company profile, branding, and shipment services. Then read the Shipments module documentation to understand the core workflow.