OpenMediaVault: Nextcloud con Docker

6 minutos de lectura

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.

Dentro de la carpeta Config creamos una carpeta llamada Nextcloud

En en la carpeta AppData crearemos las carpetas Nextcloud y Nextclouddb

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

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

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.

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

1root@OMV1:~# id carlos
2uid=1000(carlos) gid=100(users) groups=100(users)
3root@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

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

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

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

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

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

1ssh root@192.168.1.3
2
3root@OMV1# cd /sharedfolders/Dockers/AppData/Nextclouddb/

​Vamos a editar el fichero custom.conf

 1root@OMV1:/sharedfolders/Dockers/AppData/Nextclouddb# ls -la
 2
 3total 20
 4
 5drwxrwsr-x+ 4 carlos users 4096 Oct 10 01:10 .
 6
 7drwxrwsr-x+ 4 carlos users 4096 Oct 10 00:59 ..
 8
 9-rw-r--r--+ 1 carlos users 3754 Oct 10 01:10 custom.cnf
10
11drwxrwsr-x+ 4 carlos users 4096 Oct 10 01:10 databases
12
13drwxrwsr-x+ 3 carlos users 4096 Oct 10 01:10 log
14
15root@OMV1:/sharedfolders/Dockers/AppData/Nextclouddb#

​Utiliza tu editor preferido para modificar el fichero

1nano ./nano custom.cnf

​Descomentamos el campo bind-address=0.0.0.0

 1#
 2# Allow server to accept connections on all interfaces.
 3#
 4
 5bind-address=0.0.0.0
 6
 7#
 8# Optional setting
 9#wsrep_slave_threads=1
10#innodb_flush_log_at_trx_commit=0

​Reiniciamos el contenedor

1docker restart nextclouddb

​2. Accedemos a la shell del contenedor

1root@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

 1root@3c2849bd713e:/# mysql -uroot -p
 2Enter password:
 3Welcome to the MariaDB monitor.  Commands end with ; or \g.
 4
 5Your MariaDB connection id is 3
 6
 7Server version: 10.0.34-MariaDB-0ubuntu0.16.04.1 Ubuntu 16.04
 8
 9
10Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
11
12
13
14Type '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

1MariaDB [(none)]> CREATE USER 'usuario' IDENTIFIED BY 'contraseña';
2
3Query OK, 0 rows affected (0.00 sec)

​Creamos la base de datos

1MariaDB [(none)]> CREATE DATABASE IF NOT EXISTS nextcloud;
2
3Query OK, 1 row affected (0.00 sec)

Le damos permisos de administrador al usuario que acabamos de crear

1MariaDB [(none)]> GRANT ALL PRIVILEGES ON nextcloud.* TO 'usuario' IDENTIFIED BY 'contraseña';
2
3Query OK, 0 rows affected (0.01 sec)

​Actualizamos los privilegios

1
2MariaDB [(none)]> flush privileges;
3
4Query OK, 0 rows affected (0.00 sec)

​Salimos de MariaDB

1
2MariaDB [(none)]> quit
3
4Bye

​Salimos de la shell del contenedor

1
2root@OMV1:/# exit
3
4exit
5
6root@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

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

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).

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

Y los datos en la carpeta Nextcloud dentro de AppData

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

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

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

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

Listo, ya tenemos Nextcloud en tu servido OpenMediaVault

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