Email · 9 min read · Sep 08, 2025
Como Instalar o Rainloop Webmail no Ubuntu 22.04

Rainloop é um cliente de email baseado na web e de código aberto escrito em PHP. É rápido, leve e suporta os protocolos SMTP e IMAP.
Este guia ensinará você a instalar o cliente Rainloop em um servidor Ubuntu 22.04.
Pré-requisitos
- Um servidor rodando Ubuntu 22.04.
- Um nome de domínio apontando para o servidor. Para nosso tutorial, usaremos o domínio
rainloop.example.com. - Um usuário não-root com privilégios sudo.
- Certifique-se de que tudo está atualizado.
$ sudo apt update && sudo apt upgrade - Instale pacotes utilitários básicos. Alguns deles podem já estar instalados.
$ sudo apt install wget curl nano unzip -y
Passo 1 - Configurar o Firewall
O primeiro passo antes de instalar o Rainloop é configurar o firewall. Verifique o status do firewall.
$ sudo ufw status
Você deve ver algo como o seguinte.
Status: ativo
Para Ação De
-- ------ ----
OpenSSH PERMITIR Em qualquer lugar
OpenSSH (v6) PERMITIR Em qualquer lugar (v6)
Rainloop precisa das portas HTTP e HTTPS para funcionar.
$ sudo ufw allow http
$ sudo ufw allow https
Abra as portas para as contas de email que você usa.
$ sudo ufw allow 587/tcp
$ sudo ufw allow 993/tcp
$ sudo ufw allow 465/tcp
Verifique o status novamente para confirmar.
$ sudo ufw status
Status: ativo
Para Ação De
-- ------ ----
OpenSSH PERMITIR Em qualquer lugar
80/tcp PERMITIR Em qualquer lugar
443 PERMITIR Em qualquer lugar
587/tcp PERMITIR Em qualquer lugar
993/tcp PERMITIR Em qualquer lugar
465/tcp PERMITIR Em qualquer lugar
OpenSSH (v6) PERMITIR Em qualquer lugar (v6)
80/tcp (v6) PERMITIR Em qualquer lugar (v6)
443 (v6) PERMITIR Em qualquer lugar (v6)
587/tcp (v6) PERMITIR Em qualquer lugar (v6)
993/tcp (v6) PERMITIR Em qualquer lugar (v6)
465/tcp (v6) PERMITIR Em qualquer lugar (v6)
Passo 2 - Instalar o Nginx
O Ubuntu 22.04 vem com uma versão mais antiga do Nginx. Para instalar a versão mais recente, você precisa baixar o repositório oficial do Nginx.
Importe a chave de assinatura do Nginx.
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Adicione o repositório para a versão estável do 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
Atualize os repositórios do sistema.
$ sudo apt update
Instale o Nginx.
$ sudo apt install nginx
Verifique a instalação.
$ nginx -v
nginx version: nginx/1.22.0
Passo 3 - Instalar e Configurar o PHP
O Ubuntu 22.04 vem com o PHP 8.1 por padrão. Mas para o Rainloop funcionar, precisamos instalar o PHP 8.0. O primeiro passo é adicionar o repositório PHP do Ondrej.
$ sudo add-apt-repository ppa:ondrej/php
Instale o PHP e as extensões necessárias para o Rainloop.
$ sudo dnf install php8.0-fpm php8.0-curl php8.0-mbstring php8.0-mysql php8.0-xml php8.0-cli
Verifique a instalação.
$ 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
Verifique o status do serviço PHP.
$ sudo systemctl status php8.0-fpm
? php8.0-fpm.service - O Gerenciador de Processos FastCGI do PHP 8.0
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)
Abra o arquivo php.ini para edição.
$ sudo nano /etc/php/8.0/fpm/php.ini
Altere os valores das seguintes variáveis para definir o tamanho do anexo de email para 25MB.
upload_max_filesize = 25M
post_max_size = 25M
Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.
Abra o arquivo /etc/php/8.0/fpm/pool.d/www.conf.
$ sudo nano /etc/php/8.0/fpm/pool.d/www.conf
Encontre as linhas user=apache e group=apache no arquivo e altere-as da seguinte forma.
...
; Usuário/grupo Unix dos processos
; Nota: O usuário é obrigatório. Se o grupo não for definido, o grupo do usuário padrão
; será usado.
; RPM: usuário apache escolhido para fornecer acesso aos mesmos diretórios que httpd
user = nginx
; RPM: Mantenha um grupo permitido para escrever no diretório de logs.
group = nginx
...
Além disso, encontre as linhas listen.owner = www-data e listen.group = www-data e altere-as da seguinte forma.
...
; Defina permissões para o socket unix, se um for usado. No Linux, leitura/escrita
; as permissões devem ser definidas para permitir conexões de um servidor web. Muitos
; sistemas derivados do BSD permitem conexões independentemente das permissões. O proprietário
; e grupo podem ser especificados pelo nome ou pelos seus IDs numéricos.
; Valores Padrão: usuário e grupo são definidos como o usuário em execução
; modo é definido como 0660
listen.owner = nginx
listen.group = nginx
...
Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.
Reinicie o serviço PHP-FPM.
$ sudo systemctl restart php8.0-fpm
Passo 4 - Instalar o MySQL
O Ubuntu 22.04 vem com a versão mais recente do MySQL. Você pode instalá-lo com um único comando.
$ sudo apt install mysql-server
Verifique a versão do MySQL.
$ mysql --version
mysql Ver 8.0.29-0ubuntu0.22.04.2 for Linux on x86_64 ((Ubuntu))
Este passo é necessário para versões do MySQL 8.0.28 e superiores. Entre no Shell do MySQL.
$ sudo mysql
Execute o seguinte comando para definir a senha do seu usuário root. Certifique-se de que tenha uma mistura de números, letras maiúsculas, minúsculas e caracteres especiais.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourPassword12!';
Saia do shell.
mysql> exit
Execute o script de instalação segura do MySQL.
$ sudo mysql_secure_installation
Primeiro, você será solicitado a inserir sua senha root. Digite-a. Em seguida, você será solicitado a instalar o Componente de Validação de Senhas. Ele verifica a força das senhas usadas no MySQL. Pressione Y para instalá-lo.
Em seguida, você será solicitado a definir o nível da política de validação de senhas. Escolha 2 pois é a mais forte.
Em seguida, pressione N para recusar a alteração da sua senha root. Além disso, pressione Y para remover usuários anônimos, desabilitar logins remotos de root, remover o banco de dados de teste e recarregar as tabelas de privilégios.
Passo 5 - Configurar o MySQL
Faça login no shell do MySQL. Digite sua senha root quando solicitado.
$ sudo mysql -u root -p
Crie um banco de dados para o Rainloop.
mysql> CREATE DATABASE rainloop;
Crie um usuário SQL para acessar o banco de dados. Substitua yourpassword por uma senha de sua escolha.
mysql> CREATE USER 'rainuser'@'localhost' IDENTIFIED BY 'YourPassword23!';
Conceda acesso ao rainuser ao banco de dados.
mysql> GRANT ALL ON rainloop.* TO 'rainuser'@'localhost';
Recarregue a tabela de privilégios.
mysql> FLUSH PRIVILEGES;
Saia do shell.
mysql> exit
Passo 6 - Instalar o Rainloop
Crie o diretório público para o Rainloop.
$ sudo mkdir /var/www/html/rainloop -p
Baixe a versão mais recente do Rainloop.
$ wget http://www.rainloop.net/repository/webmail/rainloop-community-latest.zip
Descompacte o arquivo baixado no diretório público.
$ sudo unzip rainloop-community-latest.zip -d /var/www/html/rainloop
Altere a propriedade do diretório para o Nginx.
$ sudo chown -R nginx:nginx /var/www/html/rainloop
Defina as permissões de leitura e escrita necessárias para o Rainloop.
$ sudo find /var/www/html/rainloop -type d -exec chmod 755 {} \;
$ sudo find /var/www/html/rainloop -type f -exec chmod 644 {} \;
Passo 7 - Instalar SSL
Precisamos instalar o Certbot para gerar certificados SSL gratuitos oferecidos pelo Let’s Encrypt.
Você pode instalar o Certbot usando o repositório do Ubuntu ou pegar a versão mais recente usando a ferramenta Snapd. Nós usaremos a versão Snapd.
O Ubuntu 22.04 vem com o Snapd instalado por padrão. Execute o seguinte comando para garantir que sua versão do Snapd esteja atualizada.
$ sudo snap install core
Instale o Certbot.
$ sudo snap install --classic certbot
Use o seguinte comando para garantir que o comando Certbot possa ser executado criando um link simbólico para o diretório /usr/bin.
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Gere um Certificado SSL para o Rainloop.
$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d rainloop.example.com
Gere um certificado de grupo Diffie-Hellman.
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 4096
Abra o arquivo /etc/letsencrypt/renewal/rainloop.example.com.conf para edição.
$ sudo nano /etc/letsencrypt/renewal/rainloop.example.com.conf
Cole o seguinte código no final.
pre_hook = systemctl stop nginx
post_hook = systemctl start nginx
Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.
Geramos o certificado SSL usando a opção standalone do Certbot. Ele executa seu servidor web para criar o certificado, o que significa que o Nginx deve ser desligado durante a renovação. Os comandos pre_hook e post_hook são executados antes e depois da renovação para desligar e reiniciar automaticamente o servidor Nginx, não exigindo intervenção manual.
Para verificar se a renovação do SSL está funcionando bem, faça um teste do processo.
$ sudo certbot renew --dry-run
Se você não ver erros, está tudo certo. Seu certificado será renovado automaticamente.
Passo 8 - Configurar o Nginx
Abra o arquivo nginx.conf para edição.
$ sudo nano /etc/nginx/nginx.conf
Encontre a linha include /etc/nginx/conf.d/*.conf; e cole o seguinte código abaixo dela.
server_names_hash_bucket_size 64;
Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.
Crie o arquivo de configuração do Rainloop para o Nginx e abra-o para edição.
$ sudo nano /etc/nginx/conf.d/rainloop.conf
Cole o seguinte código nele.
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;
}
}
# forçar HTTPS
server {
listen 80;
listen [::]:80;
server_name rainloop.example.com;
return 301 https://$host$request_uri;
}
Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.
Verifique a sintaxe da configuração do Nginx.
$ sudo nginx -t
Reinicie o serviço Nginx.
$ sudo systemctl restart nginx
Passo 9 - Configurar e Acessar o Rainloop
Abra a página de Administrador do Rainloop através da URL https://rainloop.example.com/?admin e você verá a seguinte tela de login.

Digite as seguintes credenciais e pressione enter para fazer login.
Nome de usuário: admin
Senha: 12345
O painel de administração do Rainloop será aberto com um aviso para alterar sua senha padrão.

Altere a senha padrão usando o link no painel.

Digite sua nova senha e clique no botão Atualizar Senha para prosseguir.
O Rainloop usa o MySQL para armazenar informações de contato. Abra a página de Contatos e selecione MySQL no menu suspenso.

Digite as credenciais do banco de dados criadas anteriormente.

Pressione o botão Testar para verificar a conexão e instalar as tabelas. Se o botão ficar verde, significa que a conexão foi bem-sucedida.
Você pode começar a usar o Rainloop adicionando suas contas de email.
Conclusão
Você instalou o Rainloop com sucesso em um servidor Ubuntu 22.04. Se você tiver alguma dúvida, poste nos comentários abaixo.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.