NextCloud en un docker
#21
Hola
Por defecto no se ponen y usa la del host.
Pero puedes poner límites.
Echa una ojeada a https://docs.docker.com/config/container...nstraints/
Un saludo

Agur eta ondo ibili

Ganekogorta (TS-469Pro, TVS-673e, QBoat Sunny, TS-453Be, TR-002 y QHora-301w) Ʀɐɯ0η
  Responder
#22
Hola buenas tarde, gracias al creador del post por compartir. Necesito por favor ayuda para solucionar algunos problemas que tengo.
Tengo el servicio funcionando, pero resulta que el apartado del tutorial de poder usar el protocolo ssl (https) no me esta funcionando, ya que creo que a la hora de instalar me sale como que no esta operativo, eso creo entender. Pondré una imagen: https://vwp9eq.am.files.1drv.com/y4p4ETq...png?psid=1
No puedo acceder por https, otra cosa que me gustaría saber, es como puedo hacer para cuando comparta un archivo por medio de un enlace no me aparezca la ip local de mi NAS sino mi ddns como por ejemplo https://pepito.duckdns.org:10443?.
Muchas gracias.
Saludos
  Responder
#23
(17-04-2021, 05:12 PM)cristianpanama escribió: Hola buenas tarde, gracias al creador del post por compartir.
De nada [emoji3]
(17-04-2021, 05:12 PM)cristianpanama escribió: Necesito por favor ayuda para solucionar algunos problemas que tengo.
Tengo el servicio funcionando, pero resulta que el apartado del tutorial de poder usar el protocolo ssl (https) no me esta funcionando, ya que creo que a la hora de instalar me sale como que no esta operativo, eso creo entender. Pondré una imagen: https://vwp9eq.am.files.1drv.com/y4p4ETq...png?psid=1
No puedo acceder por https, otra cosa que me gustaría saber, es como puedo hacer para cuando comparta un archivo por medio de un enlace no me aparezca la ip local de mi NAS sino mi ddns como por ejemplo https://pepito.duckdns.org:10443?.
Muchas gracias.
Saludos
No veo el enlace a tu imagen. Para próximas veces se puede usar imgur para ello.

Lo del enlace pepito.DuckDNS.org habrás de agregarlo en la configuración del NextCloud como dirección de confianza.

Luego en tu router has de abrir el puerto 10443 para que vaya a la ip de tu nas y entiendo que tu nas hará la tedireccion a la ip de tu Docker (Nextcloud) a su puerto 443.
Un saludo

Agur eta ondo ibili

Ganekogorta (TS-469Pro, TVS-673e, QBoat Sunny, TS-453Be, TR-002 y QHora-301w) Ʀɐɯ0η
  Responder
#24
(17-04-2021, 10:43 PM)Ganekogorta escribió:
(17-04-2021, 05:12 PM)cristianpanama escribió: Hola buenas tarde, gracias al creador del post por compartir.
De nada [emoji3]
(17-04-2021, 05:12 PM)cristianpanama escribió: Necesito por favor ayuda para solucionar algunos problemas que tengo.
Tengo el servicio funcionando, pero resulta que el apartado del tutorial de poder usar el protocolo ssl (https) no me esta funcionando, ya que creo que a la hora de instalar me sale como que no esta operativo, eso creo entender. Pondré una imagen: https://vwp9eq.am.files.1drv.com/y4p4ETq...png?psid=1
No puedo acceder por https, otra cosa que me gustaría saber, es como puedo hacer para cuando comparta un archivo por medio de un enlace no me aparezca la ip local de mi NAS sino mi ddns como por ejemplo https://pepito.duckdns.org:10443?.
Muchas gracias.
Saludos
No veo el enlace a tu imagen. Para próximas veces se puede usar imgur para ello.

Lo del enlace pepito.DuckDNS.org habrás de agregarlo en la configuración del NextCloud como dirección de confianza.

