NextCloud en un docker
#41
Hola chic@s, era para comentar que al final he podido resolver el problema de que no podía iniciar sesión en nextcloud ya que quedaba la rueda girando en un bucle continuo. agradecer a Ganecogorka por facilitarme un link, donde encontré la solución. Tenia que poner un parámetro en el archivo config.php de nextcloud: 

Código:
Desktop Client Sync
I also had problems with setting up the Nextcloud Desktop Client Synchronization. We need to make a change in the config/config.php file. Make sure you add this line here in the configuration file.

'overwriteprotocol' => 'https'
 Dejo el enlace del creador del post por si queréis echar una ojeada.

Código:
https://www.the-digital-life.com/nextcloud-nginx-proxy-manager-in-10-minutes/
  Responder
#42
Hola

Y añado que uno de los problemas de traefik era que en el archivo dynamic_conf.toml se hacía referencia a los certificados con una ruta de la nas y no con la ruta de docker.
Un saludo

Agur eta ondo ibili

Ganekogorta (TS-469Pro, TVS-673e, QBoat Sunny y TS-453Be) Ʀɐɯ0η
  Responder
#43
(10-05-2020, 12:28 PM)Ganekogorta escribió:
Hola
Hace poco he tenido un "accidente" en mi máquina virtual de NextCloud por un problema de actualización del Webmin que integraba.
El caso es que en vez de empezar de cero una VM con su Linux server LTS (ahora por la versión 20), fail2ban, webmin, certificados, nextcloud....  he mirado otras formas de instalarlo.
Una sería mediante un QPKG desde el app Center, pero hace tiempo que ese qpkg que hay es de pago (1 € en qnapclub.eu ), dependemos de la buena voluntad del excelente programador Qoolbox, y además luego siempre pasa algo con las actualizaciones.
Así que me he decidido a ver como hacerlo mediante la virtualización ligera de dockers con almacenamiento persistente. 
Esto se hace para conservar datos y no perderlos si eliminamos el contenedor (container).
Como ya sabéis NextClod es un fork (escisión) de OnwCloud, una nube alojada en nuestra NAS.
No os tengo que recordar las ventajas de tener vuestros datos bajo vuestro control  Smile
Bueno, vamos al lío, NextCloud para gestionar el contenido, versiones,... de nuestros archivos usa una base de datos. 
Hay tres posibles: MySQL/mariaDB, PostGreSQL y SQLlite (sólo para hacer pruebas).
Yo voy a explicarlo para hacerlo con MySQL de dos formas:
-Con la de serie que trae nuestra QNAP. Pero no está actualizada y está en la versión 5.5.57
-Con una paralela en otro contenedor de versión 10.4.12 que tiene mas funciones 

Requisitos previos

1-Tenemos que tener instalado en Container Station e iniciado.
La primera vez que lo iniciamos, sale un pequeño asistente. Hacedlo y dejar la ruta "/Container" por defecto. Luego podéis cerrar la aplicación (que no detenerla).
No todas las nas de QNAP lo soportan, deben tener QTS 4.2 o superior, y ser de las de las familias TS-x51,TS-x53x, TS-x55, TxS-x63, TVS-x70, TVS-x71, TS-x73 y los ARM TS-x28, TS-x31, TS-328. Se puede comprobar que modelos ARM de menor potencia pueden usarlo.

2-Vamos a usar la consola o putty. Ya se que desde Container Station podríamos hacerlo, pero creedme que vamos a ir mejor si lo hacemos por consola.

3-Vamos a crear una carpeta compartida llamada "misContenedores", que es donde se quedan los datos de forma persistente.

Definición de la red de contenedores

Abrimos la consola y primero definimos una red llamada "Contenedores" en docker. La cual nos creará un switch virtual.
Código:
docker network create Contenedores

Definición de los contenedores

Ahora vamos a crear un contenedor para la base de datos MariaDB.
Si queréis saltar este paso y usar la base de datos integrada podéis hacerlo, pero recordad que antes ha de estar activada y configurada (hay que saber la clave de su usuario root)
De nuevo desde consola lanzamos las líneas de comando:
Código:
docker run -d -p 3307:3307 --net Contenedores --restart always --name="mariadb-server" -v /share/misContenedores/mariadb:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=laClaveDelRoot -e MYSQL_USER=nextcloud -e MYSQL_PASSWORD=clavedeusernextcloud -e MYSQL_DATABASE=nextcloud_db \
mariadb:latest

