Sincronización de nota de obsidiana autohostante (gratis)
Al buscar una nueva aplicación de toma de notas, una puede abrumarse fácilmente. Hay innumerables opciones y aparentemente todas tienen características similares. Algunos grandes jugadores 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 gráfica, enlace entre notas, plataforma cruzada y sincronización fuera de línea. El único defecto importante con Obsidian es que para usar funciones de sincronización, debe pagar $ 8 por mes para usar su servicio. Eso es bueno y todo, pero he encontrado una manera de hacerlo de forma gratuita, que también admite el cifrado E2E. Déjame mostrarte cómo lo hice.
Configurar la cuenta AWS (nivel gratis)
Para ser realmente "gratis", usaremos una cuenta de nivel gratuita de AWS. También podría usar otros proveedores de la 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 y busque EC2, y haga clic en ella.
A continuación, seleccione instancias a la izquierda y haga clic en el botón Big Orange Instancia de lanzamiento en la parte superior derecha. Mantenga toda la configuración como predeterminada y luego (si aún no tiene una), cree un KeyPair SSH. Esto descargará un archivo que finalice con .pem
. Mantenga esto a salvo y no lo comparta. Es cómo accederá a su servidor de ahora en adelante.
A continuación, en la configuración de red, asegúrese de presionar tanto Allow HTTP traffic from internet
como Allow HTTPS traffic from internet
. De lo contrario, su servidor no será accesible.
El último parámetro para configurar es el almacenamiento. El nivel gratuito de AWS permite 20 GB de almacenamiento, por lo que recomiendo establecer su almacenamiento al máximo (20 GB). Termine la creación y envíe sus configuraciones, y será redirigido al tablero de EC2. Ahora debería ver su nueva instancia de EC2 :! _ IMG2_
Haga clic en la ID de instancia y copie la IP pública que se destaca a continuación:
Esta es la IP que usaremos para conectar. Ahora abra un terminal y navegue hasta donde descargó su archivo .pem
. Cambie los permisos de 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.
Configuración de la VM
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 Docker-Compose que configurará un contenedor de proxy y 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/*
Luego entra en conf/local.ini
y cambia authentication_redirect:
de una manera igualmente, usando la misma palabra que eligió para el primer cambio.
Regrese a la Dir Root del Proyecto y cree un archivo .env
, y cree algunas variables de entorno:!
Manejar solicitudes de DNS
Ahora que la imagen está construida, necesitamos darle un buen nombre de dominio. Este tutorial asume que ya posee un dominio. Utilizo CloudFlare para administrar mi DNS, pero esto funcionará con el proveedor de DNS que use. 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 su instancia de EC2 IP pública de los pasos anteriores ..
Si usa CloudFlare, asegúrese de anular la selección de la opción Proxy
Construir y configurar
Todo está construido ahora. Conéctese nuevamente a su instancia de EC2 con SSH e ingrese el directorio de Root Project en el que estábamos trabajando anteriormente. Comience el servicio con:
docker-compose -f docker-compose.yml start
Su servicio ya está arriba, y lo único que queda por hacer es ir a su instancia de CouchDB. En un navegador, navegue a hxxps: // dominio/randomword/_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 usando las credenciales en su archivo .env
y debe ser recibido con una pantalla que se vea así:
En la parte superior de la pantalla, seleccione Create Database
y nombre lo que desee. Seleccione una DB no particionada.
Usarlo con obsidiana
Ahora todo está configurado. Solo necesitas señalar tu obsidiana. En Obsidian, descargue el complemento de la comunidad Self-Hosted LiveSync
: Configuración> complementos comunitarios> navegar
Instalar y habilitarlo, luego en su página de configuración debe ver una pestaña adicional en la izquierda en la parte inferior. Ve allí:
Presione el emoji satelital y complete los campos con su información. Para Uri, querrá poner https://<yourdomain>.com/<randomword>
Tenga en cuenta que no hay un corte al final. Para nombre de usuario y contraseña, coloque lo que escribió en el archivo .env
. Nombre de la base de datos es la base de datos que creó en la instancia de CouchDB.
Para el cifrado E2E, seleccione el control deslizante End to End Encryption
y cree una frase de pases. Esto creará una contraseña maestra que puede usar para cifrar sus notas. Aplique su configuración y presione el botón Big Red Enviar cerca de la parte inferior del panel.
E2E es importante porque si alguien lograra entrar en su instancia de DB, encontraría todas sus notas en ClearText. Habilitar este cifrado cifra sus notas antes de dejar su computadora para que la instancia de DB nunca vea sus notas, solo basura revuelta:
A continuación, presione el emoji de intercambio y seleccione Livesync (o cualquier momento de sincronización que prefiera) ._ IMG11_
Usir Livesync te dará esta funcionalidad, no es muy útil, pero muy genial ._ img12_
Conclusión
Ahora, en cualquier dispositivo que desee sincronizar, simplemente repita la última sección. He incluido una imagen de cómo va el flujo básico al sincronizar a continuación si está interesado. Además, vale la pena mencionar que el nivel libre de AWS está limitado a 750 horas de cómputo por mes (creo), por lo que esta podría ser una razón para que usted esté a la sincronización periódica en lugar de Livesync.