Как установить Turtl Server — альтернативу Evernote — на Ubuntu 16.04
На этой странице
- Шаг 1. Установите зависимости
- Шаг 2. Установите Libuv в Ubuntu 16.04
- Шаг 3. Установите RethinkDB
- Шаг 4. Установите Common Lisp (CL)
- Шаг 5. Установите Quicklisp
- Шаг 6. Загрузите и установите turtl
- Шаг 7. Запуск Turtl как службы
- Шаг 8. Настройка обратного прокси-сервера Apache для Turtl
- Шаг 9. Тестирование
- Справочник
Turtl — это безопасная и зашифрованная альтернатива Evernote. Это приложение с открытым исходным кодом, которое позволяет делать заметки, добавлять веб-сайты в закладки, хранить документы, делиться паролями с коллегами. Turtl позволяет вам контролировать все ваши данные в частном месте. Исходный код клиента turtl и серверного приложения turtl доступен на github, и вы можете вручную развернуть его на своем сервере.
В этом руководстве мы пошагово покажем вам, как установить и настроить сервер Turtl в Ubuntu 16.04. Сервер Turtl написан на Common Lisp, поэтому нам необходимо установить в системе Common Lisp и QuickLisp. В этом руководстве также рассматриваются такие вещи, как установка Libuv в системе Ubuntu и установка RethinkDB для хранилища данных Turtl.
Предпосылки
- Убунту 16.04
- Привилегии root
Что мы будем делать
- Установить зависимости
- Установите Libuv в Ubuntu 16.04.
- Установка и настройка RethinkDB
- Установить Common Lisp
- Установить Quicklisp
- Загрузите и установите сервер Turtl
- Запуск Turtl Server как службы
- Установите и настройте Apache в качестве обратного прокси-сервера для Turtl.
- Тестирование
Шаг 1 — Установите зависимости
Обновите репозиторий сервера Ubuntu, затем обновите систему.
sudo apt update
sudo apt upgrade
Теперь установите некоторые необходимые пакеты, включая git, wget и automake, с помощью приведенной ниже команды apt.
sudo apt install wget curl libtool subversion make automake git -y
Шаг 2 — Установите Libuv на Ubuntu 16.04
Libuv — это многоплатформенная библиотека поддержки, ориентированная на асинхронный ввод-вывод. Эта библиотека нужна серверу Turtl, и мы установим ее вручную.
Перейдите в каталог /usr/local/src и загрузите сжатый файл Libuv с помощью wget.
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
Теперь создайте библиотеку 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.
На этом этапе мы вручную установим Clozure Common Lisp в системе Ubuntu.
Перейдите в каталог /usr/local/src и загрузите Clozure Common Lisp для Linux 86/64-bit с помощью команды wget.
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 и скопируйте bin-файл ccl64 в каталог /usr/local/bin.
cd /usr/local/src/ccl
sudo cp scripts/ccl64 /usr/local/bin/
Теперь проверьте установку Common Lisp, выполнив команду ccl64.
ccl64
И убедитесь, что вы получите результат, как показано ниже.
Clozure Common lisp теперь установлен. И если вы хотите выйти из оболочки ccl, введите команду quit, как показано ниже.
(quit)
Шаг 5 — Установите Quicklisp
Quicklisp — это менеджер библиотек для Common Lisp. Нам нужно, чтобы Quicklisp был установлен в системе, потому что Turtl загружает все свои зависимости через систему Quicklisp.
Перед установкой Quicklisp добавьте нового пользователя для установки turtl.
useradd -m -s /bin/bash turtl
passwd turtl
Теперь войдите в систему как пользователь turtl.
su - turtl
Загрузите файлы quicklisp.lisp и asdf.lisp с помощью команд wget/curl следующим образом.
wget https://common-lisp.net/project/asdf/asdf.lisp
curl -O https://beta.quicklisp.org/quicklisp.lisp
Теперь загрузите quicklisp.lisp с помощью команды ccl64, как показано ниже.
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 и клонируйте исходный код turtl с помощью git.
su - turtl
git clone https://github.com/turtl/api.git
Перейдите в каталог API и создайте новый файл с именем launch.lisp, используя vim.
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.
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"
Сохранить и выйти.
После завершения всех настроек запустите сервер turtl с помощью команды ccl64.
ccl64
Команда установит API сервера Turtl, и когда она завершится, вы получите результат, как показано ниже.
Нажмите Ctrl + c, чтобы выйти.
Сервер Turtl теперь работает под локальным IP-адресом «127.0.0.1» с портом «8181».
Откройте новый терминал вашего сервера, затем проверьте его с помощью приведенной ниже команды netstat.
netstat -plntu
И вы должны получить результат, как показано ниже.
Шаг 7 — Запуск Turtl как службы
API сервера Turtl был установлен через пользователя turtl. И для этого урока мы будем запускать turtl как сервис.
Перейдите в каталог /lib/systemd/system и создайте новый файл turtl.service с помощью vim.
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 и запустите службу turtl с помощью команды systemctl.
systemctl daemon-reload
systemctl start turtl
Включите службу turtl для запуска каждый раз при загрузке системы и проверьте состояние службы turtl.
systemctl enable turtl
systemctl status turtl
Вы должны получить результат, как показано ниже.
Служба turtl теперь работает как служба в системе Ubuntu.
Шаг 8. Настройте обратный прокси-сервер Apache для Turtl.
В этом руководстве мы запустим сервер Turtl под обратным прокси-сервером Apache/httpd. Сервер Turtl работает под локальным IP-адресом 127.0.0.1 с портом 8181, и теперь мы установим веб-сервер Apache2 и настроим его как обратный прокси-сервер для сервера Turtl.
Установите apache2 со всеми зависимостями, используя приведенную ниже команду apt.
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
Затем добавьте новый виртуальный хост turtl, создав новый файл конфигурации turtl.conf в каталоге, доступном для сайтов.
Перейдите в каталог /etc/apache2/sites-available и создайте новый cconfiguration turtl.conf с помощью vim.
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
И убедитесь, что вы используете веб-сервер Apache на порту 80 и сервер Turtl API на 127.0.0.1 с портом 8181.
Шаг 9 — Тестирование
Загрузите клиентское приложение turtl и откройте его.
Нажмите «Создать учетную запись».
Теперь нажмите кнопку «Я запомню свой логин».
Введите свой адрес электронной почты с паролем и доменное имя вашего сервера Turtl.
И нажмите кнопку Присоединиться.
Теперь вы получите новое окно — нажмите кнопку «Пропустить этот шаг».
И вы получите пустую приборную панель черепахи. Вы можете добавить новую заметку, пароль, файлы, закладки и т. д.
Установка сервера Turtl на Ubuntu 16.04 успешно завершена.
Ссылка
- https://community.nethserver.org/