Cómo instalar Nextcloud con Docker en Linux

Nextcloud es una gran herramienta para gestión de archivos. Con una comunidad terrible detrás, ofrece una «tienda de aplicaciones» (gratuitas) que puedes instalar en forma de plugin y extender aún más su oferta.

Existen varios métodos de instalación pero en esta entrada nos vamos a centrar en el método docker, para que todas las dependencias queden encapsuladas en un contenedor.

En cualquier caso, para hacer correr Nextcloud, en realidad únicamente necesitas tener un LAMP (Linux + Apache + MySQL + PHP) en tu sistema.

Nextcloud te ofrece tres formas de persistencia:

  • SQLite
  • MySQL/MariaDB
  • Postgresql

Si quieres tener un sistema fluido, evita utilizar la opción SQLite, ya que es la más lenta. En este artículo, asumimos que utilizamos MySQL que tenemos ya instalado MySQL/MariaDB en tu servidor.

Instalar Nextcloud vía Docker + MySQL

La instalación del sistema utilizando docker, es tan sencilla como ejecutar el siguiente comando.

sudo docker run --name nextcloud -d 
-v /var/opt/contenedores/nextcloud:/var/www/html 
-v /var/opt/contenedores/nextclouddata:/var/www/html/data 
-v /mnt/hdd1tb:/mnt/datos 
-p 8888:80 nextcloud

Este comando, crea un contenedor de nombre nextcloud, le vincula tres volúmenes de persistencia para que en caso de reinstalar/actualizar nextcloud no perdamos ningún dato del contenedor y expone el servicio en el puerto 8888.

En mi caso, éste servidor cuenta con un disco duro que utilizo para media y documentación que me gustaría montar en nextcloud. Por eso el tercer volumen, incrusto este directorio en el contenedor.

Una vez instalado el contenedor, podremos acceder a él así: http://nombreservidor:8888

Deja el directorio de datos por defecto y selecciona la opción MySQL/MariaDB. Recuerda que tu MySQL sea alcanzable desde la red Docker. Tendrás que modificar tu bind-address.

bind-address		= 127.0.0.1,172.17.0.1

Aplicación External Storage

Para poder vincular una carpeta «externa» a Nextcloud figure en la aplicación, tenemos que instalar la aplicación External Storage. El gestor de aplicaciones está en: http://nombre_servidor:8888/settings/apps

Una vez instalado, desde la configuración de administrador, tenemos que dar de alta el directorio:

  1. Le damos un nombre
  2. Seleccionamos la opción Local
  3. Autenticación ninguna
  4. Configuración: /mnt/datos/media
  5. Seleccionamos disponible para todos los usuarios

Configuración recomendada y previews

Configurar bien los previews es lo más importante de Nextcloud para conseguir que la aplicación funciona lo más fluido posible. Si no les pones límites, Nextcloud no comprime prácticamente las imágenes. Esto hace que si tus imágenes son pesadas, la aplicación se vuelva lenta.

Mi configuración recomendada es la siguiente, añade a la variable $CONFIG /var/www/html/config/config.php

'preview_max_x' => 1080,
'preview_max_y' => 1080, 
'preview_max_scale_factor' => 1,

Puedes leer un poco más sobre las previews en la documentación oficial.

También puedes configurar la calidad de compresión de las imágenes JPG de la siguiente forma. Ejecuta esto en el host:

sudo docker exec -u www-data nextcloud /var/www/html/occ config:app:set preview jpeg_quality --value="80"

Cómo forzar escaneo completo

Nextcloud a veces no detecta los nuevos ficheros y directorios. Para forzar el escaneo completo, puedes ejecutar el siguiente comando desde el host, que escanea todo el árbol de ficheros.

sudo docker exec -u www-data nextcloud /var/www/html/occ files:scan --all

Valora poner este comando en el cron para que todas las noches te detecte las imágenes nuevas.

Cómo forzar reinicio de los previews

1. Para el contenedor de nextcloud

2. Localiza la carpeta de datos de la aplicación

cd /var/opt/contenedores/nextclouddata

3. Elimina la carpeta appdata

sudo rm -r appdata_ocn2aa7n8sn0/

4. Vuelve a arrancar el contenedor

Cómo actualizar nextcloud vía docker

La guía oficial es esta: https://github.com/nextcloud/docker#update-to-a-newer-version

En resumen, lo que nos dicen es que actualices la imagen de nextcloud, pares y elimines el contenedor y finalmente lo vuelvas a instalar.

sudo docker pull nextcloud
sudo docker stop nextcloud
sudo docker rm nextcloud

Finalmente, volver a hacer el run, igual que la instalación. El primer comando de este artículo.

Ibai

Apasionado por la tecnología, el software, las interfaces de usuario (UX UI) y los sistemas. Utilizo este canal de comunicación para transmitir de manera informal, y muchas veces "rápido", pequeñas aportaciones a la comunidad software.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


El periodo de verificación de reCAPTCHA ha caducado. Por favor, recarga la página.

*

Artículos relacionados