Turtlは、安全で暗号化されたEvernoteの代替品です。これは、メモを取ったり、Webサイトをブックマークしたり、ドキュメントを保存したり、同僚とパスワードを共有したりできるオープンソースアプリケーションです。 Turtlを使用すると、プライベートな場所ですべてのデータを管理できます。 turtlクライアントとturtlサーバーアプリケーションのソースコードはgithubで入手でき、サーバーに手動でデプロイできます。
このチュートリアルでは、Ubuntu16.04にTurtlサーバーをインストールして構成する方法を段階的に説明します。 TurtlサーバーはCommonLispで記述されているため、システムにCommonLispとQuickLispをインストールする必要があります。このチュートリアルでは、UbuntuシステムへのLibuvのインストールや、Turtlデータストア用のRethinkDBのインストールなどについても説明します。
前提条件
- Ubuntu 16.04
- root権限
私たちが行うこと
- 依存関係のインストール
- Ubuntu16.04にLibuvをインストールする
- RethinkDBのインストールと構成
- CommonLispをインストールする
- Quicklispをインストールする
- Turtlサーバーをダウンロードしてインストールする
- Turtlサーバーをサービスとして実行する
- ApacheをTurtlのリバースプロキシとしてインストールして設定します
- テスト
Ubuntuサーバーリポジトリを更新してから、システムを更新します。
sudo apt update
sudo apt upgrade
次に、以下のaptコマンドを使用して、必要なパッケージ(git、wget、automakeなど)をインストールします。
sudo apt install wget curl libtool subversion make automake git -y
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」ディレクトリに追加されました。
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-CommonLisp(CL)をインストールする
Common Lisp(CL)は、Lispプログラミング言語の方言であり、Lispファミリーのメンバーです。
このステップでは、Ubuntuシステムに「ClozureCommonLisp」を手動でインストールします。
'/ 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
「CommonLisp」圧縮ファイルを抽出して削除します。
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」コマンドを実行して、「CommonLisp」のインストールを確認します。
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
Quicklispは、「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
そして、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'を押して終了します。
Turtlサーバーは、ローカルIPアドレス「127.0.0.1」、ポート「8181」で実行されています。
サーバーの新しい端末を開き、以下のnetstatコマンドを使用して確認します。
netstat -plntu
そして、次のような結果が得られるはずです。
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サービスはUbuntuシステムでサービスとして実行されています。
このチュートリアルでは、Apache/httpdリバースプロキシサーバーの下でTurtlサーバーを実行します。 TurtlサーバーはローカルIP「127.0.0.1」でポート「8181」で実行されています。次に、Apache2 Webサーバーをインストールし、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 Webサーバーを再起動し、起動時に毎回起動できるようにします。
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 [email protected]
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
エラーが発生していないことを確認してから、apache2Webサーバーを再起動します。
systemctl restart apache2
netstatコマンドを使用してサービスを確認してください。
netstat -plntu
また、ポート80でApache Webサーバーを取得し、ポート「8181」で「127.0.0.1」でTurtlAPIサーバーを取得していることを確認してください。
turtlクライアントアプリケーションをダウンロードして開きます。
[アカウントの作成]をクリックします。
次に、[ログインを記憶します]ボタンをクリックします。
メールアドレスとパスワード、Turtlサーバーのドメイン名を入力します。
そして、[参加]ボタンをクリックします。
これで、新しいウィンドウが表示されます。[このステップをスキップ]ボタンをクリックしてください。
そして、空白のturtlダッシュボードが表示されます。新しいメモ、パスワード、ファイル、ブックマークなどを追加できます。
Ubuntu16.04へのTurtlサーバーのインストールが正常に完了しました。