Hace ya algún tiempo estuve buscando aplicaciones para notas y me encontré con Turtl Notes que actualmente es una aplicación que uso tanto en Android como en mis ordenadores. Esta aplicación me encanta y por eso estoy colaborando con la traducción en catalán y castellano. Aún así, uso el servidor que hay por defecto y hace ya algún tiempo estuve buscando como tener mi propio servidor de Turlt.
Requisitorios
Primero necesitamos instalar estos paquetes:
Instalación de libuv
Libuv es una librería que nos permitirá sincronizar los datos. Para instalar esta librería nos posicionamos en la siguiente ruta:
Nos descargamos la librería:
La descomprimimos:
Y ahora compilamos:
Instalación de RethinkDB
Ahora toca instalar RethinkDB, que es una base de datos a tiempo real para guardar las notas y demás información. Para instalar RethinkDB en Debian añadimos este repositorio:
Nos descargamos la llave pública y la añadimos:
Y actualizamos repositorios:
Finalmente instalamos RethinkDB:
Utilizaremos la configuración por defecto, así que copiaremos la configuración default:
Y reiniciamos el servicio:
Instalación Common Lisp
Common Lisp es un lenguaje, y tiene muchas implementaciones diferentes. Turtl funciona bien en CCL, nos posicionamos:
Y descargamos el paquete:
Copiamos los ficheros en la carpeta /usr/local/bin para poder ejecutar los scripts:
Iniciamos lisp con el comando:
Para salir:
Instalación de QuickLisp
QuickLisp es un administrador para la biblioteca de Common Lisp. Creamos un usuario no privilegiado para Turlt:
Descargamos dos paquetes, QuickLisp y ASDF:
Instalamos los paquetes:
Se iniciará una shell especifica para lisp, y desde allí instalaremos los paquetes:
Para salir:
Eliminamos los paquetes instalados:
Instalar Turtl Server
Ahora toca instalar la API de Turtl, nos lo descargamos de GitHub:
Creamos un fichero para escribir comandos de lisp:
Copia lo siguiente:
Salimos del usuario no privilegiado y volvemos al usuario root:
Ahora instalamos algunas dependencias que faltan el QuickLisp (puede haber paquetes innecesarios en la lista, pero no lo tengo muy claro). Nos posicionamos:
Descargamos de GitHub:
Modificamos el fichero de inicialización de ccl:
Copiamos lo siguiente al final de todo:
Creamos un fichero de configuración para Turlt:
Lo editamos:
Configuramos los parámetros *site-url*, *admin-email* y *email-from*, con nuestra URL (o IP), y dos correos electrónicos.
Ahora es el momento de iniciar ccl con el usuario turtl, que debería de cargar y construir la API automáticamente:
Ejecutamos:
Aquí es cuando Turlt creará un esquema para la DB y lo lanzará. A partir de ahora deberías de poder acceder al servidor a través de un cliente con el server que has configurado anteriormente (algo así como http://turtl.tudominio.com:8181). Si lo intentas hacer en el navegador recibirás un error “Authentication failed.” ya que actualmente no hay una interfaz web.
Salimos haciendo Ctrl + C y salimos de Lisp. Ahora volvemos al usuario root:
Configuramos Turtl para que inicie al cargar:
Añade al final pero por encima del “exit 0” lo siguiente:
Reiniciamos y comprobamos que nuestro cliente se conecta a nuestro servidor de Turtl:
Yo he configurado una IP local, ya que todo esto lo estoy haciendo desde una maquina virtual, y mi configuración es la siguiente:
Creamos un usuario nuevo y podremos iniciar sesión sin problema:
Configurando el cliente para utilizar nuestor servidor |
Iniciando sesión con nuevo usuario (que hemos registrado anteriormente) |
Actualmente estamos usando HTTP, lo ideal sería utilizar HTTPS, por lo que se debería de configurar el servicio Turtl a través de Apache o Nginx para implementar HTTPS.
Fuentes: Running Turtl | Libuv Documentation | Common-Lisp | RethinkDB Documentation | QuickLisp Documentation | Guide – How To install Turlt | portallinux