Cách cài đặt Turtl Server Evernote Alternative trên CentOS 7

theanh

Administrator
Nhân viên
Turtl là một giải pháp thay thế Evernote an toàn và được mã hóa. Đây là một ứng dụng nguồn mở cho phép bạn ghi chú, đánh dấu trang web, lưu trữ tài liệu, chia sẻ mật khẩu với đồng nghiệp, v.v. Turtl cho phép bạn kiểm soát mọi dữ liệu của mình ở nơi riêng tư. Mã nguồn của ứng dụng máy khách turtl và máy chủ turtl có sẵn trên github - bạn có thể triển khai thủ công trên máy chủ của mình.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn từng bước cách cài đặt và cấu hình máy chủ Turtl trên CentOS 7. Máy chủ Turtl được viết bằng Common Lisp, vì vậy chúng ta cần cài đặt Common Lisp và QuickLisp trên hệ thống. Hướng dẫn này sẽ đề cập đến một số chủ đề bao gồm cài đặt Libuv trên hệ thống CentOS 7 và cài đặt RethinkDB cho kho dữ liệu turtl.

Điều kiện tiên quyết​

  • CentOS 7
  • Quyền root

Những gì chúng ta sẽ làm​

  1. Cài đặt Công cụ phát triển
  2. Cài đặt Libuv trên CentOS 7
  3. Cài đặt và cấu hình RethinkDB
  4. Cài đặt Common Lisp
  5. Cài đặt Quicklisp
  6. Tải xuống và cài đặt Turtl Server
  7. Chạy Turtl Server dưới dạng Dịch vụ
  8. Cài đặt và cấu hình Apache làm Proxy ngược cho Turtl
  9. Kiểm tra

Bước 1 - Cài đặt Công cụ phát triển​

Đối với hướng dẫn này, chúng ta cần các gói 'Công cụ phát triển' được cài đặt trên CentOS system.

Cài đặt 'Development Tools' bằng lệnh yum bên dưới.
Mã:
sudo yum group install "Development Tools"
Chờ tất cả các gói 'Development Tools' cài đặt.

Bước 2 - Cài đặt Libuv trên CentOS 7​

Libuv là thư viện hỗ trợ đa nền tảng tập trung vào I/O không đồng bộ. Turtl Server cần thư viện này và chúng ta sẽ cài đặt thủ công thư viện này.

Trước khi cài đặt thủ công 'Libuv' vào hệ thống, hãy cài đặt openssl và openssl-devel.
Mã:
yum -y install openssl openssl-devel
Bây giờ hãy vào thư mục '/usr/local/src' và tải xuống tệp libuv.targz bằng wget.
Mã:
cd /usr/local/src
wget http://dist.libuv.org/dist/v1.9.1/libuv-v1.9.1.tar.gz
Giải nén libuv.tar.gz và xóa tệp master.
Mã:
tar -xf libuv-v1.9.1.tar.gz
rm -f libuv-v1.9.1.tar.gz
Đi đến Thư mục 'libuv'.
Mã:
cd libuv-v1.9.1/
Cài đặt Libuv bằng các công cụ phát triển bằng cách chạy tất cả các lệnh bên dưới.
Mã:
sh autogen.sh
./configure
make
make install
Khi hoàn tất, hãy chạy lệnh sau.
Mã:
sudo ldconfig
Thư viện Libuv đã được cài đặt trên hệ thống CentOS 7.


Bước 3 - Cài đặt và cấu hình RethinkDB​

RethinkDB là cơ sở dữ liệu hướng tài liệu phân tán và mã nguồn mở, và Turtl Server đang sử dụng RethinkDB làm kho lưu trữ dữ liệu.

Trong bước này, chúng tôi sẽ cài đặt RethinkDB từ kho lưu trữ riêng của nó.

Thêm kho lưu trữ RethinkDB cho CentOS 7 vào hệ thống.
Mã:
sudo wget http://download.rethinkdb.com/centos/7/`uname -m`/rethinkdb.repo \
 -O /etc/yum.repos.d/rethinkdb.repo
Kho lưu trữ RethinkDB đã được thêm vào, bây giờ hãy cài đặt nó bằng lệnh yum theo cách sau.
Mã:
sudo yum -y install rethinkdb
Sau khi cài đặt hoàn tất, hãy sao chép cấu hình mặc định vào thư mục '/etc/rethinkdb/instances.d'.
Mã:
cp /etc/rethinkdb/default.conf.sample /etc/rethinkdb/instances.d/default.conf
Và tạo tệp dịch vụ mới cho RethinkDB bằng trình soạn thảo vim.
Mã:
cd /etc/systemd/system
vim rethinkdb.service
Dán cấu hình sau vào đó.
Mã:
# Tự động tạo bởi systemd-sysv-generator
 
 [Unit]
 Documentation=man:systemd-sysv-generator(8)
 SourcePath=/etc/init.d/rethinkdb
 Description=LSB: Điều này khởi động một tập hợp các phiên bản máy chủ rethinkdb.
 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