Es importante que:
-la red sea "--net Contenedores", por cierto podemos poner también "--network=Contenedores"
-en la definición de la ruta persistente hayamos incluido la carpeta compartida "-v /share/misContenedores/mariadb:/var/lib/mysql"

En la definición creo en un usuario llamado "nextcloud", su clave es "clavedeusernextcloud" y la base de datos es "nextcloud_db".
Si os fijáis hay tres líneas, pero se puede hacer en una sola si eliminamos el carácter "\". Quedaría algo así:

Código:
docker run -d -p 3307:3307 --net Contenedores --restart always --name="mariadb-server" -v /share/misContenedores/mariadb:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=laClaveDelRoot -e MYSQL_USER=nextcloud -e MYSQL_PASSWORD=clavedeusernextcloud -e MYSQL_DATABASE=nextcloud_db mariadb:latest

Esta cadena la podeis copiar ( seleccionando, Ctrl+C )y pegar en Putty con botón secundario del ratón   Wink
Al hacerlo se habrá creado nuestro primer container y si todo está bien, ya estará funcionando y arrancando.
Ahora vamos con la creación del contenedor de NextCloud en putty
Código:
docker run -d  -p 11080:80 -p 11443:443 --network=Contenedores --restart always --name="nextcloud-web" -v /share/misContenedores/nextcloud:/var/www/html \
-e MYSQL_HOST=mariadb-server -e MYSQL_DATABASE=nextcloud_db -e MYSQL_USER=nextcloud -e MYSQL_PASSWORD=clavedeusernextcloud \
-e VIRTUAL_HOST=nextcloud.midominio.es -e LETSENCRYPT_EMAIL=micorreo@midominio.es \
nextcloud:latest

De nuevo lo he puesto en varias líneas, pero si queréis sólo una, el código sería :
Código:
docker run -d  -p 11080:80 -p 11443:443 --network=Contenedores --restart always --name="nextcloud-web" -v /share/misContenedores/nextcloud:/var/www/html -e MYSQL_HOST=mariadb-server -e MYSQL_DATABASE=nextcloud_db -e MYSQL_USER=nextcloud -e MYSQL_PASSWORD=clavedeusernextcloud -e VIRTUAL_HOST=nextcloud.midominio.es -e LETSENCRYPT_EMAIL=micorreo@midominio.es nextcloud:latest

Al hacerlo se creará un segundo contenedor para nextcloud que dejará datos en la mariaDB del contenedor vecino.
Son importantes los siguientes valores:
-referencia "-v /share/misContenedores/nextcloud:/var/www/html" para que queden los datos en una nueva carpeta persistente.
-definición de la variable "-e MYSQL_HOST=mariadb-server", para que vea al contenedor vecino que lo llamamos "mariadb-server" anteriormente.
-definición de la base en la que dejaremos los datos "-e MYSQL_DATABASE=nextcloud_db"
-definición de variable usuario y su clave para acceder a la base de datos "-e MYSQL_USER=nextcloud -e MYSQL_PASSWORD=clavedeusernextcloud"
Si queremos usar la mariaDB integrada en la nas, omitiremos en el comando de creación los parámetros "-e MYSQL_HOST=mariadb-server -e MYSQL_DATABASE=nextcloud_db -e MYSQL_USER=nextcloud -e MYSQL_PASSWORD=clavedeusernextcloud" y es que al iniciar por la web NextCloud, comenzará el asistente. Nos pedirá datos de usuario y del motor de base de datoa a usar. Ahí indicaremos MySQL, el usuario,... y en ubicación del servidor MySQL pondremos la IP local de nuestra nas.
Si queremos acceder a nuestra web de nextcloud, hemos de hacerlo mediante los puertos que definimos en la creación del contenedor.
En nuestro caso 10080 para http y 10443 para https.
Es decir, si nuestra QNAP tiene la ip 192.168.50.25, escribiremos en un equipo de nuestra red "http://192.168.50.25:10080"
Para que funcione la web en hhtps hay que escribir los siguientes comandos en la consola:
Código:
sudo docker exec -it nextcloud-web /bin/bash
apt update
apt install dialog apt-utils
apt install ssl-cert
make-ssl-cert generate-default-snakeoil --force-overwrite
a2enmod ssl
a2ensite default-ssl
service apache2 restart
sudo docker restart nextcloud-web

