Turtl ist eine sichere und verschlüsselte Evernote-Alternative. Es ist eine Open-Source-Anwendung, mit der Sie Notizen machen, Websites mit Lesezeichen versehen, Dokumente speichern und Passwörter mit Ihren Kollegen teilen können. Turtl ermöglicht es Ihnen, die Kontrolle über alle Ihre Daten an einem privaten Ort zu übernehmen. Der Quellcode der turtl-Client- und turtl-Server-Anwendung ist auf Github verfügbar und Sie können ihn manuell auf Ihrem Server bereitstellen.
In diesem Tutorial zeigen wir Ihnen Schritt für Schritt, wie Sie den Turtl-Server unter Ubuntu 16.04 installieren und konfigurieren. Der Turtl-Server ist in Common Lisp geschrieben, daher müssen wir Common Lisp und QuickLisp auf dem System installieren. Dieses Tutorial behandelt auch Dinge wie die Installation von Libuv auf einem Ubuntu-System und die Installation von RethinkDB für den Turtl-Datenspeicher.
Voraussetzungen
- Ubuntu 16.04
- Root-Rechte
Was wir tun werden
- Abhängigkeiten installieren
- Installieren Sie Libuv auf Ubuntu 16.04
- Installieren und konfigurieren Sie RethinkDB
- Installieren Sie Common Lisp
- Quicklisp installieren
- Turtl-Server herunterladen und installieren
- Turtl-Server als Dienst ausführen
- Installieren und konfigurieren Sie Apache als Reverse Proxy für Turtl
- Testen
Schritt 1 - Abhängigkeiten installieren
Aktualisieren Sie Ihr Ubuntu-Server-Repository und dann das System.
sudo apt update
sudo apt upgrade
Installieren Sie nun einige erforderliche Pakete - einschließlich git, wget und automake - mit dem folgenden apt-Befehl.
sudo apt install wget curl libtool subversion make automake git -y
Schritt 2 – Installieren Sie Libuv auf Ubuntu 16.04
Libuv ist eine plattformübergreifende Unterstützungsbibliothek, die sich auf asynchrone E/A konzentriert. Diese Bibliothek wird vom Turtl-Server benötigt und wir werden sie manuell installieren.
Gehen Sie in das Verzeichnis ‚/usr/local/src‘ und laden Sie die komprimierte Libuv-Datei mit wget herunter.
cd /usr/local/src
wget http://dist.libuv.org/dist/v1.9.1/libuv-v1.9.1.tar.gz
Extrahieren Sie die Datei libuv.tar.gz und entfernen Sie sie.
tar -xf libuv-v1.9.1.tar.gz
rm libuv-v1.9.1.tar.gz
Wechseln Sie in das libuv-Verzeichnis.
cd libuv-v1.9.1
Erstellen Sie nun die Libuv-Bibliothek mit Autotools - führen Sie alle untenstehenden Befehle aus.
sh autogen.sh
./configure
make
make install
Und wenn es fertig ist, erhalten Sie das unten gezeigte Ergebnis.
Die Libuv-Bibliothek wurde dem System im Verzeichnis „/usr/local/lib“ hinzugefügt.
Schritt 3 - RethinkDB installieren
RethinkDB ist eine Open-Source- und verteilte dokumentenorientierte Datenbank, und der Datenspeicher des Turtl-Servers verwendet RethinkDB.
In diesem Schritt installieren wir RethinkDB aus seinem eigenen, offiziellen Repository.
RethinkDB-Repository zum System hinzufügen.
echo "deb http://download.rethinkdb.com/apt $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/rethinkdb.list
Laden Sie den Schlüssel herunter und fügen Sie ihn hinzu.
wget -qO- https://download.rethinkdb.com/apt/pubkey.gpg | sudo apt-key add -
Aktualisieren Sie das Ubuntu-Repository und installieren Sie es mit den folgenden apt-Befehlen.
sudo apt update
sudo apt install rethinkdb -y
Kopieren Sie nach Abschluss der Installation die Standardkonfiguration in das Verzeichnis „/etc/rethinkdb/instances.d“.
cp /etc/rethinkdb/default.conf.sample /etc/rethinkdb/instances.d/default.conf
Und starten Sie den rethinkdb-Dienst neu.
systemctl restart rethinkdb
systemctl enable rethinkdb
RethinkDB wurde auf dem Ubuntu-System installiert - überprüfen Sie es mit dem folgenden Befehl.
netstat -plntu
Schritt 4 - Common Lisp (CL) installieren
Common Lisp (CL) ist ein Dialekt der Programmiersprache Lisp - ein Mitglied der Lisp-Familie.
In diesem Schritt installieren wir 'Clozure Common Lisp' manuell auf dem Ubuntu-System.
Gehen Sie in das Verzeichnis „/usr/local/src“ und laden Sie „Clozure Common Lisp“ für Linux 86/64-Bit mit dem Befehl wget herunter.
cd /usr/local/src
wget https://github.com/Clozure/ccl/releases/download/v1.11.5/ccl-1.11.5-linuxx86.tar.gz
Extrahieren Sie die komprimierte 'Common Lisp'-Datei und entfernen Sie sie.
tar -xf ccl-1.11.5-linuxx86.tar.gz
rm -f ccl-1.11.5-linuxx86.tar.gz
Und Sie erhalten das 'ccl'-Verzeichnis. Wechseln Sie in das Verzeichnis „ccl“ und kopieren Sie die bin-Datei „ccl64“ in das Verzeichnis „/usr/local/bin“.
cd /usr/local/src/ccl
sudo cp scripts/ccl64 /usr/local/bin/
Überprüfen Sie nun die 'Common Lisp'-Installation, indem Sie den 'ccl64'-Befehl ausführen.
ccl64
Und stellen Sie sicher, dass Sie das Ergebnis wie unten erhalten.
'Clozure Common Lisp' wurde nun installiert. Und wenn Sie die 'ccl'-Shell verlassen möchten, geben Sie den folgenden Befehl zum Beenden ein.
(quit)
Schritt 5 - Quicklisp installieren
Quicklisp ist ein Bibliotheksmanager für Common Lisp. Wir müssen 'Quicklisp' auf dem System installiert haben, da Turtl alle seine Abhängigkeiten über das Quicklisp-System lädt.
Bevor Sie Quicklisp installieren, fügen Sie bitte einen neuen Benutzer für die turtl-Installation hinzu.
useradd -m -s /bin/bash turtl
passwd turtl
Melden Sie sich jetzt als 'turtl'-Benutzer an.
su - turtl
Laden Sie die Dateien „quicklisp.lisp“ und „asdf.lisp“ mit den Befehlen wget/curl wie folgt herunter.
wget https://common-lisp.net/project/asdf/asdf.lisp
curl -O https://beta.quicklisp.org/quicklisp.lisp
Laden Sie nun 'quicklisp.lisp' mit dem 'ccl64'-Befehl wie unten gezeigt.
ccl64 --load quicklisp.lisp
Und Sie erhalten die Shell-Befehlszeile ‚ccl‘. Installieren Sie Quicklisp mit dem folgenden Befehl.
(quicklisp-quickstart:install)
Der Befehl lädt alle Abhängigkeiten für Quicklisp herunter. Und nachdem es fertig ist, fügen Sie die Quicklisp-'init'-Datei hinzu und laden Sie 'asdf.lisp'.
(ql:add-to-init-file)
(load (compile-file "asdf.lisp"))
Wenn es fertig ist, verlassen Sie die 'ccl'-Shell.
(quit)
Und entfernen Sie die Dateien 'quicklisp.lisp' und 'asdf.lisp'.
rm -f asdf.lisp quicklisp.lisp
Quicklisp wurde auf dem System unter dem Benutzer „turtl“ installiert.
Schritt 6 – Laden Sie turtl herunter und installieren Sie es
In diesem Schritt installieren wir Turtl über den Benutzer ‚turtl‘, den wir bereits erstellt haben.
Melden Sie sich als „turtl“-Benutzer an und klonen Sie den turtl-Quellcode mit git.
su - turtl
git clone https://github.com/turtl/api.git
Gehen Sie in das 'api'-Verzeichnis und erstellen Sie mit vim eine neue Datei namens 'launch.lisp'.
cd /home/turtl/api
vim launch.lisp
Fügen Sie dort die folgende Konfiguration ein.
(pushnew "./" asdf:*central-registry* :test #'equal)
(load "start")
Speichern und beenden.
Als nächstes müssen wir einige Abhängigkeiten für turtl installieren. Gehen Sie in das Quicklisp-Verzeichnis und klonen Sie alle Abhängigkeiten.
cd ~/quicklisp/local-projects
Laden Sie alle Abhängigkeiten herunter, indem Sie die folgenden Befehle ausführen.
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
Und bearbeiten Sie die ccl-Init-Datei.
vim /home/turtl/.ccl-init.lisp
Gehen Sie zum Ende und fügen Sie dort die folgende Konfiguration ein.
(cwd "/home/turtl/api")
(load "/home/turtl/api/launch")
Speichern und beenden.
Kopieren Sie nun die Standard-Turtl-Konfiguration ‚config.lisp‘ und bearbeiten Sie sie mit vim.
cp /home/turtl/api/config/config.default.lisp /home/turtl/api/config/config.lisp
vim /home/turtl/api/config/config.lisp
Fügen Sie in der Zeile „server-bind“ die localhost-IP-Adresse wie unten gezeigt hinzu.
defvar *server-bind* "127.0.0.1"
Speichern und beenden.
Nachdem die gesamte Konfiguration abgeschlossen ist, starten Sie den turtl-Server mit dem Befehl „ccl64“.
ccl64
Der Befehl installiert die Turtl-Server-API, und wenn er abgeschlossen ist, erhalten Sie das unten gezeigte Ergebnis.
Drücken Sie zum Beenden 'Strg + C'.
Der Turtl-Server läuft nun unter der lokalen IP-Adresse „127.0.0.1“ mit Port „8181“.
Öffnen Sie ein neues Terminal Ihres Servers und überprüfen Sie es dann mit dem unten stehenden netstat-Befehl.
netstat -plntu
Und Sie sollten das folgende Ergebnis erhalten.
Schritt 7 – Ausführen von Turtl als Dienst
Die Turtl-Server-API wurde über den Benutzer „turtl“ installiert. Und für dieses Tutorial werden wir turtl als Dienst ausführen.
Gehen Sie in das Verzeichnis ‚/lib/systemd/system‘ und erstellen Sie eine neue ‚turtl.service‘-Datei mit vim.
cd /lib/systemd/system/
vim turtl.service
Fügen Sie dort die folgende Konfiguration des turtl-Dienstes ein.
[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
Speichern und beenden.
Laden Sie nun systemd neu und starten Sie den turtl-Dienst mit dem Befehl systemctl.
systemctl daemon-reload
systemctl start turtl
Aktivieren Sie den turtl-Dienst so, dass er jedes Mal beim Systemstart gestartet wird, und überprüfen Sie den Status des turtl-Dienstes.
systemctl enable turtl
systemctl status turtl
Sie sollten das folgende Ergebnis erhalten.
Der turtl-Dienst läuft jetzt als Dienst auf dem Ubuntu-System.
Schritt 8 – Apache Reverse-Proxy für Turtl konfigurieren
In diesem Tutorial führen wir den Turtl-Server unter dem Apache/httpd-Reverse-Proxy-Server aus. Der Turtl-Server läuft unter der lokalen IP „127.0.0.1“ mit Port „8181“, und jetzt werden wir den Apache2-Webserver installieren und ihn als Reverse-Proxy für den Turtl-Server konfigurieren.
Installieren Sie Apache2 mit allen Abhängigkeiten mit dem folgenden apt-Befehl.
sudo apt install -y apache2 apache2-utils apache2-bin libxml2-dev
Aktivieren Sie nach Abschluss der Installation einige benötigte Plugins, indem Sie die folgenden Befehle ausführen.
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
Starten Sie nun den Apache2-Webserver neu und aktivieren Sie ihn so, dass er jedes Mal beim Booten gestartet wird.
systemctl restart apache2
systemctl enable apache2
Fügen Sie als Nächstes einen neuen virtuellen turtl-Host hinzu, indem Sie eine neue Konfigurationsdatei „turtl.conf“ im Verzeichnis „sites-available“ erstellen.
Gehen Sie in das Verzeichnis „/etc/apache2/sites-available“ und erstellen Sie mit vim eine neue cconfiguration „turtl.conf“.
cd /etc/apache2/sites-available/
vim turtl.conf
Fügen Sie die Konfiguration des virtuellen Hosts unten ein.
<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>
Speichern und beenden.
Aktiviere nun den virtuellen Host turtl und überprüfe die Konfiguration.
a2ensite turtl
apachectl configtest
Stellen Sie sicher, dass keine Fehlermeldung angezeigt wird, und starten Sie dann den Apache2-Webserver neu.
systemctl restart apache2
Überprüfen Sie den Dienst mit dem Befehl netstat.
netstat -plntu
Und stellen Sie sicher, dass Sie den Apache-Webserver auf Port 80 und den Turtl-API-Server auf '127.0.0.1' mit Port '8181' erhalten.
Schritt 9 – Testen
Laden Sie die turtl-Client-Anwendung herunter und öffnen Sie sie.
Klicken Sie auf „Konto erstellen“.
Klicken Sie nun auf die Schaltfläche „Ich werde mich an mein Login erinnern“.
Geben Sie Ihre E-Mail-Adresse mit Passwort und den Domänennamen Ihres Turtl-Servers ein.
Und klicken Sie auf die Schaltfläche „Beitreten“.
Jetzt erhalten Sie das neue Fenster - klicken Sie auf die Schaltfläche "Diesen Schritt überspringen".
Und Sie erhalten das leere Schildkröten-Dashboard. Sie können neue Notizen, Passwörter, Dateien, Lesezeichen usw. hinzufügen.
Die Installation des Turtl-Servers auf Ubuntu 16.04 wurde erfolgreich abgeschlossen.