Поиск по сайту:

Как установить Turtl Server — альтернативу Evernote — на Ubuntu 16.04


На этой странице

  1. Шаг 1. Установите зависимости
  2. Шаг 2. Установите Libuv в Ubuntu 16.04
  3. Шаг 3. Установите RethinkDB
  4. Шаг 4. Установите Common Lisp (CL)
  5. Шаг 5. Установите Quicklisp
  6. Шаг 6. Загрузите и установите turtl
  7. Шаг 7. Запуск Turtl как службы
  8. Шаг 8. Настройка обратного прокси-сервера Apache для Turtl
  9. Шаг 9. Тестирование
  10. Справочник

Turtl — это безопасная и зашифрованная альтернатива Evernote. Это приложение с открытым исходным кодом, которое позволяет делать заметки, добавлять веб-сайты в закладки, хранить документы, делиться паролями с коллегами. Turtl позволяет вам контролировать все ваши данные в частном месте. Исходный код клиента turtl и серверного приложения turtl доступен на github, и вы можете вручную развернуть его на своем сервере.

В этом руководстве мы пошагово покажем вам, как установить и настроить сервер Turtl в Ubuntu 16.04. Сервер Turtl написан на Common Lisp, поэтому нам необходимо установить в системе Common Lisp и QuickLisp. В этом руководстве также рассматриваются такие вещи, как установка Libuv в системе Ubuntu и установка RethinkDB для хранилища данных Turtl.

Предпосылки

  • Убунту 16.04
  • Привилегии root

Что мы будем делать

  1. Установить зависимости
  2. Установите Libuv в Ubuntu 16.04.
  3. Установка и настройка RethinkDB
  4. Установить Common Lisp
  5. Установить Quicklisp
  6. Загрузите и установите сервер Turtl
  7. Запуск Turtl Server как службы
  8. Установите и настройте Apache в качестве обратного прокси-сервера для Turtl.
  9. Тестирование

Шаг 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/