Instalación y Configuración de Nextcloud en Debian 12 con Let’s Encrypt

Introducción

En este tutorial, completaremos la instalación y configuración de Nextcloud en un servidor Debian 12 con Nginx, MariaDB y PHP, además de contar con un certificado SSL de Let’s Encrypt para mayor seguridad.

Si aún no has visto la primera parte, donde configuramos Let’s Encrypt, te dejo el enlace para que sigas el proceso desde el inicio.

Paso 1: Instalación de Dependencias

Si acabas de instalar Debian 12, instala los siguientes paquetes ejecutando:

sudo apt update  
sudo apt install nginx mariadb-server php php-fpm php-mysql php-xml php-mbstring php-zip php-gd php-curl php-intl php-bcmath unzip

Asegúrate de que Nginx esté en ejecución:

sudo systemctl enable --now nginx

Paso 2: Descarga e Instalación de Nextcloud

Nos dirigimos al directorio donde configuraremos Nextcloud:

cd /home/guillem/public_html/repasodemates.com/

Descargamos la última versión de Nextcloud:

wget https://download.nextcloud.com/server/releases/latest.zip  
unzip latest.zip  
mv nextcloud /home/guillem/public_html/repasodemates.com/nextcloud  

Asignamos los permisos adecuados:

sudo chown -R www-data:www-data /home/guillem/public_html/repasodemates.com/nextcloud  
sudo chmod -R 755 /home/guillem/public_html/repasodemates.com/nextcloud  

Paso 3: Configuración de la Base de Datos

Accedemos a MariaDB:

sudo mariadb

Ejecutamos los siguientes comandos en MariaDB:

CREATE DATABASE nextcloud_db;  
GRANT ALL PRIVILEGES ON nextcloud_db.* TO 'nextcloud_user'@'localhost' IDENTIFIED BY 'tu_contraseña_segura';  
FLUSH PRIVILEGES;  
EXIT;

Esto creará la base de datos nextcloud_db con el usuario nextcloud_user y la contraseña que definas.

Paso 4: Configuración del Servidor Web (Nginx)

Creamos un archivo de configuración para el sitio nextcloud.repasodemates.com:

sudo nano /etc/nginx/sites-available/nextcloud.repasodemates.com

Añadimos la siguiente configuración:

server {
    listen 443 ssl;
    server_name nextcloud.repasomates.com;

    ssl_certificate /etc/letsencrypt/live/nextcloud.repasomates.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/nextcloud.repasomates.com/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

server {
    listen 80;
    server_name nextcloud.repasomates.com;
    return 301 https://$host$request_uri;
}

Crear Enlace Simbólico

Para habilitar el sitio en Nginx, creamos un enlace simbólico:

sudo ln -s /etc/nginx/sites-available/nextcloud.repasodemates.com /etc/nginx/sites-enabled/

Verificamos que la configuración sea correcta:

sudo nginx -t

Si no hay errores, reiniciamos Nginx:

sudo systemctl restart nginx

Paso 5: Configuración Final de Nextcloud

Abrimos el navegador y accedemos a:

https://nextcloud.repasodemates.com

Se abrirá el asistente de configuración, donde debemos ingresar:

  • Usuario y contraseña de administrador
  • Ubicación de almacenamiento de datos (/home/guillem/public_html/repasodemates.com/nextcloud/data)
  • Datos de la base de datos:
    • Usuario: nextcloud_user
    • Contraseña: tu_contraseña_segura
    • Nombre de la base de datos: nextcloud_db

Una vez completado esto, Nextcloud finalizará la instalación.

Tenéis que dar permisos al usuario apache (www-data) para que pueda escribir en los directorios que os indique la instalación.

Paso 6: Forzar HTTPS en Nextcloud

Para evitar problemas de seguridad y errores en el navegador, edita el archivo de configuración:

sudo nano /home/guillem/public_html/repasodemates.com/nextcloud/config/config.php

Añade o modifica las siguientes líneas:

'overwrite.cli.url' => 'https://nextcloud.repasodemates.com',  
'overwriteprotocol' => 'https',

Guarda los cambios y reinicia Nginx:

sudo systemctl restart nginx

Conclusión

¡Listo! Ahora tienes Nextcloud completamente configurado en https://nextcloud.repasodemates.com con un servidor seguro mediante Let’s Encrypt.

Comentarios

No comments found.