Instalación Rainloop · 9 min read · Sep 08, 2025
Cómo instalar Rainloop Webmail en Ubuntu 22.04

Rainloop es un cliente de correo electrónico basado en la web y de código abierto escrito en PHP. Es rápido, ligero y soporta los protocolos SMTP e IMAP.
Esta guía te enseñará a instalar el cliente Rainloop en un servidor Ubuntu 22.04.
Prerequisitos
- Un servidor que ejecute Ubuntu 22.04.
- Un nombre de dominio que apunte al servidor. Para nuestro tutorial, utilizaremos el dominio
rainloop.example.com. - Un usuario no root con privilegios sudo.
- Asegúrate de que todo esté actualizado.
$ sudo apt update && sudo apt upgrade - Instala paquetes de utilidad básicos. Algunos de ellos pueden ya estar instalados.
$ sudo apt install wget curl nano unzip -y
Paso 1 - Configurar el Firewall
El primer paso antes de instalar Rainloop es configurar el firewall. Verifica el estado del firewall.
$ sudo ufw status
Deberías ver algo como lo siguiente.
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Rainloop necesita los puertos HTTP y HTTPS para funcionar.
$ sudo ufw allow http
$ sudo ufw allow https
Abre los puertos para las cuentas de correo que uses.
$ sudo ufw allow 587/tcp
$ sudo ufw allow 993/tcp
$ sudo ufw allow 465/tcp
Verifica el estado nuevamente para confirmar.
$ sudo ufw status
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443 ALLOW Anywhere
587/tcp ALLOW Anywhere
993/tcp ALLOW Anywhere
465/tcp ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
587/tcp (v6) ALLOW Anywhere (v6)
993/tcp (v6) ALLOW Anywhere (v6)
465/tcp (v6) ALLOW Anywhere (v6)
Paso 2 - Instalar Nginx
Ubuntu 22.04 viene con una versión más antigua de Nginx. Para instalar la última versión, necesitas descargar el repositorio oficial de Nginx.
Importa la clave de firma de Nginx.
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Agrega el repositorio para la versión estable de Nginx.
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
Actualiza los repositorios del sistema.
$ sudo apt update
Instala Nginx.
$ sudo apt install nginx
Verifica la instalación.
$ nginx -v
nginx version: nginx/1.22.0
Paso 3 - Instalar y Configurar PHP
Ubuntu 22.04 viene con PHP 8.1 por defecto. Pero para que Rainloop funcione, necesitamos instalar PHP 8.0. El primer paso es agregar el repositorio de PHP de Ondrej.
$ sudo add-apt-repository ppa:ondrej/php
Instala PHP y las extensiones requeridas por Rainloop.
$ sudo dnf install php8.0-fpm php8.0-curl php8.0-mbstring php8.0-mysql php8.0-xml php8.0-cli
Verifica la instalación.
$ php --version
PHP 8.0.20 (cli) (built: Jun 25 2022 08:12:05) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.20, Copyright (c) Zend Technologies
with Zend OPcache v8.0.20, Copyright (c), by Zend Technologies
Verifica el estado del servicio PHP.
$ sudo systemctl status php8.0-fpm
? php8.0-fpm.service - The PHP 8.0 FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php8.0-fpm.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2022-07-04 01:52:55 UTC; 1min 22s ago
Docs: man:php-fpm8.0(8)
Process: 12463 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/8.0/fpm/pool.d/www.conf 80 (code=exited, status=0/SUCCESS)
Main PID: 12460 (php-fpm8.0)
Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
Tasks: 3 (limit: 2241)
Memory: 8.7M
CPU: 89ms
CGroup: /system.slice/php8.0-fpm.service
??12460 "php-fpm: master process (/etc/php/8.0/fpm/php-fpm.conf)
Abre el archivo php.ini para editarlo.
$ sudo nano /etc/php/8.0/fpm/php.ini
Cambia los valores de las siguientes variables para establecer el tamaño máximo de los archivos adjuntos de correo a 25MB.
upload_max_filesize = 25M
post_max_size = 25M
Guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida.
Abre el archivo /etc/php/8.0/fpm/pool.d/www.conf.
$ sudo nano /etc/php/8.0/fpm/pool.d/www.conf
Encuentra las líneas user=apache y group=apache en el archivo y cámbialas como sigue.
...
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
; RPM: apache user chosen to provide access to the same directories as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx
...
Además, encuentra las líneas listen.owner = www-data y listen.group = www-data y cámbialas como sigue.
...
; Set permissions for unix socket, if one is used. In Linux, read/write
; permissions must be set in order to allow connections from a web server. Many
; BSD-derived systems allow connections regardless of permissions. The owner
; and group can be specified either by name or by their numeric IDs.
; Default Values: user and group are set as the running user
; mode is set to 0660
listen.owner = nginx
listen.group = nginx
...
Guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida.
Reinicia el servicio PHP-FPM.
$ sudo systemctl restart php8.0-fpm
Paso 4 - Instalar MySQL
Ubuntu 22.04 viene con la última versión de MySQL. Puedes instalarlo con un solo comando.
$ sudo apt install mysql-server
Verifica la versión de MySQL.
$ mysql --version
mysql Ver 8.0.29-0ubuntu0.22.04.2 for Linux on x86_64 ((Ubuntu))
Este paso es necesario para las versiones de MySQL 8.0.28 y superiores. Ingresa al Shell de MySQL.
$ sudo mysql
Ejecuta el siguiente comando para establecer la contraseña de tu usuario root. Asegúrate de que tenga una mezcla de números, mayúsculas, minúsculas y caracteres especiales.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourPassword12!';
Sal del shell.
mysql> exit
Ejecuta el script de instalación segura de MySQL.
$ sudo mysql_secure_installation
Primero, se te pedirá tu contraseña de root. Ingrésala. A continuación, se te pedirá que instales el Componente de Validación de Contraseña. Verifica la fuerza de las contraseñas utilizadas en MySQL. Presiona Y para instalarlo.
A continuación, se te pedirá que establezcas el nivel de la política de validación de contraseñas. Elige 2 ya que es el más fuerte.
A continuación, presiona N para rechazar cambiar tu contraseña de root. También presiona Y para eliminar usuarios anónimos, deshabilitar inicios de sesión remotos de root, eliminar la base de datos de prueba y recargar las tablas de privilegios.
Paso 5 - Configurar MySQL
Inicia sesión en el shell de MySQL. Ingresa tu contraseña de root cuando se te pida.
$ sudo mysql -u root -p
Crea una base de datos para Rainloop.
mysql> CREATE DATABASE rainloop;
Crea un usuario SQL para acceder a la base de datos. Reemplaza yourpassword con una contraseña de tu elección.
mysql> CREATE USER 'rainuser'@'localhost' IDENTIFIED BY 'YourPassword23!';
Otorga a rainuser acceso a la base de datos.
mysql> GRANT ALL ON rainloop.* TO 'rainuser'@'localhost';
Recarga la tabla de privilegios.
mysql> FLUSH PRIVILEGES;
Sal del shell.
mysql> exit
Paso 6 - Instalar Rainloop
Crea el directorio público para Rainloop.
$ sudo mkdir /var/www/html/rainloop -p
Descarga la última versión de Rainloop.
$ wget http://www.rainloop.net/repository/webmail/rainloop-community-latest.zip
Descomprime el archivo descargado en el directorio público.
$ sudo unzip rainloop-community-latest.zip -d /var/www/html/rainloop
Cambia la propiedad del directorio a Nginx.
$ sudo chown -R nginx:nginx /var/www/html/rainloop
Establece los permisos de lectura y escritura requeridos por Rainloop.
$ sudo find /var/www/html/rainloop -type d -exec chmod 755 {} \;
$ sudo find /var/www/html/rainloop -type f -exec chmod 644 {} \;
Paso 7 - Instalar SSL
Necesitamos instalar Certbot para generar certificados SSL gratuitos ofrecidos por Let’s Encrypt.
Puedes instalar Certbot usando el repositorio de Ubuntu o obtener la última versión usando la herramienta Snapd. Usaremos la versión de Snapd.
Ubuntu 22.04 viene con Snapd instalado por defecto. Ejecuta el siguiente comando para asegurarte de que tu versión de Snapd esté actualizada.
$ sudo snap install core
Instala Certbot.
$ sudo snap install --classic certbot
Usa el siguiente comando para asegurarte de que el comando Certbot pueda ejecutarse creando un enlace simbólico al directorio /usr/bin.
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Genera un certificado SSL para Rainloop.
$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d rainloop.example.com
Genera un certificado de grupo Diffie-Hellman.
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 4096
Abre el archivo /etc/letsencrypt/renewal/rainloop.example.com.conf para editarlo.
$ sudo nano /etc/letsencrypt/renewal/rainloop.example.com.conf
Pega el siguiente código al final.
pre_hook = systemctl stop nginx
post_hook = systemctl start nginx
Guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida.
Hemos generado el certificado SSL usando la opción independiente de Certbot. Ejecuta su servidor web para crear el certificado, lo que significa que Nginx debe estar apagado durante la renovación. Los comandos pre_hook y post_hook se ejecutan antes y después de la renovación para apagar y reiniciar automáticamente el servidor Nginx, por lo que no se requiere intervención manual.
Para verificar si la renovación de SSL está funcionando correctamente, haz una prueba del proceso.
$ sudo certbot renew --dry-run
Si no ves errores, estás listo. Tu certificado se renovará automáticamente.
Paso 8 - Configurar Nginx
Abre el archivo nginx.conf para editarlo.
$ sudo nano /etc/nginx/nginx.conf
Encuentra la línea include /etc/nginx/conf.d/*.conf; y pega el siguiente código debajo de ella.
server_names_hash_bucket_size 64;
Guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida.
Crea el archivo de configuración de Rainloop para Nginx y ábrelo para editarlo.
$ sudo nano /etc/nginx/conf.d/rainloop.conf
Pega el siguiente código en él.
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name rainloop.example.com;
root /var/www/html/rainloop;
index index.php;
client_max_body_size 25M;
access_log /var/log/nginx/rainloop.access.log;
error_log /var/log/nginx/rainloop.error.log;
ssl_certificate /etc/letsencrypt/live/rainloop.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/rainloop.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/rainloop.example.com/chain.pem;
ssl_session_timeout 5m;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_keep_conn on;
include fastcgi_params;
fastcgi_pass unix:/run/php/php8.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ \.ht {
deny all;
}
location ^~ /data {
deny all;
}
}
# enforce HTTPS
server {
listen 80;
listen [::]:80;
server_name rainloop.example.com;
return 301 https://$host$request_uri;
}
Guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida.
Verifica la sintaxis de la configuración de Nginx.
$ sudo nginx -t
Reinicia el servicio Nginx.
$ sudo systemctl restart nginx
Paso 9 - Configurar y Acceder a Rainloop
Abre la página de administrador de Rainloop a través de la URL https://rainloop.example.com/?admin y obtendrás la siguiente pantalla de inicio de sesión.

Ingresa las siguientes credenciales y presiona enter para iniciar sesión.
Username: admin
Password: 12345
El panel de administración de Rainloop se abrirá con una advertencia para cambiar tu contraseña predeterminada.

Cambia la contraseña predeterminada utilizando el enlace en el panel.

Ingresa tu nueva contraseña y haz clic en el botón Actualizar contraseña para continuar.
Rainloop utiliza MySQL para almacenar información de contacto. Abre la página de Contactos y selecciona MySQL en el menú desplegable.

Ingresa las credenciales de la base de datos creadas anteriormente.

Presiona el botón Probar para verificar la conexión e instalar las tablas. Si el botón se vuelve verde, significa que la conexión es exitosa.
Puedes comenzar a usar Rainloop agregando tus cuentas de correo.
Conclusión
Has instalado Rainloop con éxito en un servidor Ubuntu 22.04. Si tienes alguna pregunta, publícalas en los comentarios a continuación.
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.