DevPremier CRM DevPremier Docs Buy

Getting Started

Install DevPremier CRM, configure your server, and go live — Linux VPS, Docker, email, cron, HTTPS, and upgrades

Try:

01 System Requirements

DevPremier CRM v3.0 runs on Laravel 13 and requires a modern PHP stack. Use this checklist before you deploy.

Minimum server stack

  • PHP 8.3+ (8.4 supported) with extensions: BCMath, Ctype, Fileinfo, JSON, Mbstring, OpenSSL, PDO, Tokenizer, XML
  • MySQL 8+ or MariaDB 10.6+ (InnoDB)
  • Nginx or Apache 2.x
  • Composer 2.x on the server (or run locally before upload)

Document root

Point the web server to public_html/ inside the CRM project — not Laravel’s default public/ folder.

Writable paths

  • bootstrap/cache
  • storage/app, storage/framework, storage/logs

Recommended for production

  • Linux VPS or cloud instance — primary supported target
  • Cron — every minute for scheduler and queued mail
  • HTTPS — required for purchase-code verification on public domains
  • SMTP — outbound email (can be configured after install)

Shared hosting

Shared hosting is not recommended for production v3.0. See Shared Hosting Installation below for limitations.

02 Installation Guide

DevPremier CRM v3.0 ships with a guided 3-step installation wizard.

Before you begin

  • Download from CodeCanyon and unzip main_file_v3.x.zip.
  • Have your Envato purchase code ready.
  • Create an empty MySQL database and user with full privileges.
  • SSH access to a Linux server (or use the Docker guide).

Deploy files

  1. Upload the CRM source to your server (e.g. /var/www/crm).
  2. Set the web server document root to public_html/.
  3. Run composer install --no-dev --optimize-autoloader if vendor is not bundled.
  4. Visit your domain in a browser to open the wizard.

Wizard — Step 1: Welcome

Review the overview and click Begin installation.

Wizard — Step 2: Configure

  1. License — Enter purchase code and click Verify purchase code. Local domains (localhost, 127.0.0.1, *.local) skip domain locking.
  2. Server — PHP version, extensions, and directory permissions check.
  3. Application — App name, URL, production environment, APP_DEBUG=false.
  4. Database — Host, port, database, user, password. Use 127.0.0.1 instead of localhost. Click Test connection.
  5. Email (optional) — SMTP can be skipped; configure later under Office → Mail.

Click Save & continue to run migrations, seed data, and write .env.

Wizard — Step 3: Finish

Create your admin account, then click Finish installation.

03 Server Configuration

Configure your Linux web server to serve DevPremier CRM from public_html/.

Nginx example

Create a server block pointing to /var/www/crm/public_html:

server {
    listen 80;
    server_name crm.example.com;
    root /var/www/crm/public_html;
    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;
    }

    client_max_body_size 64M;
}

Apache

Set DocumentRoot to public_html and ensure mod_rewrite is enabled. Laravel’s public_html/.htaccess handles front-controller routing.

PHP settings

  • upload_max_filesize and post_max_size — at least 32M for imports and attachments.
  • memory_limit — 256M or higher for large exports.
  • max_execution_time — 120+ for long imports.

File permissions

Web server user (e.g. www-data) must write to storage/ and bootstrap/cache/. After deploy:

chown -R www-data:www-data storage bootstrap/cache
chmod -R ug+rwX storage bootstrap/cache

04 Docker Installation

DevPremier CRM includes a docker-compose.yml for local development and staging. The container serves the app on port 8082 by default.

Prerequisites

  • Docker Desktop or Docker Engine + Compose
  • MySQL running on the host (or another container) reachable at host.docker.internal

Quick start

  1. Copy example.env to .env in the CRM root.
  2. Set DB_HOST=host.docker.internal, database name, user, and password.
  3. Set APP_URL to http://localhost:8082 (or your mapped port).
  4. From the CRM directory run: docker compose up -d --build.
  5. Open http://localhost:8082 and complete the installation wizard.

Database host in the wizard

