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, Passwörter mit Ihren Kollegen teilen und vieles mehr. Mit Turtl können Sie an einem privaten Ort die Kontrolle über alle Ihre Daten übernehmen. Der Quellcode der turtl-Client- und turtl-Server-Anwendung ist auf github verfügbar – 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 CentOS 7 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 einige Themen, darunter die Installation von Libuv auf einem CentOS 7-System und die Installation von RethinkDB für den turtl-Datenspeicher.
Voraussetzungen
- CentOS 7
- Root-Rechte
Was wir tun werden
- Entwicklungstools installieren
- Installieren Sie Libuv auf CentOS 7
- 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 – Entwicklungstools installieren
Für diese Anleitung benötigen wir die auf dem CentOS-System installierten „Development Tools“-Pakete.
Installieren Sie 'Development Tools' mit dem untenstehenden yum-Befehl.
sudo yum group install "Development Tools"
Warten Sie auf die Installation aller 'Development Tools'-Pakete.
Schritt 2 – Installieren Sie Libuv auf CentOS 7
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 diese Bibliothek manuell installieren.
Bevor wir 'Libuv' manuell auf dem System installieren, installieren wir openssl und openssl-devel.
yum -y install openssl openssl-devel
Gehen Sie nun in das Verzeichnis ‚/usr/local/src‘ und laden Sie die Datei libuv.targz mit wget herunter.
cd /usr/local/src
wget http://dist.libuv.org/dist/v1.9.1/libuv-v1.9.1.tar.gz
Extrahieren Sie libuv.tar.gz und entfernen Sie den Master.
tar -xf libuv-v1.9.1.tar.gz
rm -f libuv-v1.9.1.tar.gz
Gehen Sie in das 'libuv'-Verzeichnis.
cd libuv-v1.9.1/
Installieren Sie Libuv mit den Entwicklungstools, indem Sie alle unten stehenden Befehle ausführen.
sh autogen.sh
./configure
make
make install
Führen Sie nach Abschluss den folgenden Befehl aus.
sudo ldconfig
Die Libuv-Bibliothek wurde auf dem CentOS 7-System installiert.
Schritt 3 – RethinkDB installieren und konfigurieren
RethinkDB ist eine Open-Source- und verteilte dokumentenorientierte Datenbank, und der Turtl-Server verwendet RethinkDB als Datenspeicher.
In diesem Schritt installieren wir RethinkDB aus seinem eigenen Repository.
RethinkDB-Repository für CentOS 7 zum System hinzufügen.
sudo wget http://download.rethinkdb.com/centos/7/`uname -m`/rethinkdb.repo \
-O /etc/yum.repos.d/rethinkdb.repo
Das RethinkDB-Repository wurde hinzugefügt. Installieren Sie es jetzt mit dem Befehl yum auf folgende Weise.
sudo yum -y install rethinkdb
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 erstellen Sie mit dem vim-Editor eine neue Dienstdatei für RethinkDB.
cd /etc/systemd/system
vim rethinkdb.service
Fügen Sie dort die folgende Konfiguration ein.
# 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
Laden Sie nun das systemd-System neu und starten Sie den RethinkDB-Dienst.
systemctl daemon-reload
systemctl start rethinkdb
RethinkDB ist jetzt installiert und läuft auf dem CentOS 7-System.
Überprüfen Sie es mit dem folgenden Befehl.
systemctl status rethinkdb
netstat -plntu
Und Sie sollten das folgende Ergebnis erhalten.
Schritt 4 - Installieren Sie Common Lisp
Common Lisp (CL) ist ein Dialekt der Programmiersprache Lisp. Es ist ein Mitglied der Lisp-Familie. In diesem Schritt werden wir „Clozure Common Lisp“ manuell auf dem CentOS-System installieren.
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 'Clozure Common Lisp'-Datei und entfernen Sie die Master-Datei.
tar -xf ccl-1.11.5-linuxx86.tar.gz
rm -f ccl-1.11.5-linuxx86.tar.gz
Und Sie erhalten das 'ccl'-Verzeichnis. Gehen Sie in das 'ccl'-Verzeichnis und kopieren Sie die 'ccl64'-bin-Datei in das '/usr/bin'-Verzeichnis.
cd /usr/local/src/ccl
sudo cp scripts/ccl64 /usr/bin/
Überprüfen Sie nun die Installation von „Clozure Common Lisp“, indem Sie den Befehl „ccl64“ ausführen.
ccl64
Und stellen Sie sicher, dass Sie das Ergebnis wie unten erhalten.
Das 'Clozure Common Lisp' ist jetzt installiert. Und wenn Sie die 'ccl'-Shell verlassen möchten, geben Sie den Befehl quit 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 dem Befehl wget/curl 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 Befehl „ccl64“ wie unten beschrieben.
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. Fügen Sie nach Abschluss 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
Quiclisp wurde installiert.
Schritt 6 – Turtl Server herunterladen und installieren
In diesem Schritt installieren wir Turtl unter dem Benutzer ‚turtl‘, den wir oben 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 '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 alle unten stehenden 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 der Zeile 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 beschrieben 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 Ergebnis wie unten.
Drücken Sie 'Strg + C' und geben Sie '(quit)' ein, um zu beenden.
Schritt 7 – Ausführen von Turtl Server als Dienst
Die Turtl-Server-API wurde unter dem 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/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
Fügen Sie den turtl-Dienst zur Startzeit hinzu und überprüfen Sie den Status des turtl-Dienstes.
systemctl enable turtl
systemctl status turtl
Sie sollten das folgende Ergebnis erhalten.
Der turtl-Dienst wird jetzt als Dienst auf dem CentOS 7-System ausgeführt.
Schritt 8 – Installieren und konfigurieren Sie Apache/httpd als Reverse-Proxy für Turtl
In diesem Tutorial führen wir den Turtl-Server unter dem Apache/httpd-Reverse-Proxy-Server aus. Der Turtl-Server läuft jetzt unter der lokalen IP '127.0.0.1' mit Port '8181', und jetzt werden wir den Apache2-Webserver installieren und als Reverse-Proxy für den Turtl-Server konfigurieren.
Installieren Sie Apache2 mit allen Abhängigkeiten mit dem untenstehenden yum-Befehl.
yum -y install httpd mod_proxy_html
Fügen Sie nach Abschluss der Installation eine neue virtuelle Hostdatei für Turtl hinzu.
Gehen Sie in das Verzeichnis ‚/etc/httpd/conf.d‘ und erstellen Sie eine neue virtuelle Hostdatei ‚turtl.conf‘.
cd /etc/httpd/conf.d/
vim turtl.conf
Fügen Sie dort die folgende Konfiguration des virtuellen Hosts ein.
<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>
Speichern und beenden.
Überprüfen Sie nun die Apache-Konfiguration und stellen Sie sicher, dass kein Fehler vorliegt.
apachectl configtest
Starten Sie jetzt den httpd-Dienst neu und aktivieren Sie ihn so, dass er jedes Mal beim Systemstart gestartet wird.
systemctl restart httpd
systemctl enable httpd
Der Apache2/httpd-Webserver wurde auf dem CentOS 7-System installiert und fungiert als Reverse-Proxy für die Turtl-Anwendung auf Port 8181.
Überprüfen Sie es mit dem untenstehenden netstat-Befehl.
netstat -plntu
Schritt 9 – Testen
Laden Sie die turtl-Client-Anwendung herunter und öffnen Sie sie.
Klicken Sie auf den Link „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 ein neues Fenster - klicken Sie auf die Schaltfläche "Diesen Schritt überspringen".
Und Sie erhalten das leere Schildkröten-Dashboard. Hier können Sie neue Notizen, Passwörter, Dateien, Lesezeichen usw. hinzufügen.
Die Installation des Turtl-Servers auf dem CentOS 7-System wurde erfolgreich abgeschlossen.