Nextcloud completo

Componentes para la instalación

Vamos a montar nuestra nube privada usando Nextcloud, en este tutorial utilizaremos algunas herramientas para mejorar la seguridad y rendimiento de nuestra nube.

Para nuestra nube utilizaremos los siguientes Docker, para Mariadb hemos elegido la imagen oficial.

  1. Mariadb.

  2. Nextcloud.

  3. Redis.

  4. RedisInsight

  5. db-backup.

Preparamos nuestra red.

Primeramente crearemos una nueva red, para tener nuestra red trabajando fuera de otras redes de Docker.

Para crear esta red, abre el terminar de UnRaid e introduce lo siguiente, donde [nextcloud] lo sustituyes por el nombre que quieras dar a la red.

docker network create --gateway 172.19.0.1 --subnet 172.19.0.0/16 nextcloud

Como ayuda, es mejor prepararse las ips en una hoja, para evitar confusión. Por ejemplo

mariadb=> 172.19.0.10

nextcloud=> 172.19.0.20

redis=> 172.19.0.30

Pero OJO!!! debes seguir la numeración de tu subred que será 172.XX.0.0

Comenzamos la instalación básica.

Vamos a empezar instalando los Docker con las configuraciones básicas, mas adelante realizaremos si es necesario las configuraciones para mejorar la seguridad o rendimiento. De esta manera puedes ir supervisando el funcionamiento y aparición de posibles errores, antes de que su localización sea más laboriosa.

Mariadb-oficial.

En la imagen se muestra las configuraciones que hay que poner, esta es la configuración básica, luego añadiremos algo más para darle mas seguridad a la base de datos. Lo primero es elegir la versión de Mariadb que utilizaremos, que será la ultima publicada, en este caso la versión 10.9.2, lo cual añadiremos como se muestra en la foto.

Aplicamos y creamos en contenedor. Es buena practica una vez creado el contenedor ir al mismo desplegar la pestaña de opciones => log y ver si si existe algún error.

parámetros avanzados.

Ahora entraremos en la consola de Unraid y entramos los siguientes comandos.

docker exec -it --user root MariaDB-Official /bin/bash
log=/var/log/mysql.log
mysql_secure_installation    (para empezar la configuración de seguridad)

Lo primero que nos pedirá será nuestra contraseña de root, recuerda la que pusiste en la plantilla de instalación de Mariadb al final. Una vez introducida nos realizara una serie de preguntas, sigue las instrucciones de la foto inferior.

Cerramos y ya tenemos Mariadb-oficial funcionado.

Redis.

Redis lo vamos a utilizar como cache, puedes leer más sobre Redis en https://redis.io/docs/

Como hemos realizado anteriormente, en las anteriores plantillas, realizaremos los cambios oportunos para nuestra red personal y los oportunos de Redis como se muestra a continuación.

Aplica e instala el contenedor.

RedisInsight.

RedisInsight nos valdrá para realizar configuraciones sobre Redis de forma grafica, https://redis.com/es/redis-enterprise/redisinsight/ de momento lo instalaremos y mas adelante realizaremos algún cambio sobre Redis.

Nextcloud linuxserver

Lo primero crearemos la carpeta que servirá para guardar el contenido de nextcloud, prestando atención a la foto inferior. Aunque se crearía automáticamente desde la plantilla me gusta más este método.

Recuerda, puedes ajustar la opción mover de la cache a tu gusto. En mi caso cada hora.

Realizamos la configuración de la plantilla de nextcloud.

De momento no realizamos cambios en nextcloud, avanzado el tutorial realizaremos algunos en los ficheros de configuración. Verifica errores en el log.

Configuración avanzada nextcloud.

En estos pasos procederemos a realizar cambios en los archivos de configuración de nextcloud. Realizaremos dos cambios en los archivos php.ini (php-local.ini en nextcloud) y config.php

Para facilitar esta operación, si no lo tienes ya, instalaremos momentáneamente el docker FileBrowser de Unraid.es's Repository. 👍 defaul pass admin/admin Data Path: seleccionamos /mnt/user/

Abrimos filebrowser y navegamos hasta la ruta para abrir el archivo.

