Skip to main content

Getting Started

This is a condensed walkthrough. The zerp-pk/zerp README is the source of truth — check it if anything here goes stale.

Prerequisites

  • PHP 8.2+ with pdo_mysql enabled
  • Composer
  • Node.js + npm
  • A MySQL/MariaDB server

1. Clone the core app and its modules as siblings

Every module lives in its own repo and must be checked out next to the core app, matching what composer.json's path repositories expect:

some-folder/
├── zerp/ # core app — github.com/zerp-pk/zerp
└── ZerpPackages/
├── hrm/ # github.com/zerp-pk/hrm
├── account/ # github.com/zerp-pk/account
├── pos/ # github.com/zerp-pk/pos
└── ... # one directory per module you need

The full module → repository table is in the core app's README. You don't need every module for local development — only clone the ones you're working on or testing against; composer install just won't symlink the ones that are missing.

2. Install and configure

cd zerp
composer install
npm install
cp .env.example .env
php artisan key:generate

Set DB_HOST, DB_DATABASE, DB_USERNAME, DB_PASSWORD in .env.

3. Install the app

php artisan app:install --force
php artisan storage:link

This runs migrate:fresh (drops all tables) then prompts for a module preset — Full Suite, HR Only, Sales & CRM, or a Custom selection picker (see config/module-presets.php in the core app). Every module found under vendor/zerp/* still gets registered into the add_ons table via PackageSeeder, but only the ones you select are enabled and seeded with demo data. For non-interactive installs, pass --preset=<name> or --modules=account,hrm,pos instead of answering the prompt. Only run this against a disposable database.

4. Run it

php artisan serve --port=8000
npm run dev

Visit http://localhost:8000, log in with the seeded super-admin (company@example.com / 1234).

Prefer Docker?

docker compose up -d --build from the core app repo works the same way — see Docker & CI. The sibling ZerpPackages/ checkout is still required either way, since the Docker build context is the parent directory of zerp/.