Skip Navigation

Discusión Random Semanal - Semana del 28/08/23

Este hilo será renovado cada lunes

195

You're viewing a single thread.

195 comments
  • Buenos días gente, aquí mostrando la hilacha de nuevo…

    ¿Alguien aquí se maneja con Docker?

    Hace un tiempo empecé a probar frameworks para cuando me haga un Home-server (HS), originalmente pensé que lo mejor sería usar Debian + CasaOS, un proyecto que hace más "sencillo" manejar un HS o NAS. Al principio usaba Hyper-V en Windows para montar máquinas virtuales y con eso macanée un tiempo pero lo dejé de lado. Y ayer me acordé que existe Windows Subsystem for Linux y dije, ¿Por qué no darle otra oportunidad?

    Hasta ahora todo bien, le puse n8n, Nextcloud y Portainer para probar la utilidad que me puede dar un HS, el tema es que la instalación de esos programas es sencilla gracias a la "AppStore" de CasaOS, que maneja toda la configuración y lo único que hay que hacer es esperar a que el ícono aparezca en la interfaz. Yo feliz porque es super fácil e intuitivo usarlo (demo).

    El problema es tratar de ver algo algo por fuera, un proyecto que me llama la atención y quiero usar es paperless-ngx para gestionar papelería, algo muy útil ya que soy administrador de empresas, pero he cateteado desde ayer en la tarde con la documentación y tutoriales y no logro entender cómo es que se instala, y la mayoría de gente que ha preguntado ha recibido de respuesta "lee la documentación nomás guacho 👍". Agradecería alguien me echara una manito.

    Guatones informáticos debería tener un hilo general para ésta clase de consultas.

    Menuda manerita de empezar un lunes.

    • Tienes varias opciones, pero veamos:

      Full disclosure: no tengo experiencia de primera mano con CasaOS ni paperless.

      La mayoría de las aplicaciones dockerizadas no necesitan instalación, o si la necesitan, es muy mínima y gran parte de las opciones se pueden pasar como parte del entorno del contenedor.

      CasaOS tiene una opción de instalación personalizada, que literalmente es un front end de docker compose.

      Lo primero que vas a necesitar es una versión dockerizadas de paperless. Hay varias organizaciones que se dedican a hacer estas versiones, a veces incluso hay versiones dockerizadas oficiales. Pero el caso más elemental casi siempre está cubierto por una organización llamada linuxserver. Lo mejor de esas distribuciones es que la configuración de sus contenedores es casi siempre consistente, lo que hace que los contenedores se comporten muy bien entre unos y otros. Tengo entendido que la tienda de aplicaciones de CasaOS es un front end a los dockerfiles de linuxserver.

      El paperless dockerizado se encuentra aquí junto con la documentación. Linuxserver dejó de distribuir Paperless en favor de la distribución oficial. Notarás que hay varias opciones de docker compose, si no sabes cuál ocupar, te recomiendo la que se llama docker-compose.sqlite. Ese archivo es la configuración de compose y explica qué hacen cada uno de los valores. Te recomiendo que instales esta distribución y te familiarices con qué hacer cada una de las opciones, si haces algo mal, rehaces el contenedor y todo vuelve a cero.

      Para instalarlo, tienes varias opciones:

      1. Ocupa el custom install de CasaOS, es copiar y pegar desde la configuración de compose a la pantallita de instalación.
      2. Ya tienes instalado Portainer, usa la opción de stacks de Portainer que es otro frontend de docker compose, este es aún más literalmente copiar y pegar.

      Cuando estés más en confianza con qué hace cada opción de la configuración, puedes comenzar a ver cómo integrar la aplicación a tus otros servicios, por ejemplo hacer que paperless ocupe el almacenamiento de Nextcloud.

      La primera opción que te invito a revisar es ports. el webserver de paperless quiere ocupar el puerto 8000 del huésped para exponer el puerto 8000 del contenedor, esto se expresa así:

      8000:8000

      Si por ejemplo ya tuvieses otra aplicación en el puerto 8000, docker no levantaría porque el puerto estaría ocupado. Para cambiarlo al puerto 8080 del huésped, lo escribirías así:

      8080:8000

      Nota que no puedes cambiar el puerto 8000 sin cambiar el funcionamiento del contenedor, pero puedes elegir cualquier pero de tu máquina (el primer número)

    • Pregunta acá mejor: https://feddit.cl/c/tecnologia

    • Tienes que echar a andar el docker compose que más te guste, están divididos por bases de datos.

      También supongo que modificar el puerto de salida, que está en el archivo del docker compose.

    • Holaa, yo no he usado CasaOS o aplicaciones que te configuren automáticamente tus contenedores, pero te puedo mostrar la ruta clásica con docker. Para correr un container de docker simple uno puede correr un comando de docker de la siguiente forma:

      docker run paperlessngx/paperless-ngx

      Ahora si intentas correr paperless-ngx asi nomas te dará un error diciéndote que necesitas una base de datos ya que este container no es tan simplecito y requiere de mas containers que funcionan simultáneamente. Para no estar corriendo mas comandos, uno por uno, y estar configurando manualmente, hay una forma de tener toda tu configuración en un archivo y eso son los archivos de docker compose. Uno podría escribir su propio docker compose pero paperless-ngx ya te da algunos que puedes copiar acá. Estos archivos lo puedes descargar usando git (git clone https://github.com/paperless-ngx/paperless-ngx) o también simplemente descargándolos de la pagina de github. Hay varios docker compose dependiendo de la base de datos que quieras usar, yo elegí postgres asi que copie el docker-compose.postgres.yml y ademas tienes que copiar las variables de entorno por defecto docker-compose.env. Después de tener ambos archivos en una carpeta ejecutas docker compose:

      docker compose up

      Tip: También le puedes pasar la opcion -d (detach) para que no te muestre todo el output y no te bloquee la consola.

      Luego esperas un poco y podrás acceder localmente (dentro de tu pc) en tu navegador en la dirección localhost:8000. Esto igual esta documentado en acá y si te fijas hay una opción de instalación mas automática por script, pero normalmente por flexibilidad y costumbre se prefiere configurar manualmente un docker compose.

      Ahora también preguntas sobre acceder por fuera, y depende de que consideras afuera, si quieres acceder fuera de tu red local (fuera de tu casa), es otra aventurita en donde aparte de tener vinculado el puerto del container con el puerto de tu pc (en este caso esto estaba automáticamente configurado dentro del archivo compose) vas a tener que abrir y vincular el puerto en tu router y idealmente tener un dominio junto a un reverse proxy para correr varias aplicaciones y accederlas por un solo puerto.

195 comments