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.
Tabla de contenidos
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)