How To Install RainLoop Webmail on Fedora 43

Install RainLoop Webmail on Fedora 43

Self-hosting your webmail gives you full control over your email data, and RainLoop Webmail makes that setup surprisingly straightforward. If you want to install RainLoop Webmail on Fedora 43, this guide walks you through every step, from installing Apache and PHP to configuring SELinux and securing the setup with a free SSL certificate. Whether you are a beginner just getting comfortable with Linux or a sysadmin who wants a clean, reproducible setup for a production server, this tutorial gives you exactly what you need without the fluff.

Fedora 43, released in October 2025, ships with DNF 5, RPM 6.0, and GNOME 49, making it one of the most current RPM-based distributions available today. RainLoop is a lightweight, open-source, PHP-based webmail client that requires no database and stores all configuration in flat files. That combination makes it a perfect match for a lean Fedora server where you want a working webmail interface without the overhead of a full mail suite like Roundcube or Horde.

By the end of this guide, you will have a fully functional, SSL-secured RainLoop Webmail on Fedora 43 setup that connects to your IMAP and SMTP servers and is hardened against the most common security pitfalls.

What Is RainLoop Webmail?

RainLoop is a free, open-source web-based email client written in PHP. Unlike Roundcube, it does not need a database — it stores user sessions and configuration in flat files inside a protected /data directory, which keeps the server stack simple.

RainLoop comes in two editions:

  • Community Edition — released under the AGPL v3 license, free for personal and non-profit use
  • Standard Edition — commercial license for businesses

This guide uses the free Community Edition throughout.

Key Features Worth Knowing

  • Modern, responsive interface with custom theme support
  • Native IMAP and SMTP support with STARTTLS and SSL/TLS
  • Multi-account support — manage several email addresses from one session
  • Built-in OpenPGP/GPG email encryption
  • Plugin system covering two-factor authentication, Sieve filters, and more
  • No database dependency — flat-file storage keeps maintenance minimal
  • One-click upgrade directly from the admin panel

Why Fedora 43 Is a Strong Choice for This Setup

Fedora 43 brings several improvements that make it a solid base for a self-hosted webmail server:

  • DNF 5 resolves dependencies faster and produces cleaner output, which speeds up the installation process
  • RPM 6.0 improves package signature verification, which matters on a security-sensitive server
  • SELinux enforcing mode is active by default, providing mandatory access control that limits damage from any misconfiguration
  • Firewalld is the default firewall and integrates cleanly with systemd for service-level rules
  • Fedora’s six-month release cycle means access to the latest PHP 8.x packages directly from official repos

Prerequisites

Before you begin, confirm you have the following in place:

  • A server or VPS running a fresh Fedora 43 installation
  • Root or sudo access on the server
  • A registered domain name pointed to your server’s IP address (e.g., mail.yourdomain.com) — optional for local testing, required for SSL
  • A working IMAP/SMTP mail server (Postfix + Dovecot locally, or an external provider like Gmail)
  • An active internet connection on the server
  • Basic comfort with the Linux terminal

Required packages installed during the steps below: httpd, php, php-mbstring, php-curl, php-xml, php-json, unzip, wget, certbot

Step 1: Update Your Fedora 43 System

Always start with a full system update. This prevents dependency conflicts during package installation and ensures you have the latest security patches applied.

sudo dnf update -y

DNF 5 on Fedora 43 outputs a cleaner summary than older DNF versions. Once the update finishes, reboot if a new kernel was installed:

sudo reboot

After the reboot, reconnect to your server and continue. Skipping this step is one of the most common causes of broken PHP extension installs later in the process.

Step 2: Install Apache (httpd) and PHP on Fedora 43

Install Apache

Apache (known as httpd on Fedora and all Red Hat-based systems) is the web server that serves the RainLoop application.

sudo dnf install httpd -y

Install PHP and Required Extensions

RainLoop requires PHP 5.4 or higher. Fedora 43 ships with PHP 8.x in its default repositories, which is fully supported and the recommended choice.

sudo dnf install php php-mbstring php-xml php-curl php-json php-dom -y

Here is what each extension does and why RainLoop needs it:

Extension Purpose
php-mbstring Handles multibyte strings in international email content
php-xml Parses XML data in email headers and config files
php-curl Establishes outbound connections to IMAP and SMTP servers
php-json Reads and writes JSON-based RainLoop configuration files
php-dom Parses HTML email content for rendering in the browser

Verify the PHP version after installation:

php -v

Expected output:

PHP 8.x.x (cli) (built: ...) ( NTS )

Confirm all required extensions loaded correctly:

php -m | grep -E 'curl|xml|dom|mbstring|json'