Luego en tu router has de abrir el puerto 10443 para que vaya a la ip de tu nas y entiendo que tu nas hará la redireccion a la ip de tu Docker (Nextcloud) a su puerto 443.
Te pongo la imagen de antes, me registre en la web que me dijiste para las imagenes: https://i.imgur.com/gcttnLG.png

He vuelto hacer la opción de usar https y esto es lo que me sale al final, no se porque me dice abortado: https://i.imgur.com/xtO9zef.png

A que parte de refieres de agregar mi ddns como dirección de confianza?, lo del puerto redireccione el puerto WAN 10443 a LAN 443 de mi ip de mi NAS, lo que no te entendi es, de que mi NAS hace la redirección a la ip de mi DOCKER Nextcloud, si me puedes iluminar.

Logre instalar el proceso de el https, pero sigue sin querer entrar por https, te muestro unas imagenes de la instalacion: https://i.imgur.com/Qt1H6AE.png
https://i.imgur.com/kOmYOIx.png

Al hacer este tutorial estoy teniendo conflicto en el puerto  443, ya que ese puerto ya esta configurado en el router con la ip del nas y la ip del nextcloud viene siendo la misma del nas; resulta que cuando pongo la 192.168.1.19:443 me abre la pantalla principal del escritorio NAS y no nextcloud, como puedo solucionar este inconveniente o cambiar la ip de nextcloud?

Y por ultimo no menos importante, para mi creo que la mas importante, como seria el proceso de actualizar el docker cuando exista?. Te lo pregunto ya que dices en el tutorial de que con este metodo de instalacion podemos beneficiarnos de estas ventajas que detallas:

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  [Imagen: wink.png]
-tenemos contenedores de con las aplicaciones oficiales en su última versión.

 Podrías hacernos eso pasos o explicárnoslo, 

Muchas gracias. 
Saludos
  Responder