Bây giờ hãy tải lại hệ thống systemd và khởi động dịch vụ RethinkDB.
Mã:
systemctl daemon-reload
systemctl start rethinkdb
RethinkDB hiện đã được cài đặt và đang chạy trên hệ thống CentOS 7.



Kiểm tra bằng lệnh sau.
Mã:
systemctl status rethinkdb
netstat -plntu
Và bạn sẽ nhận được kết quả như bên dưới.


Bước 4 - Cài đặt Common Lisp​

Common Lisp (CL) là một phương ngữ của ngôn ngữ lập trình Lisp. Đây là thành viên của họ Lisp. Ở bước này, chúng ta sẽ cài đặt thủ công 'Clozure Common Lisp' vào hệ thống CentOS.

Đi tới thư mục '/usr/local/src' và tải xuống 'Clozure Common Lisp' cho Linux 86/64-bit bằng lệnh wget.
Mã:
cd /usr/local/src
wget https://github.com/Clozure/ccl/releases/download/v1.11.5/ccl-1.11.5-linuxx86.tar.gz
Giải nén tệp nén 'Clozure Common Lisp' và xóa tệp chính.
Mã:
tar -xf ccl-1.11.5-linuxx86.tar.gz
rm -f ccl-1.11.5-linuxx86.tar.gz
Và bạn sẽ nhận được thư mục 'ccl'. Vào thư mục 'ccl' và sao chép tệp bin 'ccl64' vào thư mục '/usr/bin'.
Mã:
cd /usr/local/src/ccl
sudo cp scripts/ccl64 /usr/bin/
Bây giờ hãy xác minh cài đặt 'Clozure Common Lisp' bằng cách chạy lệnh 'ccl64'.
Mã:
ccl64
Và đảm bảo bạn nhận được kết quả như bên dưới.



'Clozure Common lisp' hiện đã được cài đặt. Và nếu bạn muốn thoát khỏi shell 'ccl', hãy nhập lệnh quit.
Mã:
(quit)

Bước 5 - Cài đặt Quicklisp​

Quicklisp là trình quản lý thư viện cho Common Lisp. Chúng ta cần cài đặt 'Quicklisp' trên hệ thống vì turtl tải tất cả các phụ thuộc của nó thông qua hệ thống Quicklisp.

Trước khi cài đặt Quicklisp, vui lòng thêm người dùng mới để cài đặt turtl.
Mã:
useradd -m -s /bin/bash turtl
passwd turtl
Bây giờ hãy đăng nhập với tư cách là người dùng 'turtl'.
Mã:
su - turtl
Tải xuống các tệp 'quicklisp.lisp' và 'asdf.lisp' bằng lệnh wget/curl.
Mã:
wget https://common-lisp.net/project/asdf/asdf.lisp
curl -O https://beta.quicklisp.org/quicklisp.lisp
Bây giờ hãy tải 'quicklisp.lisp' bằng lệnh 'ccl64' như bên dưới.
Mã:
ccl64 --load quicklisp.lisp
Và bạn sẽ nhận được dòng lệnh shell 'ccl'. Cài đặt Quicklisp bằng lệnh bên dưới.
Mã:
(quicklisp-quickstart:install)
Lệnh sẽ tải xuống tất cả các phụ thuộc cho Quicklisp. Sau khi hoàn tất, thêm tệp 'init' Quicklisp và tải 'asdf.lisp'.
Mã:
(ql:add-to-init-file)
(load (compile-file "asdf.lisp"))
Khi hoàn tất, thoát khỏi shell 'ccl'.
Mã:
(quit)
Và xóa các tệp 'quicklisp.lisp' và 'asdf.lisp'.
Mã:
rm -f asdf.lisp quicklisp.lisp
Quiclisp đã được cài đặt.


Bước 6 - Tải xuống và cài đặt Turtl Server​

Trong bước này, chúng ta sẽ cài đặt Turtl dưới người dùng 'turtl' mà chúng ta đã tạo trên top.

