Instalación de Nextcloud en Debian 9 y 10

Con esta guía que es una traducción del sitio de Carsten Rieger, instalarás la última versión de Nextcloud para Debian 9.x o para Debian 10.x en un contenedor de Proxmox.
La instalación incluye Nginx, PHP 7.4, MariaDB, Redis, y certificados para llevar el sitio a HTTPS.

Requisitos:
– Conexión a Internet.
– Contenedor de Proxmox con Debian 9.x o Debian 10.x (64Bit).

Opcional:
– Almacenamiento externo (HDD, FreeNAS, NFS, Cloudbox, etc) anclado al contenedor en el cual guardaremos los archivos de los usuarios.

Notas:
– Todas las operaciones las haremos como «root», si usas un usuario diferente escale con el comando «su -»
– Si lo va a instalar en un Proxmox 6.x no olvide desmarcar «Unprivileged CT» al crear el contenedor.
– Luego en «CT_ID -> Options -> Features -> Nesting». Si no activa la opción «Nesting» tendrá problemas al iniciar algunos procesos.

Preparando:
Verifica la zona horaria:

Configura «locales»:

Busca en la lista: en_US.UTF-8 UTF-8
Seleccionarlo con «Espacio», y en la siguiente pantalla bajar hasta «en_US.UTF-8» y «Enter».

Reiniciar y verificar que se haya aplicado:

Intalando herramientas necesarias:

Agregar nuevos repositorios:

Descargamos las keys necesarias:

Actualizamos:

Nginx:

En caso de usar un CT nuevo no habrá ningún servicio de apache corriendo, pero en caso de instalar en uno usado asegúrate de detenerlo, de lo contrario Nginx no iniciará porque el puerto requerido está en uso (:80)

Configurar nginx:

Agregarle:

Nota.- Modifica set_real_ip_from por la subred en la que se instalará el CT. Modifica resolver a otro IP DNS si lo desea.

Reinicia el servicio:

Crea carpetas y aplica permisos:
Nota.- El siguiente directorio puedes cambiarlo a conveniencia, pero tenlo en cuenta porque a él debes anclar el almacenamiento externo en caso que lo uses:
/nextcloud-data = Donde estarán todos los archivos de los usuarios.

PHP:

Configurando PHP:

Reinicia PHP y Nginx:

MariaDB

Asegura MariaDB:

Nota.- Puedes poner lo que desees pues se conecta por sock.

Configurando MariaDB:

Agregarle:

Reinicia el servicio:

Crea la base de datos, el usuario y la cotraseña:
Base de datos = nextcloud
Usuario para conectarse a la Base de datos = nextcloud
Password = passw0rd (o la que usted desee)

Verifique que transaction isolation level se haya establecido a READ_COMMITTED y la colación en UTF8MB4:

Debe quedar de la siguiente manera:

Redis:

Cambiar configuración y pertenencia a grupos:

Ahora recomendamos reiniciar:

Nextcloud:

Creando nextcloud.conf:

Agregale:

Notas:
– Modifica los parámetros server_name por el nombre DNS que tendrá tu servidor Nextcloud.
– Hay dos apartados: «Certificados Autofirmados» y «Certificados Let’s Encrypt». A continuación generaremos los autofirmados, pero si en algun momento decides ponerle certificados LE comenta las líneas de arriba, descomenta las de abajo y modifica la ruta en caso necesario.
– El párametro ssl_stapling on; cuando usamos Certificados Autofirmados nos arroja este Warning:

– Descomentar ssl_stapling on; solo cuando usemos Certificados Let’s Encrypt.

Ahora crearemos el certificado SSL autofirmado:

Al ejecutar éste último comando vendrán una serie de preguntas las cuales voy a explicar a continuación:
Nota.- En caso de equivocarte presionar Ctrl + C para cancelar, introducir el comando anterior y volver a empezar.

Generamos el certificado para 10 años:

Mejora la seguridad del servidor y del sistema usando una clave Diffie-Hellman (dhparam.pem):

Nota: Por favor, sea paciente, tomará tiempo dependiendo de su hardware.

Descargar, extraer Nextcloud y dar permisos:

Si lo tienes en .zip:

Justo antes de instalar haremos un paréntesis para quienes quieran usar un almacenamiento externo ya quede instalado Nextcloud dentro de dicho almacenamiento.

