Getting Started
This guide walks you through installing Clientra CRM on your server, from verifying system requirements to completing the setup wizard and taking your first steps in the application.
System Requirements
Server Software
| Component | Minimum | Recommended |
|---|---|---|
| PHP | 8.0 | 8.2+ |
| MySQL | 5.7 | 8.0+ |
| MariaDB | 10.4 | 10.6+ |
| Web Server | Apache 2.4 / Nginx 1.18 | Latest stable |
| Disk Space | 500 MB | 5 GB+ (for uploads) |
| RAM | 512 MB | 2 GB+ |
Required PHP Extensions
pdo— Database abstraction layerpdo_mysql— MySQL/MariaDB drivermbstring— Multi-byte string handlingopenssl— Encryption (email passwords)
curl— HTTP requests (Meta Ads, webhooks)zip/ZipArchive— Backup/restoregdorimagick— Image processingjson— JSON encode/decode
PHP Configuration
Update your php.ini with these minimum settings:
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 120
max_input_vars = 5000
date.timezone = Asia/Dubai ; or your timezone
Installation Steps
Follow the 6-step installation wizard to get Clientra CRM running.
Upload the entire Clientra CRM package to your server. The package contains two main directories: config/ and public/. The placement of these directories is critical.
public/ Directorypublic/ directory. The config/ directory must remain outside the web root. If config/ is web-accessible, your database credentials and encryption keys will be exposed.
Correct layout:
/home/user/ ← Server home
config/ ← PROTECTED (outside web root)
db.php
secrets.php
sessions/
public_html/ OR public/ ← Document root
index.php
api.php
assets/
...
Create a new MySQL/MariaDB database and user. Note the database name, username, and password — you'll need them in the next step.
CREATE DATABASE invejrek_crmmain CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'clientra'@'localhost' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON invejrek_crmmain.* TO 'clientra'@'localhost'; FLUSH PRIVILEGES;
Open https://yourdomain.com/install/install.php in your browser. The 6-step wizard will guide you through setup:
| Step | Description |
|---|---|
| 1 Requirements Check | Verifies PHP version, extensions, and directory permissions |
| 2 Database Config | Enter host, database name, username, and password |
| 3 Admin Account | Create the initial administrator account (email + password) |
| 4 App Settings | Set app name, timezone, currency, and edition (UAE/Global) |
| 5 Installation | Imports database schema and seeds default data |
| 6 Complete | Installation complete — redirects to login page |
/install/ Directory/install/ directory immediately after completing setup. Leaving it accessible allows anyone to reinstall and wipe your database.
Navigate to your domain, log in with your admin credentials, and complete the post-installation configuration steps below.
Directory Structure
Apache Configuration
If you're using Apache, the included .htaccess handles URL rewriting. For a dedicated virtual host:
<VirtualHost *:443> ServerName yourdomain.com DocumentRoot /home/user/clientra/public <Directory /home/user/clientra/public> AllowOverride All Require all granted Options -Indexes </Directory> # Protect config directory <Directory /home/user/clientra/config> Require all denied </Directory> SSLEngine on SSLCertificateFile /path/to/cert.pem SSLCertificateKeyFile /path/to/key.pem </VirtualHost>
Nginx Configuration
server { listen 443 ssl; server_name yourdomain.com; root /home/user/clientra/public; index index.php; # SSL configuration ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; ssl_protocols TLSv1.2 TLSv1.3; # Main SPA routing location / { try_files $uri $uri/ /index.php?$query_string; } # PHP processing location ~ \.php$ { fastcgi_pass unix:/var/run/php/php8.2-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; } # Security: block access to hidden files location ~ /\. { deny all; } # Cache static assets location ~* \.(css|js|png|jpg|gif|ico|svg|woff2)$ { expires 30d; add_header Cache-Control "public, immutable"; } }
cPanel / Shared Hosting
For shared hosting environments using cPanel:
Upload config/ to your home directory (e.g., /home/username/config/) and upload public/ contents to your domain's document root (e.g., public_html/).
Use MySQL Databases in cPanel to create a new database and user. Assign all privileges to the user on the new database.
In cPanel's Addon Domains, point the subdomain's document root to public_html/clientra/public/ if you uploaded the public/ folder to a subdirectory. The config/ must be one level above the document root.
sessions path in config/secrets.php should be set to an absolute path such as /home/username/clientra/config/sessions/ to ensure sessions work correctly.
First Steps After Installation
After logging in as administrator for the first time, complete these setup tasks:
| Task | Location | Description |
|---|---|---|
| Change admin password | Profile page | Update the default password set during installation |
| Configure app branding | Settings → General | Set app name, favicon, and primary color |
| Set timezone | Settings → General | Set to your local timezone (default: Asia/Dubai) |
| Configure currency | Settings → General | Default is AED (UAE Dirham) — change if needed |
| Add users and roles | Users page | Create agent and viewer accounts for your team |
| Set up departments | Departments page | Create department structure (Listing, Sales, etc.) |
| Configure email accounts | Settings → Email | Add IMAP/SMTP accounts for the Mail module |
| Set up lookups | Lookups page | Add developers, locations, and communities |
| Choose theme | Settings → Appearance | Select from 7 available themes (default: dark) |
https://yourdomain.comEmail: The admin email you set during installation
Password: The admin password you set during installation