Đăng nhập với tư cách là người dùng 'turtl' và sao chép mã nguồn turtl bằng git.
Mã:
su - turtl
git clone https://github.com/turtl/api.git
Đi tới thư mục 'api' và tạo tệp mới 'launch.lisp' bằng vim.
Mã:
cd /home/turtl/api
vim launch.lisp
Dán cấu hình sau vào đó.
Mã:
(pushnew "./" asdf:*central-registry* :test #'equal)
 (load "start")
Lưu và thoát.

Tiếp theo, chúng ta cần cài đặt một số phụ thuộc cho turtl. Đi đến thư mục quicklisp và sao chép tất cả các phụ thuộc.
Mã:
cd ~/quicklisp/local-projects
Tải xuống tất cả các phụ thuộc bằng cách chạy tất cả các lệnh bên dưới.
Mã:
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
Và chỉnh sửa tệp ccl init.
Mã:
vim /home/turtl/.ccl-init.lisp
Đi đến cuối dòng, dán cấu hình sau vào đó.
Mã:
(cwd "/home/turtl/api")
 (load "/home/turtl/api/launch")
Lưu và thoát.

Bây giờ hãy sao chép cấu hình turtl mặc định 'config.lisp' và chỉnh sửa nó bằng vim.
Mã:
cp /home/turtl/api/config/config.default.lisp /home/turtl/api/config/config.lisp
vim /home/turtl/api/config/config.lisp
Trên dòng 'server-bind', hãy thêm địa chỉ IP localhost như bên dưới.
Mã:
defvar *server-bind* "127.0.0.1"
Lưu và thoát.



Sau khi hoàn tất mọi cấu hình, hãy khởi động máy chủ turtl bằng lệnh 'ccl64'.
Mã:
ccl64
Lệnh này sẽ cài đặt API máy chủ Turtl và khi hoàn tất, bạn sẽ nhận được kết quả như bên dưới.



Nhấn 'Ctrl + c' và nhập '(quit)' để thoát.

Bước 7 - Chạy máy chủ Turtl dưới dạng dịch vụ​

API máy chủ Turtl đã được cài đặt dưới người dùng 'turtl'. Và đối với hướng dẫn này, chúng ta sẽ chạy turtl như một dịch vụ.

Đi đến thư mục '/lib/systemd/system' và tạo tệp 'turtl.service' mới bằng vim.
Mã:
cd /lib/systemd/system/
vim turtl.service
Dán cấu hình dịch vụ turtl sau vào đó.
Mã:
[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
Lưu và thoát.

Bây giờ hãy tải lại systemd và khởi động dịch vụ turtl bằng lệnh systemctl.
Mã:
systemctl daemon-reload
systemctl start turtl


Thêm dịch vụ turtl vào thời gian khởi động và kiểm tra trạng thái dịch vụ turtl.
Mã:
systemctl enable turtl
systemctl status turtl
Bạn sẽ nhận được kết quả như bên dưới.



Dịch vụ turtl hiện đang chạy như một dịch vụ trên hệ thống CentOS 7.

Bước 8 - Cài đặt và cấu hình Apache/httpd làm Proxy ngược cho Turtl​

Trong hướng dẫn này, chúng ta sẽ chạy máy chủ Turtl dưới máy chủ proxy ngược Apache/httpd. Máy chủ Turtl hiện đang chạy dưới IP cục bộ '127.0.0.1' với cổng '8181' và bây giờ chúng ta sẽ cài đặt máy chủ web Apache2 và cấu hình nó làm proxy ngược cho máy chủ Turtl.

Cài đặt apache2 với tất cả các phụ thuộc bằng lệnh yum bên dưới.
Mã:
yum -y install httpd mod_proxy_html
Sau khi cài đặt hoàn tất, hãy thêm tệp máy chủ ảo mới cho Turtl.

Đi tới thư mục '/etc/httpd/conf.d' và tạo tệp máy chủ ảo mới 'turtl.conf'.
Mã:
cd /etc/httpd/conf.d/
vim turtl.conf
Dán cấu hình máy chủ ảo sau vào đó.
Mã:
 ServerName turtl.hakase-labs.co
 ServerAdmin [emailprotected]
 
 ProxyPreserveHost Bật
 ProxyRequests tắt
 RewriteEngine Bật
 
 

 Order deny,allow
 Allow from all
 
 
 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
Lưu và thoát.

Bây giờ hãy kiểm tra cấu hình Apache và đảm bảo không có lỗi nào.
Mã:
apachectl configtest
Bây giờ, hãy khởi động lại dịch vụ httpd và cho phép nó khởi chạy mọi lúc khi khởi động hệ thống.
Mã:
systemctl restart httpd
systemctl enable httpd


Máy chủ web Apache2/httpd đã được cài đặt trên hệ thống CentOS 7 và nó hoạt động như một proxy ngược cho ứng dụng Turtl trên cổng 8181.

Kiểm tra bằng lệnh netstat bên dưới.
Mã:
netstat -plntu

Bước 9 - Kiểm tra​

Tải xuống ứng dụng khách turtl và mở ứng dụng đó.

Nhấp vào liên kết 'Tạo tài khoản'.



Bây giờ, hãy nhấp vào nút 'Tôi sẽ nhớ thông tin đăng nhập của mình'.



Nhập địa chỉ email cùng mật khẩu và tên miền máy chủ Turtl của bạn.



Và nhấp vào nút 'Tham gia'.

Bây giờ bạn sẽ thấy một cửa sổ mới - nhấp vào nút 'bỏ qua bước này'.



Và bạn sẽ thấy bảng điều khiển turtl trống. Tại đây, bạn có thể thêm ghi chú, mật khẩu, tệp, dấu trang, v.v. mới.



Quá trình cài đặt máy chủ Turtl trên hệ thống CentOS 7 đã hoàn tất thành công.

Tham khảo​

 
Back
Bên trên