Usando un 2do HDD dentro del mismo Proxmox haremos lo siguiente:

Apagamos el contenedor:

Nos conectamos al host Proxmox y realizamos estos pasos.

Asumiremos que usted solo tiene conectado el HDD sin montar y el sistema lo nombró sdb, en caso de tenerlo ya montado desmóntelo y use la ruta /nextcloud-data (o la que especificó en dicho paso).

Listamos los HDD

Si como dijimos, no lo tiene montado, en la parte de MountPoint para sdb no saldrá nada.

(Si el HDD es nuevo) Formateamos el HDD en Ext4:

Creamos un directorio en el cual montaremos el nuevo HDD. Montamos y corregimos permisos:

Modificamos el archivo de configuración de nuestro contenedor (sustituir ID):

Debajo de la línea memory agregamos lo siguiente:

Nota.- Directorio de Proxmox mapeado a la carpeta /nextcloud-data del contenedor. La información la guardarás directamente en el 2do HDD del Proxmox.

Listo! Iniciamos el contenedor nuevamente y continuamos con la Instalación del Nextcloud.

Usando un compartido NFS:

Apagamos el contenedor:

Si usted tiene un servidor NFS en su red también puede usarlo para guardar los datos de su Nextcloud. Para ello realizamos estos pasos.

Asumiremos que usted sabe trabajar con su servidor NFS (nfs-kernel-server), que ya creó el directorio que va a compartir y modificó el archivo /etc/exports del NFS donde agrego el IP de su servidor Nextcloud.

Un ejemplo de lo que se debería agregar al exports:

Luego de esto le realizaremos unos cambios al APP ARMOR del host Proxmox donde se encuentra nuestro Nextcloud para que los Contenedores puedan conectarse al NFS.
Para ello tenemos dos opciones: a mano, o por la web de Proxmox.

– A mano:
Si su Proxmox es versión 4.4.x:

Y agregamos antes del “}” final:

Si su Proxmox es versión 5.2.x:

Agregamos antes del “}” final:

Si su Proxmox es versión 6.x.x:
Como dijimos al inicio el CT debe tener privilegios sino no conecta con el servidor NFS.
Realice los mismos pasos que la versión 5. Y además en el archivo de configuración del contenedor:

Agregamos las siguientes líneas al final:

– Por la web de Proxmox

Pinchar en el ID de nuestro CT > Options > Features > Marcar NFS.

Luego de acomodar el APP ARMOR instalamos el cliente NFS en el contenedor de Nextcloud:

Creamos el archivo rc.local si no está, y le agregamos el comando para que monte el compartido del NFS cuando se inicie:

Agregarle:

Y le damos los permisos correspondientes:

Iniciamos el contenedor y revisamos si se montó bien el compartido con el siguiente comando:

Ahí tenemos nuestro compartido NFS listo para utilizar.

Continuamos con la instalación…

Instala Nextcloud silenciosamente:

Información:
-database-name “nextcloud”: La creamos anteriormente configurando base de datos y usuario.
-database-user “nextcloud”: Lo creamos anteriormente configurando base de datos y usuario.
-database-pass “passw0rd”: La conexion es por sock, no importa lo que pongamos.
-admin-user “UsuarioAdmin”: Nombre de usuario para administrar Nextcloud, el que guste.
-admin-pass “PasswordAdmin”: Contraseña del usuario de administración, la que guste.
-data-dir “/nextcloud-data”: Si modificaste al inicio del manual esta dirección, sustituyala.

Mejorando la configuración de Nexcloud:

Agregamos dominio e IP de confianza:

Sobrescriba la URL con su dominio:

Hacemos una copia de la configuración:

Amplía tu config.php de Nextcloud:

Notas:
– El sock de Redis está descomentado para usarse en Debian 10. Si instalaste en un CT Debian 9 comenta el otro y descomenta para esta versión.
– Usé el párametro 'force_language' => 'es', para forzar el lenguaje a Español, puedes comentar la línea y que cada usuario elija el idioma; por defecto inicia en Ingles.

Edita el .user.ini de Nextcloud:

Reinicia servicios:

Ajustar aplicaciones de Nextcloud:

Añadir cronjobs para www-data:

