![]() |
Docker KaraKeep para notas, fotos y enlaces - Printable Version +- Foro QNAP en español (https://www.qnapclub.es) +-- Forum: GENERAL (https://www.qnapclub.es/forumdisplay.php?fid=3) +--- Forum: Firmware, Aplicaciones y Tutoriales (https://www.qnapclub.es/forumdisplay.php?fid=39) +---- Forum: VMs & Docker Containers (https://www.qnapclub.es/forumdisplay.php?fid=41) +---- Thread: Docker KaraKeep para notas, fotos y enlaces (/showthread.php?tid=5608) |
Docker KaraKeep para notas, fotos y enlaces - Ganekogorta - 21-06-2025 Hola El compañero Yeraycito de este foro nos habló en el grupo de Telegram de este docker llamado Karakeep Sirve a modo de cuaderno para insertar rápidamente un enlace a una web, una fotografía, un pdf o una nota. permite asignar comentarios y etiquetas al contenido para una mejor clasificación y búsqueda posteriores. Además dispone de app para IOs y para Android. Si lo comparamos con Joplin, Karakeep es mas visual y parece mas amigable. Por ponerlo algún "pero" diré no le veo un motor dedicado de SQL como puede tener Joplin y que para utilizarlo hay que despegar un total de tres dockers. Podemos tenerlo sólo como un docker local y para usarlo desde el exterior deberíamos acceder a la nas vía VPN (OpenVPN, Wireguard, ...) Pero creo que es mas interesante hacerlo público a Internet protegido desde algún tipo de proxy inverso tipo Nginx y así accederíamos a él con una dirección web del tipo "https://misnotas.midominio.eu" Evidentemente hemos de tener instalado en la nas la aplicación Container Station para poder hacerlo instalar y funcionar ![]() Voy a describir como desplegarlo de tres formas distintas: 1-por consola 1.1-con archivo de configuración 1.2-sin archivo de configuración 2-por docker-compose 3-Uso básico 4-Bonus 5-Bonus II 1- Instalación por consola Esta es la forma mas espartana y poco amigable de hacerlo. En cambio es la que funcionará en la mayoría de sistemas sean o no máquinas de QNAP. Además es la que nos permite desplegarla mas fácilmente desplegarlo en máquinas remotas. Abrimos la consola, yo lo haré por Putty, aunque mas programas para ello. Vamos a una carpeta compartida que es donde dejaremos los datos persistentes: Esto se hace para que resistan a reinicios y se mantengan aunque eliminemos el docker. En mi caso tenemos una carpeta compartida llamada "DockerData" (nos es indiferente en que conjunto de almacenamiento esté). El comando para entrar a esa carpeta es Code: cd /share/DockerData Ahora vamos a crear dos claves aleatorias de las que tomaremos nota (copiar y pegar en un bloc de notas) Las claves las generaremos desde la consola ejecutando Code: openssl rand -base64 36 Ahora crearemos en la carpeta donde estamos una nueva carpeta de nombre "karakeep" Code: mkdir karakeep Ahora tenemos dos variantes para hacerlo. Una con archivo de configuración y otra sin él. 1.1-Instalación por consola con archivo de configuración Ahora crearemos en la carpeta donde estamos un archivo de nombre ".env" escribiendo el comando siguiente: Code: touch .env ahora editamos el archivo .env y le añadimos 4 líneas con el siguiente contenido. Como estamos por consola, está es la parte mas "arisca" ya que usaremos el sempiterno editor VI Para comenzar la edición escribimos en la consola Code: vi .env Y escribiremos un contenido como el siguiente con las correspondientes claves anteriormente generadas y la ip local ( o la dns pública que queramos). La versión a usar podemos obtenerla de la web de karakeep desde este enlace. Code: KARAKEEP_VERSION=0.25.0 Para salir del editor VI y guardar los cambios pulsaremos la siguiente secuencia de teclas ESC , carácter de dos puntos (no punto y punto), carácter w, carácter q, carácter ! (cierre de exclamación) y tecla intro Si queremos comprobar el contenido del archivo escribiremos en la consola Code: cat .env La ventaja de usar el archivo de configuración es que estos valores podemos modificarlos y/o consultarlo y/o ocultarlos a otros usuarios de la nas restringiendo el acceso a la carpeta persistente "/share/DockerData/karakeep" Ahora ya podemos lanzar los comandos de creación de los tres contenedores con los siguientes comandos:
Code: docker run -d --restart unless-stopped --name karakeep_meilisearch -v /share/DockerData/karakeep/meilisearch:/meili_data -e "MEILI_NO_ANALYTICS=true" getmeili/meilisearch:v1.13.3
Code: docker run -d --restart unless-stopped --name karakeep_chrome gcr.io/zenika-hub/alpine-chrome:123 --no-sandbox --disable-gpu--disable-dev-shm-usage --remote-debugging-address=0.0.0.0 --remote-debugging-port=9222 --hide-scrollbars
Code: docker run -d --restart unless-stopped --name karakeep_web -p 3000:3000 -v /share/DockerData/karakeep:/data --env-file /share/DockerData/karakeep/.env -e "MEILI_ADDR=http://karakeep_meilisearch:7700" -e "BROWSER_WEB_URL=http://karakeep_chrome:9222" -e "DATA_DIR=/data" -e " ghcr.io/karakeep-app/karakeep:${KARAKEEP_VERSION:-release} Los nombres de los tres dockers comienzan por "karakeep" para que en caso de gestionarlos por nombre nos salgan consecutivos. En el caso del comando del docker principal "karakeep_web", vemos que hay valores y puertos que hacen llamadas a los otros mediante unos puertos específicos (7700 y 9222). No deberíamos alterarlos y si lo hacemos asegurarnos que ambos usan los mismos. Si quisiésemos que karakeep estuviese accesible por un puerto distinto del 3000, debemos cambiar "-p 3000:3000" por "-p nuevo_puerto:3000" y debemos hacerlo también en archivo ".env" Si todo ha ido bien ya debería estar accesible la web "http://192.168.x.y:3000" y presentarnos la web de acceso principal. 1.2-Instalación por consola sin archivo de configuración Este despliegue es mas rápido que el anterior de cara a nos evitamos la creación del archivo de configuración, pero en cambio la cadena de creación será sensiblemente mas larga. Los comandos de creación de los tres contenedores serán los siguientes:
Code: docker run -d --restart unless-stopped --name karakeep_meilisearch -v /share/DockerData/karakeep/meilisearch:/meili_data -e "MEILI_NO_ANALYTICS=true" getmeili/meilisearch:v1.13.3
Code: docker run -d --restart unless-stopped --name karakeep_chrome gcr.io/zenika-hub/alpine-chrome:123 --no-sandbox --disable-gpu--disable-dev-shm-usage --remote-debugging-address=0.0.0.0 --remote-debugging-port=9222 --hide-scrollbars
Code: docker run -d --restart unless-stopped --name karakeep_web -p 3000:3000 -v /share/DockerData/karakeep:/data -e "MEILI_ADDR=http://karakeep_meilisearch:7700" -e "BROWSER_WEB_URL=http://karakeep_chrome:9222" -e "DATA_DIR=/data" -e "NEXTAUTH_URL=http://192.168.x.y:3000" -e "NEXTAUTH_SECRET=la_cadena_alfanumerica que salió al escribir openssl rand -base64 36" -e "MEILI_MASTER_KEY=la_OTRA_cadena_alfanumerica que salió al escribir openssl rand -base64 36" ghcr.io/karakeep-app/karakeep:0.25.0 Si todo ha ido bien ya debería estar accesible la web "http://192.168.x.y:3000" y presentarnos la web de acceso principal. 2-Instalación por docker-compose A diferencia del anterior sistema, aquí de nuevo usamos la consola pero nos basamos un archivo llamado "docker-compose.yml" donde tenemos la definición de los tres dockers y en el archivo ".env" Ambos archivos han de estar ubicados en la carpeta persistente. En nuestro caso en "/share/DockerData/karakeep" El archivo ".env" contendrá lo siguiente Code: KARAKEEP_VERSION=0.25.0 Recordad adaptar la anterior configuración a nuestra configuración pudiendo ser una dirección local o una web pública. Para generar el archivo podemos hacerlo por consola según está explicado en un punto anterior Y el archivo "docker-cmpose.yml" tiene el siguiente contenido: Code: services: Los espacios y tabulaciones son importantes en este archivo. Para hacer el despliegue sólo hemos de ejecutar el siguiente comando de consola estando en "/share/DockerData/karakeep" Code: docker compose up -d Si nos queremos evitar tener el archivo ".env" podemos usar el siguiente archivo "docker-composer.yml" en el hemos incluido las variables definidas en el anterior archivo .env. Luego veremos una desventaja de usar este sistema de no tener el archivo .env Code: services: De nuevo el despliegue se hace con el comando Code: docker compose up -d 3- Uso básico El primer paso es crear un usuario yendo a la opción de "Sing Up" Rellenamos los datos y al ser el primero será con permisos de administración. Una vez dentro del la web tenemos la opcón de agregar una nota, una web o una imagen El funcionamiento es muy intuitivo y sencillo. De hecho parece que no podemos hacer muchas mas cosas. Si queremos cambiarlo de idioma haremos clic en la parte superior derecha donde esta el circulo del usuario Y se nos abre un panel de opciones, entre ellas las del idioma Vemos que hay mas funciones y el autor está aumentándolas ![]() En cuanto al uso en teléfono móvil es similar al de la web, aunque está algo más limitado. Por ejemplo no deja agregar texto a una imagen que ya tenemos, cosa que si podemos desde el ordenador. Al ser un móvil deberemos usar una dns publica que apunte a nuestra docker (a no ser que se quiera usar sólo en casa en una wifi privada) Podemos también hacerlo mediante una Clave API (que podemos generar en el menú de configuración) Si pulsamos sobre el botón con forma de insecto (bug) podemos comprobar el estado del servidor y la conexión En este caso con fallo Si es correcto veremos Si ponemos los datos correctos en la pantalla de login Accederemos a la pantalla siguiente para insertar los contenidos. Y poco mas puedo añadir de este contenedor. Estéticamente me ha gustado mas que Joplin, aunque todavía queda margen para mejorarlo (por ejemplo integrarlo en una BBDD tipo MariaDB o PostgreSQL) Una que cosa que valoro es que dispongamos de clientes nativos para móvil ![]() Espero que os haya gustado y la uséis. Nota Si no hacemos nada, cualquiera podría abrirse una cuenta de usuario (no de administrador) y agregar sus contenidos. Si queremos desactivar hemos de hacer lo siguiente: -detener el contenedor karakeep (no hace falta detener los dos primeros) -agregar una variable DISABLE_SIGNUPS con valor a "true" en el archivo ".env" -volvemos a iniciar el docker Si lo hacemos por Portainer agregando la variable a mano en el docker, no hace falta detenerlo, él se encarga de reiniciarlo con el cambio. Bonus II Bueno, en este enlace tenemos la opción de bajar el qpkg para tener este docker ![]() RE: Docker KaraKeep para notas, fotos y enlaces - yeraycito - 18-07-2025 Una vista de panel de inicio más compacta para navegar por tus marcadores de KaraKeep. Todos los marcadores de KaraKeep se muestran en una sola página, organizados por listas. Esto está pensado para ser un panel muy simple y despejado para tus marcadores; todas las funciones de gestión de marcadores se realizan a través de la aplicación completa de KaraKeep. Instalación en docker: version: '3.8' services: karakeep-homedash: image: ghcr.io/codejawn/karakeep-homedash:latest container_name: karakeep-homedash ports: - "8595:8595" volumes: # Mount the KaraKeep database (read-only) - /path/to/karakeep/db.db:/app/db.db:ro # Mount config directory for persistence - ./config:/app/config restart: unless-stopped |