Turtl è un'alternativa a Evernote sicura e crittografata. È un'applicazione open source che ti consente di prendere appunti, aggiungere siti Web ai preferiti, archiviare documenti, condividere password con i tuoi colleghi e altro ancora. Turtl ti consente di assumere il controllo di tutti i tuoi dati in un luogo privato. Il codice sorgente del client turtl e dell'applicazione server turtl è disponibile su github:puoi distribuirlo manualmente sul tuo server.
In questo tutorial, ti mostreremo passo dopo passo come installare e configurare il server Turtl su CentOS 7. Il server Turtl è scritto in Common Lisp, quindi dobbiamo installare Common Lisp e QuickLisp sul sistema. Questo tutorial tratterà alcuni argomenti, tra cui l'installazione di Libuv sul sistema CentOS 7 e l'installazione di RethinkDB per il datastore turtl.
Prerequisiti
- CentOS 7
- Privilegi di root
Cosa faremo
- Installa strumenti di sviluppo
- Installa Libuv su CentOS 7
- Installa e configura RethinkDB
- Installa Common Lisp
- Installa Quicklisp
- Scarica e installa Turtl Server
- Esecuzione di Turtl Server come servizio
- Installa e configura Apache come proxy inverso per Turtl
- Test
Passaggio 1:installazione degli strumenti di sviluppo
Per questa guida, abbiamo bisogno dei pacchetti "Strumenti di sviluppo" installati sul sistema CentOS.
Installa "Strumenti di sviluppo" usando il comando yum di seguito.
sudo yum group install "Development Tools"
Attendi l'installazione di tutti i pacchetti "Strumenti di sviluppo".
Passaggio 2:installa Libuv su CentOS 7
Libuv è una libreria di supporto multipiattaforma focalizzata sull'I/O asincrono. Questa libreria è necessaria al server Turtl e la installeremo manualmente.
Prima di installare manualmente 'Libuv' sul sistema, installiamo openssl e openssl-devel.
yum -y install openssl openssl-devel
Ora vai nella directory '/usr/local/src' e scarica il file libuv.targz usando wget.
cd /usr/local/src
wget http://dist.libuv.org/dist/v1.9.1/libuv-v1.9.1.tar.gz
Estrai libuv.tar.gz e rimuovi il master.
tar -xf libuv-v1.9.1.tar.gz
rm -f libuv-v1.9.1.tar.gz
Vai alla directory 'libuv'.
cd libuv-v1.9.1/
Installa Libuv utilizzando gli strumenti di sviluppo eseguendo tutti i comandi seguenti.
sh autogen.sh
./configure
make
make install
Al termine, esegui il comando seguente.
sudo ldconfig
La libreria Libuv è stata installata sul sistema CentOS 7.
Passaggio 3:installazione e configurazione di RethinkDB
RethinkDB è un database open source e distribuito orientato ai documenti e Turtl Server utilizza RethinkDB come archivio dati.
In questo passaggio, installeremo RethinkDB dal proprio repository.
Aggiungi il repository RethinkDB per CentOS 7 al sistema.
sudo wget http://download.rethinkdb.com/centos/7/`uname -m`/rethinkdb.repo \
-O /etc/yum.repos.d/rethinkdb.repo
Il repository RethinkDB è stato aggiunto, ora installalo usando il comando yum nel modo seguente.
sudo yum -y install rethinkdb
Al termine dell'installazione, copia la configurazione predefinita nella directory '/etc/rethinkdb/instances.d'.
cp /etc/rethinkdb/default.conf.sample /etc/rethinkdb/instances.d/default.conf
E crea un nuovo file di servizio per RethinkDB utilizzando l'editor vim.
cd /etc/systemd/system
vim rethinkdb.service
Incolla lì la seguente configurazione.
# Automatically generated by systemd-sysv-generator
[Unit]
Documentation=man:systemd-sysv-generator(8)
SourcePath=/etc/init.d/rethinkdb
Description=LSB: This starts a set of rethinkdb server instances.
Before=multi-user.target
Before=multi-user.target
Before=multi-user.target
Before=graphical.target
Before=shutdown.target
After=remote-fs.target
Conflicts=shutdown.target
[Service]
Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=yes
ExecStart=/etc/init.d/rethinkdb start
ExecStop=/etc/init.d/rethinkdb stop
Ora ricarica il sistema systemd e avvia il servizio RethinkDB.
systemctl daemon-reload
systemctl start rethinkdb
RethinkDB è ora installato e in esecuzione sul sistema CentOS 7.
Verificalo usando il comando seguente.
systemctl status rethinkdb
netstat -plntu
E dovresti ottenere il risultato come di seguito.
Passaggio 4:installazione di Common Lisp
Common Lisp (CL) è un dialetto del linguaggio di programmazione Lisp. È un membro della famiglia Lisp. In questo passaggio, installeremo manualmente "Clozure Common Lisp" sul sistema CentOS.
Vai alla directory '/usr/local/src' e scarica 'Clozure Common Lisp' per Linux a 86/64 bit usando il comando wget.
cd /usr/local/src
wget https://github.com/Clozure/ccl/releases/download/v1.11.5/ccl-1.11.5-linuxx86.tar.gz
Estrarre il file compresso "Clozure Common Lisp" e rimuovere il file master.
tar -xf ccl-1.11.5-linuxx86.tar.gz
rm -f ccl-1.11.5-linuxx86.tar.gz
E otterrai la directory 'ccl'. Vai alla directory 'ccl' e copia il file bin 'ccl64' nella directory '/usr/bin'.
cd /usr/local/src/ccl
sudo cp scripts/ccl64 /usr/bin/
Ora verifica l'installazione di "Clozure Common Lisp" eseguendo il comando "ccl64".
ccl64
E assicurati di ottenere il risultato come di seguito.
Il "Clozure Common lisp" è ora installato. E se vuoi uscire dalla shell 'ccl', digita il comando quit.
(quit)
Passaggio 5:installazione di Quicklisp
Quicklisp è un gestore di librerie per Common Lisp. Abbiamo bisogno di "Quicklisp" installato sul sistema perché turtl carica tutte le sue dipendenze attraverso il sistema Quicklisp.
Prima di installare Quicklisp, aggiungi un nuovo utente per l'installazione di turtl.
useradd -m -s /bin/bash turtl
passwd turtl
Ora accedi come utente 'turtl'.
su - turtl
Scarica i file 'quicklisp.lisp' e 'asdf.lisp' usando il comando wget/curl.
wget https://common-lisp.net/project/asdf/asdf.lisp
curl -O https://beta.quicklisp.org/quicklisp.lisp
Ora carica 'quicklisp.lisp' usando il comando 'ccl64' come di seguito.
ccl64 --load quicklisp.lisp
E otterrai la riga di comando della shell 'ccl'. Installa Quicklisp usando il comando seguente.
(quicklisp-quickstart:install)
Il comando scaricherà tutte le dipendenze per Quicklisp. E una volta completato, aggiungi il file Quicklisp 'init' e carica 'asdf.lisp'.
(ql:add-to-init-file)
(load (compile-file "asdf.lisp"))
Al termine, esci dalla shell 'ccl'.
(quit)
E rimuovi i file 'quicklisp.lisp' e 'asdf.lisp'.
rm -f asdf.lisp quicklisp.lisp
Quiclisp è stato installato.
Passaggio 6 - Scarica e installa Turtl Server
In questo passaggio, installeremo Turtl sotto l'utente 'turtl' che abbiamo creato in alto.
Accedi come utente 'turtl' e clona il codice sorgente di turtl usando git.
su - turtl
git clone https://github.com/turtl/api.git
Vai alla directory 'api' e crea un nuovo file 'launch.lisp' usando vim.
cd /home/turtl/api
vim launch.lisp
Incolla lì la seguente configurazione.
(pushnew "./" asdf:*central-registry* :test #'equal)
(load "start")
Salva ed esci.
Successivamente, dobbiamo installare alcune dipendenze per turtl. Vai alla directory quicklisp e clona tutte le dipendenze.
cd ~/quicklisp/local-projects
Scarica tutte le dipendenze eseguendo tutti i comandi seguenti.
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
E modifica il file ccl init.
vim /home/turtl/.ccl-init.lisp
Vai alla fine della riga, incolla lì la seguente configurazione.
(cwd "/home/turtl/api")
(load "/home/turtl/api/launch")
Salva ed esci.
Ora copia la configurazione predefinita di turtl 'config.lisp' e modificala usando vim.
cp /home/turtl/api/config/config.default.lisp /home/turtl/api/config/config.lisp
vim /home/turtl/api/config/config.lisp
Nella riga "server-bind", aggiungi l'indirizzo IP di localhost come di seguito.
defvar *server-bind* "127.0.0.1"
Salva ed esci.
Dopo aver completato tutta la configurazione, avvia il server turtl utilizzando il comando 'ccl64'.
ccl64
Il comando installerà l'API del server Turtl e, una volta completata, otterrai il risultato come di seguito.
Premi 'Ctrl + c' e digita '(quit)' per uscire.
Passaggio 7 - Esecuzione di Turtl Server come servizio
L'API del server Turtl è stata installata sotto l'utente 'turtl'. E per questo tutorial, eseguiremo turtl come servizio.
Vai alla directory '/lib/systemd/system' e crea un nuovo file 'turtl.service' usando vim.
cd /lib/systemd/system/
vim turtl.service
Incolla lì la seguente configurazione del servizio turtl.
[Unit]
Description=turtl_service
After=network.target mysql.service postgresql.service
[Service]
User=turtl
ExecStart=/usr/bin/ccl64
Restart=always
[Install]
WantedBy=multi-user.target
Salva ed esci.
Ora ricarica systemd e avvia il servizio turtl usando il comando systemctl.
systemctl daemon-reload
systemctl start turtl
Aggiungi il servizio turtl all'avvio e controlla lo stato del servizio turtl.
systemctl enable turtl
systemctl status turtl
Dovresti ottenere il risultato come di seguito.
Il servizio turtl è ora in esecuzione come servizio sul sistema CentOS 7.
Passaggio 8 - Installa e configura Apache/httpd come proxy inverso per Turtl
In questo tutorial, eseguiremo il server Turtl sotto il server proxy inverso Apache/httpd. Il server Turtl è ora in esecuzione con l'IP locale '127.0.0.1' con porta '8181', e ora installeremo il server web Apache2 e lo configureremo come proxy inverso per il server Turtl.
Installa apache2 con tutte le dipendenze usando il comando yum di seguito.
yum -y install httpd mod_proxy_html
Al termine dell'installazione, aggiungi un nuovo file host virtuale per Turtl.
Vai alla directory '/etc/httpd/conf.d' e crea un nuovo file host virtuale 'turtl.conf'.
cd /etc/httpd/conf.d/
vim turtl.conf
Incolla lì la seguente configurazione dell'host virtuale.
<VirtualHost *:80>
ServerName turtl.hakase-labs.co
ServerAdmin [email protected]
ProxyPreserveHost On
ProxyRequests off
RewriteEngine On
<Proxy http://localhost:8181>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://127.0.0.1:8181/ Keepalive=On timeout=1600
ProxyPassReverse / http://127.0.0.1:8181/
LogLevel info
CustomLog /var/log/httpd/turtl.log combined
</VirtualHost>
Salva ed esci.
Ora controlla la configurazione di Apache e assicurati che non ci siano errori.
apachectl configtest
Ora riavvia il servizio httpd e abilitalo per l'avvio ogni volta all'avvio del sistema.
systemctl restart httpd
systemctl enable httpd
Il server Web Apache2/httpd è stato installato sul sistema CentOS 7 e funge da proxy inverso per l'applicazione Turtl sulla porta 8181.
Controllalo usando il comando netstat di seguito.
netstat -plntu
Fase 9 - Test
Scarica l'applicazione client turtl e aprila.
Fare clic sul collegamento "Crea un account".
Ora fai clic sul pulsante "Ricorderò il mio accesso".
Digita il tuo indirizzo email con la password e il nome di dominio del tuo server Turtl.
E fai clic sul pulsante "Partecipa".
Ora otterrai una nuova finestra:fai clic sul pulsante "salta questo passaggio".
E otterrai la dashboard turtl vuota. Qui puoi aggiungere una nuova nota, password, file, segnalibro ecc.
L'installazione del server Turtl sul sistema CentOS 7 è stata completata con successo.