如何在Ubuntu 16.04上安装Turtl Server - Evernote Alternative
Turtl是一个安全和加密的Evernote替代品。 这是一个开源应用程序,可以让你记笔记,书签网站,存储文件,与同事共享密码。 Turtl允许您在私人场所控制您的所有数据。 turtl客户端和turtl服务器应用程序的源代码在github上可用,您可以在您的服务器上手动部署它。
在本教程中,我们将逐步向您展示如何在Ubuntu 16.04上安装和配置Turtl服务器。 Turtl服务器是用Common Lisp编写的,所以我们需要在系统上安装Common Lisp和QuickLisp。 本教程还将介绍在Ubuntu系统上安装Libuv以及为Turtl数据存储安装RethinkDB等内容。
先决条件
- Ubuntu 16.04
- 根特权
我们将要做什么
- 安装依赖关系
- 在Ubuntu 16.04上安装Libuv
- 安装和配置RethinkDB
- 安装Common Lisp
- 安装Quicklisp
- 下载并安装Turtl服务器
- 运行Turtl服务器即服务
- 安装Apache并将其配置为Turtl的反向代理
- 测试
第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步 - 安装Common Lisp(CL)
Common Lisp(CL)是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的图书馆经理。 我们需要在系统上安装“Quicklisp”,因为Turtl通过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'shell命令行。 使用下面的命令安装Quicklisp。
(quicklisp-quickstart:install)
该命令将下载Quicklisp的所有依赖项。 完成后,添加Quicklisp'init'文件并加载'asdf.lisp'。
(ql:add-to-init-file)
(load (compile-file "asdf.lisp"))
完成后,退出“ccl”shell。
(quit)
并删除“quicklisp.lisp”和“asdf.lisp”文件。
rm -f asdf.lisp quicklisp.lisp
已经在“turtl”用户的系统上安装了Quicklisp。
第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
在“服务器绑定”行上,添加本地主机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服务现在在Ubuntu系统上作为服务运行。
第8步 - 为Turtl配置Apache反向代理
在本教程中,我们将运行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 hakase@hakase-labs.co
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 web服务器。
systemctl restart apache2
使用netstat命令检查服务。
netstat -plntu
并确保您在端口80上获得Apache Web服务器,在端口为“8181”的“127.0.0.1”上获得Turtl API服务器。
第9步 - 测试
下载turtl客户端应用程序并打开它。
点击“创建帐户”。
现在点击“我将记住我的登录”按钮。
用密码和你的Turtl服务器域名输入你的电子邮件地址。
然后点击“加入”按钮。
现在,您将看到新窗口 - 点击“跳过此步骤”按钮。
你会得到空白的turtl仪表板。 您可以添加新的笔记,密码,文件,书签等
Ubuntu 16.04上的Turtl服务器安装已经成功完成。