Repository navigation
Installation
CRM is designed to run on your own web server. You will need to have root access to your server in order to run and use this panel.
You are expected to understand how to read documentation to use this Panel. We have spent many hours detailing how to install or upgrade our software; take some time and read rather than copy and pasting and then complaining when things do not work. This panel does not exist as a drag-and-drop service to run your servers. It is a highly complex system requiring multiple dependencies and administrators willing to spend some time learning how to use it.
If you expect to be able to install this with no understanding of basic linux system administration you should stop and turn around now.
| Operating System | Version | Supported | Notes |
|---|---|---|---|
| Ubuntu | 20.04 | ✅ | PHP Require extra repo. |
| 22.04 | ✅ | PHP Require extra repo. | |
| Debian | 10 | ✅ | |
| 11 | ✅ | Documentation written assuming Debian 11 as the base OS. |
- PHP
8.1with the following extensions:cli,openssl,gd,mysql,PDO,sqlite,mbstring,tokenizer,bcmath,xmlordom,curl,zip, andfpmif you are planning to use NGINX. - MySQL
8(recommended) or MariaDB10.2and higher. - Redis (
redis-server) - A webserver (Apache, NGINX, etc.)
curltarunzipwgetgit-
composerv2
The commands below are simply an example of how you might install these dependencies. Please consult with your operating system's package manager to determine the correct packages to install.
# Add "add-apt-repository" command
apt -y install software-properties-common curl apt-transport-https lsb-release ca-certificates gnupg wget
# Add additional repositories for PHP, Redis, and MariaDB
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/sury-php.list
wget -qO - https://packages.sury.org/php/apt.gpg | sudo apt-key add -
add-apt-repository ppa:redislabs/redis -y
# MariaDB repo setup script can be skipped on Ubuntu 22.04
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
# Update repositories list
apt update
# Add universe repository if you are on Ubuntu 18.04
apt-add-repository universe
# Install Dependencies
apt -y install php8.1 php8.1-{common,cli,gd,mysql,sqlite3,mbstring,bcmath,xml,fpm,curl,zip} mariadb-server nginx tar unzip git redis-serverComposer is a dependency manager for PHP that allows us to ship everything you'll need code wise to operate the Panel. You'll need composer installed before continuing in this process.
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composerThe first step in this process is to create the folder where the panel will live and then move ourselves into that newly created folder. Below is an example of how to perform this operation.
mkdir -p /var/www/crm
cd /var/www/crmOnce you have created a new directory for the CRM and moved into it you'll need to download the Panel files. This
is as simple as using git to download our pre-packaged content. Once it is downloaded you'll need to unpack the archive
and then set the correct permissions on the storage/ and bootstrap/cache/ directories. These directories
allow us to store files as well as keep a speedy cache available to reduce load times.
git clone https://github.com/nicolasbaud/crm.git ./
chmod -R 755 storage/* bootstrap/cache/Now that all of the files have been downloaded we need to configure some core aspects of the Panel.
mysql -u root -p
# Remember to change 'yourPassword' below to be a unique password
CREATE USER 'crmuser'@'127.0.0.1' IDENTIFIED BY 'yourPassword';
CREATE DATABASE crm;
GRANT ALL PRIVILEGES ON crm.* TO 'crmuser'@'127.0.0.1' WITH GRANT OPTION;
exitFirst we will copy over our default environment settings file, install core dependencies, and then generate a new application encryption key.
cp .env.example .env
composer install --no-dev --optimize-autoloader
# Only run the command below if you are installing this Panel for
# the first time and do not have any CRM data in the database.
php artisan key:generate --forceWarning
Back up your encryption key (APP_KEY in the
.envfile). It is used as an encryption key for all data that needs to be stored securely. Store it somewhere safe - not just on your server. If you lose it all encrypted data is irrecoverable -- even if you have database backups.
CRM's core environment is easily configured using a few different CLI commands built into the app. This step will cover setting up things such as sessions, caching, database credentials, and email sending.
php artisan crm:environment:app
php artisan crm:environment:mail
php artisan crm:environment:database
php artisan crm:installThe last step in the installation process is to set the correct permissions on the Panel files so that the webserver can use them correctly.
# If using NGINX or Apache (not on CentOS):
chown -R www-data:www-data /var/www/crm/*
# If using NGINX on CentOS:
chown -R nginx:nginx /var/www/crm/*
# If using Apache on CentOS
chown -R apache:apache /var/www/crm/*