Si nos pide seleccionar el editor escogemos «nano» que es la opcion 1

Agrega:

Configurar Nextcloud para que use cron.php:

Optimiza y Actualiza Nextcloud:

Salva y marca como ejecutable:

Ejecutelo:

Notas.- Si nos pide «Convertir columnas» le damos «Y».

Si el actualizador encuentra una versión nueva le saldrán los siguientes pasos:
– Nos preguntará si queremos iniciar la actualización «Y»
– Una ves que termine el proceso nos dirá si queremos mantener el «Modo Mantenimiento» activado, le damos «N»
– Nos logueamos y verificamos que todo este OK.

Inicia sesión en tu nuevo servidor de Nextcloud:
https://nextcloud.dominio.cu/login o https://192.168.2.2/login

Usuario = nextcloud (El que especificamos instalando Nextcloud silenciosamente)
Password= passw0rd (El que especificamos instalando Nextcloud silenciosamente)

Vamos al apartado «Configuración» pinchando en el icono de engranaje en la parte superior derecha.
Luego pinchamos en «Vista General» y revisamos el apartado «Avisos de seguridad y configuración«.
Si dice «Ha pasado todos los controles» pues genial, no nos queda nada por hacer.
Si dice «Hace mas de ‘X’ años que no se ejecutan los cron jobs» no te preocupes, dale varios minutos para que se ejecuten los que agregamos durante la instalación y la alerta desaparecerá.
Si dice «El servidor no tiene conexión a internet» pues es algo muy evidente.

Ahora pasaremos a conectar dicho servidor con nuestro Dominio, y arreglaremos las carpetas de los usuarios para que nos muestre el nombre y no el UUID.

Una vez iniciada sesión como administrador vamos al apartado «Aplicaciones» y activamos «LDAP user and group backend».

Luego vamos a «Configuración > Integración LDAP / AD» y comenzamos con la configuración.

En el apartado «Servidor«:
Servidor = IP o DNS de nuestro AD, y luego le damos al botón «Detectar puerto» (debe ponernos el 389).
DN Usuario = DN del usuario que usaremos para conectar con el AD (no tiene que ser administrador).
Contraseña = Contraseña de dicho Usuario, y le damos al botón de «Guardar credenciales».
DN Base = Podemos poner cuantos DN de usuarios queramos, uno por línea. Al terminar le damos a «Probar Base DN» y debe darnos «Configuración correcta» en verde debajo.

Nota:- Apóyese del «Editor ADSI» o «samba-tools» para sacar los DN correctamente.

Aquí les muestro un ejemplo:

En el apartado «Usuarios«:
Este apartado lo dejé por defecto, aquí no realicé ningún cambio.

En el apartado «Atributos de inicio de sesión«:
Este apartado lo dejé por defecto. Viene marcada la opción de «Usuario LDAP / AD» así que no necesité cambiar nada.

En el apartado «Grupos«:
En este apartado si deseas usar grupos para tu Nextcloud pues aquí seleccionas cuales.

En el apartado «Avanzado» (ala derecha):
Este apartado lo dejé por defecto, aquí no realicé ningún cambio.

En el apartado «Experto» (a la derecha):
Aquí es donde modificaremos para que en vez del UUID del usuario (en las carpetas de Nextcloud) nos muestre solo el nombre.
Realiza los siguientes cambios en los tres campos y borre las asignaciones:

Luego pincha en «Configuración de prueba» y debe mostrarte «Configuración válida ¡Conexión establecida!»

Una vez terminados estos pasos conéctate al servidor, verás que salen las carpetas con los nombres de todos los usuarios de tu dominio, las cuales se irán llenando de documentos a medida que estos copien cosas dentro.

Nota:- Si aparecen las carpetas con el UUID y las de usuario puedes borrar tranquilamente las del UUID. Por supuesto, con mucho cuidado.

Y nada más, a crear usuarios. Que aproveche!

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuar!

Promedio de puntuación 5 / 5. Recuento de votos: 5

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