When the install wizard asks for database host, use host.docker.internal (macOS/Windows Docker Desktop) or your host machine IP on Linux.

What the container runs

  • PHP-FPM + Nginx inside the image
  • Cron service with project crontabs file
  • composer install on container start via script.sh
  • php artisan storage:link for public storage

Production note

For production, prefer a managed Linux VPS with Nginx and PHP-FPM natively installed. Docker is ideal for local dev, CI, and staging.

05 Shared Hosting Installation

DevPremier CRM v3.0 is designed for Linux VPS and cloud servers. Shared hosting is not recommended for production because of PHP version limits, missing SSH/cron, and restricted queue/redis support.

When shared hosting might work

  • Short-term evaluation or demo on a host that offers PHP 8.3+, MySQL 8+, and SSH.
  • Hosts that allow cron every minute and custom document roots.

If you must use shared hosting

  1. Confirm PHP 8.3+ and required extensions in the control panel.
  2. Upload files via SFTP; set document root to public_html/.
  3. Create MySQL database and import nothing — let the wizard migrate.
  4. Run composer install locally and upload vendor/ if SSH Composer is unavailable.
  5. Add cron via cPanel: * * * * * php /home/user/crm/artisan schedule:run.
  6. Enable HTTPS through your host’s Let’s Encrypt tool.

Common blockers

  • PHP below 8.3 — upgrade plan or switch to VPS.
  • No cron — queued emails and reminders will not send.
  • No Redis — use default database queue (slower under load).
  • open_basedir restrictions — may block storage writes; contact host or migrate to VPS.

Recommendation

For CodeCanyon production use, deploy on DigitalOcean, Hetzner, Linode, AWS, GCP, or Azure — see the Installation Guide hosting links.

06 Upgrade Guide

Follow this process when updating DevPremier CRM to a new CodeCanyon release.

  1. Back up — full database dump and copy of .env, storage/app uploads, and any custom code.
  2. Download the latest zip from your CodeCanyon → Downloads page.
  3. Put the CRM in maintenance mode if you use it: php artisan down.
  4. Replace application files on the server. Do not overwrite .env or customer uploads in storage/app/public.
  5. Run composer install --no-dev --optimize-autoloader if composer.json changed.
  6. Run php artisan migrate --force when release notes require it.
  7. Clear caches: php artisan config:clear && php artisan cache:clear && php artisan view:clear.
  8. Run php artisan storage:link if release notes mention storage changes.
  9. Smoke-test login, leads, invoices, and cron; then php artisan up.

In-app updater

If your build includes Office → CRM Update, you can upload the zip through the admin UI. Always back up first — the UI updater performs the same file swap and migration steps.

07 Backup & Restore

Back up before every upgrade and on a regular schedule in production.

Database backup

MySQL/MariaDB dump:

mysqldump -u USER -p DATABASE_NAME > devpremier-backup-$(date +%F).sql

Store dumps off-server (S3, backup VPS, or encrypted archive).

Files to include

  • .env — secrets and environment config
  • storage/app/public — uploaded media and customer files
  • storage/app/INSTALLED — install marker (optional)
  • Any custom themes or app/ overrides you added

You typically do not need to archive vendor/ — restore with composer install instead.

Restore procedure

  1. Deploy a matching CRM version (same major release as the backup).
  2. Restore .env and file uploads.
  3. Import SQL: mysql -u USER -p DATABASE_NAME < backup.sql.
  4. Run php artisan config:clear and verify storage:link.

Automation

Schedule nightly mysqldump and rsync of storage/app/public via cron on your VPS.

08 Multi-language Setup

DevPremier CRM supports multiple UI languages for staff and stores per-contact language preferences.

Built-in UI languages

Staff can switch language from the top navigation dropdown. Configured locales in config/constants.php:

  • EN — English (default)
  • ZH — Chinese
  • HI — Hindi
  • FR — French
  • ES — Spanish
  • AR — Arabic

Selection is stored in session and cookie (applocale) via GET /lang?lang_code=XX.

