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 a sdílet hesla se svými spolupracovníky. Turtl vám umožňuje převzít kontrolu nad všemi vašimi daty na soukromém místě. Zdrojový kód klientské a serverové aplikace turtl je k dispozici na githubu a 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 server Turtl na Ubuntu 16.04. Turtl server je napsán v Common Lisp, takže musíme do systému nainstalovat Common Lisp a QuickLisp. Tento tutoriál také pokryje věci, jako je instalace Libuv na systém Ubuntu a instalace RethinkDB pro úložiště dat Turtl.
Předpoklady
- Ubuntu 16.04
- Oprávnění uživatele root
Co uděláme
- Instalovat závislosti
- Nainstalujte Libuv na Ubuntu 16.04
- Nainstalujte a nakonfigurujte RethinkDB
- Nainstalujte Common Lisp
- Nainstalujte Quicklisp
- Stáhněte si a nainstalujte Turtl Server
- Spustit Turtl Server jako službu
- Nainstalujte a nakonfigurujte Apache jako reverzní proxy pro Turtl
- Testování
Krok 1 – Instalace závislostí
Aktualizujte své úložiště serveru Ubuntu a poté aktualizujte systém.
sudo apt update
sudo apt upgrade
Nyní nainstalujte některé požadované balíčky – včetně git, wget a automake – pomocí příkazu apt níže.
sudo apt install wget curl libtool subversion make automake git -y
Krok 2 – Instalace Libuv na Ubuntu 16.04
Libuv je multiplatformní podpůrná knihovna zaměřená na asynchronní I/O. Tuto knihovnu potřebuje server Turtl a my ji nainstalujeme ručně.
Přejděte do adresáře '/usr/local/src' a stáhněte si komprimovaný soubor Libuv pomocí wget.
cd /usr/local/src
wget http://dist.libuv.org/dist/v1.9.1/libuv-v1.9.1.tar.gz
Rozbalte soubor libuv.tar.gz a odeberte jej.
tar -xf libuv-v1.9.1.tar.gz
rm libuv-v1.9.1.tar.gz
Přejděte do adresáře libuv.
cd libuv-v1.9.1
Nyní vytvořte knihovnu Libuv pomocí automatických nástrojů - spusťte všechny níže uvedené příkazy.
sh autogen.sh
./configure
make
make install
A až to bude hotové, dostanete výsledek, jak je ukázáno níže.
Knihovna Libuv byla přidána do systému v adresáři '/usr/local/lib'.
Krok 3 – Instalace RethinkDB
RethinkDB je open source a distribuovaná databáze orientovaná na dokumenty a úložiště dat serveru Turtl používá RethinkDB.
V tomto kroku nainstalujeme RethinkDB z jeho vlastního oficiálního úložiště.
Přidejte do systému úložiště RethinkDB.
echo "deb http://download.rethinkdb.com/apt $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/rethinkdb.list
Stáhněte a přidejte klíč.
wget -qO- https://download.rethinkdb.com/apt/pubkey.gpg | sudo apt-key add -
Aktualizujte úložiště Ubuntu a nainstalujte jej pomocí příkazů apt níže.
sudo apt update
sudo apt install rethinkdb -y
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 restartujte službu rethinkdb.
systemctl restart rethinkdb
systemctl enable rethinkdb
RethinkDB byl nainstalován do systému Ubuntu – zkontrolujte to pomocí příkazu níže.
netstat -plntu
Krok 4 – Instalace Common Lisp (CL)
Common Lisp (CL) je dialekt programovacího jazyka Lisp – je členem rodiny Lisp.
V tomto kroku ručně nainstalujeme 'Clozure Common Lisp' do systému Ubuntu.
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 'Common Lisp' a odstraňte jej.
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/local/bin'.
cd /usr/local/src/ccl
sudo cp scripts/ccl64 /usr/local/bin/
Nyní ověřte instalaci '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' byl nyní nainstalován. A pokud chcete ukončit shell 'ccl', zadejte příkaz quit, jak je uvedeno níže.
(quit)
Krok 5 – Instalace Quicklisp
Quicklisp je správce knihovny pro Common Lisp. Potřebujeme na systém nainstalovat „Quicklisp“, 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říkazů wget/curl následujícím způsobem.
wget https://common-lisp.net/project/asdf/asdf.lisp
curl -O https://beta.quicklisp.org/quicklisp.lisp
Nyní načtěte 'quicklisp.lisp' pomocí příkazu 'ccl64', jak je ukázáno 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
Quicklisp byl nainstalován do systému pod uživatelem 'turtl'.
Krok 6 – Stáhnout a nainstalovat turtl
V tomto kroku nainstalujeme Turtl prostřednictvím uživatele 'turtl', kterého jsme již vytvořili.
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 pomocí vim vytvořte nový soubor s názvem 'launch.lisp'.
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 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 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 znázorněno níže.
Stisknutím 'Ctrl + c' ukončete.
Server Turtl nyní běží pod místní IP adresou "127.0.0.1" s portem "8181".
Otevřete nový terminál svého serveru a poté jej zkontrolujte pomocí příkazu netstat níže.
netstat -plntu
A měli byste získat výsledek, jak je uvedeno níže.
Krok 7 – Spuštění Turtl jako služby
Rozhraní API serveru Turtl bylo nainstalováno prostřednictvím uživatele '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/local/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
Povolte spuštění služby turtl při každém spuštění systému 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 Ubuntu.
Krok 8 – Konfigurace Apache Reverse proxy pro Turtl
V tomto tutoriálu spustíme server Turtl pod reverzním proxy serverem Apache/httpd. Turtl server 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 apt níže.
sudo apt install -y apache2 apache2-utils apache2-bin libxml2-dev
Po dokončení instalace povolte některé potřebné pluginy spuštěním následujících příkazů.
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
Nyní restartujte webový server Apache2 a povolte jeho spuštění při každém spuštění.
systemctl restart apache2
systemctl enable apache2
Dále přidejte nového virtuálního hostitele turtl vytvořením nového konfiguračního souboru 'turtl.conf' v adresáři 'sites-available'.
Přejděte do adresáře '/etc/apache2/sites-available' a vytvořte novou cconfiguration 'turtl.conf' pomocí vim.
cd /etc/apache2/sites-available/
vim turtl.conf
Níže vložte konfiguraci virtuálního hostitele.
<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>
Uložte a ukončete.
Nyní aktivujte virtuálního hostitele turtl a zkontrolujte konfiguraci.
a2ensite turtl
apachectl configtest
Ujistěte se, že se nezobrazuje žádná chyba, a poté restartujte webový server apache2.
systemctl restart apache2
Zkontrolujte službu pomocí příkazu netstat.
netstat -plntu
A ujistěte se, že máte webový server Apache na portu 80 a server Turtl API na '127.0.0.1' s portem '8181'.
Krok 9 – Testování
Stáhněte si klientskou aplikaci turtl a otevřete ji.
Klikněte na '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. Můžete přidat novou poznámku, heslo, soubory, záložku atd.
Instalace serveru Turtl na Ubuntu 16.04 byla úspěšně dokončena.