Как установить альтернативу Turtl Server Evernote на CentOS 7
На этой странице
- Предпосылки
- Что мы будем делать
- Шаг 1. Установите средства разработки
- Шаг 2. Установите Libuv на CentOS 7
- Шаг 3. Установите и настройте RethinkDB
- Шаг 4. Установите Common Lisp
- Шаг 5. Установите Quicklisp
- Шаг 6. Загрузите и установите сервер Turtl
- Шаг 7. Запуск Turtl Server как службы
- Шаг 8. Установите и настройте Apache/httpd в качестве обратного прокси-сервера для Turtl
- Шаг 9. Тестирование
- Справочник
Turtl — это безопасная и зашифрованная альтернатива Evernote. Это приложение с открытым исходным кодом, которое позволяет делать заметки, добавлять веб-сайты в закладки, хранить документы, делиться паролями с коллегами и т. д. Turtl позволяет вам контролировать все ваши данные в частном месте. Исходный код клиента turtl и серверного приложения turtl доступен на github — вы можете развернуть его вручную на своем сервере.
В этом руководстве мы пошагово покажем вам, как установить и настроить сервер Turtl на CentOS 7. Сервер Turtl написан на Common Lisp, поэтому нам необходимо установить Common Lisp и QuickLisp в системе. В этом руководстве будут рассмотрены некоторые темы, включая установку Libuv в системе CentOS 7 и установку RethinkDB для хранилища данных turtl.
Предпосылки
- СентОС 7
- Привилегии root
Что мы будем делать
- Установить средства разработки
- Установите Libuv на CentOS 7
- Установка и настройка RethinkDB
- Установить Common Lisp
- Установить Quicklisp
- Загрузите и установите сервер Turtl
- Запуск Turtl Server как службы
- Установите и настройте Apache в качестве обратного прокси-сервера для Turtl.
- Тестирование
Шаг 1 — Установите средства разработки
Для этого руководства нам нужны пакеты средств разработки, установленные в системе CentOS.
Установите средства разработки с помощью приведенной ниже команды yum.
sudo yum group install "Development Tools"
Дождитесь установки всех пакетов средств разработки.
Шаг 2 — Установите Libuv на CentOS 7
Libuv — это многоплатформенная библиотека поддержки, ориентированная на асинхронный ввод-вывод. Эта библиотека нужна серверу Turtl, и мы установим эту библиотеку вручную.
Прежде чем вручную устанавливать Libuv в систему, давайте установим openssl и openssl-devel.
yum -y install openssl openssl-devel
Теперь перейдите в каталог /usr/local/src и загрузите файл libuv.targz с помощью 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 -f libuv-v1.9.1.tar.gz
Перейдите в каталог libuv.
cd libuv-v1.9.1/
Установите Libuv с помощью инструментов разработки, выполнив все приведенные ниже команды.
sh autogen.sh
./configure
make
make install
Когда все будет готово, выполните следующую команду.
sudo ldconfig
Библиотека Libuv была установлена в системе CentOS 7.
Шаг 3 — Установите и настройте RethinkDB
RethinkDB — это открытая и распределенная база данных, ориентированная на документы, а Turtl Server использует RethinkDB в качестве хранилища данных.
На этом этапе мы установим RethinkDB из собственного репозитория.
Добавьте репозиторий RethinkDB для CentOS 7 в систему.
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
И создайте новый служебный файл для RethinkDB с помощью редактора vim.
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 теперь установлен и работает в системе CentOS 7.
Проверьте это с помощью следующей команды.
systemctl status rethinkdb
netstat -plntu
И вы должны получить результат, как показано ниже.
Шаг 4 — Установите Common Lisp
Common Lisp (CL) — это диалект языка программирования Lisp. Это член семейства Lisp. На этом этапе мы вручную установим Clozure Common Lisp в систему CentOS.
Перейдите в каталог /usr/local/src и загрузите Clozure Common Lisp для 86/64-разрядной версии Linux с помощью команды wget.
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 и скопируйте bin-файл ccl64 в каталог /usr/bin.
cd /usr/local/src/ccl
sudo cp scripts/ccl64 /usr/bin/
Теперь проверьте установку Clozure Common Lisp, выполнив команду ccl64.
ccl64
И убедитесь, что вы получите результат, как показано ниже.
Общий лисп Clozure теперь установлен. И если вы хотите выйти из оболочки 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
Квиклисп установлен.
Шаг 6 — Скачайте и установите Turtl Server
На этом этапе мы установим 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 и введите (quit), чтобы выйти.
Шаг 7 — Запуск Turtl Server как службы
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/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 теперь работает как служба в системе CentOS 7.
Шаг 8. Установите и настройте Apache/httpd в качестве обратного прокси для Turtl
В этом руководстве мы запустим сервер Turtl под обратным прокси-сервером Apache/httpd. Сервер Turtl теперь работает под локальным IP 127.0.0.1 с портом 8181, и теперь мы установим веб-сервер Apache2 и настроим его как обратный прокси-сервер для сервера Turtl.
Установите apache2 со всеми зависимостями, используя приведенную ниже команду yum.
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
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/httpd был установлен в системе CentOS 7 и действует как обратный прокси-сервер для приложения Turtl через порт 8181.
Проверьте это с помощью приведенной ниже команды netstat.
netstat -plntu
Шаг 9 — Тестирование
Загрузите клиентское приложение turtl и откройте его.
Нажмите на ссылку Создать учетную запись.
Теперь нажмите кнопку «Я запомню свой логин».
Введите свой адрес электронной почты с паролем и доменное имя вашего сервера Turtl.
И нажмите кнопку Присоединиться.
Теперь вы получите новое окно — нажмите кнопку «Пропустить этот шаг».
И вы получите пустую приборную панель черепахи. Здесь вы можете добавить новую заметку, пароль, файлы, закладки и т. д.
Установка сервера Turtl в системе CentOS 7 успешно завершена.
Ссылка
- https://community.nethserver.org/