NextCloud

NextCloud es una plataforma de alojamiento de archivos en la nube, similar a Dropbox, Google Drive y otros. Está diseñada para ser segura, privada y auto-gestionada. Está diseñada para ser fácil de usar y la configuración y la instalación son simples de realizar. NextCloud es una excelente opción para almacenar, sincronizar y compartir archivos en línea. Además, ofrece a los usuarios muchas funciones adicionales, como la colaboración en tiempo real, la creación de documentos compartidos, la sincronización de carpetas, la protección de la privacidad, la administración de usuarios y grupos, entre otras. Esta plataforma es una excelente opción para aquellos usuarios que quieran tener control total sobre sus archivos en línea.

Características de NextCloud

NextCloud ofrece a los usuarios una amplia variedad de características para ayudarlos a mejorar su experiencia con el almacenamiento en la nube. Algunas de sus características principales incluyen: • Sincronización de archivos: NextCloud ofrece una forma fácil de mantener los archivos sincronizados entre los dispositivos. Esto permite a los usuarios compartir archivos en línea sin tener que preocuparse por la seguridad. • Compartir documentos: NextCloud permite a los usuarios compartir documentos entre ellos, lo que facilita la colaboración. • Protección de privacidad: NextCloud utiliza encriptación de extremo a extremo y autenticación de dos factores para garantizar la seguridad de los archivos y la privacidad de los usuarios.

Instalació de NextCloud en debian 11

Instalación de los requisitos previos

Antes de instalar NextCloud en Debian 11, hay que asegurarse de que todos los requisitos previos estén instalados. Estos incluyen Apache, MySQL, PHP y algunas extensiones de PHP. Para instalar Apache, ejecutar el siguiente comando en la línea de comandos:

sudo apt install apache2

Una vez que Apache esté instalado, instalar MySQL ejecutando el siguiente comando:

sudo apt install mysql-server

A continuación, instalar los paquetes de PHP ejecutando el siguiente comando:

sudo apt install php php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip

Una vez que todos los requisitos previos estén instalados, se puede comenzar con la instalación de NextCloud.

Habilitar módulos apache

Habilitar los módulos siguientes

sudo a2enmod rewrite
sudo a2enmod headers
sudo a2enmod env
sudo a2enmod dir
sudo a2enmod mime
sudo a2enmod setenvif

Reiniciar apache para que los cambios surjan efecto

sudo systemctl restart apache2

Habilitar ssl

NextClould tiene que funcionar bajo el protocolo https, como no tenemos un dominio comprado lo que haremos es habilitar el módulo ssl por defecto con los comandos siguientes.

sudo a2enmod ssl
sudo a2ensite default-ssl
sudo systemctl restart apache2

Ahora ya podemos acceder a nuestro servidor por https, aunque no se identifique como un sitio seguro.

Descargar NextCloud

La web oficial de NextCloud es netxcloud.com y el enlace directo para descargar la última versión es https://download.nextcloud.com/server/releases/latest.zip, por tanto navegaremos al directorio donde queremos instalar NextCloud y lo descargaremos

En nuestro caso el directorio es /home/guillem/public_html/enguillem.com/

cd /home/guillem/public_html/enguillem.com/

Aquí descargaremos NextCloud con el comando:

 wget https://download.nextcloud.com/server/releases/latest.zip

Ahora debemos descomprimir el fichero con el comando unzip, en caso de no tenerlo instalado hay que instalarlo con apt, por tanto los comandos serían

sudo apt install unzip
unzip latest.zip

Después de todo esto deberíamos tener dentro del directorio la carpeta con el codigo de NextCloud

Acceder a través de un dominio

Este apartado lo tenéis que hacer en el bind, si miráis el vídeo adjunto lo hago al principio del mismo

Ahora ya podemos abrir nuestra url con https

Configuración apache

Creamos el virtualhost con el comando

sudo nano /etc/apache2/sites-available/nextcloud.enguillem.conf

El contenido será:

