Turtl adalah alternatif Evernote yang aman dan terenkripsi. Ini adalah aplikasi open source yang memungkinkan Anda membuat catatan, menandai situs web, menyimpan dokumen, berbagi kata sandi dengan rekan kerja Anda. Turtl memungkinkan Anda untuk mengendalikan semua data Anda di tempat pribadi. Kode sumber aplikasi klien turtl dan server turtl tersedia di github, dan Anda dapat menerapkannya secara manual di server Anda.
Dalam tutorial ini, kami akan menunjukkan kepada Anda langkah demi langkah cara menginstal dan mengkonfigurasi server Turtl di Ubuntu 16.04. Server Turtl ditulis dalam Common Lisp, jadi kita perlu menginstal Common Lisp dan QuickLisp pada sistem. Tutorial ini juga akan mencakup hal-hal seperti menginstal Libuv pada sistem Ubuntu dan menginstal RethinkDB untuk penyimpanan data Turtl.
Prasyarat
- Ubuntu 16.04
- Hak istimewa root
Apa yang akan kami lakukan
- Instal Dependensi
- Instal Libuv di Ubuntu 16.04
- Instal dan Konfigurasikan RethinkDB
- Instal Common Lisp
- Instal Quicklisp
- Unduh dan Instal Server Turtl
- Jalankan Server Turtl sebagai Layanan
- Instal dan konfigurasikan Apache sebagai Proxy Terbalik untuk Turtl
- Pengujian
Langkah 1 - Instal Dependensi
Perbarui repositori server Ubuntu Anda, lalu perbarui sistem.
sudo apt update
sudo apt upgrade
Sekarang instal beberapa paket yang diperlukan - termasuk git, wget, dan automake - menggunakan perintah apt di bawah ini.
sudo apt install wget curl libtool subversion make automake git -y
Langkah 2 - Instal Libuv di Ubuntu 16.04
Libuv adalah pustaka dukungan multi-platform yang berfokus pada I/O asinkron. Library ini dibutuhkan oleh server Turtl, dan kami akan menginstalnya secara manual.
Buka direktori '/usr/local/src' dan unduh file terkompresi Libuv menggunakan wget.
cd /usr/local/src
wget http://dist.libuv.org/dist/v1.9.1/libuv-v1.9.1.tar.gz
Ekstrak file libuv.tar.gz dan hapus.
tar -xf libuv-v1.9.1.tar.gz
rm libuv-v1.9.1.tar.gz
Buka direktori libuv.
cd libuv-v1.9.1
Sekarang buat library Libuv dengan autotools - jalankan semua perintah di bawah ini.
sh autogen.sh
./configure
make
make install
Dan jika sudah selesai maka akan mendapatkan hasil seperti gambar dibawah ini.
Pustaka Libuv telah ditambahkan ke sistem di direktori '/usr/local/lib'.
Langkah 3 - Instal RethinkDB
RethinkDB adalah database berorientasi dokumen open source dan terdistribusi, dan penyimpanan data server Turtl menggunakan RethinkDB.
Pada langkah ini, kita akan menginstal RethinkDB dari repositori resminya sendiri.
Tambahkan repositori RethinkDB ke sistem.
echo "deb http://download.rethinkdb.com/apt $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/rethinkdb.list
Unduh dan tambahkan kuncinya.
wget -qO- https://download.rethinkdb.com/apt/pubkey.gpg | sudo apt-key add -
Perbarui repositori Ubuntu dan instal menggunakan perintah apt di bawah ini.
sudo apt update
sudo apt install rethinkdb -y
Setelah instalasi selesai, salin konfigurasi default ke direktori '/etc/rethinkdb/instances.d'.
cp /etc/rethinkdb/default.conf.sample /etc/rethinkdb/instances.d/default.conf
Dan mulai ulang layanan rethinkdb.
systemctl restart rethinkdb
systemctl enable rethinkdb
RethinkDB telah diinstal pada sistem Ubuntu - periksa menggunakan perintah di bawah ini.
netstat -plntu
Langkah 4 - Instal Common Lisp (CL)
Common Lisp (CL) adalah dialek bahasa pemrograman Lisp - ini adalah anggota dari keluarga Lisp.
Pada langkah ini, kita akan menginstal 'Clozure Common Lisp' secara manual di sistem Ubuntu.
Buka direktori '/usr/local/src' dan unduh 'Clozure Common Lisp' untuk Linux 86/64-bit menggunakan perintah wget.
cd /usr/local/src
wget https://github.com/Clozure/ccl/releases/download/v1.11.5/ccl-1.11.5-linuxx86.tar.gz
Ekstrak file terkompresi 'Common Lisp' dan hapus.
tar -xf ccl-1.11.5-linuxx86.tar.gz
rm -f ccl-1.11.5-linuxx86.tar.gz
Dan Anda akan mendapatkan direktori 'ccl'. Buka direktori 'ccl' dan salin file bin 'ccl64' ke direktori '/usr/local/bin'.
cd /usr/local/src/ccl
sudo cp scripts/ccl64 /usr/local/bin/
Sekarang verifikasi instalasi 'Common Lisp' dengan menjalankan perintah 'ccl64'.
ccl64
Dan pastikan Anda mendapatkan hasil seperti di bawah ini.
'Clozure Common cadel' kini telah terpasang. Dan jika Anda ingin keluar dari shell 'ccl', ketik perintah quit seperti di bawah ini.
(quit)
Langkah 5 - Instal Quicklisp
Quicklisp adalah manajer perpustakaan untuk Common Lisp. Kita perlu menginstal 'Quicklisp' di sistem karena Turtl memuat semua dependensinya melalui sistem Quicklisp.
Sebelum menginstal Quicklisp, harap tambahkan pengguna baru untuk instalasi turtl.
useradd -m -s /bin/bash turtl
passwd turtl
Sekarang login sebagai pengguna 'turtl'.
su - turtl
Download file 'quicklisp.lisp' dan 'asdf.lisp' menggunakan perintah wget/curl dengan cara berikut.
wget https://common-lisp.net/project/asdf/asdf.lisp
curl -O https://beta.quicklisp.org/quicklisp.lisp
Sekarang muat 'quicklisp.lisp' menggunakan perintah 'ccl64' seperti yang ditunjukkan di bawah ini.
ccl64 --load quicklisp.lisp
Dan Anda akan mendapatkan baris perintah shell 'ccl'. Instal Quicklisp menggunakan perintah di bawah ini.
(quicklisp-quickstart:install)
Perintah akan mengunduh semua dependensi untuk Quicklisp. Dan setelah selesai, tambahkan file 'init' Quicklisp dan muat 'asdf.lisp'.
(ql:add-to-init-file)
(load (compile-file "asdf.lisp"))
Jika sudah selesai, keluar dari shell 'ccl'.
(quit)
Dan hapus file 'quicklisp.lisp' dan 'asdf.lisp'.
rm -f asdf.lisp quicklisp.lisp
Quicklisp telah diinstal ke sistem di bawah pengguna 'turtl'.
Langkah 6 - Unduh dan Instal turtl
Pada langkah ini, kita akan menginstal Turtl melalui pengguna 'turtl' yang telah kita buat.
Login sebagai pengguna 'turtl' dan kloning kode sumber turtl menggunakan git.
su - turtl
git clone https://github.com/turtl/api.git
Buka direktori 'api' dan buat file baru bernama 'launch.lisp' menggunakan vim.
cd /home/turtl/api
vim launch.lisp
Tempelkan konfigurasi berikut di sana.
(pushnew "./" asdf:*central-registry* :test #'equal)
(load "start")
Simpan dan keluar.
Selanjutnya, kita perlu menginstal beberapa dependensi untuk turtl. Buka direktori quicklisp dan klon semua dependensi.
cd ~/quicklisp/local-projects
Unduh semua dependensi dengan menjalankan perintah di bawah ini.
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
Dan edit file init ccl.
vim /home/turtl/.ccl-init.lisp
Sampai akhir, dan rekatkan konfigurasi berikut di sana.
(cwd "/home/turtl/api")
(load "/home/turtl/api/launch")
Simpan dan keluar.
Sekarang salin konfigurasi turtl default 'config.lisp dan edit menggunakan vim.
cp /home/turtl/api/config/config.default.lisp /home/turtl/api/config/config.lisp
vim /home/turtl/api/config/config.lisp
Pada baris 'server-bind', tambahkan alamat IP localhost seperti yang ditunjukkan di bawah ini.
defvar *server-bind* "127.0.0.1"
Simpan dan keluar.
Setelah semua konfigurasi selesai, jalankan server turtl menggunakan perintah 'ccl64'.
ccl64
Perintah tersebut akan menginstal API server Turtl, dan jika sudah selesai akan mendapatkan hasil seperti gambar di bawah ini.
Tekan 'Ctrl + c' untuk keluar.
Server Turtl sekarang berjalan di bawah alamat IP lokal "127.0.0.1" dengan port "8181".
Buka terminal baru server Anda, lalu periksa menggunakan perintah netstat di bawah ini.
netstat -plntu
Dan Anda akan mendapatkan hasil seperti di bawah ini.
Langkah 7 - Menjalankan Turtl sebagai Layanan
API server Turtl telah diinstal melalui pengguna 'turtl'. Dan untuk tutorial ini, kita akan menjalankan turtl sebagai layanan.
Buka direktori '/lib/systemd/system' dan buat file 'turtl.service' baru menggunakan vim.
cd /lib/systemd/system/
vim turtl.service
Rekatkan konfigurasi layanan turtl berikut di sana.
[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
Simpan dan keluar.
Sekarang muat ulang systemd dan mulai layanan turtl menggunakan perintah systemctl.
systemctl daemon-reload
systemctl start turtl
Aktifkan layanan turtl untuk diluncurkan setiap kali sistem boot, dan periksa status layanan turtl.
systemctl enable turtl
systemctl status turtl
Anda akan mendapatkan hasil seperti di bawah ini.
Layanan turtl sekarang berjalan sebagai layanan di sistem Ubuntu.
Langkah 8 - Konfigurasikan Apache Reverse proxy untuk Turtl
Dalam tutorial ini, kita akan menjalankan server Turtl di bawah server proxy terbalik Apache/httpd. Server Turtl berjalan di bawah IP lokal '127.0.0.1' dengan port '8181', dan sekarang kita akan menginstal server web Apache2 dan mengkonfigurasinya sebagai proxy terbalik untuk server Turtl.
Instal apache2 dengan semua dependensi menggunakan perintah apt di bawah ini.
sudo apt install -y apache2 apache2-utils apache2-bin libxml2-dev
Setelah instalasi selesai, aktifkan beberapa plugin yang diperlukan dengan menjalankan perintah berikut.
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
Sekarang restart server web Apache2 dan aktifkan untuk diluncurkan setiap saat saat boot.
systemctl restart apache2
systemctl enable apache2
Selanjutnya, tambahkan virtual host turtl baru dengan membuat file konfigurasi baru 'turtl.conf' di bawah direktori 'sites-available'.
Masuk ke direktori '/etc/apache2/sites-available' dan buat konfigurasi baru 'turtl.conf' menggunakan vim.
cd /etc/apache2/sites-available/
vim turtl.conf
Tempel konfigurasi host virtual di bawah ini.
<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>
Simpan dan keluar.
Sekarang aktifkan turtl virtual host dan periksa konfigurasinya.
a2ensite turtl
apachectl configtest
Pastikan Anda tidak mendapatkan kesalahan, lalu restart server web apache2.
systemctl restart apache2
Periksa layanan menggunakan perintah netstat.
netstat -plntu
Dan pastikan Anda mendapatkan server web Apache pada port 80 dan server API Turtl pada '127.0.0.1' dengan port '8181'.
Langkah 9 - Pengujian
Unduh aplikasi klien turtl dan buka.
Klik 'Buat Akun'.
Sekarang klik tombol 'Saya akan mengingat login saya'.
Ketik alamat email Anda dengan kata sandi dan nama domain server Turtl Anda.
Dan klik tombol 'Gabung'.
Sekarang Anda akan mendapatkan jendela baru - klik tombol 'lewati langkah ini'.
Dan Anda akan mendapatkan dasbor kura-kura kosong. Anda dapat menambahkan catatan baru, kata sandi, file, bookmark, dll.
Instalasi server Turtl di Ubuntu 16.04 telah berhasil diselesaikan.