Cách cài đặt Turtl Server - Evernote Alternative - trên Ubuntu 16.04

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. 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 và 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 Ubuntu 16.04. 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 cũng sẽ đề cập đến những thứ như cài đặt Libuv trên hệ thống Ubuntu và cài đặt RethinkDB cho kho dữ liệu Turtl.

Điều kiện tiên quyết
  • Ubuntu 16.04
  • Quyền root
Những gì chúng ta sẽ làm
  1. Cài đặt Dependencies
  2. Cài đặt Libuv trên Ubuntu 16.04
  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 dưới dạng Proxy ngược cho Turtl
  9. Kiểm tra

Bước 1 - Cài đặt Dependencies​

Cập nhật kho lưu trữ máy chủ Ubuntu của bạn, sau đó cập nhật hệ thống.
Mã:
sudo apt update
sudo apt upgrade
Bây giờ hãy cài đặt một số gói cần thiết - bao gồm git, wget và automake - bằng lệnh apt bên dưới.
Mã:
sudo apt install wget curl libtool subversion make automake git -y

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

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

Đi đến thư mục '/usr/local/src' và tải xuống tệp nén Libuv 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 tệp libuv.tar.gz và xóa nó.
Mã:
tar -xf libuv-v1.9.1.tar.gz
rm libuv-v1.9.1.tar.gz
Đi đến thư mục libuv.
Mã:
cd libuv-v1.9.1
Bây giờ hãy xây dựng thư viện Libuv bằng autotools - chạy tất cả các lệnh bên dưới.
Mã:
sh autogen.sh
./configure
make
make install
Và khi hoàn tất, bạn sẽ nhận được kết quả như hình dưới đây.



Thư viện Libuv đã được thêm vào hệ thống trong thư mục '/usr/local/lib'.

Bước 3 - Cài đặt RethinkDB​

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

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

Thêm kho lưu trữ RethinkDB vào hệ thống.
Mã:
echo "deb http://download.rethinkdb.com/apt $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/rethinkdb.list
Tải xuống và thêm khóa.
Mã:
wget -qO- https://download.rethinkdb.com/apt/pubkey.gpg | sudo apt-key add -
Cập nhật kho lưu trữ Ubuntu và cài đặt bằng lệnh apt bên dưới.
Mã:
sudo apt update
sudo apt install rethinkdb -y


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à khởi động lại dịch vụ rethinkdb.
Mã:
systemctl restart rethinkdb
systemctl enable rethinkdb
RethinkDB đã được cài đặt trên hệ thống Ubuntu - hãy kiểm tra bằng lệnh bên dưới.
Mã:
netstat -plntu

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

Common Lisp (CL) là một phương ngữ của ngôn ngữ lập trình Lisp - nó là thành viên của họ Lisp.

Trong bước này, chúng ta sẽ cài đặt thủ công 'Clozure Common Lisp' trên hệ thống Ubuntu.

Vào 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 'Common Lisp' và xóa nó.
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'. Đi đến thư mục 'ccl' và sao chép tệp bin 'ccl64' vào thư mục '/usr/local/bin'.
Mã:
cd /usr/local/src/ccl
sudo cp scripts/ccl64 /usr/local/bin/
Bây giờ hãy xác minh cài đặt '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 như bên dưới.
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ần 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 theo cách sau.
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' lệnh như hiển thị 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
Quicklisp đã được cài đặt vào hệ thống dưới người dùng 'turtl'.


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

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

Đă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 một tệp mới có tên là '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 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 và 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ư hiển thị 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 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ư hiển thị bên dưới.



Nhấn 'Ctrl + c' để thoát.

Máy chủ Turtl hiện đang chạy dưới địa chỉ IP cục bộ "127.0.0.1" với cổng "8181".

Mở thiết bị đầu cuối mới của máy chủ của bạn, sau đó kiểm tra bằng lệnh netstat bên dưới.
Mã:
netstat -plntu
Và bạn sẽ nhận được kết quả như bên dưới.


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

API máy chủ Turtl đã được cài đặt thông qua người dùng 'turtl'. Và đối với hướng dẫn này, chúng ta sẽ chạy turtl dưới dạng 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/local/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


Cho phép dịch vụ turtl khởi chạy mọi lúc khi khởi động hệ thống và kiểm tra turtl service status.
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 Ubuntu.

Bước 8 - Cấu hình proxy ngược Apache 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 đang chạy ở 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 apt bên dưới.
Mã:
sudo apt install -y apache2 apache2-utils apache2-bin libxml2-dev
Sau khi cài đặt hoàn tất, hãy bật một số plugin cần thiết bằng cách chạy các lệnh sau.
Mã:
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
Bây giờ hãy khởi động lại máy chủ web Apache2 và cho phép nó khởi chạy mọi lúc khi khởi động.
Mã:
systemctl restart apache2
systemctl enable apache2
Tiếp theo, thêm máy chủ ảo turtl mới bằng cách tạo tệp cấu hình mới 'turtl.conf' trong thư mục 'sites-available'.

Đi đến thư mục '/etc/apache2/sites-available' và tạo cconfiguration mới 'turtl.conf' bằng vim.
Mã:
cd /etc/apache2/sites-available/
vim turtl.conf
Dán cấu hình máy chủ ảo bên dưới.
Mã:
 ServerName turtl.hakase-labs.co
 ServerAdmin [emailprotected]
 
 ProxyPreserveHost Bật
 ProxyRequests Tắt
 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
Lưu và thoát.

Bây giờ hãy kích hoạt máy chủ ảo turtl và kiểm tra cấu hình.
Mã:
a2ensite turtl
apachectl configtest
Đảm bảo bạn không gặp lỗi nào, sau đó khởi động lại máy chủ web apache2.
Mã:
systemctl restart apache2
Kiểm tra dịch vụ bằng lệnh netstat.
Mã:
netstat -plntu
Và hãy đảm bảo bạn có máy chủ web Apache trên cổng 80 và máy chủ API Turtl trên '127.0.0.1' với cổng '8181'.

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 '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ó 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 cửa sổ mới - hãy 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. 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 Ubuntu 16.04 đã hoàn tất thành công.

Tham khảo​

 
Back
Bên trên