Инструкции по установке
Быстрый старт
-
Установите Docker на тот же сервер, где размещены HTML-файлы (см. дополнительную информацию об установке на отдельном сервере).Обычно это можно сделать:
-
через панель управления сервером или менеджер пакетов;
-
следуя инструкциям на сайте Docker;
-
или следуя инструкциям ИИ.
-
Установите поисковый движок.
Создайте файл docker-compose.yaml из шаблона, затем запустите поисковый движок с помощью команды docker compose up -d -
Настройте переадресацию запросов в конфигурации веб-сервера.
Настройте ваш веб-сервер как обратный прокси-сервер (reverse proxy), чтобы перенаправлять запросы, содержащие путь /drexsearch/, на поисковую систему.
-
Включите расширенный поиск в настройках проекта Dr.Explain.
Перейдите в Настройки проекта -> HTML экспорт, выберите Расширенный поиск и нажмите ОК.
-
Экспортируйте проект Dr.Explain в HTML и опубликуйте HTML-файлы на вашем веб-сервере.
-
Откройте ваш сайт и проверьте работу поиска.
Для обновления поискового индекса потребуется 5–10 минут.
Создайте на вашем сервере папку для хранения конфигурационного файла и перейдите в нее:
sudo mkdir /opt/drexplain-search
cd /opt/drexplain-search
Создайте файл:
sudo touch docker-compose.yaml
Откройте его на редактирование (sudo nano docker-compose.yaml).
Скопируйте и вставьте в файл следующий текст:
services:
# Это приложение, которое обрабатывает HTTP-запросы и взаимодействует с поисковым движком Apache Solr.
drexplain-search-backend-controller:
image: ghcr.io/indigobyte/dsb-controller:latest
restart: unless-stopped
volumes:
# ВАЖНО: замените это на реальные пути на сервере к экспортированным HTML-файлам в формате "путь_на_сервере:внутренний_путь:ro" (только для чтения).
# Пример: наберите 6 пробелов, дефис, пробел, вставьте абсолютный путь к папке с вашими HTML-файлами,
# двоеточие, затем снова тот же абсолютный путь и добавьте в конце ":ro".
- /var/www:/var/www:ro
# ВАЖНО: замените их на реальные пути внутри контейнера. Переменные окружения должны начинаться с префикса DREX_CONTENT_ROOT.
# Пример: введите 6 пробелов, дефис, пробел, DREX_CONTENT_ROOT_, код языка ваших HTML-файлов, знак равенства,
# а затем абсолютный путь к папке с этими HTML-файлами.
environment:
- DREX_CONTENT_ROOT_EN=/var/www/docs-en
- DREX_CONTENT_ROOT_ES=/var/www/docs-ru
ports:
# Чтобы открыть доступ к сервису на других компьютерах, удалите часть "127.0.0.1:". ВНИМАНИЕ: это сделает сервис доступным
# на всех сетевых интерфейсах. Делайте это только при наличии соответствующих прав файрвола.
- "127.0.0.1:8082:8082"
depends_on:
- solr
# Это поисковый движок Apache Solr.
solr:
image: ghcr.io/indigobyte/dsb-solr:latest
restart: unless-stopped
volumes:
- solr-data:/var/solr
environment:
# Если в вашей документации большое количество разделов, увеличьте это значение.
- SOLR_HEAP=2700m
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
volumes:
# Это виртуальный жесткий диск, на котором хранится поисковый индекс.
solr-data:
Измените пути монтирования (секция volumes) и переменные окружения (секция environment) в файле docker-compose.yaml в соответствии со структурой каталогов вашего сервера, а затем сохраните файл.
Запустите поисковый движок:
sudo docker compose up -d
Рекомендуется устанавливать поисковый движок на том же самом сервере, где размещены ваши HTML-файлы, экспортированные из проекта Dr.Explain (см. дополнительную информацию по установке на отдельном сервере). Настройте ваш веб-сервер как обратный прокси-сервер (reverse proxy), который перенаправляет запросы, содержащие путь /drexsearch/, на поисковый движок, работающий на порту 8082.
Ниже приведены конфигурации для популярных веб-серверов:
nginx
Добавьте следующий фрагмент в конфигурацию nginx:
location ~ /drexsearch/(.*)$ {
proxy_pass http://127.0.0.1:8082/$1$is_args$args;
}
Apache
Необходимо включить модули mod_rewrite, mod_proxy и mod_proxy_http для Apache. Добавьте следующее в конфигурацию вашего виртуального хоста или в файл .htaccess:
RewriteEngine On
RewriteRule ^(?:.*/)?drexsearch/(.*)$ http://127.0.0.1:8082/$1 [P,L]
Caddy
Добавьте следующий фрагмент в конфигурацию Caddyfile:
@drexsearch path_regexp /drexsearch/(.*)$
reverse_proxy @drexsearch 127.0.0.1:8082 {
rewrite /{re.1}
}
Microsoft Internet Information Services
Необходимо
установить компоненты
URL Rewrite
и
Application Request Routing
, затем добавить следующее правило в файл
web.configв раздел
/configuration/system.webServer/rewrite/rules:
<rule name="Dr.Explain Search Backend" stopProcessing="true">
<match url="^(?:.*/)?drexsearch/(.*)$" />
<action type="Rewrite" url="http://127.0.0.1:8082/{R:1}" />
</rule>