You should see all five extension names listed in the output.

Step 3: Enable and Start Apache

Enable Apache to start automatically at every system boot, then start it right away:

sudo systemctl enable httpd
sudo systemctl start httpd

Check that the service is running without errors:

sudo systemctl status httpd

Expected output (key line):

Active: active (running) since ...

Open a browser and navigate to http://your-server-ip. The default Fedora Apache test page should appear. If the page does not load, check whether port 80 is already occupied by another process:

sudo ss -tulpn | grep :80

Step 4: Configure RainLoop Webmail on Fedora 43 — Download and Install

This is the core installation step for your RainLoop Webmail on Fedora 43 setup.

Create the Web Root Directory

sudo mkdir -p /var/www/html/rainloop
cd /var/www/html/rainloop

Download RainLoop Community Edition

Use wget to pull the latest release directly from the official RainLoop repository:

sudo wget https://www.rainloop.net/repository/webmail/rainloop-latest.zip

Alternatively, use the PHP installer script if wget is unavailable:

curl -s http://repository.rainloop.net/installer.php | php

Extract the Archive

Install unzip if it is not already present:

sudo dnf install unzip -y

Extract the downloaded archive:

sudo unzip rainloop-latest.zip -d /var/www/html/rainloop

Remove the zip file to keep the directory clean:

sudo rm rainloop-latest.zip

Set File Ownership and Permissions

Assign ownership of all RainLoop files to the Apache user. On Fedora this user is apache, not www-data as it is on Debian and Ubuntu systems:

sudo chown -R apache:apache /var/www/html/rainloop

Set directory permissions to 755 and file permissions to 644:

sudo find /var/www/html/rainloop -type d -exec chmod 755 {} \;
sudo find /var/www/html/rainloop -type f -exec chmod 644 {} \;

Wrong permissions here are the single most common cause of 403 Forbidden errors and blank white pages after installation. The /data subdirectory must be writable by Apache but must never be accessible through the browser.

Step 5: Configure the Apache Virtual Host for RainLoop

Create the Virtual Host Configuration File

sudo nano /etc/httpd/conf.d/rainloop.conf

Add the following configuration block. Replace mail.yourdomain.com with your actual domain name:

<VirtualHost *:80>
    ServerName mail.yourdomain.com
    DocumentRoot /var/www/html/rainloop

    ErrorLog /var/log/httpd/rainloop_error.log
    TransferLog /var/log/httpd/rainloop_access.log

    <Directory /var/www/html/rainloop>
        Options -Indexes
        AllowOverride All
        Require all granted
    </Directory>

    <Directory /var/www/html/rainloop/data>
        Require all denied
    </Directory>

</VirtualHost>

The Require all denied directive on the /data directory is a critical security measure. It blocks direct browser access to RainLoop’s configuration files, which contain your domain credentials and session data.

Test and Reload Apache

sudo apachectl configtest

Expected output:

Syntax OK
sudo systemctl reload httpd

Step 6: Configure SELinux and Firewalld — The Fedora-Specific Steps

This step is the most Fedora-specific part of the entire guide, and it is the step that most generic Linux server tutorials skip entirely. Skipping it will result in RainLoop silently failing to connect to your mail server with no obvious error message.

Configure SELinux for RainLoop

Fedora 43 runs SELinux in enforcing mode by default. Without the correct SELinux boolean, Apache cannot make outbound TCP connections to your IMAP and SMTP servers, no matter how correctly everything else is configured.

sudo restorecon -R /var/www/html/rainloop
sudo setsebool -P httpd_can_network_connect 1

The -P flag makes this change persistent across reboots. Verify that the boolean is active:

getsebool httpd_can_network_connect

Expected output:

httpd_can_network_connect --> on
sestatus

Do not disable SELinux entirely to work around connection failures. The two commands above are all you need for RainLoop to function correctly.

Open HTTP and HTTPS Ports in Firewalld

Fedora 43 uses firewalld as its default firewall manager. HTTP and HTTPS ports are blocked by default.

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
sudo firewall-cmd --list-all

Look for http and https in the services: line of the output.

Step 7: Secure RainLoop with a Free SSL Certificate (Let’s Encrypt)

Running RainLoop over plain HTTP transmits your email credentials across the network in cleartext. SSL is not optional on a production server — it is a baseline requirement, and Let’s Encrypt provides it for free.

Install Certbot

sudo dnf install certbot python3-certbot-apache -y

Obtain the SSL Certificate

Replace mail.yourdomain.com and admin@yourdomain.com with your actual values:

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp \
  --email admin@yourdomain.com -d mail.yourdomain.com

