Turtl 서버 - Evernote 대안 - Ubuntu 16.04에 설치하는 방법
이 페이지에서
- 1단계 - 종속성 설치
- 2단계 - Ubuntu 16.04에 Libuv 설치
- 3단계 - RethinkDB 설치
- 4단계 - CL(Common Lisp) 설치
- 5단계 - Quicklisp 설치
- 6단계 - turtl 다운로드 및 설치
- 7단계 - Turtl을 서비스로 실행\n
- 8단계 - Turtl용 Apache Reverse 프록시 구성\n
- 9단계 - 테스트
- 참조
Turtl은 안전하고 암호화된 Evernote 대안입니다. 메모를 작성하고, 웹사이트를 북마크하고, 문서를 저장하고, 동료와 암호를 공유할 수 있는 오픈 소스 응용 프로그램입니다. Turtl을 사용하면 비공개 장소에서 모든 데이터를 제어할 수 있습니다. turtl 클라이언트 및 turtl 서버 응용 프로그램의 소스 코드는 github에서 사용할 수 있으며 서버에 수동으로 배포할 수 있습니다.
이 자습서에서는 Ubuntu 16.04에서 Turtl 서버를 설치하고 구성하는 방법을 단계별로 보여줍니다. Turtl 서버는 Common Lisp로 작성되었으므로 시스템에 Common Lisp 및 QuickLisp를 설치해야 합니다. 이 튜토리얼에서는 Ubuntu 시스템에 Libuv를 설치하고 Turtl 데이터 저장소에 RethinkDB를 설치하는 것과 같은 내용도 다룹니다.
전제 조건
- 우분투 16.04
- 루트 권한\n
우리가 할 일
- 종속성 설치
- Ubuntu 16.04에 Libuv 설치
- RethinkDB 설치 및 구성
- Common Lisp 설치
- Quicklisp 설치
- Turtl 서버 다운로드 및 설치
- Turtl 서버를 서비스로 실행\n
- Apache를 Turtl용 리버스 프록시로 설치 및 구성\n
- 테스트
1단계 - 종속성 설치
Ubuntu 서버 리포지토리를 업데이트한 다음 시스템을 업데이트합니다.
sudo apt update
sudo apt upgrade
이제 아래의 apt 명령을 사용하여 git, wget 및 automake를 포함한 일부 필수 패키지를 설치합니다.
sudo apt install wget curl libtool subversion make automake git -y
2단계 - Ubuntu 16.04에 Libuv 설치
Libuv는 비동기 I/O에 초점을 맞춘 다중 플랫폼 지원 라이브러리입니다. 이 라이브러리는 Turtl 서버에 필요하며 수동으로 설치합니다.
/usr/local/src 디렉토리로 이동하고 wget을 사용하여 Libuv 압축 파일을 다운로드합니다.
cd /usr/local/src
wget http://dist.libuv.org/dist/v1.9.1/libuv-v1.9.1.tar.gz
libuv.tar.gz 파일을 추출하고 제거합니다.
tar -xf libuv-v1.9.1.tar.gz
rm libuv-v1.9.1.tar.gz
libuv 디렉토리로 이동합니다.
cd libuv-v1.9.1
이제 autotools로 Libuv 라이브러리를 빌드하십시오 - 아래의 모든 명령을 실행하십시오.
sh autogen.sh
./configure
make
make install
그리고 완료되면 아래와 같은 결과를 얻을 수 있습니다.

Libuv 라이브러리가 시스템의 /usr/local/lib 디렉토리에 추가되었습니다.
3단계 - RethinkDB 설치
RethinkDB는 오픈 소스 및 분산 문서 지향 데이터베이스이며 Turtl 서버 데이터 저장소는 RethinkDB를 사용합니다.
이 단계에서는 자체 공식 저장소에서 RethinkDB를 설치합니다.
시스템에 RethinkDB 리포지토리를 추가합니다.
echo "deb http://download.rethinkdb.com/apt $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/rethinkdb.list
키를 다운로드하고 추가합니다.
wget -qO- https://download.rethinkdb.com/apt/pubkey.gpg | sudo apt-key add -
Ubuntu 리포지토리를 업데이트하고 아래의 apt 명령을 사용하여 설치합니다.
sudo apt update
sudo apt install rethinkdb -y

설치가 완료되면 기본 구성을 /etc/rethinkdb/instances.d 디렉토리에 복사합니다.
cp /etc/rethinkdb/default.conf.sample /etc/rethinkdb/instances.d/default.conf
그리고 rethinkdb 서비스를 다시 시작하십시오.
systemctl restart rethinkdb
systemctl enable rethinkdb
RethinkDB가 Ubuntu 시스템에 설치되었습니다. 아래 명령을 사용하여 확인하십시오.
netstat -plntu

