EPESI is a free and open source web application and one of the most sophisticated multi-user solutions for managing business information like CRM. It is a fully functional CRM application that can be used to store, organize, access and share business records. It is built on PHP/Ajax framework, so you can change It and develop it as you like.
Features
- Simple, lightweight and fast.
- Intuitive web-based user interface.
- Unlimited notes and file attachments.
- Integrated Roundcube email client.
- Phone and Project tracker.
- Shared contacts, calendar, tasks, phone calls.
In this tutorial, we will learn how to install EPESI on Ubuntu 18.04 server.
Requirements
- A server running Ubuntu 18.04.
- A non-root user with sudo privileges.
Getting Started
Before starting, you will need to update your system with the latest version. You can do this by running the following command:
sudo apt-get update -y
sudo apt-get upgrade -y
Once your system is updated, restart the system to apply the changes.
Install LAMP Server
First, you will need to install Apache web server, MariaDB server, PHP and other required PHP modules to your system. You can install all of them by running the following command:
sudo apt-get install apache2 mariadb-server php7.2 libapache2-mod-php7.2 php7.2-common php7.2-mbstring php7.2-xmlrpc php7.2-soap php7.2-gd php7.2-xml php7.2-intl php7.2-mysql php7.2-cli php7.2-ldap php7.2-zip php7.2-curl php7.2-imap unzip -y
Next, you will need to make some changes in PHP default configuration file:
sudo nano /etc/php/7.2/apache2/php.ini
Make the following changes:
memory_limit = 256M upload_max_filesize = 64M post_max_size = 64M max_execution_time = 30 max_input_vars = 1500 date.timezone = Asia/Kolkata
Save and close the file. Then, start Apache and MariaDB service and enable them to start on boot time with the following command:
sudo systemctl start apache2
sudo systemctl enable apache2
sudo systemctl start mariadb
sudo systemctl enable mariadb
Configure MariaDB
By default, MariaDB is not secured. So, you will need to secure it first. You can secure it by running the following command:
sudo mysql_secure_installation
This command will set root password, remove anonymous user, disallow remote root login, and remove test database as shown below:
Enter current password for root (enter for none): Set root password? [Y/n]: N Remove anonymous users? [Y/n]: Y Disallow root login remotely? [Y/n]: Y Remove test database and access to it? [Y/n]: Y Reload privilege tables now? [Y/n]: Y
Once the MariaDB is secured, log in to MariaDB shell:
sudo mysql -u root
Enter your root password when prompt. Then, create a database and user for EPESI with the following command:
MariaDB [(none)]> CREATE DATABASE epesidb;
MariaDB [(none)]> CREATE USER 'epesi'@'localhost' IDENTIFIED BY 'mypassword';
Replace the string 'mypassword' with a secure password. Next, grant privileges to the EPESI database with the following command:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON epesidb.* TO 'epesi'@'localhost' IDENTIFIED BY 'mypassword';
Replace the string 'mypassword' with a secure password.Next, flush the privileges with the following command:
MariaDB [(none)]> FLUSH PRIVILEGES;
Next, exit from the MariaDB console with the following command:
MariaDB [(none)]> exit
Install EPESI CMS
First, you will need to download the latest version of EPESI from Git repository.
Go to the /tmp directory:
cd /tmp
You can download it with the following command:
git clone https://github.com/Telaxus/EPESI.git
Next, copy the EPESI directory to the Apache root directory with the following command:
sudo cp -r EPESI /var/www/html/epesi
Next, you will need to install Composer to your system. You can install it by running the following command:
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
Next, change the directory to epesi and install required dependencies using Composer:
cd /var/www/html/epesi
sudo composer install
Output:
Deprecation warning: require.phpFastCache/phpFastCache is invalid, it should not contain uppercase characters. Please use phpfastcache/phpfastcache instead. Make sure you fix this as Composer 2.0 will error. Do not run Composer as root/super user! See https://getcomposer.org/root for details Loading composer repositories with package information Installing dependencies (including require-dev) from lock file Package operations: 84 installs, 0 updates, 0 removals - Installing enyo/dropzone (v5.5.0): Downloading (100%) - Installing ezyang/htmlpurifier (v4.10.0): Downloading (100%) - Installing fzaninotto/faker (v1.8.0): Downloading (100%) - Installing ifsnop/mysqldump-php (dev-master 3c5ccfe): Cloning 3c5ccfea31 from cache - Installing jakub-onderka/php-console-color (v0.2): Downloading (100%) - Installing memio/model (2.0.4): Downloading (100%) - Installing memio/validator (v2.0.3): Downloading (100%) - Installing symfony/polyfill-ctype (v1.10.0): Downloading (100%) - Installing twig/twig (v1.36.0): Downloading (100%) - Installing memio/pretty-printer (2.0.3): Downloading (100%) - Installing memio/twig-template-engine (v2.0.3): Downloading (100%) - Installing memio/linter (v2.0.3): Downloading (100%) - Installing memio/memio (v2.0.0): Downloading (100%) - Installing moneyphp/money (v3.2.0): Downloading (100%) - Installing phpdocumentor/reflection-docblock (2.0.5): Downloading (100%) - Installing psr/cache (1.0.1): Downloading (100%) - Installing predis/predis (v1.1.1): Downloading (100%) - Installing phpfastcache/phpssdb (1.0.1): Downloading (100%) - Installing phpfastcache/phpfastcache (5.0.21): Downloading (100%) - Installing psr/container (1.0.0): Downloading (100%) - Installing pimple/pimple (v3.2.3): Downloading (100%) - Installing symfony/polyfill-php72 (v1.10.0): Downloading (100%) - Installing symfony/polyfill-mbstring (v1.10.0): Downloading (100%) - Installing symfony/var-dumper (v4.0.15): Downloading (100%) - Installing psr/log (1.1.0): Downloading (100%) - Installing symfony/debug (v3.0.9): Downloading (100%) - Installing symfony/console (v2.8.49): Downloading (100%) - Installing nikic/php-parser (v3.1.5): Downloading (100%) - Installing jakub-onderka/php-console-highlighter (v0.4): Downloading (100%) - Installing dnoegel/php-xdg-base-dir (0.1): Downloading (100%) - Installing psy/psysh (v0.9.9): Downloading (100%) - Installing ircmaxell/password-compat (v1.0.4): Downloading (100%) - Installing symfony/polyfill-php55 (v1.10.0): Downloading (100%) - Installing symfony/polyfill-php54 (v1.10.0): Downloading (100%) - Installing symfony/http-foundation (v2.8.49): Downloading (100%) - Installing tecnickcom/tcpdf (6.2.26): Downloading (100%) - Installing symfony/finder (v4.2.1): Downloading (100%) - Installing sebastian/version (2.0.1): Downloading (100%) - Installing sebastian/resource-operations (2.0.1): Downloading (100%) - Installing sebastian/recursion-context (3.0.0): Downloading (100%) - Installing sebastian/object-reflector (1.1.1): Downloading (100%) - Installing sebastian/object-enumerator (3.0.3): Downloading (100%) - Installing sebastian/global-state (2.0.0): Downloading (100%) - Installing sebastian/exporter (3.1.0): Downloading (100%) - Installing sebastian/environment (4.0.1): Downloading (100%) - Installing sebastian/diff (3.0.1): Downloading (100%) - Installing sebastian/comparator (3.0.2): Downloading (100%) - Installing phpunit/php-timer (2.0.0): Downloading (100%) - Installing phpunit/php-text-template (1.2.1): Downloading (100%) - Installing phpunit/php-file-iterator (2.0.2): Downloading (100%) - Installing theseer/tokenizer (1.1.0): Downloading (100%) - Installing sebastian/code-unit-reverse-lookup (1.0.1): Downloading (100%) - Installing phpunit/php-token-stream (3.0.1): Downloading (100%) - Installing phpunit/php-code-coverage (6.1.4): Downloading (100%) - Installing doctrine/instantiator (1.1.0): Downloading (100%) - Installing phpspec/prophecy (1.8.0): Downloading (100%) - Installing phar-io/version (2.0.1): Downloading (100%) - Installing phar-io/manifest (1.0.3): Downloading (100%) - Installing myclabs/deep-copy (1.8.1): Downloading (100%) - Installing phpunit/phpunit (7.5.1): Downloading (100%) - Installing jakubledl/dissect (v1.0.1): Downloading (100%) - Installing goaop/parser-reflection (1.4.1): Downloading (100%) - Installing doctrine/cache (v1.8.0): Downloading (100%) - Installing doctrine/lexer (v1.0.1): Downloading (100%) - Installing doctrine/annotations (v1.6.0): Downloading (100%) - Installing goaop/framework (2.2.0): Downloading (100%) - Installing codeception/aspect-mock (3.0.2): Downloading (100%) - Installing symfony/yaml (v3.3.18): Downloading (100%) - Installing symfony/contracts (v1.0.2): Downloading (100%) - Installing symfony/event-dispatcher (v4.2.1): Downloading (100%) - Installing symfony/dom-crawler (v4.2.1): Downloading (100%) - Installing symfony/css-selector (v4.2.1): Downloading (100%) - Installing symfony/browser-kit (v4.2.1): Downloading (100%) - Installing ralouphie/getallheaders (2.0.5): Downloading (100%) - Installing psr/http-message (1.0.1): Downloading (100%) - Installing guzzlehttp/psr7 (1.5.2): Downloading (100%) - Installing guzzlehttp/promises (v1.3.1): Downloading (100%) - Installing guzzlehttp/guzzle (6.3.3): Downloading (100%) - Installing symfony/process (v4.2.1): Downloading (100%) - Installing facebook/webdriver (1.6.0): Downloading (100%) - Installing codeception/stub (2.0.4): Downloading (100%) - Installing codeception/phpunit-wrapper (7.6.0): Downloading (100%) - Installing behat/gherkin (v4.5.1): Downloading (100%) - Installing codeception/codeception (2.5.2): Downloading (100%) moneyphp/money suggests installing ext-bcmath (Calculate without integer limits) moneyphp/money suggests installing ext-gmp (Calculate without integer limits) moneyphp/money suggests installing florianv/exchanger (Exchange rates library for PHP) moneyphp/money suggests installing florianv/swap (Exchange rates library for PHP) moneyphp/money suggests installing psr/cache-implementation (Used for Currency caching) phpdocumentor/reflection-docblock suggests installing dflydev/markdown (~1.0) phpdocumentor/reflection-docblock suggests installing erusev/parsedown (~1.0) predis/predis suggests installing ext-phpiredis (Allows faster serialization and deserialization of the Redis protocol) phpfastcache/phpfastcache suggests installing ext-apc (*) phpfastcache/phpfastcache suggests installing ext-memcache (*) phpfastcache/phpfastcache suggests installing ext-memcached (*) phpfastcache/phpfastcache suggests installing ext-predis (*) phpfastcache/phpfastcache suggests installing ext-redis (*) phpfastcache/phpfastcache suggests installing ext-sqlite (*) symfony/console suggests installing psr/log-implementation (For using the console logger) psy/psysh suggests installing ext-pdo-sqlite (The doc command requires SQLite to work.) psy/psysh suggests installing hoa/console (A pure PHP readline implementation. You'll want this if your PHP install doesn't already support readline or libedit.) sebastian/global-state suggests installing ext-uopz (*) phpunit/php-code-coverage suggests installing ext-xdebug (^2.6.0) phpunit/phpunit suggests installing ext-xdebug (*) phpunit/phpunit suggests installing phpunit/php-invoker (^2.0) doctrine/cache suggests installing alcaeus/mongo-php-adapter (Required to use legacy MongoDB driver) symfony/contracts suggests installing symfony/cache-contracts-implementation symfony/contracts suggests installing symfony/service-contracts-implementation symfony/contracts suggests installing symfony/translation-contracts-implementation symfony/event-dispatcher suggests installing symfony/dependency-injection symfony/event-dispatcher suggests installing symfony/http-kernel facebook/webdriver suggests installing ext-SimpleXML (For Firefox profile creation) codeception/codeception suggests installing aws/aws-sdk-php (For using AWS Auth in REST module and Queue module) codeception/codeception suggests installing codeception/phpbuiltinserver (Start and stop PHP built-in web server for your tests) codeception/codeception suggests installing codeception/specify (BDD-style code blocks) codeception/codeception suggests installing codeception/verify (BDD-style assertions) codeception/codeception suggests installing flow/jsonpath (For using JSONPath in REST module) codeception/codeception suggests installing league/factory-muffin (For DataFactory module) codeception/codeception suggests installing league/factory-muffin-faker (For Faker support in DataFactory module) codeception/codeception suggests installing phpseclib/phpseclib (for SFTP option in FTP Module) codeception/codeception suggests installing stecman/symfony-console-completion (For BASH autocompletion) codeception/codeception suggests installing symfony/phpunit-bridge (For phpunit-bridge support) Generating autoload files Do not run Composer as root/super user! See https://getcomposer.org/root for details Loading composer repositories with package information Installing dependencies (including require-dev) from lock file Package operations: 1 install, 0 updates, 0 removals - Installing tedivm/fetch (v0.7.1): Downloading (100%) Generating autoload files Do not run Composer as root/super user! See https://getcomposer.org/root for details Loading composer repositories with package information Installing dependencies (including require-dev) from lock file Package operations: 1 install, 0 updates, 0 removals - Installing phpoffice/phpexcel (1.8.1): Downloading (100%) Generating autoload files Do not run Composer as root/super user! See https://getcomposer.org/root for details Loading composer repositories with package information Updating dependencies (including require-dev) Nothing to install or update Writing lock file Generating autoload files Do not run Composer as root/super user! See https://getcomposer.org/root for details Generated autoload files containing 14 classes
Once all the required dependencies have been installed, give proper permissions to the epesi directory with the following command:
sudo chown -R www-data:www-data /var/www/html/epesi
sudo chmod -R 775 /var/www/html/epesi
Configure Apache for EPESI
Next, you will need to create an apache virtual host file for EPESI. You can do this by creating epesi.conf file:
sudo nano /etc/apache2/sites-available/epesi.conf
Add the following lines:
<VirtualHost *:80> ServerAdmin admin@example.com DocumentRoot /var/www/html/epesi ServerName example.com
ServerAlias www.example.com <Directory /var/www/html/epesi/> Options +FollowSymlinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/epesi_error.log CustomLog ${APACHE_LOG_DIR}/epesi_access.log combined </VirtualHost>
Save and close the file. Then, enable EPESI virtual host file with the following command:
sudo a2ensite epesi
Next, enable Apache rewrite module and restart Apache web server to apply all the changes:
sudo a2enmod rewrite
sudo systemctl restart apache2
Once you have finished, you can proceed to the next step.
Access EPESI CRM Web Interface
EPESI CRM is now installed and configured, it's time to access EPESI CRM web interface.
Open your web browser and type the URL http://example.com. You will be redirected to the following page:
Choose your language, you should see the following page:
Now, accept the License agreement and click on the Next button. You should see the following page:
Now, ignore the error and click on the Ok button. You should see the following page:
Now, provide all the required details like, database name, database username and password. Then, click on the Nextbutton. You should see the following page:
Now, click on the Continue with installation button. You should see the following page:
Now, provide your admin username and password. Then, click on the Next button. You should see the following page:
Now, select your Mail settings and click on the Next button. You should see the following page:
Now, click on the Next button. You should see the following page:
Now, provide your date and time format and country. Then, click on the OK button. you should see the following page:
Now, provide your Company name, your name and address, Country and City. Then, click on the OK button. Once the installation has been completed successfully. You should see the following page:
Congratulations! you have successfully installed EPESI CRM on your server. You can now host your own EPESI CRM in your production environment easily.