Certbot automatically modifies the Apache virtual host to redirect all HTTP traffic to HTTPS and configures HSTS headers.

Enable Automatic Certificate Renewal

sudo systemctl enable certbot-renew.timer
sudo systemctl start certbot-renew.timer
sudo certbot renew --dry-run

Step 8: Access the Admin Panel and Configure Email Domains

Log Into the RainLoop Admin Panel

Open a browser and navigate to:

https://mail.yourdomain.com/?admin

The default credentials are:

  • Username: admin
  • Password: 12345

Change the admin password immediately after your first login. Navigate to the Security tab in the left pane, update the password, re-login, and then update the username. Using default credentials on a public-facing admin panel is a serious security risk.

The admin panel is organized into several sections:

  • General — application name, theme, language
  • Domains — add and configure your mail servers
  • Security — session timeouts and two-factor authentication
  • Plugins — enable or disable extensions
  • Contacts — configure CardDAV for contact syncing

Install RainLoop Webmail on Fedora 43

Add and Configure Your Email Domain

Navigate to Domains > Add Domain and configure the following settings:

For a local mail server (Postfix + Dovecot on the same machine):

  • IMAP: Server 127.0.0.1, Port 143, Secure None
  • SMTP: Server 127.0.0.1, Port 25, Secure None, authentication disabled

For a remote or external mail server:

  • IMAP: Server mail.yourdomain.com, Port 993, Secure SSL/TLS
  • SMTP: Server mail.yourdomain.com, Port 587, Secure STARTTLS, Use Authentication enabled

Using 127.0.0.1 for local setups avoids external DNS lookups and removes unnecessary TLS overhead on the loopback interface.

Click Test to verify the connection before saving. Enable the domain by ticking the checkbox on the right side. Without this step, users will see a “domain is not allowed” error when they try to log in.

Log In as a Regular User and Test

Navigate to https://mail.yourdomain.com without the /?admin suffix. Enter your full email address (e.g., user@yourdomain.com) and the corresponding mailbox password.

RainLoop authenticates directly against the IMAP server, so no separate RainLoop user account creation is required. Send a test email and confirm it appears in the Sent folder. Send an email from an external account to confirm inbound delivery as well.

Troubleshooting Common Issues

Even with careful installation, a few errors come up regularly. Here are the most common ones and how to fix them.

500 Internal Server Error

This is almost always caused by a missing PHP extension or a file permission problem. Check the Apache error log for the specific cause:

sudo tail -f /var/log/httpd/error_log

Run php -m and compare the output against the required extensions listed in Step 2.

Cannot Connect to IMAP/SMTP Server

The first thing to check on Fedora is SELinux. Run:

getsebool httpd_can_network_connect

If the output is off, run:

sudo setsebool -P httpd_can_network_connect 1

Also verify that Dovecot or your remote mail server is running and accessible on the expected port using telnet mail.yourdomain.com 993.

403 Forbidden Error

Check file ownership on the RainLoop directory:

ls -la /var/www/html/rainloop

If the owner is not apache, fix it:

sudo chown -R apache:apache /var/www/html/rainloop

Blank White Page After Installation

This means PHP loads but fails silently. Enable PHP error output temporarily to diagnose:

sudo nano /etc/php.ini

Set display_errors = On, reload Apache, reproduce the issue, then set it back to Off once resolved.

“Domain Is Not Allowed” Error on Login

You added the domain in the admin panel but forgot to activate it. Go to Admin > Domains, find your domain, and tick the checkbox on the right side to enable it.

Congratulations! You have successfully installed RainLoop. Thanks for using this tutorial for installing the RainLoop Webmail on Fedora 43 Linux system. For additional help or useful information, we recommend you check the official RainLoop website.

VPS Manage Service Offer
If you don’t have time to do all of this stuff, or if this is not your area of expertise, we offer a service to do “VPS Manage Service Offer”, starting from $10 (Paypal payment). Please contact us to get the best deal!
r00t is a dedicated and highly skilled Linux Systems Administrator with over a decade of progressive experience in designing, deploying, and maintaining enterprise-grade Linux infrastructure. His professional journey began in the telecommunications industry, where early exposure to Unix-based operating systems ignited a deep and enduring passion for open-source technologies and server administration.​ Throughout his career, r00t has demonstrated exceptional proficiency in managing large-scale Linux environments, overseeing more than 300 servers across development, staging, and production platforms while consistently achieving 99.9% system uptime. He holds advanced competencies in Red Hat Enterprise Linux (RHEL), Debian, and Ubuntu distributions, complemented by hands-on expertise in automation tools such as Ansible, Terraform, Bash scripting, and Python.

Related Posts