/appdata/nextcloud/www/nextcloud/config/config.php

Ahora borramos todo y copiamos el siguiente código. Asegurate de que al copiar no aparece una advertencia roja

<?php
$CONFIG = array (
  'memcache.local' => '\OC\Memcache\Redis',
  'memcache.distributed' => '\OC\Memcache\Redis',
  'memcache.locking' => '\OC\Memcache\Redis',
  'filelocking.enabled' => 'true',
  'redis' => 
    array (
    'host' => '172.19.0.30',    #ATENCIÓN cambiar por tu ip si es distinta al tutorial
    'port' => 6379,
    'password' => 'tupasword',  #ATENCION poner la contraseña que pusiste en Redis
  ),
  
);

Guardar y vamos a la siguiente ruta.

/appdata/nextcloud/php/php-local.ini

Borramos y copiamos el siguiente código.

date.timezone = Europe/Madrid
upload_max_filesize = 10G
post_max_size = 11G
memory_limit = 1024M

Guardamos y cerramos filebrowser. Aún no iniciamos Nextcloud.

db-Backup.

Este sencillo Docker nos permite realizar de forma automática los Backup de las bases de datos que tengamos. cada Docker será el encargado de realizar el Backup de una base de datos, por lo que instalaremos dos, uno para Mariadb y otro para Redis.

Para db-Backup-Mariadb utilizamos la siguiente configuración de red.

Para db-Backup-Redis la siguiente.

Para la configuración de la plantilla mostraremos la de Redis, la plantilla de Mariadb únicamente cambia los datos de la base de datos a respaldar y la carpeta donde los guardamos ejem: /backupdb/mariadb para lo demás puedes seguir la misma configuración.

Tras todas estas configuración tendremos en nuestros Docker algo así. cambiando las IP's que hayas puesto.

Instalamos nextcloud.

Inicia el contenedor de nextcloud, ten paciencia tardara unos segundos, verifica en el log que no contenga errores graves, seguramente lanzara algo sobre crom omite ese error, despliega las opciones y pincha sobre WebUI, se mostrara la pantalla de inicio donde rellenaremos los parámetros como se muestra a continuación.

  • Si al iniciar recibes error 500: revisa los códigos que se pegaron en php.ini y conf.php.

Posiblemente te aparezca esto, refresca el navegador y continua

Si todo ha ido bien ya tendrás nextcloud instalado, ahora puedes iniciar sesión y configurarlo a tu gusto.

Un poco más para terminar

tras la instalación de todos los componentes vamos a afinar un par de cosas de Nextcloud. también configuraremos RedisInsight para conectarla a Redis y poder realizar la configuración sobre Redis.

Nextcloud, afinando

Por defecto Nextcloud no viene configurado para una región, por lo que no se podrá insertar teléfonos, también estableceremos nuestro idioma y ubicación por defecto.

ayudándonos de filebrowser iremos a la siguiente ruta.

/appdata/nextcloud/www/nextcloud/config/config.php

Pegamos el siguiente código como se muestra en la foto.

'default_language' => 'es',
'default_locale' => 'es_ES',
'default_phone_region' => 'ES',

Reinicia el contenedor nextcloud. Ya tenemos nextcloud funcionando. 👏

Configurar RedisInsight

La configuración para añadir la base de datos Redis es muy fácil. Lo primero es abrir la app desde WebUI, al instante no abrirá la ventana de bienvenida donde aceptaremos los términos de la licencia, nada más. En la siguiente pagina seleccionamos la primera opción de la izquierda y luego la primera opción que aparece "Connect a Redis Database".

Rellenamos el formulario.

Aceptamos y ya tendremos configurada esta parte. Ahora podemos configurar parámetros de Redis fácilmente. Entra en en la base recién creada.

Una vez dentro de la pantalla de configuración iremos buscando los valores de abajo y los cambiaremos.

maxmemory-policy => volatile-lru

maxmemory-samples => 4

maxmemory => 268435456

lazyfree-lazy-expire => yes

lazyfree-lazy-eviction => yes

lazyfree-lazy-server-del => yes

Y hemos terminado, ya puedes disfrutar de nextcloud.👏

Última actualización