Turtlは、安全で暗号化されたEvernoteの代替品です。これは、メモを取ったり、Webサイトをブックマークしたり、ドキュメントを保存したり、同僚とパスワードを共有したりできるオープンソースアプリケーションです。 Turtlを使用すると、プライベートな場所ですべてのデータを管理できます。 turtlクライアントとturtlサーバーアプリケーションのソースコードはgithubで入手できます。サーバーに手動でデプロイできます。
このチュートリアルでは、CentOS7にTurtlサーバーをインストールして構成する方法を段階的に説明します。TurtlサーバーはCommonLispで記述されているため、システムにCommonLispとQuickLispをインストールする必要があります。このチュートリアルでは、CentOS 7システムへのLibuvのインストールや、turtlデータストア用のRethinkDBのインストールなどのトピックについて説明します。
- CentOS 7
- root権限
- 開発ツールのインストール
- CentOS7にLibuvをインストールする
- RethinkDBのインストールと構成
- CommonLispをインストールする
- Quicklispをインストールする
- Turtlサーバーをダウンロードしてインストールする
- Turtlサーバーをサービスとして実行する
- ApacheをTurtlのリバースプロキシとしてインストールおよび構成する
- テスト
このガイドでは、CentOSシステムに「開発ツール」パッケージをインストールする必要があります。
以下のyumコマンドを使用して「開発ツール」をインストールします。
sudo yum group install "Development Tools"
すべての「開発ツール」パッケージがインストールされるのを待ちます。
Libuvは、非同期I/Oに焦点を合わせたマルチプラットフォームサポートライブラリです。このライブラリはTurtlサーバーに必要であり、このライブラリを手動でインストールします。
「Libuv」をシステムに手動でインストールする前に、opensslとopenssl-develをインストールしましょう。
yum -y install openssl openssl-devel
次に、「/ usr / local / src」ディレクトリに移動し、wgetを使用してlibuv.targzファイルをダウンロードします。
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 -f libuv-v1.9.1.tar.gz
'libuv'ディレクトリに移動します。
cd libuv-v1.9.1/
以下のすべてのコマンドを実行して、開発ツールを使用してLibuvをインストールします。
sh autogen.sh
./configure
make
make install
完了したら、次のコマンドを実行します。
sudo ldconfig
LibuvライブラリがCentOS7システムにインストールされました。
RethinkDBはオープンソースの分散ドキュメント指向データベースであり、TurtlServerはRethinkDBをデータストアとして使用しています。
このステップでは、独自のリポジトリからRethinkDBをインストールします。
CentOS7のRethinkDBリポジトリをシステムに追加します。
sudo wget http://download.rethinkdb.com/centos/7/`uname -m`/rethinkdb.repo \>
-O /etc/yum.repos.d/rethinkdb.repo
RethinkDBリポジトリが追加されました。次の方法でyumコマンドを使用してインストールします。
sudo yum -y install rethinkdb
インストールが完了したら、デフォルトの構成を「/etc/rethinkdb/instances.d」ディレクトリにコピーします。
cp /etc/rethinkdb/default.conf.sample /etc/rethinkdb/instances.d/default.conf
そして、vimエディターを使用してRethinkDBの新しいサービスファイルを作成します。
cd /etc/systemd/system
vim rethinkdb.service
次の構成をそこに貼り付けます。
# 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
次に、systemdシステムをリロードし、RethinkDBサービスを開始します。
systemctl daemon-reload
systemctl start rethinkdb
これで、RethinkDBがCentOS7システムにインストールされて実行されます。
次のコマンドを使用して確認してください。
systemctl status rethinkdb
netstat -plntu
そして、次のような結果が得られるはずです。
Common Lisp(CL)は、Lispプログラミング言語の方言です。 Lispファミリーのメンバーです。このステップでは、「ClozureCommonLisp」をCentOSシステムに手動でインストールします。
'/ usr / local / src'ディレクトリに移動し、wgetコマンドを使用してLinux86/64ビット用の'ClozureCommonLisp'をダウンロードします。
cd /usr/local/src
wget https://github.com/Clozure/ccl/releases/download/v1.11.5/ccl-1.11.5-linuxx86.tar.gz
'Clozure 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/bin'ディレクトリにコピーします。
cd /usr/local/src/ccl
sudo cp scripts/ccl64 /usr/bin/
次に、「ccl64」コマンドを実行して、「ClozureCommonLisp」のインストールを確認します。
ccl64
そして、以下のような結果が得られることを確認してください。
'ClozureCommonlisp'がインストールされました。また、「ccl」シェルを終了する場合は、quitコマンドを入力します。
(quit)
Quicklispは、CommonLispのライブラリマネージャーです。 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の「init」ファイルを追加して「asdf.lisp」をロードします。
(ql:add-to-init-file)
(load (compile-file "asdf.lisp"))
完了したら、「ccl」シェルを終了します。
(quit)
そして、「quicklisp.lisp」ファイルと「asdf.lisp」ファイルを削除します。
rm -f asdf.lisp quicklisp.lisp
Quiclispがインストールされました。
このステップでは、上部に作成した「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
そして、cclinitファイルを編集します。
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'行に、以下のようにローカルホストIPアドレスを追加します。
defvar *server-bind* "127.0.0.1"
保存して終了します。
すべての構成が完了したら、「ccl64」コマンドを使用してturtlサーバーを起動します。
ccl64
このコマンドはTurtlサーバーAPIをインストールし、完了すると次のような結果が得られます。
「Ctrl+c」を押し、「(quit)」と入力して終了します。
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/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サービスは、CentOS7システムでサービスとして実行されています。
このチュートリアルでは、Apache/httpdリバースプロキシサーバーの下でTurtlサーバーを実行します。 Turtlサーバーは現在ローカルIP「127.0.0.1」でポート「8181」で実行されています。次にApache2Webサーバーをインストールし、Turtlサーバーのリバースプロキシとして構成します。
以下のyumコマンドを使用して、すべての依存関係でapache2をインストールします。
yum -y install httpd mod_proxy_html
インストールが完了したら、Turtlの新しい仮想ホストファイルを追加します。
'/etc/httpd/conf.d'ディレクトリに移動し、新しい仮想ホストファイル'turtl.conf'を作成します。
cd /etc/httpd/conf.d/
vim turtl.conf
次の仮想ホスト構成をそこに貼り付けます。
<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>
保存して終了します。
次に、Apacheの構成を確認し、エラーがないことを確認します。
apachectl configtest
ここで、httpdサービスを再起動し、システムの起動時に毎回起動できるようにします。
systemctl restart httpd
systemctl enable httpd
Apache2 / httpdWebサーバーはCentOS7システムにインストールされており、ポート8181でTurtlアプリケーションのリバースプロキシとして機能します。
以下のnetstatコマンドを使用して確認してください。
netstat -plntu
turtlクライアントアプリケーションをダウンロードして開きます。
[アカウントの作成]リンクをクリックします。
次に、[ログインを記憶します]ボタンをクリックします。
メールアドレスとパスワード、Turtlサーバーのドメイン名を入力します。
そして、[参加]ボタンをクリックします。
これで、新しいウィンドウが表示されます。[このステップをスキップ]ボタンをクリックしてください。
そして、空白のturtlダッシュボードが表示されます。ここで、新しいメモ、パスワード、ファイル、ブックマークなどを追加できます。
CentOS7システムへのTurtlサーバーのインストールが正常に完了しました。