Turtl es una alternativa segura y encriptada de Evernote. Es una aplicación de código abierto que le permite tomar notas, marcar sitios web, almacenar documentos, compartir contraseñas con sus compañeros de trabajo. Turtl le permite tomar el control de todos sus datos en el lugar privado. El código fuente de la aplicación turtl client y turtl server está disponible en github, y puede implementarlo manualmente en su servidor.
En este tutorial, le mostraremos paso a paso cómo instalar y configurar el servidor Turtl en Ubuntu 16.04. El servidor Turtl está escrito en Common Lisp, por lo que debemos instalar Common Lisp y QuickLisp en el sistema. Este tutorial también cubrirá cosas como la instalación de Libuv en un sistema Ubuntu y la instalación de RethinkDB para el almacén de datos de Turtl.
Requisitos previos
- Ubuntu 16.04
- Privilegios de raíz
Qué haremos
- Instalar dependencias
- Instalar Libuv en Ubuntu 16.04
- Instalar y configurar RethinkDB
- Instalar Common Lisp
- Instalar Quicklisp
- Descargar e instalar el servidor Turtl
- Ejecutar Turtl Server como servicio
- Instalar y configurar Apache como proxy inverso para Turtl
- Pruebas
Paso 1 - Instalar dependencias
Actualice el repositorio de su servidor Ubuntu, luego actualice el sistema.
sudo apt update
sudo apt upgrade
Ahora instale algunos paquetes requeridos, incluidos git, wget y automake, usando el comando apt a continuación.
sudo apt install wget curl libtool subversion make automake git -y
Paso 2:instalar Libuv en Ubuntu 16.04
Libuv es una biblioteca de soporte multiplataforma enfocada en E/S asíncrona. El servidor de Turtl necesita esta biblioteca y la instalaremos manualmente.
Vaya al directorio '/usr/local/src' y descargue el archivo comprimido Libuv usando wget.
cd /usr/local/src
wget http://dist.libuv.org/dist/v1.9.1/libuv-v1.9.1.tar.gz
Extraiga el archivo libuv.tar.gz y elimínelo.
tar -xf libuv-v1.9.1.tar.gz
rm libuv-v1.9.1.tar.gz
Vaya al directorio libuv.
cd libuv-v1.9.1
Ahora cree la biblioteca Libuv con autotools:ejecute todos los comandos a continuación.
sh autogen.sh
./configure
make
make install
Y cuando esté completo, obtendrá el resultado como se muestra a continuación.
La biblioteca Libuv se ha agregado al sistema en el directorio '/usr/local/lib'.
Paso 3:instalar RethinkDB
RethinkDB es una base de datos orientada a documentos distribuida y de código abierto, y el almacén de datos del servidor Turtl utiliza RethinkDB.
En este paso, instalaremos RethinkDB desde su propio repositorio oficial.
Agregue el repositorio RethinkDB al sistema.
echo "deb http://download.rethinkdb.com/apt $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/rethinkdb.list
Descargue y agregue la clave.
wget -qO- https://download.rethinkdb.com/apt/pubkey.gpg | sudo apt-key add -
Actualice el repositorio de Ubuntu e instálelo usando los comandos apt a continuación.
sudo apt update
sudo apt install rethinkdb -y
Una vez completada la instalación, copie la configuración predeterminada en el directorio '/etc/rethinkdb/instances.d'.
cp /etc/rethinkdb/default.conf.sample /etc/rethinkdb/instances.d/default.conf
Y reinicie el servicio rethinkdb.
systemctl restart rethinkdb
systemctl enable rethinkdb
RethinkDB se ha instalado en el sistema Ubuntu; verifíquelo con el siguiente comando.
netstat -plntu
Paso 4:instalar Common Lisp (CL)
Common Lisp (CL) es un dialecto del lenguaje de programación Lisp, es un miembro de la familia Lisp.
En este paso, instalaremos manualmente 'Clozure Common Lisp' en el sistema Ubuntu.
Vaya al directorio '/usr/local/src' y descargue 'Clozure Common Lisp' para Linux 86/64-bit usando el comando wget.
cd /usr/local/src
wget https://github.com/Clozure/ccl/releases/download/v1.11.5/ccl-1.11.5-linuxx86.tar.gz
Extraiga el archivo comprimido 'Common Lisp' y elimínelo.
tar -xf ccl-1.11.5-linuxx86.tar.gz
rm -f ccl-1.11.5-linuxx86.tar.gz
Y obtendrá el directorio 'ccl'. Vaya al directorio 'ccl' y copie el archivo bin 'ccl64' en el directorio '/usr/local/bin'.
cd /usr/local/src/ccl
sudo cp scripts/ccl64 /usr/local/bin/
Ahora verifique la instalación de 'Common Lisp' ejecutando el comando 'ccl64'.
ccl64
Y asegúrese de obtener el resultado que se muestra a continuación.
'Clozure Common lisp' ahora ha sido instalado. Y si desea salir del shell 'ccl', escriba el comando de salida como se muestra a continuación.
(quit)
Paso 5:instalar Quicklisp
Quicklisp es un administrador de bibliotecas para Common Lisp. Necesitamos 'Quicklisp' instalado en el sistema porque Turtl carga todas sus dependencias a través del sistema Quicklisp.
Antes de instalar Quicklisp, agregue un nuevo usuario para la instalación de turtl.
useradd -m -s /bin/bash turtl
passwd turtl
Ahora inicie sesión como usuario 'turtl'.
su - turtl
Descargue los archivos 'quicklisp.lisp' y 'asdf.lisp' usando los comandos wget/curl de la siguiente manera.
wget https://common-lisp.net/project/asdf/asdf.lisp
curl -O https://beta.quicklisp.org/quicklisp.lisp
Ahora cargue 'quicklisp.lisp' usando el comando 'ccl64' como se muestra a continuación.
ccl64 --load quicklisp.lisp
Y obtendrá la línea de comando de shell 'ccl'. Instale Quicklisp usando el siguiente comando.
(quicklisp-quickstart:install)
El comando descargará todas las dependencias para Quicklisp. Y una vez que esté completo, agregue el archivo 'init' de Quicklisp y cargue 'asdf.lisp'.
(ql:add-to-init-file)
(load (compile-file "asdf.lisp"))
Cuando esté completo, salga del shell 'ccl'.
(quit)
Y elimine los archivos 'quicklisp.lisp' y 'asdf.lisp'.
rm -f asdf.lisp quicklisp.lisp
Quicklisp se ha instalado en el sistema con el usuario 'turtl'.
Paso 6:descarga e instalación de turtl
En este paso, instalaremos Turtl a través del usuario 'turtl' que ya hemos creado.
Inicie sesión como usuario 'turtl' y clone el código fuente de turtl usando git.
su - turtl
git clone https://github.com/turtl/api.git
Vaya al directorio 'api' y cree un nuevo archivo llamado 'launch.lisp' usando vim.
cd /home/turtl/api
vim launch.lisp
Pegue la siguiente configuración allí.
(pushnew "./" asdf:*central-registry* :test #'equal)
(load "start")
Guardar y salir.
A continuación, necesitamos instalar algunas dependencias para turtl. Vaya al directorio quicklisp y clone todas las dependencias.
cd ~/quicklisp/local-projects
Descargue todas las dependencias ejecutando los comandos a continuación.
git clone git://github.com/orthecreedence/cl-hash-util
git clone git://github.com/orthecreedence/vom
git clone git://github.com/orthecreedence/cl-async
git clone git://github.com/orthecreedence/cffi
git clone git://github.com/orthecreedence/wookie
git clone git://github.com/orthecreedence/cl-rethinkdb
git clone git://github.com/orthecreedence/cl-libuv
git clone git://github.com/orthecreedence/drakma-async
git clone https://github.com/Inaimathi/cl-cwd.git
Y edite el archivo de inicio de CCL.
vim /home/turtl/.ccl-init.lisp
Vaya al final y pegue la siguiente configuración allí.
(cwd "/home/turtl/api")
(load "/home/turtl/api/launch")
Guardar y salir.
Ahora copie la configuración predeterminada de turtl 'config.lisp y edítela usando vim.
cp /home/turtl/api/config/config.default.lisp /home/turtl/api/config/config.lisp
vim /home/turtl/api/config/config.lisp
En la línea 'server-bind', agregue la dirección IP del host local como se muestra a continuación.
defvar *server-bind* "127.0.0.1"
Guardar y salir.
Una vez completada toda la configuración, inicie el servidor turtl con el comando 'ccl64'.
ccl64
El comando instalará la API del servidor Turtl y, cuando esté completa, obtendrá el resultado que se muestra a continuación.
Presione 'Ctrl + c' para salir.
El servidor Turtl ahora se ejecuta bajo la dirección IP local "127.0.0.1" con el puerto "8181".
Abra una nueva terminal de su servidor, luego compruébelo usando el comando netstat a continuación.
netstat -plntu
Y deberías obtener el resultado como se muestra a continuación.
Paso 7:ejecutar Turtl como servicio
La API del servidor Turtl se ha instalado a través del usuario 'turtl'. Y para este tutorial, ejecutaremos turtl como un servicio.
Vaya al directorio '/lib/systemd/system' y cree un nuevo archivo 'turtl.service' usando vim.
cd /lib/systemd/system/
vim turtl.service
Pegue la siguiente configuración del servicio turtl allí.
[Unit]
Description=turtl_service
After=network.target mysql.service postgresql.service
[Service]
User=turtl
ExecStart=/usr/local/bin/ccl64
Restart=always
[Install]
WantedBy=multi-user.target
Guardar y salir.
Ahora recarga systemd e inicia el servicio turtl usando el comando systemctl.
systemctl daemon-reload
systemctl start turtl
Habilite el servicio turtl para que se inicie cada vez que se inicie el sistema y verifique el estado del servicio turtl.
systemctl enable turtl
systemctl status turtl
Debería obtener el resultado como se muestra a continuación.
El servicio turtl ahora se ejecuta como un servicio en el sistema Ubuntu.
Paso 8:configurar el proxy inverso de Apache para Turtl
En este tutorial, ejecutaremos el servidor Turtl bajo el servidor proxy inverso Apache/httpd. El servidor Turtl se ejecuta en la IP local '127.0.0.1' con el puerto '8181', y ahora instalaremos el servidor web Apache2 y lo configuraremos como un proxy inverso para el servidor Turtl.
Instale apache2 con todas las dependencias usando el comando apt a continuación.
sudo apt install -y apache2 apache2-utils apache2-bin libxml2-dev
Una vez completada la instalación, habilite algunos complementos necesarios ejecutando los siguientes comandos.
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_ajp
sudo a2enmod rewrite
sudo a2enmod deflate
sudo a2enmod headers
sudo a2enmod proxy_balancer
sudo a2enmod proxy_connect
sudo a2enmod proxy_html
sudo a2enmod xml2enc
Ahora reinicie el servidor web Apache2 y habilítelo para que se inicie siempre en el momento del arranque.
systemctl restart apache2
systemctl enable apache2
A continuación, agregue un nuevo host virtual turtl creando un nuevo archivo de configuración 'turtl.conf' en el directorio 'sitios disponibles'.
Vaya al directorio '/etc/apache2/sites-available' y cree una nueva configuración 'turtl.conf' usando vim.
cd /etc/apache2/sites-available/
vim turtl.conf
Pegue la configuración del host virtual a continuación.
<VirtualHost *:80>
ServerName turtl.hakase-labs.co
ServerAdmin [email protected]
ProxyPreserveHost On
ProxyRequests off
ProxyPass / http://127.0.0.1:8181/ Keepalive=On timeout=1600
ProxyPassReverse / http://127.0.0.1:8181/
LogLevel info
CustomLog ${APACHE_LOG_DIR}/turtl.log combined
</VirtualHost>
Guardar y salir.
Ahora active el host virtual turtl y verifique la configuración.
a2ensite turtl
apachectl configtest
Asegúrese de que no obtenga ningún error, luego reinicie el servidor web apache2.
systemctl restart apache2
Verifique el servicio usando el comando netstat.
netstat -plntu
Y asegúrese de obtener el servidor web Apache en el puerto 80 y el servidor API de Turtl en el '127.0.0.1' con el puerto '8181'.
Paso 9 - Prueba
Descarga la aplicación cliente turtl y ábrela.
Haga clic en 'Crear una cuenta'.
Ahora haga clic en el botón 'Recordaré mi inicio de sesión'.
Escriba su dirección de correo electrónico con contraseña y el nombre de dominio de su servidor Turtl.
Y haga clic en el botón 'Unirse'.
Ahora obtendrá la nueva ventana:haga clic en el botón 'omitir este paso'.
Y obtendrá el panel de control de tortugas en blanco. Puede agregar una nueva nota, contraseña, archivos, marcadores, etc.
La instalación del servidor Turtl en Ubuntu 16.04 se completó con éxito.