#25
(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


Buenos dias grupo, queria saber si a alguno de vosotros les pasa que despues de tener el tutorial funcionando al completo (ssl, base de dato, etc) a la hora de querer iniciar sesion en la direccion del dominio, por ejemplo: pepito.duckdns.org con traefik de por medio para los ssl, les queda en un bucle de inicio de sesion?.

Aqui una imagen:

[Imagen: jcF6j0O.png]
  Responder
#26
Hola
¿Has agregado esas direcciones como permitidas en el archivo de configuración del nextcloud?

¿Estás accediendo desde tu red local o desde el exterior de tu red?
Un saludo

Agur eta ondo ibili

Ganekogorta (TS-469Pro, TVS-673e, QBoat Sunny, TS-453Be, TR-002 y QHora-301w) Ʀɐɯ0η
  Responder
#27
(19-05-2021, 10:23 PM)Ganekogorta escribió: Hola
¿Has agregado esas direcciones como permitidas en el archivo de configuración del nextcloud?

¿Estás accediendo desde tu red local o desde el exterior de tu red?
Las direcciones están agregadas como permitidas, eso correcto. Estoy en mi pc de sobremesa entrando a la dirección que ves en la imagen y queda en ese bucle, lo he probado en mi dispositivo móvil con mi conexión de datos y también queda en bucle.

Sabes donde se encuentra el archivo apache virtual host 443 que hay que modificar para poner las rutas de los certificados descargados?

Con este comando que es lo que haces, que ordenes da?: se podria usar los certificados generados por certbot?

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
  Responder
#28
Hola

¿No será un problema de caché del navegador? Prueba a borrarla

Qnap tiene una versión de Linux “retocada” y no es estándar.
También tuve tu mismos problema y pasé a activar certificados personalizados con letsencrypt.
Pero no va fino, siempre me pasaba algo al hacerlo o renovar desde los apartados integrados en QTS.

Luego pase a crear/renovar desde una VM de Linux estándar. Pero el distribuirlo en varios sitios y varias nas cada 3 meses era una lata.

Y como vi que me pasaba con más dockers (aumentando en número) y aplicaciones qpkg instaladas, opté por hacerlo centralízalo todo con traefik. Ganado además un poco el nivel de seguridad.

Así, de esa forma sólo actualizo lo de traefik y las máquinas físicas que pueden publicar algo al exterior.

QTS debería permitir hacerlo más fácilmente, pero claro… no compraríamos los que vende Qnap. Tal vez deberían analizar cuantas ventas de certificados han hecho y si les merece la pena dificultarlo tanto al usuario.
Un saludo

Agur eta ondo ibili

Ganekogorta (TS-469Pro, TVS-673e, QBoat Sunny, TS-453Be, TR-002 y QHora-301w) Ʀɐɯ0η
  Responder
#29
(20-05-2021, 07:46 AM)Ganekogorta escribió: Hola

¿No será un problema de caché del navegador? Prueba a borrarla

Qnap tiene una versión de Linux “retocada” y no es estándar.
También tuve tu mismos problema y pasé a activar certificados personalizados con letsencrypt.
Pero no va fino, siempre me pasaba algo al hacerlo o renovar desde los apartados integrados en QTS.

Luego pase a crear/renovar desde una VM de Linux estándar. Pero el distribuirlo en varios sitios y varias nas cada 3 meses era una lata.

Y como vi que me pasaba con más dockers (aumentando en número) y aplicaciones qpkg instaladas, opté por hacerlo centralízalo todo con traefik. Ganado además un poco el nivel de seguridad.

Así, de esa forma sólo actualizo lo de traefik y las máquinas físicas que pueden publicar algo al exterior.

QTS debería permitir hacerlo más fácilmente, pero claro… no compraríamos los que vende Qnap. Tal vez deberían analizar cuantas ventas de certificados han hecho y si les merece la pena dificultarlo tanto al usuario.
Lo de la cache lo probe, pensando que podia ser, utilizo ccleaner para esos meresteres, sin resultado exitoso.
Lo de la version linux que tiene qnap, lo lei hace mucho en un post por internet, posiblemente estos sea parte del problema. Lo que si he notado, es que usando docker en ves de VM en rendimiento del nas es mucho mejor, ya que no consumen mucho como la VM.
Yo estoy utilizandoo traefik tambien para el ssl pero no se que pasa que ahora en la app de bitwarden de android me sale esto al querer iniciar sesion
Código:
java.security.cert.CertPathValidatorException: Trust anchor for certification path not found
La apllicacion de plex no puedo verla desde el exterior me sale esto y segui los pasos de un tutorial para implementar plex en docker con traefik:
Código:
Bad Gateway
Y en nextcloud lo que te comente, de que no puedo acceder cuando uso el enlace exterior, me queda el inicio de sesion en bucle, no se yo si podra ser los certificados, pero se descargaron bien con el docker de certbot unos ssl comodin, que como ves estan funcionando en la imagen con traefik.
Cuando descargas los certificados con certbot, sabes que se generan unas carpetas que llevan 4 archivos dentro que son los certificados, de esos cuatro, cuales son los que se utilizan para traefik y de que carpeta los tomas, si de live, archive, etc?...
Para mí, mi problema va ser los certificados, que no me deje entrar las aplicaciones cuando uso los enlaces externos , me huele a certificado. Que opinas?.
  Responder
#30
Hola
Antes de liarnos con las web que publicas, es mejor centrarse sólo una sencilla y vemos si se ve con traefik.
Una vez sepamos que traefik te va bien, se continuaría con nextcloud y lo que venga.

Si lo ves bien. Crea una carpeta dentro de la compartida "web" y llámala "prueba". Dento crea un archivo index.html con el siguiente contenido.

<HTML>
<HEAD>
<TITLE>ejemplo hola mundo</TITLE>
</HEAD>
<BODY>
<P>Hola Mundo</P>
</BODY>
</HTML>

Para comprobar que te funciona. Prueba localmente en tu navegador escribiendo http:\\ip_de_tu_nas\prueba.
Deberías ver un "Hola Mundo".

Si lo ves, vamos ahora con los certificados. ¿qué nombres tienen esos archivos? Sólo debería haber 2.
Un saludo

Agur eta ondo ibili

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




Usuarios navegando en este tema: 1 invitado(s)