7 Notas Todos los Colores (o de cómo montar Joplin como servidor privado de notas y listas de tareas)
¡Ah! Aún recuerdo la primera vez que un compañero de trabajo me mostró Evernote. La arrogancia del inicio de mi madurez no me dejaba ver que no siempre iba a tener la misma memoria y aparte incluso en aquellos años, más de una década ya, no me sentía yo nada cómodo con la idea de poner aquellas cosas que yo considero más importantes en el servidor de una empresa americana que a saber qué hace con ése contenido.
¿Qué ha pasado hoy con Evernote? Pues más o menos lo mismo que con casi todas éstas empresas de servicio cloud barato que viene a cambiarte la vida, despidos de plantilla, adquisiciones, subidas de precios... en fin, a lo que ya debería uno estar acostumbrado.
Tomar notas es bueno. Y a veces hay tareas que hacer que requieren listas, como por ejemplo... la compra. Es más, es probable que quieras compartir tu lista de tareas con otra persona. Todo ésto es bueno y agradable.
Si bien éstas iniciativas de desplegar software en tu propio entorno pueden ser tomadas a veces como una suerte de neoludismo, lo cierto es que en la mayoría de los casos no es tanto el conflicto con la tecnología si no con quién es el propietario de ésta, pero... ¿y si pudiéramos montarnos nuestro propio Evernote? Con su aplicación de ordenador, de móvil. Con su lenguaje Markdown, con sus tags para clasificar sus notas, sus libretas para agrupar notas del mismo tipo, su capacidad de guardar texto e imágenes...
Pues podemos.
Hay, como siempre, muchas opciones, en éste humilde espacio llevamos años usando Joplin. De lo que hemos probado nos parece lo más apañao.
Como hemos tratado ya con cariño y detenimiento cómo montar cosas en contenedores y cómo acceder a ésas cosas desde fuera de casa sin recordar nombres raros ni abrir puertos en el router, vamos directamente a por el docker-compose.
version: '3'
services:
app:
image: joplin/server:latest
container_name: joplin
depends_on:
- db
ports:
- "22300:22300"
environment:
- APP_PORT=22300
- APP_BASE_URL=*https://tunombreparajoplin.tudominio.com*
- DB_CLIENT=pg
- POSTGRES_PASSWORD=*tu_password_de_base_de_datos*
- POSTGRES_DATABASE=joplin
- POSTGRES_USER=joplin
- POSTGRES_PORT=5432
- POSTGRES_HOST=db
- MAILER_ENABLED=1
- MAILER_HOST=*tu_dominio_de_envio_de_mail*
- MAILER_PORT=*con_su_puerto*
- MAILER_SECURE=1
- MAILER_AUTH_USER=*el_usuario_que_envia_mails*
- MAILER_AUTH_PASSWORD=*con_su_password*
- MAILER_NOREPLY_NAME=*el_nombre_de_remitente*
- MAILER_NOREPLY_EMAIL=*la_direccion_del_remitente*
restart: always
db:
image: postgres:15.4
container_name: joplin_db
ports:
- "5442:5432"
volumes:
- *tu_ruta_para_almacenar_la_base_de_datos*:/var/lib/postgresql/data
environment:
- POSTGRES_PASSWORD=*tu_password_de_base_de_datos*
- POSTGRES_USER=joplin
- POSTGRES_DB=joplin
restart: always
Varios comentarios aquí, vamos a por ello:
- Existe versión de docker tanto para cpu intel como para arm (en una Raspberry por ejemplo)
- Las opciones de envío de mails son opcionales, si no queréis enviar mails las quitáis todas
- Ésto de poner passwords en los docker-compose está feísimo, ya llegaremos a éso
- Como véis, Joplin no requiere almacenamiento propio porque guarda todo en una base de datos. Podéis escoger entre SQLite o un Postgre. En mi caso, habiendo PostgreSQL que se quite todo lo demás
Y no hay que hacer nada más, ya lo tenéis chutando. Ahora os vais a vuestro proxy inverso que montamos hace un tiempo y le decís que todo lo que llegue al puerto 443 con nombre https://tunombreparajoplin.tudominio.com os lo redirija a la máquina donde esté el docker al puerto 22300 y a disfrutar de vuestro propio servidor de notas.
El servidor en realidad hace de correveidile entre las distintas apps que existen. Como decíamos, hay app para iOS, para Android, para Windows, Mac y Linux. Cuando creáis una nota (o borráis) en cualquiera de los clientes, el servidor lo sincroniza con el resto de los clientes.
¿Qué pinta tiene Joplin? Pues ésta (sacada de la página de Joplin):
¿Qué podéis hacer con Joplin? Vamos a hacer una lista
- Tomar notas (ja)
- Listas de tareas
- Guardar en las notas imágenes, vídeos, audios, expresiones matemáticas, diagrámas o integrarlo con la cámara de vuestro móvil
- Compartir y publicar notas
- Guardar páginas enteras desde el navegador
El servidor, que es open source os proporciona:
- Soporte a Markdown y emojis (que es una cosa muy importante)
- Gestión de usuarios
- Sincronización entre todos los dispositivos
- Cifrado extremo a extremo (E2EE)
- Poner iconos cuquis en las notas
- Búsqueda en las notas
- Posibilidad de cambiar la pinta que tiene incluyendo estilado oscuro
- Sincroniza a toda leche
Como véis es de lo más completo. Además se puede ampliar con plugins, pero no os lo cuento porque no me he metido yo con ése tema, la verdad.
Si lo probáis y os convence, os invito a pasaros por el github del desarrollador y darle un poco de cariño, que éstas cosas las hace la gente por amor a la tecnología.