4단계 - CL(Common Lisp) 설치
CL(Common Lisp)은 Lisp 프로그래밍 언어의 방언으로 Lisp 계열의 구성원입니다.
이 단계에서는 Ubuntu 시스템에 Clozure Common Lisp를 수동으로 설치합니다.
/usr/local/src 디렉토리로 이동하여 wget 명령을 사용하여 Linux 86/64비트용 Clozure Common Lisp를 다운로드합니다.
cd /usr/local/src
wget https://github.com/Clozure/ccl/releases/download/v1.11.5/ccl-1.11.5-linuxx86.tar.gz
Common Lisp 압축 파일을 추출하고 제거하십시오.
tar -xf ccl-1.11.5-linuxx86.tar.gz
rm -f ccl-1.11.5-linuxx86.tar.gz
그리고 당신은 ccl 디렉토리를 얻을 것입니다. ccl 디렉토리로 이동하여 ccl64 bin 파일을 /usr/local/bin 디렉토리에 복사합니다.
cd /usr/local/src/ccl
sudo cp scripts/ccl64 /usr/local/bin/
이제 ccl64 명령을 실행하여 Common Lisp 설치를 확인하십시오.
ccl64
그리고 아래와 같이 결과가 나오는지 확인합니다.

이제 Clozure Common lisp가 설치되었습니다. 그리고 ccl shell을 종료하고 싶다면 아래와 같이 quit 명령어를 입력합니다.
(quit)
5단계 - Quicklisp 설치
Quicklisp는 Common Lisp의 라이브러리 관리자입니다. Turtl이 Quicklisp 시스템을 통해 모든 종속성을 로드하기 때문에 시스템에 Quicklisp를 설치해야 합니다.
Quicklisp를 설치하기 전에 turtl 설치를 위해 새 사용자를 추가하십시오.
useradd -m -s /bin/bash turtl
passwd turtl
이제 turtl 사용자로 로그인하십시오.
su - turtl
다음 방법으로 wget/curl 명령을 사용하여 quicklisp.lisp 및 asdf.lisp 파일을 다운로드합니다.
wget https://common-lisp.net/project/asdf/asdf.lisp
curl -O https://beta.quicklisp.org/quicklisp.lisp

이제 아래와 같이 ccl64 명령을 사용하여 quicklisp.lisp를 로드합니다.
ccl64 --load quicklisp.lisp
그러면 ccl 셸 명령줄이 표시됩니다. 아래 명령을 사용하여 Quicklisp를 설치합니다.
(quicklisp-quickstart:install)

이 명령은 Quicklisp에 대한 모든 종속성을 다운로드합니다. 완료되면 Quicklisp 초기화 파일을 추가하고 asdf.lisp를 로드합니다.
(ql:add-to-init-file)
(load (compile-file "asdf.lisp"))
완료되면 ccl 쉘을 종료합니다.
(quit)
그리고 quicklisp.lisp 및 asdf.lisp 파일을 제거합니다.
rm -f asdf.lisp quicklisp.lisp
Quicklisp는 turtl 사용자로 시스템에 설치되었습니다.

