Turtl adalah alternatif Evernote yang aman dan terenkripsi. Ini adalah aplikasi open source yang memungkinkan Anda membuat catatan, mem-bookmark situs web, menyimpan dokumen, berbagi kata sandi dengan rekan kerja Anda, dan banyak lagi. Turtl memungkinkan Anda mengontrol semua data Anda di tempat pribadi. Kode sumber aplikasi turtl client dan turtl server tersedia di github - 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 CentOS 7. Server Turtl ditulis dalam Common Lisp, jadi kita perlu menginstal Common Lisp dan QuickLisp pada sistem. Tutorial ini akan mencakup beberapa topik termasuk instalasi Libuv pada sistem CentOS 7 dan instalasi RethinkDB untuk penyimpanan data turtl.
Prasyarat
- CentOS 7
- Hak istimewa root
Apa yang akan kami lakukan
- Instal Alat Pengembangan
- Instal Libuv di CentOS 7
- Instal dan Konfigurasikan RethinkDB
- Instal Common Lisp
- Instal Quicklisp
- Unduh dan Instal Server Turtl
- Menjalankan Server Turtl sebagai Layanan
- Instal dan Konfigurasi Apache sebagai Proxy Terbalik untuk Turtl
- Pengujian
Langkah 1 - Instal Alat Pengembangan
Untuk panduan ini, kita memerlukan paket 'Development Tools' yang diinstal pada sistem CentOS.
Instal 'Alat Pengembangan' menggunakan perintah yum di bawah ini.
sudo yum group install "Development Tools"
Tunggu semua instalasi paket 'Development Tools'.
Langkah 2 - Instal Libuv di CentOS 7
Libuv adalah pustaka dukungan multi-platform yang berfokus pada I/O asinkron. Library ini dibutuhkan oleh Turtl Server, dan kita akan menginstal library ini secara manual.
Sebelum menginstal 'Libuv' secara manual ke sistem, mari kita instal openssl dan openssl-devel.
yum -y install openssl openssl-devel
Sekarang buka direktori '/usr/local/src' dan unduh file libuv.targz menggunakan wget.
cd /usr/local/src
wget http://dist.libuv.org/dist/v1.9.1/libuv-v1.9.1.tar.gz
Ekstrak libuv.tar.gz dan hapus masternya.
tar -xf libuv-v1.9.1.tar.gz
rm -f libuv-v1.9.1.tar.gz
Buka direktori 'libuv'.
cd libuv-v1.9.1/
Instal Libuv menggunakan alat pengembangan dengan menjalankan semua perintah di bawah ini.
sh autogen.sh
./configure
make
make install
Jika sudah selesai, jalankan perintah berikut.
sudo ldconfig
Pustaka Libuv telah diinstal pada sistem CentOS 7.
Langkah 3 - Instal dan Konfigurasikan RethinkDB
RethinkDB adalah database berorientasi dokumen open source dan terdistribusi, dan Server Turtl menggunakan RethinkDB sebagai penyimpanan data.
Pada langkah ini, kita akan menginstal RethinkDB dari repositorinya sendiri.
Tambahkan repositori RethinkDB untuk CentOS 7 ke sistem.
sudo wget http://download.rethinkdb.com/centos/7/`uname -m`/rethinkdb.repo \
-O /etc/yum.repos.d/rethinkdb.repo
RethinkDB RethinkDB telah ditambahkan, sekarang instal menggunakan perintah yum dengan cara berikut.
sudo yum -y install rethinkdb
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 buat file layanan baru untuk RethinkDB menggunakan editor vim.
cd /etc/systemd/system
vim rethinkdb.service
Tempelkan konfigurasi berikut di sana.
# 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
Sekarang muat ulang sistem systemd dan mulai layanan RethinkDB.
systemctl daemon-reload
systemctl start rethinkdb
RethinkDB sekarang terinstal dan berjalan di sistem CentOS 7.
Periksa dengan perintah berikut.
systemctl status rethinkdb
netstat -plntu
Dan Anda akan mendapatkan hasil seperti di bawah ini.
Langkah 4 - Instal Common Lisp
Common Lisp (CL) adalah dialek dari bahasa pemrograman Lisp. Itu adalah anggota dari keluarga Lisp. Pada langkah ini, kita akan menginstal 'Clozure Common Lisp' secara manual ke sistem CentOS.
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 'Clozure Common Lisp' dan hapus file masternya.
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/bin'.
cd /usr/local/src/ccl
sudo cp scripts/ccl64 /usr/bin/
Sekarang verifikasi instalasi 'Clozure Common Lisp' dengan menjalankan perintah 'ccl64'.
ccl64
Dan pastikan Anda mendapatkan hasil seperti di bawah ini.
The 'Clozure Common cadel' sekarang diinstal. Dan jika Anda ingin keluar dari shell 'ccl', ketik perintah quit.
(quit)
Langkah 5 - Instal Quicklisp
Quicklisp adalah manajer perpustakaan untuk Common Lisp. Kami membutuhkan 'Quicklisp' yang diinstal pada 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.
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 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
Quiclisp telah diinstal.
Langkah 6 - Unduh dan Instal Server Turtl
Pada langkah ini, kita akan menginstal Turtl di bawah pengguna 'turtl' yang telah kita buat di atas.
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 '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 semua 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
Pergi ke akhir baris, 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 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 di bawah ini.
Tekan 'Ctrl + c' dan ketik '(quit)' untuk keluar.
Langkah 7 - Menjalankan Server Turtl sebagai Layanan
API server Turtl telah diinstal di bawah 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/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
Tambahkan layanan turtl ke waktu 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 pada sistem CentOS 7.
Langkah 8 - Instal dan Konfigurasi Apache/httpd sebagai Proxy Terbalik untuk Turtl
Dalam tutorial ini, kita akan menjalankan server Turtl di bawah server proxy terbalik Apache/httpd. Server Turtl sekarang 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 yum di bawah ini.
yum -y install httpd mod_proxy_html
Setelah instalasi selesai, tambahkan file virtual host baru untuk Turtl.
Buka direktori '/etc/httpd/conf.d' dan buat file host virtual baru 'turtl.conf'.
cd /etc/httpd/conf.d/
vim turtl.conf
Tempelkan konfigurasi host virtual berikut di sana.
<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>
Simpan dan keluar.
Sekarang periksa konfigurasi Apache dan pastikan tidak ada kesalahan.
apachectl configtest
Sekarang, restart layanan httpd dan aktifkan untuk diluncurkan setiap kali sistem boot.
systemctl restart httpd
systemctl enable httpd
Server web Apache2/httpd telah diinstal pada sistem CentOS 7, dan bertindak sebagai proxy terbalik untuk aplikasi Turtl pada port 8181.
Periksa menggunakan perintah netstat di bawah ini.
netstat -plntu
Langkah 9 - Pengujian
Unduh aplikasi klien turtl dan buka.
Klik tautan '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. Di sini, Anda dapat menambahkan catatan baru, kata sandi, file, bookmark, dll.
Instalasi server Turtl pada sistem CentOS 7 telah berhasil diselesaikan.