8 comentarios

  1. Firefox 67.0 Firefox 67.0 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0

    hola creo que deberia arreglar dos cosas!!!
    1. ANTES DE: Instala Nextcloud silenciosamente:
    creo que le falta:
    # cd /opt/
    # wget https://download.nextcloud.com/server/releases/latest.tar.bz2
    # tar -xjf latest.tar.bz2 -C /var/www && chown -R www-data:www-data /var/www/ && rm -f latest.tar.bz2
    NOTA:
    En caso de nextcloud-17.0.1.zip
    # unzip nextcloud-17.0.1.zip -C /var/www && chown -R www-data:www-data /var/www/

    2: LUEGO DONDE DICE:
    Amplía tu “config.php” de Nextcloud:
    Debes arreglar esta linea:
    cat <<EOF >>/var/www/nextcloud/config/config.php

    • Opera 64.0.3417.92 Opera 64.0.3417.92 Windows 10 x64 Edition Windows 10 x64 Edition
      Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36 OPR/64.0.3417.92

      Cierto, tiene usted razón, pero solo en parte.
      Agregaremos los pasos de descargar el compactado de Nextcloud lo antes posible porque realmente sin eso no tenemos nada.
      La segunda no. La línea es así tal cual. Se usa para agregarle algo a un archivo sin tener que abrirlo, copiarle lo que necesitamos y luego guardarlo.
      Gracias y saludos.

      • Firefox 70.0 Firefox 70.0 Ubuntu x64 Ubuntu x64
        Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:70.0) Gecko/20100101 Firefox/70.0

        Esto no me sirvio, fue por gusto, este es el error que me da:

        Internal Server Error

        The server encountered an internal error and was unable to complete your request.
        Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report.
        More details can be found in the webserver log.

        • Google Chrome 76.0.3809.87 Google Chrome 76.0.3809.87 Windows 10 x64 Edition Windows 10 x64 Edition
          Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36

          Eduardo, para culminar exitosamente esta instalación verifica si estas usando Debian 9 o Debian 10, de ser el primero, edita el archivo config.php ubicado en nextcloud/config/config.php. Dentro de él debes comentar la línea 67 y quitarle el comentario a la línea 65, quedándote de la forma siguiente:

          # ATENCION si estas trabajando en Debian 9.x:
          ‘host’ => ‘/var/run/redis/redis.sock’,
          # ATENCION si estas trabajando en Debian 10.x:
          #’host’ => ‘/var/run/redis/redis-server.sock’,

  2. Firefox 71.0 Firefox 71.0 Ubuntu x64 Ubuntu x64
    Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:71.0) Gecko/20100101 Firefox/71.0

    En esta linea falta alguna comilla pues no realiza los cambios al fichero redis.conf, los tuve que hacer de manera directa en el fichero

    # sed -i «s/port 6379/port 0/» /etc/redis/redis.conf ; sed -i s/\#\ unixsocket/\unixsocket/g /etc/redis/redis.conf ; sed -i «s/unixsocketperm 700/unixsocketperm 770/» /etc/redis/redis.conf ; sed -i «s/# maxclients 10000/maxclients 512/» /etc/redis/redis.conf

    saludos

    • Opera 72.0.3815.400 Opera 72.0.3815.400 Windows 10 x64 Edition Windows 10 x64 Edition
      Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36 OPR/72.0.3815.400

      En un inicio comencé usando # para cada comando, dicho caracter se usa para comentar, por tanto un comando con eso delante no se ejecuta. Entonces, temiendo que cualquiera de ustedes sin darse cuenta la copiaran tal cual pues decidimos eliminar los caracteres # de todas las líneas de comando. 🙂

  3. Firefox 84.0 Firefox 84.0 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.0

    Colega todo perfecto hasta el final pero en la ultima linea que comentas cuando sale el UUID y el nombre de user, como hago para pasar la informacion de un lado al otro porque las carpetas se crean con su respectivo perfil…a la hora de saber ni puta idea de quienes son la informacion que esta dentro y tengo mas de 200 usuarios…Ayudame en eso..que solucion le ves a eso

  4. Firefox 81.0 Firefox 81.0 GNU/Linux x64 GNU/Linux x64
    Mozilla/5.0 (X11; Linux x86_64; rv:81.0) Gecko/20100101 Firefox/81.0

    Hoal saludos tengo problemas desde un win8 con el cliente a la hora de configurarse con el nextcloud el error q da es tiempode espera exedido mas menos asi y no se conecta.

Dejar una contestacion

Tu dirección de correo electrónico no será publicada.


*