Sincronización de notas de Obsidian con alojamiento propio (gratis)

· 6min · Juicecat

Al buscar una nueva aplicación para tomar notas, uno puede sentirse fácilmente abrumado. Existen innumerables opciones y aparentemente todas tienen características similares. Algunos actores importantes en la comunidad de toma de notas incluyen:

Personalmente terminé eligiendo una aplicación llamada Obsidian. Hasta ahora ha sido genial. Tiene todas las características que creo que no son negociables: vista de gráficos, vinculación entre notas, multiplataforma y sincronización sin conexión. El único defecto importante de Obsidian es que para utilizar las funciones de sincronización, debes pagar 8 dólares al mes para utilizar su servicio. Eso está bien y todo, pero encontré una manera de hacerlo gratis, que también admite el cifrado E2E. Déjame mostrarte cómo lo hice.

Configurar una cuenta de AWS (nivel gratuito)

Para que sea realmente "gratuito", utilizaremos una cuenta de nivel gratuito de AWS. También puedes utilizar otros proveedores de nube como Oracle Azure, pero AWS es mi elección.

Después de haber creado su cuenta, vaya a la barra de búsqueda en la parte superior de la página, busque EC2 y haga clic en él.index.md-1.png

A continuación, seleccione instancias a la izquierda y haga clic en el botón naranja grande Instancia de lanzamiento en la parte superior derecha. Mantenga todas las configuraciones predeterminadas y luego (si aún no tiene una), cree un par de claves SSH. Esto descargará un archivo que termina en .pem. Mantén esto seguro y no lo compartas. Así es como accederás a tu servidor a partir de ahora.

A continuación, en la configuración de red, asegúrese de presionar Allow HTTP traffic from internet y Allow HTTPS traffic from internet. De lo contrario, no se podrá acceder a su servidor.index.md-2.png

El último parámetro a configurar es el almacenamiento. El nivel gratuito de AWS permite 20 GB de almacenamiento, por lo que recomiendo configurar su almacenamiento al máximo (20 GB). Termine la creación y envíe sus configuraciones, y será redirigido al panel de ec2. Ahora deberías ver tu nueva instancia ec2:!index.md-3.png

Haga clic en el ID de instancia y copie la IP pública resaltada a continuación:index.md-4.png

Esta es la IP que usaremos para conectarnos. Ahora abra una terminal y navegue hasta donde descargó su archivo .pem . Cambie los permisos del archivo con chmod 400 <file>.pem, luego conéctese a su instancia con ssh -i <file>.pem ec2-user@<ip>, donde <ip> es la IP pública que copió en el último paso.

Configurando la máquina virtual

Ahora que tenemos acceso a nuestra máquina, necesitamos instalar algunas dependencias:

yum install git -y && amazon-linux-extras install docker

Luego, habilite Docker como servicio:

systemctl start docker && systemctl enable docker

A continuación, clone this repo que contiene un archivo de composición acoplable que configurará un proxy inverso y un contenedor CouchDB:

git clone https://github.com/vrtmrz/self-hosted-livesync-server.git

Vaya a ese directorio y edite el docker-ccompose.yml. Cambie el caddy_handle_path_1 de /e=_/* a algo como /randomword/* index.md-5.png

Luego ingresa a conf/local.ini y cambia authentication_redirect: de la misma manera, usando la misma palabra que elegiste para el primer cambio.

Vuelva al directorio raíz del proyecto, cree un archivo .env y cree algunas variables de entorno:! index.md-6.png

Manejar solicitudes de DNS

Ahora que la imagen está creada, debemos darle un bonito nombre de dominio. Este tutorial asume que ya posee un dominio. Utilizo CloudFlare para administrar mi DNS, pero funcionará con cualquier proveedor de DNS que utilice. Si no está seguro, consulte con el registrador donde compró el dominio. Querrá agregar un registro A en el mismo subdominio que escribió en el archivo .env y querrá que apunte a la IP pública de su instancia EC2 de los pasos anteriores. index.md-7.png

Si usa CloudFlare, asegúrese de anular la selección de la opción de proxy

Construyendo y configurando

Todo está construido ahora. Conéctese nuevamente a su instancia EC2 con SSH e ingrese al directorio raíz del proyecto en el que estábamos trabajando anteriormente. Inicie el servicio con:

docker-compose -f docker-compose.yml start

Su servicio ya está activo y lo único que queda por hacer es ir a su instancia de CouchDB. En un navegador, navegue hasta hxxps://dominio/palabra aleatoria/_utils, donde <randomword> fue la palabra que eligió en lugar de e=_ y <domain> es la misma que especificó en el archivo .env. Inicie sesión con las credenciales de su archivo .env y debería aparecer una pantalla como esta:index.md-8.png

En la parte superior de la pantalla, selecciona Create Database y asígnale el nombre que quieras. Seleccione una base de datos no particionada.

Utilizándolo con obsidiana

Ahora todo está configurado. Sólo necesitas apuntarle con tu obsidiana. En obsidiana, descarga el complemento de la comunidad Self-Hosted LiveSyncConfiguración>Complementos de la comunidad>Buscarindex.md-9.png

Instálelo y habilítelo, luego en su página de configuración debería ver una pestaña adicional a la izquierda en la parte inferior. Ir allí: index.md-10.png

Presiona el emoji del satélite y completa los campos con tu información. Para URI, querrás poner https://<yourdomain>.com/<randomword> Ten en cuenta que no hay una barra al final. Para nombre de usuario y contraseña, coloque lo que escribió en el archivo .envNombre de la base de datos es la base de datos que creó en la instancia de CouchDB.

Para cifrado E2E, seleccione el control deslizante End to End Encryption y cree una frase de contraseña. Esto creará una contraseña maestra que podrá utilizar para cifrar sus notas. Aplique su configuración y presione el gran botón rojo Enviar cerca de la parte inferior del panel.

E2E es importante porque si alguien lograra ingresar a su instancia de base de datos, encontraría todas sus notas en texto sin cifrar. Al habilitar este cifrado, se cifran sus notas antes de salir de su computadora para que la instancia de base de datos nunca vea sus notas, solo basura codificada:index.md-11.png

Luego, presione el emoji de intercambio y seleccione LiveSync (o el momento de sincronización que prefiera).index.md-12.png

El uso de LiveSync le brindará esta funcionalidad. No es muy útil, pero sí muy interesante.

Conclusión

Ahora, en cualquier dispositivo que desees sincronizar, simplemente repite la última sección. He incluido una imagen de cómo va el flujo básico cuando se sincroniza a continuación si está interesado. Además, vale la pena mencionar que el nivel gratuito de AWS está limitado a 750 horas de computación por mes (creo), por lo que esta podría ser una razón para realizar una sincronización periódica en lugar de LiveSync. index.md-13.png


Tags