# Roundcube como MUA

Instalar **Roundcube** en tu servidor es una buena opción si quieres una interfaz web para gestionar correos electrónicos usando **Postfix y Dovecot** como backend. Aquí te explico los pasos y opciones que tienes:

* Si quieres **simplicidad y menos mantenimiento**, instalar Roundcube en el mismo servidor que **Postfix/Dovecot** es la mejor opción.
* Si prefieres **separación de servicios y mayor seguridad**, instalarlo en otro servidor con **Cloudflare Tunnel** te permite protegerlo de ataques y ocultar tu IP.

#### **1. Instalación de Roundcube en el mismo servidor de Postfix-Dovecot**

Sí, **tiene sentido** instalarlo en el mismo servidor, ya que Roundcube actúa solo como cliente web y se conecta a Dovecot (IMAP) y Postfix (SMTP), evitando problemas de comunicación entre servidores.

**Pasos de instalación en un servidor con Apache y MariaDB/MySQL**

1. **Instala los paquetes necesarios:**

   ```bash
   sudo apt update
   sudo apt install roundcube roundcube-mysql roundcube-plugins roundcube-plugins-extra

   sudo apt install mysql
   ```
2. **Configura la base de datos:**
   * Durante la instalación en Debian/Ubuntu, el sistema te pedirá que configures `dbconfig-common` para crear automáticamente la base de datos.
   * Si no lo hizo, puedes crear la base de datos manualmente y luego importar el esquema:

     ```bash
     sudo mysql -u root -p
     CREATE DATABASE roundcube;
     CREATE USER 'roundcube'@'localhost' IDENTIFIED BY 'tu_contraseña_segura';
     GRANT ALL PRIVILEGES ON roundcube.* TO 'roundcube'@'localhost';
     FLUSH PRIVILEGES;
     ```

     Luego importa la base de datos:

     ```bash
     mysql -u roundcube -p roundcube < /usr/share/roundcube/SQL/mysql.initial.sql
     ```
3. **Configura Roundcube:**
   * Edita `/etc/roundcube/config.inc.php` y ajusta las siguientes líneas:

     ```php
     $config['db_dsnw'] = 'mysql://roundcube:tu_contraseña_segura@localhost/roundcube';
     $config['default_host'] = 'ssl://tu-dominio.com'; // Servidor IMAP (Dovecot)
     $config['smtp_server'] = 'tls://tu-dominio.com'; // Servidor SMTP (Postfix)
     $config['smtp_user'] = '%u';
     $config['smtp_pass'] = '%p';
     ```
   * Asegúrate de que el archivo de configuración se puede leer:

     ```bash
     sudo chmod 640 /etc/roundcube/config.inc.php
     sudo chown root:www-data /etc/roundcube/config.inc.php
     ```
4. **Reinicia Apache y prueba Roundcube:**

   ```bash
   sudo systemctl restart apache2
   ```

   Luego accede a `https://tu-dominio.com/roundcube` para iniciar sesión.

***

Para instalar **Roundcube** en un servidor **Ubuntu Server** con **Nginx**, sigue estos pasos:

### **1. Instalar dependencias**

```bash
sudo apt update && sudo apt upgrade -y
sudo apt install nginx mariadb-server php php-fpm php-mysql php-json php-xml php-mbstring php-zip php-curl unzip -y
```

Verifica que PHP esté instalado:

```bash
php -v
```

***

### **2. Configurar MariaDB**

1. Asegura la instalación de MariaDB:

   ```bash
   sudo mysql_secure_installation
   ```

   Responde las preguntas para mejorar la seguridad.
2. Accede a MariaDB:

   ```bash
   sudo mysql -u root -p
   ```
3. Crea la base de datos y usuario para Roundcube:

   ```sql
   CREATE DATABASE roundcube DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
   CREATE USER 'roundcube'@'localhost' IDENTIFIED BY 'P@ssw0rd';
   GRANT ALL PRIVILEGES ON roundcube.* TO 'roundcube'@'localhost';
   FLUSH PRIVILEGES;
   EXIT;
   ```

***

### **3. Descargar Roundcube**

<pre class="language-bash"><code class="lang-bash"><strong>cd /var/www/
</strong><strong>sudo wget https://github.com/roundcube/roundcubemail/releases/download/1.6.3/roundcubemail-1.6.3-complete.tar.gz
</strong>sudo tar -xvzf roundcubemail-1.6.3-complete.tar.gz
sudo mv roundcubemail-1.6.3 roundcube
sudo rm roundcubemail-1.6.3-complete.tar.gz
</code></pre>

***

### **4. Configurar permisos**

```bash
sudo chown -R www-data:www-data /var/www/roundcube/
sudo chmod -R 755 /var/www/roundcube/
```

***

### **5. Configurar Nginx**

Edita la configuración de Nginx:

```bash
sudo nano /etc/nginx/sites-available/roundcube
```

Agrega la siguiente configuración:

```nginx
server {
    listen 80;
    server_name www.alexdns.local;

    root /var/www/roundcube;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ ^/(README|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ {
        deny all;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\. {
        deny all;
    }
}
```

Guardamos el documento y habilitamos la configuración:

```bash
sudo ln -s /etc/nginx/sites-available/roundcube /etc/nginx/sites-enabled/
```

**Y reiniciamos el servicio:**

<pre class="language-bash"><code class="lang-bash"><strong>sudo systemctl restart nginx
</strong></code></pre>

### **6. Configurar Roundcube**

Ejecuta el instalador web accediendo a:

```
http://www.alexdns.local/installer
```

Sigue las instrucciones y asegúrate de que todos los requisitos estén en **verde**.

<figure><img src="https://539580950-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FiKvwltOme7zTxep3LVyW%2Fuploads%2FsxfzjesLBGySw63Mq0yy%2Fimage.png?alt=media&#x26;token=c5a2ab03-9bc2-415c-a0e4-0ef7101b50fe" alt=""><figcaption></figcaption></figure>

Ahora deberás configurar algunos parámetros:

<figure><img src="https://539580950-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FiKvwltOme7zTxep3LVyW%2Fuploads%2FkEieG6i6KxgGWbrgCvhy%2Fimage.png?alt=media&#x26;token=f67a9ad9-25d6-43b5-8727-6d1f2ebc280e" alt=""><figcaption></figcaption></figure>

Dentro de `imap_host` configura `imap://mail.alexdns.local` y dentro de `smtp_host`, `smtp://mail.alexdns.local`

En la configuración de la base de datos rellena con los datos de la BBDD configurada.

En lenguaje puedes poner es\_ES

### **7. Finalizar instalación**

1. **Edita el archivo de configuración:**

   ```bash
   sudo nano /var/www/roundcube/config/config.inc.php
   ```

   Configura la base de datos:

   ```php
   $config['db_dsnw'] = 'mysql://roundcube:tu_contraseña_segura@localhost/roundcube';
   $config['default_host'] = 'ssl://mail.tu_dominio.com';
   ```
2. **Elimina el directorio de instalación:**

   ```bash
   sudo rm -rf /var/www/roundcube/installer
   ```

***

### **8. Prueba el acceso**

Accede a **<http://tu\\_dominio.com>** e inicia sesión con una cuenta de correo válida.

{% hint style="warning" %}
Por seguridad te pide borrar la carpeta con el instalador
{% endhint %}
