OpenMediaVault: Nextcloud con Docker

Introducción

Podemos instalar Nextcloud a través del plugin que nos proporciona OpenMediaVault, pero también a través de Docker, utilizando un contenedor para la base de datos MariaDB y otro para Nextcloud, que desde mi percepción considero que va ligeramente mas rápido.

Preparación del entorno

En este articulo vimos como instalar Docker en OpenMediaVault, para unificar futuras instalaciones de nuevos contenedores para docker, vamos a compartir una carpeta llamada Dockers, donde creamos otra carpeta llamada Config para guardar los ficheros de configuración de los contenedores y otra llamada AppData para guardar los ficheros de datos de los contenedores.

omv-nextcloud47.png.

Dentro de la carpeta Config creamos una carpeta llamada Nextcloud

omv-nextcloud46.png.

En en la carpeta AppData crearemos las carpetas Nextcloud y Nextclouddb

omv-nextcloud48.png.

Instalación MariaDB

Con el entorno configurado procedemos a buscar y descargar la imagen para crear el contenedor, desde la sección Docker buscamos la imagen y descargamos MariaDB, busca por en los repositorios de lsioarm

omv-nextcloud3.png.

Descargada la imagen de MariaDB, la ejecutamos para empezar a configurar el contenedor

omv-nextcloud24.png.

Elegimos un nombre para el contenedor (Nextclouddb), con Restart Policy indicamos si el contenedor se iniciara de forma automática (Always) cuando arranque el sistema, en el campo Modo de Red podemos cambiar los puertos de conexión de MariaDB, si lo dejas en Hosts se utilizaran los puertos por defecto.

omv-nextcloud25.png.

Es el momento de configurar las variables de entorno para ejecutar el contenedor con un usuario que tenga acceso a las carpetas que configuramos anteriormente, lo hacemos mediante las variables PUID y PGID. Para saber que id utilizar desde la terminal del servidor teclea id nombre de usuario

root@OMV1:~# id carlos
uid=1000(carlos) gid=100(users) groups=100(users)
root@OMV1:~#

carlos es el usuario que tenemos creado dento de OpenMediaVault (poner enlace a samba)

También configuramos las zona horaria, en mi caso Europe/Madrid

omv-nextcloud26.png.

Ahora configuramos la contraseña de acceso para el usuario root para la administración de MariaDB mediante la la variable MYSQL_ROOT_PASSWORD

omv-nextcloud27.png.

Es el turno de configurar donde se almacenaran los ficheros de configuración del contenedor

omv-nextcloud28.png.

Como vimos en el primer apartado de este articulo los ficheros de configuración los guardaremos en la carpeta Nextclouddb

omv-nextcloud29.png.

Para terminar salvamos los cambios y esperamos a que el contenedor se inicie

omv-nextcloud30.png.

Configuración de MariaDB

Tenemos que configurar y crear una base de datos para Nextcloud, tenemos que conectarnos a la terminal del servidor y nos situamos en el directorio de configuración de MariaDB, Nextclouddb

Rockpro64 pasa al punto 2

ssh root@192.168.1.3

root@OMV1# cd /sharedfolders/Dockers/AppData/Nextclouddb/

​Vamos a editar el fichero custom.conf

root@OMV1:/sharedfolders/Dockers/AppData/Nextclouddb# ls -la

total 20

drwxrwsr-x+ 4 carlos users 4096 Oct 10 01:10 .

drwxrwsr-x+ 4 carlos users 4096 Oct 10 00:59 ..

-rw-r--r--+ 1 carlos users 3754 Oct 10 01:10 custom.cnf

drwxrwsr-x+ 4 carlos users 4096 Oct 10 01:10 databases

drwxrwsr-x+ 3 carlos users 4096 Oct 10 01:10 log

root@OMV1:/sharedfolders/Dockers/AppData/Nextclouddb#

​Utiliza tu editor preferido para modificar el fichero

nano ./nano custom.cnf

​Descomentamos el campo bind-address=0.0.0.0

#
# Allow server to accept connections on all interfaces.
#

bind-address=0.0.0.0

#
# Optional setting
#wsrep_slave_threads=1
#innodb_flush_log_at_trx_commit=0

​Reiniciamos el contenedor

docker restart nextclouddb

​2. Accedemos a la shell del contenedor

root@OMV:/sharedfolders/Docker/AppData/Nextclouddb# docker exec -it nextclouddb bash

​Vamos a crear la base de datos para Nextcloud, no conectamos con el usuario root y la contraseña que usamos en la variable MYSQL_ROOT_PASSWORD

root@3c2849bd713e:/# mysql -uroot -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 3

Server version: 10.0.34-MariaDB-0ubuntu0.16.04.1 Ubuntu 16.04


Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.



Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

Creamos un usuario para administrador la base de datos que vamos a crear

MariaDB [(none)]> CREATE USER 'usuario' IDENTIFIED BY 'contraseña';

Query OK, 0 rows affected (0.00 sec)

​Creamos la base de datos

MariaDB [(none)]> CREATE DATABASE IF NOT EXISTS nextcloud;

Query OK, 1 row affected (0.00 sec)

Le damos permisos de administrador al usuario que acabamos de crear

MariaDB [(none)]> GRANT ALL PRIVILEGES ON nextcloud.* TO 'usuario' IDENTIFIED BY 'contraseña';

Query OK, 0 rows affected (0.01 sec)

​Actualizamos los privilegios

MariaDB [(none)]> flush privileges;

Query OK, 0 rows affected (0.00 sec)

​Salimos de MariaDB

MariaDB [(none)]> quit

Bye

​Salimos de la shell del contenedor

root@OMV1:/# exit

exit

root@OMV1:/sharedfolders/Dockers/AppData/Nextclouddb#

Ahora ya tenemos configurado MariaDB para trabajar con Nextcloud

Instalación de Nextcloud

Desde la sección Docker buscamos la imagen y descargamos Nextcloud, busca por en los repositorios de lsioarm

omv-nextcloud2.png.

Una vez bajada la imagen, la ejecutamos para empezar a configurar el contenedor

omv-nextcloud32.png.

Elegimos un nombre para el contenedor (Nextcloud), Restart Policy indica que el contenedor se iniciara de forma automática (Always) cuando arranque el sistema, en el campo Modo de Red podemos cambiar los puertos de conexión de Nextcloud, si lo dejas en Hosts se utilizaran los puertos por defecto (80 y 443).

omv-nextcloud31.png.

La datos de configuración (config) los guardamos en la carpeta /Nextcloud dentro de Config

omv-nextcloud36.png.

omv-nextcloud35.png.

Y los datos en la carpeta Nextcloud dentro de AppData

omv-nextcloud37.png.

Finalmente salvamos los cambios y esperamos a que se inicie el contenedor. En la Raspberry Pi la primera vez llevara algunos minutos

El contenedor de Nextcloud ya viene instalado con su propio certificado autofirmado SSL

omv-nextcloud38.png.

Configuración Nextcloud

Una una vez iniciado el contenedor, la primera vez que accedemos a Nextcloud debemos configurarlo para use MariaDB en vez de Sqlite

omv-nextcloud39.png.

Accedemos con la cuenta del usuario y contraseña que creamos en MariaDB para la administración de la base de datos Nextcloud

omv-nextcloud40.png.

El nombre de la base de datos es nextcloud (es el nombre que le dimos en MariaDB) y la dirección de nuestro servidor, 192.168.1.3, y continuamos con la instalación

omv-nextcloud41.png.

Listo, ya tenemos Nextcloud en tu servido OpenMediaVault

Espero que te hya gustado, pasa un buen día…