Con ello ya podremos acceder a "https://192.168.50.25:10443"
Eso sí, tendremos que agregar la excepción de seguridad ya que no es un certificado generado por una entidad autorizada.
La ventaja de usar estos contenedores es:
-poder hacer una copia de seguridad, si lo hacemos de las carpetas compartidas "Container" y "misContenedores" (incluida la MySQL)
-podemos desinstalar los containers, el switch virtual que se generó y la aplicación Dcoker Station y volver a instalarlo rápidamente ya que las imagenes de los contenedores y sus datos persistentes están ahí. También podríamos moverlos a otra NAS  Wink
-tenemos contenedores de con las aplicaciones oficiales en su última versión.
Bueno creo que con esto ya podemos perder el miedo a los contenedores   Tongue

De verdad que lo intento y te agradezco el tutorial pero no hay forma de instalarlo...

Me da el siguiente error:
[Imagen: Captura-de-pantalla-2021-10-03-a-las-4-19-06.png]

Y he intentado modificar el archivo /etc/config/my.cnf y añadirle la siguiente línea:
innodb_read_only_compressed = OFF
pero me sigue saliendo.. no sé que puede estar pasando. ¿Alguna idea?
Gracias!
  Responder
#44
Hola
Te da un error de creación de la base datos.
¿Sabes si está funcionando la base de datos?

Describe por encima cómo lo has hecho y dinos qué tipo de nas y qts estás usando.
Un saludo

Agur eta ondo ibili

Ganekogorta (TS-469Pro, TVS-673e, QBoat Sunny y TS-453Be) Ʀɐɯ0η
  Responder
#45
(03-10-2021, 10:54 AM)Ganekogorta escribió: Hola
Te da un error de creación de la base datos.
¿Sabes si está funcionando la base de datos?

Describe por encima cómo lo has hecho y dinos qué tipo de nas y qts estás usando.

Gracias compi. Uso qts 4.5... (la última estable).
Lo he hecho de varias formas:

-Sin tener mariadb nativo del qts e instalando todo siguiendo el tutorial. Me da ese fallo. Si añado al archivo esa línea me sale que no se puede conectar a la BD. Si me voy al phpmyadmin me da error que no se puede conectar (error de usuario y contraseña de la BD). Imposible usando el último docker de mariadb. Por lo visto la línea esa da error debido a que mariadb en su versión 10 tiene problemas con Nextcloud porque por defecto tiene comprimida no se qué jejjee
-La otra opción es quitando todo y poniendo mariadb pero desde el panel de control de qts. En este caso sí me deja acceder al phpmyadmin y aunque cree las tablas y demás, al configurar Nextcloud me dice: 
[Imagen: Captura-de-pantalla-2021-10-03-a-las-19-56-32.png]
El caso es que con esta opción sí me deja ver phpmyadmin y ver las tablas de la BD.

No sé qué más probar la verdad, parece que nextcloud tiene problemas para establecer comunicación y tanto el usuario, contraseña y nombre de BD son correctos. Quizás he visto algo de editar algún archivo config (creo que el de phpmyadmin) y cambiar localhost por 127.0.0.1 pero no sé dónde está ese archivo...
¿Alguien me da alguna idea?
Gracias!
  Responder
#46
Hola
Tengo una duda de cómo has instalado la base de datos.
No me queda claro si la tienes como contenedor en el mismo rango de red que el contenedor de nextcloud.

Lo digo porque si accedes vía phpmyadmin…estás accediendo a la integrada en la nas, no en la del docker. O ¿ has hecho alguna configuración especial para gestionar la base del contenedor?
Un saludo

Agur eta ondo ibili

Ganekogorta (TS-469Pro, TVS-673e, QBoat Sunny y TS-453Be) Ʀɐɯ0η
  Responder
#47
(03-10-2021, 08:55 PM)Ganekogorta escribió: Hola
Tengo una duda de cómo has instalado la base de datos.
No me queda claro si la tienes como contenedor en el mismo rango de red que el contenedor de nextcloud.

Lo digo porque si accedes vía phpmyadmin…estás accediendo a la integrada en la nas, no en la del docker. O ¿ has hecho alguna configuración especial para gestionar la base del contenedor?


Hola
Sospecho que es por la falta de entendimiento entre ambas versiones.
Echa una ojeada al último comentario del hilo para obligar versiones y diferenciar por cpu.

https://www.qnapclub.es/showthread.php?tid=3494
Un saludo

Agur eta ondo ibili

Ganekogorta (TS-469Pro, TVS-673e, QBoat Sunny y TS-453Be) Ʀɐɯ0η
  Responder




Usuarios navegando en este tema: 3 invitado(s)