Поисковая площадка для сети Yggdrasil с открытым исходным кодом с минимальным заимствованием наработок архивного YGGo
Целью проекта является переход на более актуальные программные решения, желание сделать проект доступным для быстрой и удобной установки а также сокращение издержек на обслуживающие сервера.
База данных импортирована с YGGo, но отсутствуют снимки в виду смены их архитектуры (доступен архив ~14 Гб).
Для установки достаточно выполнить несколько команд, описанных в разделе README
Приложение самостоятельно создаст индексы на основании единственного файла настроек.
Все необходимые для работы настройки собраны в файл json ( пример )
Платформа изначально создана для поиска контента в сети Yggdrasil но также может быть использована для организации локального или публичного поискового сервера для сети Интернет.
Чтобы осуществлять поиск в сети Yggdrasil, достаточно изменить правила сбора ссылок, например:
"a:not([rel=nofollow])":
{
"attribute":"href",
"external":true,
"regex":"/^http:\\/\\/\\[0{0,1}[2-3][a-f0-9]{0,2}:/"
},
"image":
{
"attribute":"src",
"external":true,
"regex":"/^http:\\/\\/\\[0{0,1}[2-3][a-f0-9]{0,2}:/"
},
...
По аналогии можно добавить поддержку доменов .ygg или сделать поиск только по указанной зоне:
"regex":"/^http:\\/\\/[A-z0-9\\.-]+\\.ygg/"
Если не планируется сбор / архивирование медиа контента, можно удалить соответствующие конструкции селекторов.
Не смотря на то, что с помощью регулярных выражений можно сделать то же самое, для удобства добавлены дополнительные фильтры подстроки:
"skip":
{
"stripos":
{
"url":
[
"#",
"javascript:",
"mailto:",
"magnet:",
"xmpp:"
]
}
}
Очень просто можно перевести приложение в режим локального поиска по сайту, указав в настройках
"external":false
Чтобы принимать запросы на индексацию через поисковое поле, нужно включить опцию
"webui":
{
"search":
{
"index":
{
"request":
{
"url":
{
"enabled":true,
также можно указать фильтры адресов с помощью регулярного выражения в поле «regex»
Сервер Manticore предусматривает несколько базовых сценариев для выполнения бекапов:
Данный способ подойдет узлам, предоставляющих публичный доступ к собранным данным посредством текстового дампа в формате SQL.
При таком подходе, по расписанию выполняется команда mysqldump:
@monthly mysqldump -h0 -P9306 manticore > /var/www/html/index.sql 2>&1
Чтобы не останавливать сканер, можно указать флаг
--lock-tables=false
а также исключить дополнительные таблицы, если они не нужны
--ignore-table=manticore.yo_some_document
На основном сервере, дамп генерируется раз в месяц, а последняя его версия - всегда доступна по ссылке /index.sql в корне соответствующего сайта: версия IPv6 , yo.ygg и т.д.
Владельцы могут ограничить канал для загрузки дампов посредством http:
location = /index.sql {
limit_rate 50k;
# ограничение будет срабатывать после 100 Мб
# limit_rate_after 100m;
}
История снимков на данный момент не опубликована в виду дисковых ограничений и вероятно, этот процесс будет автоматизирован последством создания периодических торрент раздач.
Таким образом, можно выполнить слияние / быстро развернуть приватный или общий поисковый сервер с нуля, без лишнего обращения к сайтам и затрат времени на сканирование.
Данный способ подразумевает резервное копирование мета информации сервера, включая бинарные данные.
Подход менее требовательный к ресурсам сервера, может выполнятся чаще для административных нужд.
Проект на GitHub: https://github.com/YGGverse/Yo ( зеркало )
Ветка для протокола Gemini https://github.com/YGGverse/Yo/tree/gemini
Официальный сайт Manticore: https://manticoresearch.com
Новости: https://mastodon.social/@YGGverse
Канал KevaChat: 0200::/7 , алиас