<VirtualHost *:443>
 ServerAdmin webmaster@localhost
 DocumentRoot /home/guillem/public_html/enguillem.com/nextcloud
 ServerName nextcloud.enguillem.com
 ErrorLog /var/log/apache2/error.log
<Directory /home/guillem/public_html/enguillem.com/nextcloud/>
  Require all granted
  Options +FollowSymlinks
  AllowOverride All
 <IfModule mod_dav.c>
  Dav off
 </IfModule>

 SetEnv HOME /home/guillem/public_html/enguillem.com/nextcloud
 SetEnv HTTP_HOME /home/guillem/public_html/enguillem.com/nextcloud

</Directory>

</VirtualHost>

Habilitamos el site y recargamos apache

sudo a2ensite nextcloud.enguillem.conf
sudo systemctl reload apache2.service

Y ahora si visitamos el sitio tenemos algo así

Esto sucede porqué el directorio de NextCloud debe ser del usuario apache, por tanto ahora cambiamos los permisos con el comando

sudo chown -R www-data:www-data /home/guillem/public_html/enguillem.com/nextcloud

Y ahora ya podemos empezar con la instalación de NextCloud

MariaDB

Hay que crear un usuario diferente de admin, en la captura tenéis los comandos para crear una base de datos y darle permisos.

Redireccionar tráfico hacia https

Como habéis podido observar en el vídeo cuando entramos con la url http://nextcloud.enguillem.com tenemos un error de nginx ja que no tenemos este dominio configurado.

Tenemos que configurar este dominio y hacer un redirect hacia https://nextcloud.enguillem.com

Primer creamos el fichero:

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

con el contenido

server {
listen 80;
listen [::]:80;


    server_name nextcloud.enguillem.com;
    return 301 https://nextcloud.enguillem.com$request_uri;

}

ahora tenemos que habilitar este site creando un enlace simbólico en la carpeta /etc/nginx/sites-enabled

reiniciamos ngnix y ya podemos acceder con normalidad a nuestra web tanto si entramos directamente por https como si no.

Acceder a NextCloud a través de la ip de nuestro servidor (red privada)

Si no tenéis configurado un servidor bind, podéis acceder con la ip de vuestra red privada en mi caso es la 172.16.7.108 ya que el servidor de nombres lo tenéis configurado para red interna.

Haremos entonces que cuando accedamos a la url https://172.16.7.108 salga directamente la instalación del nextcloud, para esto debemos modificar el sitio por defecto de apache, es decir el default-ssl.conf y debéis indicar que el DocumentRoot sea el directorio de instalación del nextcloud y agregar la configuración del directorio con la directiva Directory, aquí tenéis cómo quedaría en mi caso el archivo (SÓLO DEBÉIS AÑADIR O MODIFICAR LO QUE ESTÁ EN NEGRITA):

<IfModule mod_ssl.c>
	<VirtualHost _default_:443>
		ServerAdmin webmaster@localhost

		DocumentRoot /home/guillem/public_html/botigaliceu.com/nextcloud
		<Directory /home/guillem/public_html/botigaliceu.com/nextcloud/>
                   Require all granted
                   Options +FollowSymlinks
                   AllowOverride All
                   <IfModule mod_dav.c>
                      Dav off
                   </IfModule>

                    SetEnv HOME /home/guillem/public_html/botigaliceu.com/nextcloud
                    SetEnv HTTP_HOME /home/guillem/public_html/botigaliceu.com/nextcloud

                 </Directory>


		# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
		(DEJAR TODO LO QUE SIGUE EN EL FICHERO IGUAL PQ SI LO COPIA AQUÍ ME QUEDA DEMASIADO LARGO...)...
	</VirtualHost>
</IfModule>

Ahora tenéis que editar el fichero de configuración de nexcloud, para esto hay que ir a la carpeta donde habéis descomprimido nexcloud y luego ir a la carpeta config, allí encontraréis el ficher config.php y tenéis que añadir la ip de vuestro servidor como trusted_domai:

Si todo ha salido bien deberías poder acceder a tu nextcloud a través de https://172.16.7.108 (debes poner tu ip)