Turtl je bezpečná a šifrovaná alternativa Evernote. Je to aplikace s otevřeným zdrojovým kódem, která vám umožňuje dělat si poznámky, ukládat webové stránky do záložek, ukládat dokumenty, sdílet hesla se svými spolupracovníky a další. Turtl vám umožňuje převzít kontrolu nad všemi vašimi daty na soukromém místě. Zdrojový kód aplikace turtl client a tutl server je dostupný na githubu – můžete jej na svůj server nasadit ručně.
V tomto tutoriálu vám krok za krokem ukážeme, jak nainstalovat a nakonfigurovat Turtl server na CentOS 7. Turtl server je napsán v Common Lisp, takže musíme do systému nainstalovat Common Lisp a QuickLisp. Tento tutoriál pokryje některá témata včetně instalace Libuv na systém CentOS 7 a instalace RethinkDB pro úložiště dat turtl.
Předpoklady
- CentOS 7
- Oprávnění uživatele root
Co uděláme
- Instalace vývojových nástrojů
- Nainstalujte Libuv na CentOS 7
- Nainstalujte a nakonfigurujte RethinkDB
- Nainstalujte Common Lisp
- Nainstalujte Quicklisp
- Stáhněte si a nainstalujte Turtl Server
- Spuštění serveru Turtl jako služby
- Nainstalujte a nakonfigurujte Apache jako reverzní proxy pro Turtl
- Testování
Krok 1 – Instalace vývojových nástrojů
Pro tuto příručku potřebujeme balíčky 'Development Tools' nainstalované v systému CentOS.
Nainstalujte 'Development Tools' pomocí příkazu yum níže.
sudo yum group install "Development Tools"
Počkejte na instalaci všech balíčků 'Development Tools'.
Krok 2 – Instalace Libuv na CentOS 7
Libuv je multiplatformní podpůrná knihovna zaměřená na asynchronní I/O. Tuto knihovnu potřebuje Turtl Server a my tuto knihovnu nainstalujeme ručně.
Před ruční instalací 'Libuv' do systému si nainstalujme openssl a openssl-devel.
yum -y install openssl openssl-devel
Nyní přejděte do adresáře '/usr/local/src' a stáhněte si soubor libuv.targz pomocí wget.
cd /usr/local/src
wget http://dist.libuv.org/dist/v1.9.1/libuv-v1.9.1.tar.gz
Rozbalte libuv.tar.gz a odeberte master.
tar -xf libuv-v1.9.1.tar.gz
rm -f libuv-v1.9.1.tar.gz
Přejděte do adresáře 'libuv'.
cd libuv-v1.9.1/
Nainstalujte Libuv pomocí vývojových nástrojů spuštěním všech níže uvedených příkazů.
sh autogen.sh
./configure
make
make install
Po dokončení spusťte následující příkaz.
sudo ldconfig
Knihovna Libuv byla nainstalována v systému CentOS 7.
Krok 3 – Instalace a konfigurace RethinkDB
RethinkDB je open source a distribuovaná databáze orientovaná na dokumenty a Turtl Server používá RethinkDB jako úložiště dat.
V tomto kroku nainstalujeme RethinkDB z jeho vlastního úložiště.
Přidejte do systému úložiště RethinkDB pro CentOS 7.
sudo wget http://download.rethinkdb.com/centos/7/`uname -m`/rethinkdb.repo \
-O /etc/yum.repos.d/rethinkdb.repo
Bylo přidáno úložiště RethinkDB, nyní jej nainstalujte pomocí příkazu yum následujícím způsobem.
sudo yum -y install rethinkdb
Po dokončení instalace zkopírujte výchozí konfiguraci do adresáře '/etc/rethinkdb/instances.d'.
cp /etc/rethinkdb/default.conf.sample /etc/rethinkdb/instances.d/default.conf
A vytvořte nový soubor služby pro RethinkDB pomocí editoru vim.
cd /etc/systemd/system
vim rethinkdb.service
Zde vložte následující konfiguraci.
# 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
Nyní znovu načtěte systémový systém a spusťte službu RethinkDB.
systemctl daemon-reload
systemctl start rethinkdb
RethinkDB je nyní nainstalován a spuštěn v systému CentOS 7.
Zkontrolujte to pomocí následujícího příkazu.
systemctl status rethinkdb
netstat -plntu
A měli byste získat výsledek, jak je uvedeno níže.
Krok 4 – Instalace Common Lisp
Common Lisp (CL) je dialekt programovacího jazyka Lisp. Je to člen z rodiny Lisp. V tomto kroku ručně nainstalujeme 'Clozure Common Lisp' do systému CentOS.
Přejděte do adresáře '/usr/local/src' a stáhněte si 'Clozure Common Lisp' pro Linux 86/64-bit pomocí příkazu wget.
cd /usr/local/src
wget https://github.com/Clozure/ccl/releases/download/v1.11.5/ccl-1.11.5-linuxx86.tar.gz
Rozbalte komprimovaný soubor 'Clozure Common Lisp' a odstraňte hlavní soubor.
tar -xf ccl-1.11.5-linuxx86.tar.gz
rm -f ccl-1.11.5-linuxx86.tar.gz
A získáte adresář 'ccl'. Přejděte do adresáře 'ccl' a zkopírujte soubor bin 'ccl64' do adresáře '/usr/bin'.
cd /usr/local/src/ccl
sudo cp scripts/ccl64 /usr/bin/
Nyní ověřte instalaci 'Clozure Common Lisp' spuštěním příkazu 'ccl64'.
ccl64
A ujistěte se, že získáte výsledek, jak je uvedeno níže.
'Clozure Common lisp' je nyní nainstalován. A pokud chcete ukončit shell 'ccl', zadejte příkaz quit.
(quit)
Krok 5 – Instalace Quicklisp
Quicklisp je správce knihovny pro Common Lisp. Potřebujeme 'Quicklisp' nainstalovaný v systému, protože turtl načítá všechny své závislosti prostřednictvím systému Quicklisp.
Před instalací Quicklisp přidejte nového uživatele pro instalaci turtl.
useradd -m -s /bin/bash turtl
passwd turtl
Nyní se přihlaste jako uživatel 'turtl'.
su - turtl
Stáhněte si soubory 'quicklisp.lisp' a 'asdf.lisp' pomocí příkazu wget/curl.
wget https://common-lisp.net/project/asdf/asdf.lisp
curl -O https://beta.quicklisp.org/quicklisp.lisp
Nyní načtěte soubor 'quicklisp.lisp' pomocí příkazu 'ccl64', jak je uvedeno níže.
ccl64 --load quicklisp.lisp
A dostanete příkazový řádek 'ccl' shell. Nainstalujte Quicklisp pomocí příkazu níže.
(quicklisp-quickstart:install)
Příkaz stáhne všechny závislosti pro Quicklisp. A po dokončení přidejte soubor Quicklisp 'init' a načtěte 'asdf.lisp'.
(ql:add-to-init-file)
(load (compile-file "asdf.lisp"))
Po dokončení ukončete shell 'ccl'.
(quit)
A odstraňte soubory 'quicklisp.lisp' a 'asdf.lisp'.
rm -f asdf.lisp quicklisp.lisp
Quiclisp byl nainstalován.
Krok 6 – Stáhnout a nainstalovat Turtl Server
V tomto kroku nainstalujeme Turtl pod uživatele 'turtl', kterého jsme vytvořili nahoře.
Přihlaste se jako uživatel 'turtl' a naklonujte zdrojový kód turtl pomocí git.
su - turtl
git clone https://github.com/turtl/api.git
Přejděte do adresáře 'api' a vytvořte nový soubor 'launch.lisp' pomocí vim.
cd /home/turtl/api
vim launch.lisp
Zde vložte následující konfiguraci.
(pushnew "./" asdf:*central-registry* :test #'equal)
(load "start")
Uložte a ukončete.
Dále musíme nainstalovat nějaké závislosti pro turtl. Přejděte do adresáře quicklisp a naklonujte všechny závislosti.
cd ~/quicklisp/local-projects
Stáhněte si všechny závislosti spuštěním všech příkazů níže.
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
A upravte inicializační soubor ccl.
vim /home/turtl/.ccl-init.lisp
Přejděte na konec řádku a vložte tam následující konfiguraci.
(cwd "/home/turtl/api")
(load "/home/turtl/api/launch")
Uložte a ukončete.
Nyní zkopírujte výchozí konfiguraci turtl 'config.lisp' a upravte ji pomocí vim.
cp /home/turtl/api/config/config.default.lisp /home/turtl/api/config/config.lisp
vim /home/turtl/api/config/config.lisp
Na řádek 'server-bind' přidejte adresu IP localhost, jak je uvedeno níže.
defvar *server-bind* "127.0.0.1"
Uložte a ukončete.
Po dokončení veškeré konfigurace spusťte server turtl pomocí příkazu 'ccl64'.
ccl64
Příkaz nainstaluje Turtl server API a po jeho dokončení získáte výsledek, jak je uvedeno níže.
Stiskněte 'Ctrl + c' a napište '(quit)' pro ukončení.
Krok 7 – Spuštění serveru Turtl jako služby
Rozhraní API serveru Turtl bylo nainstalováno pod uživatelem 'turtl'. A v tomto tutoriálu spustíme turtl jako službu.
Přejděte do adresáře '/lib/systemd/system' a vytvořte nový soubor 'turtl.service' pomocí vim.
cd /lib/systemd/system/
vim turtl.service
Zde vložte následující konfiguraci služby 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
Uložte a ukončete.
Nyní znovu načtěte systemd a spusťte službu turtl pomocí příkazu systemctl.
systemctl daemon-reload
systemctl start turtl
Přidejte službu turtl k času spouštění a zkontrolujte stav služby turtl.
systemctl enable turtl
systemctl status turtl
Měli byste získat výsledek, jak je uvedeno níže.
Služba turtl nyní běží jako služba na systému CentOS 7.
Krok 8 – Instalace a konfigurace Apache/httpd jako reverzního proxy pro Turtl
V tomto tutoriálu spustíme server Turtl pod reverzním proxy serverem Apache/httpd. Turtl server nyní běží pod lokální IP '127.0.0.1' s portem '8181' a nyní nainstalujeme webový server Apache2 a nakonfigurujeme jej jako reverzní proxy pro Turtl server.
Nainstalujte apache2 se všemi závislostmi pomocí příkazu yum níže.
yum -y install httpd mod_proxy_html
Po dokončení instalace přidejte nový soubor virtuálního hostitele pro Turtl.
Přejděte do adresáře '/etc/httpd/conf.d' a vytvořte nový soubor virtuálního hostitele 'turtl.conf'.
cd /etc/httpd/conf.d/
vim turtl.conf
Zde vložte následující konfiguraci virtuálního hostitele.
<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>
Uložte a ukončete.
Nyní zkontrolujte konfiguraci Apache a ujistěte se, že nedošlo k chybě.
apachectl configtest
Nyní restartujte službu httpd a povolte její spuštění při každém spuštění systému.
systemctl restart httpd
systemctl enable httpd
Webový server Apache2/httpd byl nainstalován na systém CentOS 7 a funguje jako reverzní proxy pro aplikaci Turtl na portu 8181.
Zkontrolujte to pomocí příkazu netstat níže.
netstat -plntu
Krok 9 – Testování
Stáhněte si klientskou aplikaci turtl a otevřete ji.
Klikněte na odkaz 'Vytvořit účet'.
Nyní klikněte na tlačítko 'Budu si pamatovat své přihlášení'.
Zadejte svou e-mailovou adresu s heslem a název domény serveru Turtl.
A klikněte na tlačítko 'Připojit se'.
Nyní se zobrazí nové okno - klikněte na tlačítko 'přeskočit tento krok'.
A získáte prázdnou palubní desku Turtl. Zde můžete přidat novou poznámku, heslo, soubory, záložku atd.
Instalace serveru Turtl na systém CentOS 7 byla úspěšně dokončena.