Translation files

  • JSON strings: resources/lang/en.json (and parallel files per locale if added).
  • Use Laravel __() helpers in Blade — most admin UI strings are translatable.

Add or customize a language

  1. Copy resources/lang/en.json to resources/lang/{locale}.json (e.g. de.json).
  2. Translate string values; keep keys identical.
  3. Add the locale code to LOCALES in config/constants.php.
  4. Clear config cache: php artisan config:clear.

Contact / lead language

Set Preferred language on lead and customer records for segmentation and future localized communications.

09 HTTPS Configuration

HTTPS is required for production purchase-code verification on public domains and protects staff login, API tokens, and client portal sessions.

Let&rsquo;s Encrypt (Certbot + Nginx)

  1. Point DNS A record for crm.example.com to your server IP.
  2. Install Certbot: sudo apt install certbot python3-certbot-nginx.
  3. Run: sudo certbot --nginx -d crm.example.com.
  4. Confirm auto-renewal: sudo certbot renew --dry-run.

Application URL

Set in .env:

APP_URL=https://crm.example.com
APP_SYSTEM=https

Run php artisan config:clear after changes.

Force HTTPS

Terminate TLS at Nginx/Apache or your load balancer. If behind a reverse proxy, configure trusted proxies in Laravel so URLs generate with https://.

Mixed content

If CSS or assets load over HTTP, set APP_URL correctly and enable HTTPS on your CDN or asset host.

10 Cron Jobs

Cron drives the Laravel scheduler — queued emails, reminders, and other timed tasks. Without it, mail sits in the queue and reminders never fire.

Required cron entry

Add to the www-data or deploy user crontab (crontab -e):

* * * * * cd /path/to/your-crm && php artisan schedule:run >> /dev/null 2>&1

Replace /path/to/your-crm with the project root (where artisan lives).

Enable in CRM

After cron is active on the server, open Office → Mail Settings and enable Turn on CronJob so the CRM processes the email queue.

Verify

  1. Wait 2–3 minutes after adding cron.
  2. Queue a test email (proposal or invoice).
  3. Check storage/logs/laravel.log for scheduler errors.

Docker

The CRM Docker image starts the cron service and loads crontabs from the project root automatically.

11 Queue Configuration

Outbound email and some background work use Laravel’s queue. DevPremier CRM defaults to the database driver — no Redis required for small and medium deployments.

Default (database queue)

In .env:

QUEUE_CONNECTION=database

Jobs are stored in the jobs table. The scheduler (cron) processes them when Turn on CronJob is enabled.

Redis (optional, higher volume)

  1. Install Redis on your server.
  2. Set QUEUE_CONNECTION=redis and configure REDIS_HOST, REDIS_PORT in .env.
  3. Run a queue worker via Supervisor, e.g. php artisan queue:work --sleep=3 --tries=3.

Redis reduces database load when sending high volumes of email or running many queued jobs.

Sync driver (development only)

QUEUE_CONNECTION=sync runs jobs immediately — useful locally; do not use in production under load.

12 Email Configuration

Configure SMTP so proposals, estimates, invoices, and notifications reach customers.

During installation

The wizard Email (optional) panel accepts SMTP host, port, username, password, and encryption. You can skip and configure later.

After installation — Office → Mail

Open Office → Mail Settings to update:

  • SMTP host, port, username, password, encryption (TLS recommended)
  • From name and address shown to recipients
  • Turn on CronJob — required for queued delivery

.env reference

MAIL_MAILER=smtp
MAIL_HOST=smtp.example.com
MAIL_PORT=587
MAIL_USERNAME=your-user
MAIL_PASSWORD=your-password
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=noreply@example.com
MAIL_FROM_NAME="${APP_NAME}"

Popular providers

  • Amazon SES, SendGrid, Mailgun, Postmark — use their SMTP credentials.
  • Mailtrap — safe inbox for staging (do not use in production).

Test delivery

  1. Save mail settings and enable cron.
  2. Email yourself a test invoice or proposal.
  3. If mail fails, check storage/logs/laravel.log and provider SMTP logs.

Thanks for reading DevPremier CRM docs

Browse all guides