6단계 - turtl 다운로드 및 설치
이 단계에서는 이미 생성한 turtl 사용자를 통해 Turtl을 설치합니다.
turtl 사용자로 로그인하고 git을 사용하여 turtl 소스 코드를 복제합니다.
su - turtl
git clone https://github.com/turtl/api.git
api 디렉터리로 이동하고 vim을 사용하여 launch.lisp라는 새 파일을 만듭니다.
cd /home/turtl/api
vim launch.lisp
다음 구성을 거기에 붙여넣으십시오.
(pushnew "./" asdf:*central-registry* :test #'equal)
(load "start")
저장 및 종료.
다음으로 turtl에 대한 몇 가지 종속성을 설치해야 합니다. quicklisp 디렉터리로 이동하여 모든 종속성을 복제합니다.
cd ~/quicklisp/local-projects
아래 명령을 실행하여 모든 종속성을 다운로드합니다.
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
그리고 ccl init 파일을 수정합니다.
vim /home/turtl/.ccl-init.lisp
끝으로 이동하여 다음 구성을 붙여넣습니다.
(cwd "/home/turtl/api")
(load "/home/turtl/api/launch")
저장 및 종료.
이제 기본 turtl 구성 config.lisp를 복사하고 vim을 사용하여 편집합니다.
cp /home/turtl/api/config/config.default.lisp /home/turtl/api/config/config.lisp
vim /home/turtl/api/config/config.lisp
server-bind 줄에 아래와 같이 localhost IP 주소를 추가합니다.
defvar *server-bind* "127.0.0.1"
저장 및 종료.
모든 구성이 완료되면 ccl64 명령을 사용하여 turtl 서버를 시작합니다.
ccl64
이 명령은 Turtl 서버 API를 설치하고 완료되면 아래와 같은 결과를 얻게 됩니다.

종료하려면 Ctrl + c를 누르십시오.
Turtl 서버는 이제 로컬 IP 주소 "127.0.0.1"에서 포트 "8181"로 실행 중입니다.
서버의 새 터미널을 열고 아래 netstat 명령을 사용하여 확인하십시오.
netstat -plntu
그리고 아래와 같은 결과를 얻어야 합니다.

7단계 - Turtl을 서비스로 실행
Turtl 서버 API는 turtl 사용자를 통해 설치되었습니다. 이 자습서에서는 turtl을 서비스로 실행합니다.
/lib/systemd/system 디렉터리로 이동하고 vim을 사용하여 새 turtl.service 파일을 만듭니다.
cd /lib/systemd/system/
vim turtl.service
다음 turtl 서비스 구성을 거기에 붙여넣습니다.
[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
저장 및 종료.
이제 systemd를 다시 로드하고 systemctl 명령을 사용하여 turtl 서비스를 시작합니다.
systemctl daemon-reload
systemctl start turtl

시스템 부팅 시마다 turtl 서비스가 시작되도록 활성화하고 turtl 서비스 상태를 확인합니다.
systemctl enable turtl
systemctl status turtl
아래와 같은 결과를 얻어야 합니다.

turtl 서비스는 이제 우분투 시스템에서 서비스로 실행됩니다.
8단계 - Turtl용 Apache Reverse 프록시 구성
이 자습서에서는 Apache/httpd 리버스 프록시 서버에서 Turtl 서버를 실행합니다. Turtl 서버는 포트 8181의 로컬 IP 127.0.0.1에서 실행 중이며 이제 Apache2 웹 서버를 설치하고 Turtl 서버의 역방향 프록시로 구성합니다.
아래의 apt 명령을 사용하여 모든 종속성과 함께 apache2를 설치합니다.
sudo apt install -y apache2 apache2-utils apache2-bin libxml2-dev
설치가 완료되면 다음 명령을 실행하여 필요한 일부 플러그인을 활성화합니다.
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
이제 Apache2 웹 서버를 다시 시작하고 부팅할 때마다 실행되도록 활성화하십시오.
systemctl restart apache2
systemctl enable apache2
다음으로, sites-available 디렉토리 아래에 새 구성 파일 turtl.conf를 생성하여 새 turtl 가상 호스트를 추가합니다.
/etc/apache2/sites-available 디렉토리로 이동하고 vim을 사용하여 새 cconfiguration turtl.conf를 만듭니다.
cd /etc/apache2/sites-available/
vim turtl.conf
아래에 가상 호스트 구성을 붙여넣으십시오.
<VirtualHost *:80>
ServerName turtl.hakase-labs.co
ServerAdmin
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>
저장 및 종료.
이제 turtl 가상 호스트를 활성화하고 구성을 확인하십시오.
a2ensite turtl
apachectl configtest
오류가 없는지 확인한 다음 apache2 웹 서버를 다시 시작하십시오.
systemctl restart apache2
netstat 명령을 사용하여 서비스를 확인하십시오.
netstat -plntu
그리고 포트 80에 Apache 웹 서버가 있고 포트 8181이 있는 127.0.0.1에 Turtl API 서버가 있는지 확인하십시오.
9단계 - 테스트
turtl 클라이언트 응용 프로그램을 다운로드하고 엽니다.
계정 만들기를 클릭합니다.

이제 내 로그인을 기억하겠습니다 버튼을 클릭합니다.

비밀번호와 Turtl 서버 도메인 이름이 포함된 이메일 주소를 입력합니다.

그리고 회원가입 버튼을 클릭합니다.
이제 새 창이 나타납니다. 이 단계 건너뛰기 버튼을 클릭하십시오.

그러면 빈 turtl 대시보드가 표시됩니다. 새 메모, 비밀번호, 파일, 책갈피 등을 추가할 수 있습니다.

Ubuntu 16.04에서 Turtl 서버 설치가 성공적으로 완료되었습니다.
참조
- https://community.nethserver.org/