Cerb is an open source application for web based collaboration and automation. Cerb is written in PHP and uses MySQL or MariaDB to store data. You can also use Cerb for sending high volumes of emails. It allows you to create a personalised mission control with shared and private workspaces for every team member. It allows you to build bots with sophisticated automation behaviors directly from your web browser (no coding experience required!). Add decisions, outcomes, loops, actions, and subroutines. Make bots smarter using machine learning. Trigger and catch webhooks, Integrate with any API. Some of its features are listed below:
- Shared mailboxes
- shared workspaces
- Connected accounts
- Contact management and Task management
- Mobile functionality
- Devblocks, a plugin-driven web development framework
- Monitor your performance
Requirements
Cerb does not require any special hardware to install on your server but we recommend you to install Cerb on a fresh and updated CentOS 7 server. You’ll need to be logged in as root user on server to follow this tutorial.
Update the System
Before going through the installation process it is highly recommended you update your system and upgrade all available packages. Run the command given below and it’ll do the job for you.
yum -y update
Installing Apache Web Server
Once the system is updated, you can install the dependencies required. To install Cerb you will need to install the Apache web server along with MaraiDB and PHP with a few extensions.
Run the following command to install the Apache web server.
yum -y install httpd
Now you can start Apache and enable it to start at boot time, using the following commands.
systemctl start httpd.service systemctl enable httpd.service
You can check the status of Apache web server using the following command.
systemctl status httpd
You should see following output:
[root@Sajid ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2017-02-08 14:46:03 UTC; 22s ago
Docs: man:httpd(8)
man:apachectl(8)
Main PID: 10743 (httpd)
Status: "Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec"
CGroup: /system.slice/httpd.service
├─10743 /usr/sbin/httpd -DFOREGROUND
├─10744 /usr/sbin/httpd -DFOREGROUND
├─10745 /usr/sbin/httpd -DFOREGROUND
├─10746 /usr/sbin/httpd -DFOREGROUND
├─10747 /usr/sbin/httpd -DFOREGROUND
└─10748 /usr/sbin/httpd -DFOREGROUND
Feb 08 14:46:03 ip-172-31-22-142 systemd[1]: Starting The Apache HTTP Server...
Feb 08 14:46:03 ip-172-31-22-142 systemd[1]: Started The Apache HTTP Server.
We will need to install MariaDB for database purposes for Cerb. MariaDB 5.5 is shipped in the default CentOS 7 repository, so just run this command to install MariaDB.
yum -y install mariadb-server
Now you’ll have to start the MariaDB service and enable it to start at boot time like we have done before for apache server, to do so please run following command.
systemctl start mariadb.service systemctl enable mariadb.service
You can check status of mariaDB using this below given command and you should see following output.
systemctl status mariadb.service
[root@Sajid ~]# systemctl status mariadb.service
● mariadb.service - MariaDB database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2017-02-08 14:47:40 UTC; 22s ago
Main PID: 18035 (mysqld_safe)
CGroup: /system.slice/mariadb.service
├─18035 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
└─18192 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/ma...
Feb 08 14:47:38 ip-172-31-22-142 mariadb-prepare-db-dir[17956]: The latest information about MariaDB is available at http://mariadb.org/.
Feb 08 14:47:38 ip-172-31-22-142 mariadb-prepare-db-dir[17956]: You can find additional information about the MySQL part at:
Feb 08 14:47:38 ip-172-31-22-142 mariadb-prepare-db-dir[17956]: http://dev.mysql.com
Feb 08 14:47:38 ip-172-31-22-142 mariadb-prepare-db-dir[17956]: Support MariaDB development by buying support/new features from MariaDB
Feb 08 14:47:38 ip-172-31-22-142 mariadb-prepare-db-dir[17956]: Corporation Ab. You can contact us about this at sales@mariadb.com.
Feb 08 14:47:38 ip-172-31-22-142 mariadb-prepare-db-dir[17956]: Alternatively consider joining our community based development effort:
Feb 08 14:47:38 ip-172-31-22-142 mariadb-prepare-db-dir[17956]: http://mariadb.com/kb/en/contributing-to-the-mariadb-project/
Feb 08 14:47:39 ip-172-31-22-142 mysqld_safe[18035]: 170208 14:47:39 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'.
Feb 08 14:47:39 ip-172-31-22-142 mysqld_safe[18035]: 170208 14:47:39 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
Feb 08 14:47:40 ip-172-31-22-142 systemd[1]: Started MariaDB database server.
we recommend you to make sure that this installation is secure and to do so run following command.
mysql_secure_installation
You’ll be asked to provide root password so enter appropriate password and answer yes to all questions by pressing Y.
Now you’ll have to create a database for cerb so please follow the instructions.
mysql -u root -p
You’ll be asked to enter password so simply enter a password and now execute the following queries to create a new database.
CREATE DATABASE cerb_data;
The above query will create a database named cerb_data. For the database you can use any name you prefer in the place of cerb_data. Make sure that you use semicolon at the end of each query as a query always ends with a semicolon. Once the database is created you can create a new user and grant the required permissions to the user for the database.
CREATE USER 'cerb_user'@'localhost' IDENTIFIED BY 'StrongPassword';
The above query will create a user with username cerb_user. You can use any preferred username instead of cerb_user. Replace StrongPassword with a strong password.
Now provide the appropriate privileges to your database user over the database you have created. Run the following query to do so.
GRANT ALL PRIVILEGES ON cerb_data.* TO 'cerb_user'@'localhost';
Now run the following query to immediately apply the changes on the database privileges.
FLUSH PRIVILEGES;
Now you can exit from MariaDB prompt using following command.
exit
.
We will have to install PHP. To do so run following commands as shown below.
cd
yum -y install epel-release
rpm -Uvh hhttp://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum -y install yum-utils
yum-config-manager --enable remi-php71
Now use this command to install PHP and its required extensions.
yum -y install php php-curl php-dom php-gd php-imap php-json php-mbstring php-mysqli php-openssl php-pcre php-session php-simplexml php-xml php-spl php-mailparse
Next you’ll have to edit some PHP settings to fulfill Cerb requirements in order to do so run these commands.
nano /etc/php.ini
Now update following lines as shown below:
memory_limit = 128M # 128M or Higher according to the memory available
upload_max_filesize = 2M # 32M or Higher
post_max_size = 8M # 32M or Higher
;upload_tmp_dir = # Uncomment and change it to upload_tmp_dir = /tmp
Next you’ll have to restart your apache web server to load new components that we just configured and use following command to restart apache web server.
systemctl restart httpd.service
Installing Cerb
We have successfully installed all the dependencies required for cerb now we are ready to install cerb on centos server. First of all install git if you do not already have installed using “yum -y install git`
Next, go to the web root directory and clone the latest version of cerb from git, you can do so using following command.
cd /var/www/html
git clone git://github.com/wgm/cerb.git cerb
Next, you’ll have to change proper ownership and provide file permissions, you can do so using following command.
cd /var/www/html/cerb
chown -R apache:apache .
chmod -R u+w framework.config.php storage
Next you’ll have to modify firewall rules and if in case you don’t have firewalld services installed on your server then you can install it using yum -y install firewalld
and you can start it using systemctl start firewalld
Next run these below given command to modify the firewalld rules.
firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --reload
Web Access
Open up your favorite web browser and visit http://yourserverIP/cerb .
On the database setup page choose the driver MySQLi and engine InnoDB. Also provide the database name and credentials that you have created earlier. Once the database connection is checked, it will ask you to provide details of your SMTP server to send outgoing emails. Finally, create the administrator user.