Installing Rainloop Webmail on Ubuntu 18.04 LTS

Rainloop is a free, open-source, intuitive, and fast web-based email client that offers seamless access to emails from various mail servers like Postfix, Gmail, Yahoo, and more. Its built-in caching system enhances overall performance while reducing the load on mail servers. Additionally, Rainloop can be effortlessly integrated with platforms like Facebook, Twitter, Dropbox, and Google, making it highly versatile. Offering a modern web interface, Rainloop efficiently manages a large number of email accounts. Its simplicity in installation and upgrade is a key advantage, requiring no advanced technical skills.

This tutorial outlines the steps to install the Rainloop webmail client on an Ubuntu 18.04 server.

Requirements

  • An Ubuntu 18.04 server.
  • Static IP address 192.168.0.102 configured on your server.
  • A non-root user with sudo privileges.

Getting Started

To ensure the latest software versions, update your system with the following command:

        sudo apt-get update -y
        sudo apt-get upgrade -y

After the update, restart your system to apply the latest changes.

Install Apache, MariaDB, and PHP

Rainloop requires a web server, MariaDB for data storage, and is written in PHP. Install Apache, MariaDB, PHP, and necessary PHP modules using:

        sudo apt-get install apache2 mariadb-server curl php7.2 php7.2-mysql php7.2-curl php7.2-json php7.2-cgi libapache2-mod-php7.2 php7.2-xmlrpc php7.2-gd php7.2-mbstring php7.2 php7.2-common php7.2-xmlrpc php7.2-soap php7.2-xml php7.2-intl php7.2-cli php7.2-ldap php7.2-zip php7.2-readline php7.2-imap php7.2-tidy php7.2-recode php7.2-intl php7.2-sqlite3 -y

After installation, start the Apache web server and set it to launch at boot:

        sudo systemctl start apache2
        sudo systemctl enable apache2
        sudo systemctl start mariadb
        sudo systemctl enable mariadb

To confirm that the MariaDB service is running, execute:

        sudo systemctl status mariadb

You should receive an output indicating the active status of MariaDB as follows:

? mariadb.service - MariaDB 10.1.34 database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2018-12-11 15:06:51 UTC; 23h ago
     Docs: man:mysqld(8)
           https://mariadb.com/kb/en/library/systemd/
 Main PID: 1097 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 27 (limit: 1114)
   CGroup: /system.slice/mariadb.service
           ??1097 /usr/sbin/mysqld

Dec 11 15:06:30 ubuntu1804 systemd[1]: Starting MariaDB 10.1.34 database server...
Dec 11 15:06:39 ubuntu1804 mysqld[1097]: 2018-12-11 15:06:39 139929447279744 [Note] /usr/sbin/mysqld (mysqld 10.1.34-MariaDB-0ubuntu0.18.04.1) 
Dec 11 15:06:51 ubuntu1804 /etc/mysql/debian-start[1320]: Upgrading MySQL tables if necessary.
Dec 11 15:06:51 ubuntu1804 systemd[1]: Started MariaDB 10.1.34 database server.
Dec 11 15:06:52 ubuntu1804 /etc/mysql/debian-start[1324]: /usr/bin/mysql_upgrade: the '--basedir' option is always ignored
Dec 11 15:06:52 ubuntu1804 /etc/mysql/debian-start[1324]: Looking for 'mysql' as: /usr/bin/mysql
Dec 11 15:06:52 ubuntu1804 /etc/mysql/debian-start[1324]: Looking for 'mysqlcheck' as: /usr/bin/mysqlcheck
Dec 11 15:06:52 ubuntu1804 /etc/mysql/debian-start[1324]: This installation of MySQL is already upgraded to 10.1.34-MariaDB, use --force if you
Dec 11 15:06:52 ubuntu1804 /etc/mysql/debian-start[1356]: Checking for insecure root accounts.
Dec 11 15:06:52 ubuntu1804 /etc/mysql/debian-start[1360]: Triggering myisam-recover for all MyISAM tables and aria-recover for all Aria tables

Install Rainloop

Create a Rainloop directory within Apache’s web root and download the latest Rainloop version with:

        sudo mkdir /var/www/html/rainloop
        cd /var/www/html/rainloop
        sudo curl -s http://repository.rainloop.net/installer.php | sudo php

Successful installation will display:

#!/usr/bin/env php


       [RainLoop Webmail Installer]


 * Connecting to repository ...
 * Downloading package ...
 * Complete downloading!
 * Installing package ...
 * Complete installing!

 * [Success] Installation is finished!

Provide appropriate permissions to the Rainloop directory:

        sudo chown -R www-data:www-data /var/www/html/rainloop/
        sudo chmod -R 755 /var/www/html/rainloop

Configure Apache for Rainloop

Create an Apache virtual host file for Rainloop:

        sudo nano /etc/apache2/sites-available/rainloop.conf

Include the following configuration:

<VirtualHost *:80>
     ServerAdmin admin@example.com
     DocumentRoot /var/www/html/rainloop/
     ServerName example.com
     ServerAlias www.example.com

     <Directory /var/www/html/rainloop/>
    Options +Indexes +FollowSymLinks +ExecCGI
    AllowOverride All
    Order deny,allow
    Allow from all
    Require all granted

     </Directory>

     ErrorLog ${APACHE_LOG_DIR}/error.log
     CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Replace example.com with your own domain name. Save and close the file. Disable the default virtual host and enable your configuration using:

        sudo a2dissite 000-default.conf
        sudo a2ensite rainloop.conf
        sudo a2enmod rewrite

Output for each command indicates successful execution. Finally, restart Apache:

        sudo systemctl restart apache2

Access Rainloop

With Rainloop set up, access its web interface by entering http://192.168.0.102/?admin in your browser (replace IP with your server’s). The login page will appear:

Rainloop Login

Log in using admin as the username and 12345 as the password. You will land on the Rainloop dashboard:

Rainloop Webmail

Conclusion

Congratulations! You have successfully installed the Rainloop webmail client on your Ubuntu 18.04 server. You can now easily host your own webmail client to connect with your mail server using Rainloop. Feel free to comment if you have any further questions.

Frequently Asked Questions (FAQ)

What are the system requirements for Rainloop?

Rainloop requires a server with Ubuntu 18.04, a static IP, a non-root user with sudo privileges, Apache, MariaDB, and PHP installed.

How do I update Rainloop?

Rainloop updates are straightforward. Visit Rainloop’s dashboard via URL: http://your-server-ip/?admin and manually check for updates in the admin panel.

Can Rainloop be integrated with other services?

Yes, Rainloop can be integrated with Facebook, Twitter, Dropbox, and Google for enhanced functionality.

What if I forget the admin password?

If you forget your Rainloop admin password, you may reset it by directly editing the configuration file located in the Rainloop application directory.