How to Wiki Database (change log)
http://[222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c]
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
521 lines
28 KiB
521 lines
28 KiB
====== YGGtracker v2 ====== |
|
|
|
Вторая версия каталога BitTorrent c [[https://github.com/YGGverse/YGGtracker|открытым исходным кодом]] для сети Yggdrasil. |
|
|
|
===== Функциональность ===== |
|
|
|
* Добавлена поддержка мультиязычности интерфейса и контента |
|
* Вместо импорта magnet-ссылок, добавлена поддержка загрузки torrent файлов с возможностью экспорта в magnet или torrent форматах |
|
* Максимально упрощено добавление контента: описание и теги генерируются автоматически из содержимого torrent файла |
|
* Подробные информационные страницы о содержимом каждого torrent файла, возможность фильтрации приватных и non-yggdrasil подключений |
|
* Добавлена лента активности пользователей |
|
* Расширены способы подписки по RSS - последние торренты, активность по отдельному торренту, активность пользователей, подписки на поисковые результаты |
|
* Гибкие настройки профиля - фильтры контента по локали, типам активности, фильтрация адресов трекеров и т.д. |
|
* Организация доступа к редактированию контента основана на принципе википедии, где каждый участник может редактировать материалы, с сохранением истории правок |
|
* Доступны уровни доступа - пользователь, автор, модератор. Первый пользователь может создавать новых модераторов, в то время как они - добавлять остальных, формируя ресурс коллективного типа |
|
* Еще не реализованной но одной из основных функций будут мульти-язычные информационные страницы, которые будут автоматически объединять все контекстные файлы для скачивания |
|
* В рамках информационных страниц возможно будет реализовано стриминговое вещание посредством webtorrent, для удобного просмотра видео без загрузки торрент файла. |
|
|
|
==== Обновления ==== |
|
|
|
* 2.1.0 - добавлена поддержка API для интеграции сторонних приложений и плагинов для торрент клиентов - [[yggdrasil:bittorrent:qbittorrent|qBittorrent]] ([[https://github.com/YGGverse/qbittorrent-yggtracker-search-plugin|плагин]]), [[yggdrasil:bittorrent:jackett|Jackett]] и других |
|
* 2.2.0 - добавлена возможность запроса раздач с обычных торрентов в сеть Yggdrasil а также инструменты автоматизации |
|
* 2.3.0 - расширены уровни доступа - авторам и модераторам доступен весь контент вне зависимости от настроек в аккаунте, автором добавлена функция отключения публикаций |
|
* 2.4.0 - добавлена поддержка постеров с возможностью редактирования сообществом; добавлена поддержка транслитерации для поиска по названиям файлов, добавлена поисковая индексация комментариев |
|
* 2.5.0 - добавлены категории торрентов; новый релиз поискового плагина для qBittorrent, с поддержкой фильтра по категориям и следованием сессии настройкам аккаунта |
|
* 2.6.0 - добавлены поисковые фильтры, для настройки выборки по категорям, локали, и другим полям, игнорируя настройки аккаунта по-умолчанию (функция также применима к подпискам RSS и API) |
|
===== Технические отличия ===== |
|
|
|
* Серверная часть переписана с использованием фреймворка Symfony |
|
* Выход обновлений согласно [[https://semver.org/#semantic-versioning-200|Semantic Versioning 2.0.0]] |
|
* Для более простого развертывания и обновления проекта, во второй версии, вместо MySQL и SphinxQL используется база данных SQLite посредством ORM Doctrine |
|
|
|
===== Децентрализация ===== |
|
|
|
С учетом полученной в первой версии аналитики, во второй версии принято решение отказаться от разделения групп пользователей на локальные и распределенные. |
|
Вместо этого, планируется создание инструментов экспорта личных данных в файл и последующего импорта на выбранный пользователем узел. При таком подходе также возможна автоматизация посредством веб-хуков, при подключении внешнего узла в настройках аккаунта. |
|
|
|
Также рассматривается интеграция протокола [[https://ru.wikipedia.org/wiki/ActivityPub|ActivityPub]] для полноценной интеграции с Fediverse. |
|
|
|
===== API ===== |
|
|
|
Для реализации распределенного индекса а также интеграции сторонних приложений, таких как [[yggdrasil:bittorrent:qbittorrent|qBittorrent]] ([[https://github.com/YGGverse/qbittorrent-yggtracker-search-plugin|поисковый плагин]]), [[yggdrasil:bittorrent:jackett|Jackett]] и других, доступны следующие интерфейсы: |
|
|
|
==== Список торрентов ==== |
|
|
|
<code> |
|
GET /api/torrents?search=value&sensitive=0&locales=en|uk&yggdrasil=1&page=1 |
|
</code> |
|
|
|
* **search** - опционально, отображаются последние торренты, если параметр не указан\\ |
|
* **sensitive** - опционально, 0/1 отображать чувствительный контент или отображать любой если параметр не указан\\ |
|
* **locales** - опционально, список локалей разделенных | или отображать все, если параметр не указан\\ |
|
* **yggdrasil** - опционально, 0/1 фильтр yggdrasil-only или не применять фильтр, если параметр не указан\\ |
|
* **page** - опционально, страница результатов, 1 по-умолчанию |
|
|
|
===== Установка ===== |
|
|
|
Для установки актуальной версии, достаточно выполнить несколько команд: |
|
|
|
<code> |
|
composer create-project yggverse/yggtracker |
|
</code> |
|
|
|
Инициализация базы данных: |
|
|
|
<code> |
|
php bin/console doctrine:schema:update --force |
|
</code> |
|
|
|
===== Обновление ===== |
|
|
|
Установка последних обновлений пакетов: |
|
|
|
<code> |
|
composer update |
|
</code> |
|
|
|
Обновление базы данных: |
|
|
|
<code> |
|
php bin/console doctrine:migrations:migrate |
|
</code> |
|
|
|
Очистить кеш в режиме production можно командой: |
|
|
|
<code> |
|
APP_ENV=prod APP_DEBUG=0 php bin/console cache:clear |
|
</code> |
|
|
|
===== Настройка ===== |
|
|
|
==== Nginx ==== |
|
|
|
В зависимости от типа доступа, ниже приведены различные сценарии настроек Nginx: |
|
|
|
=== DNS === |
|
|
|
При использовании доменного имени (на примере tracker.ygg): |
|
|
|
<code> |
|
server { |
|
|
|
listen [::]:80; |
|
|
|
# Ограничить доступ только для сети Yggdrasil |
|
# allow 0200::/7; |
|
# deny all; |
|
|
|
root /var/www/YGGverse/YGGtracker/public; |
|
|
|
index index.html index.htm index.nginx-debian.html index.php; |
|
|
|
server_name tracker.ygg; |
|
|
|
location / { |
|
|
|
try_files $uri /index.php$is_args$args; |
|
} |
|
|
|
location ~ ^/index\.php(/|$) { |
|
|
|
include snippets/fastcgi-php.conf; |
|
|
|
fastcgi_pass unix:/run/php/php8.1-fpm.sock; |
|
|
|
fastcgi_split_path_info ^(.+\.php)(/.*)$; |
|
|
|
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; |
|
fastcgi_param DOCUMENT_ROOT $realpath_root; |
|
|
|
# Environment variables |
|
# bin/console cache:clear |
|
fastcgi_param APP_ENV prod; |
|
|
|
internal; |
|
} |
|
|
|
location ~ \.php$ { |
|
return 404; |
|
} |
|
} |
|
</code> |
|
|
|
=== Поддиректория === |
|
|
|
Если каталог расположен по IP адресу Yggdrasil в поддиректории, можно использовать следующую инструкцию на стандартной конфигурации Nginx: |
|
|
|
<code> |
|
ln -s /var/www/YGGverse/YGGtracker/public /var/www/html/yggtracker |
|
</code> |
|
|
|
<code> |
|
# /etc/nginx/sites-available/default |
|
server { |
|
|
|
# http / 80 порт / IPv6 |
|
listen [::]:80 default; |
|
|
|
# Ограничить доступ только для сети Yggdrasil |
|
# allow 0200::/7; |
|
# deny all; |
|
|
|
root /var/www/html; |
|
|
|
index index.html index.htm index.nginx-debian.html index.php; |
|
|
|
server_name _; |
|
|
|
location / { |
|
try_files $uri $uri/ /index.php?$args; |
|
} |
|
|
|
location /yggtracker { |
|
root /var/www/YGGverse/YGGtracker/public; |
|
rewrite ^/yggtracker/(.*)$ /$1 break; |
|
try_files $uri @yggtracker; |
|
} |
|
|
|
location @yggtracker { |
|
|
|
# Provide actual php -v |
|
fastcgi_pass unix:/run/php/php8.1-fpm.sock; |
|
|
|
include fastcgi_params; |
|
fastcgi_param SCRIPT_FILENAME /var/www/YGGverse/YGGtracker/public/index.php; |
|
fastcgi_param SCRIPT_NAME /yggtracker/index.php; |
|
fastcgi_param REQUEST_URI /yggtracker$uri?$args; |
|
|
|
# Среда окружения |
|
# При любых изменениях в prod не забываем о команде bin/console cache:clear |
|
# fastcgi_param APP_ENV prod; |
|
} |
|
</code> |
|
|
|
==== Crontab ==== |
|
|
|
Обновление статистики пиров (scrape) |
|
|
|
<code> |
|
* * * * * wget -q -O /dev/null 'http://[address]/crontab/torrent/scrape/{key}' &> /dev/null |
|
</code> |
|
|
|
* где {key} - ключ ограничения доступа для запросов по http, указать можно в файле среды окружения .env / директива APP_KEY |
|
|
|
==== FTP ==== |
|
|
|
В версии 2.2.0 расширена функция "Wanted", которая теперь позволяет автоматизировать запросы на раздачу, а также осуществлять "конвертацию" любой раздачи в сеть Yggdrasil. |
|
|
|
Работает эта функция следующим образом: |
|
|
|
После того, как скрипт crontab обнаруживает торрент с активными личерами, но без сидеров, он автоматически копирует исходный торрент-файл в общедоступную директорию /app/var/ftp\\ |
|
при этом, к торрент файлу добавляются все возможные трекеры как с исходного файла, так и настроек приложения.\\ |
|
|
|
//* К такому файлу также добавляется префикс wanted#torrentId вместо стандартного yggtracker#torrentId, |
|
чтобы отличать файлы и открывать их особым образом, во избежание утечки данных в интернет, например (в отличии от обычной загрузки, которая фильтрует внешние адреса по-умолчанию)// |
|
|
|
Как только файл был загружен и ретранслирован в сеть Yggdrasil, он автоматически удаляется из FTP каталога. |
|
|
|
В прочем, FTP хранилище нужно не столько для ручного доступа, сколько для того, чтобы позволить владельцам [[yggdrasil:bittorrent:seedbox|сид-узлов]] автоматизировать процесс обработки запросов, |
|
например, с помощью функции автосканирования директории, доступной в большинстве современных bittorrent клиентов. |
|
|
|
При этом, сидирующему боту не нужно загружать весь реестр - YGGtracker автоматически копирует только востребованные торренты по тематическим каталогам, |
|
выполняющих функцию фильтра и администратор узла может выбрать для себя интересующий фильтр. |
|
|
|
На данный момент, доступны следующие варианты для прослушивания запросов: |
|
|
|
* /yggtracker/torrents/wanted/all - все торренты с маркером "востребован" |
|
* /yggtracker/torrents/wanted/locale/en|... - торренты с фильтром по локали контента |
|
* /yggtracker/torrents/wanted/sensitive/no|yes - фильтр по чувствительному признаку / NSFW |
|
|
|
Поскольку bittorrent клиенты не умеют сканировать директории по протоколу FTP, в системах Linux можно примонтировать удалённый раздел в локальную директорию сервера с помощью различных утилит |
|
(частично эта тема раскрыта в материале [[http://[222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c]/yggdrasil:bittorrent:seedbox#сетевой_накопитель|Сидбокс - Сетевой накопитель]]) |
|
или использовать [[https://github.com/YGGverse/yggtracker-wanted-torrents-receiver | официальную утилиту ]] для автозагрузки востребованных торрентов со всех узлов YGGtracker. |
|
|
|
Ниже будет рассмотрен пример рабочей конфигурации FTP/API на базе vsftpd, qbittorrent-nox и rclone; корень проекта расположен в директории /var/www/YGGverse/YGGtracker |
|
|
|
=== vsftpd === |
|
|
|
Устанавливаем командой |
|
|
|
<code> |
|
apt install vsftpd |
|
</code> |
|
|
|
Создадим директорию и добавим приложению доступ на запись |
|
|
|
<code> |
|
mkdir /var/www/YGGverse/YGGtracker/var/ftp |
|
chown www-data:www-data /var/www/YGGverse/YGGtracker/var/ftp |
|
</code> |
|
|
|
Редактируем файл /etc/vsftpd.conf |
|
|
|
<code> |
|
listen_ipv6=YES |
|
anonymous_enable=YES |
|
local_enable=NO |
|
anon_root=/var/www/YGGverse/YGGtracker/var/ftp |
|
no_anon_password=YES |
|
hide_ids=YES |
|
pasv_min_port=40000 |
|
pasv_max_port=50000 |
|
</code> |
|
|
|
Разрешаем входящие подключения (Yggdrasil) |
|
|
|
<code> |
|
ufw allow proto tcp from 0200::/7 to any port 21 |
|
ufw allow proto tcp from 0200::/7 to any port 40000:50000 |
|
</code> |
|
|
|
Перезапускаем сервер |
|
|
|
<code> |
|
service vsftpd restart |
|
</code> |
|
|
|
=== rclone === |
|
|
|
Настроим монтирование на целевом сид-сервере, установив rclone |
|
|
|
<code> |
|
apt install rclone |
|
</code> |
|
|
|
Запускаем команду rclone config и отвечаем на вопросы: |
|
|
|
<code> |
|
n) New remote |
|
|
|
name> yggtracker // название подключения |
|
Storage> ftp // указываем FTP |
|
host> [201:23b4:991a:634d:8359:4521:5576:15b7] // официальный узел, если нужен свой, меняем |
|
port> 21 // можно оставить по-умолчанию |
|
user> anonymous // для анонимного подключения - anonymous |
|
password> anonymous |
|
... |
|
// остальные пункты по-умолчанию |
|
</code> |
|
|
|
Создадим точку монтирования и актуализируем права |
|
|
|
<code> |
|
mkdir /home/qbittorrent-nox/yggtracker |
|
chown qbittorrent-nox:qbittorrent-nox /home/qbittorrent-nox/yggtracker |
|
</code> |
|
|
|
Монтирование осуществляется командой |
|
|
|
<code> |
|
rclone mount yggtracker:/yggtracker/torrents/wanted/all /home/qbittorrent-nox/yggtracker & |
|
</code> |
|
|
|
Демонтировать |
|
|
|
<code> |
|
umount /home/qbittorrent-nox/yggtracker |
|
</code> |
|
|
|
=== qbittorrent-nox === |
|
|
|
Лучше всего подключать FTP при запуске клиента, поэтому добавим следующие настройки сервиса в файл |
|
/etc/systemd/system/qbittorrent-nox.service |
|
|
|
<code> |
|
ExecStartPre=/usr/bin/rclone mount --config /home/qbittorrent-nox/.config/rclone/rclone.conf --daemon --read-only yggtracker:/yggtracker/torrents/wanted/all /home/qbittorrent-nox/yggtracker |
|
ExecStop=/usr/bin/umount /home/qbittorrent-nox/yggtracker |
|
</code> |
|
|
|
Затем |
|
|
|
<code> |
|
systemctl daemon-reload |
|
service qbittorrent-nox restart |
|
</code> |
|
|
|
* О том, как настроить [[http://[222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c]/yggdrasil:bittorrent:seedbox#сервер_на_базе_qbittorrent|сервер на базе qbittorrent-nox]] |
|
|
|
Теперь можно перейти в веб-интерфейс и указать локальную директорию для прослушивания запросов на раздачи: |
|
|
|
**Web UI → Preferences → Download → Automatically add torrents from** |
|
|
|
Также желательно копировать торрент-файлы локально для стабильной работы клиента |
|
|
|
**Web UI → Preferences → Download → Saving Management → Copy .torrent files to** |
|
|
|
=== yggtracker-wanted-torrents-receiver === |
|
|
|
Поскольку в работе qbittorrent-nox и rclone замечена проблема синхронизации, которую можно решить только рестартом клиента, |
|
было принято решение отказаться от rclone и создать специальную [[https://github.com/YGGverse/yggtracker-wanted-torrents-receiver|утилиту]], позволяющую также загружать торренты от всех провайдеров YGGtracker, без необходимости вручную добавлять настройки подключения для каждого из них. |
|
|
|
Скрипт написан на языке PHP 8 (возможно будет добавлена альтернатива на Python или Bash) и подразумевает загрузку торрент-файлов **локально**, посредством crontab. |
|
|
|
Установка последней версии выполняется одной командой: |
|
|
|
<code> |
|
git clone https://github.com/YGGverse/yggtracker-wanted-torrents-receiver.git |
|
</code> |
|
|
|
crontab: |
|
|
|
<code> |
|
* * * * * /usr/bin/php src/cli.php > /dev/null 2>&1 |
|
</code> |
|
|
|
В [[https://github.com/YGGverse/yggtracker-wanted-torrents-receiver#yggtracker-wanted-torrents-receiver|README.md]] указаны подробные комментарии по тонкой настройке, хотя сам скрипт достаточно установить как есть - торренты будут загружены в директорию storage. |
|
|
|
Из полезных функций - можно указать собственные условия получения торрентов, возможность обновления реестра провайдеров из репозитория, и т.д. |
|
|
|
При активной опции import.storage.common загруженные торренты будут скопированы в общую директорию storage/_common, что позволяет работать с торрент клиентами, не поддерживающими рекурсивное сканирование или прослушивание нескольких директорий, |
|
а также вручную мониторить и настраивать клиент для каждого провайдера - эта задача теперь делегирована провайдерам в рамках в PR на GitHub. |
|
|
|
Торренты в директории storage/_common защищены от дублирования хешированием содержимого по MD5. |
|
В остальных случаях, торрент файлы копируются в директории провайдеров, например storage/yggtracker/original_name, после чего можно указать нужную директорию в клиенте qBittorrent или другом, без необходимости что либо менять в systemd. |
|
==== Приложение ==== |
|
|
|
Базовые настройки приложения указываются в файлах группы .env |
|
|
|
<code> |
|
# Название проекта |
|
APP_NAME=YGGtracker |
|
|
|
# Локаль по-умолчанию |
|
APP_LOCALE=en |
|
|
|
# Список доступных локалей |
|
APP_LOCALES=en|cs|eo|fr|ka|de|he|it|lv|pl|pt|ru|es|uk |
|
|
|
# Количество записей на страницу |
|
APP_PAGINATION=10 |
|
|
|
# Тема оформления по-умолчанию |
|
APP_THEME=default |
|
|
|
# Список доступных тем оформления |
|
APP_THEMES=default |
|
|
|
# Настройки чувствительного контента для новых пользователей по-умолчанию |
|
APP_SENSITIVE=0 |
|
|
|
# Утверждение новых пользователей для новых пользователей по-умолчанию |
|
APP_APPROVED=0 |
|
|
|
# Фильтрация ресурсов Yggdrasil для новых пользователей по-умолчанию |
|
APP_YGGDRASIL=1 |
|
|
|
# Настройки дополнительных трекеров |
|
APP_TRACKERS=http://[201:23b4:991a:634d:8359:4521:5576:15b7]:2023/announce|... |
|
|
|
# Адреса поисковых ботов, для которых отключены социальные функции на сайте - загрузки, лайки, ведение журнала активности и т.д. |
|
APP_CRAWLERS=30a:5fad::e|... |
|
|
|
# Ограничение на размер загружаемого файла .torrent |
|
APP_TORRENT_FILE_SIZE_MAX=1024000 |
|
|
|
# Ограничение на размер загружаемых постеров |
|
APP_TORRENT_POSTER_FILE_SIZE_MAX=10240000 |
|
|
|
# Включить экспорт запросов на раздачу средствами FTP |
|
APP_TORRENT_WANTED_FTP_ENABLED=1 |
|
|
|
# Директория FTP |
|
APP_TORRENT_WANTED_FTP_FOLDER=/yggtracker |
|
|
|
# Транслировать по FTP только подтвержденные торренты |
|
APP_TORRENT_WANTED_FTP_APPROVED_ONLY=1 |
|
|
|
# Индексировать названия торрентов |
|
APP_INDEX_TORRENT_NAME_ENABLED=1 |
|
|
|
# Индексировать названия info hash v1 |
|
APP_INDEX_TORRENT_HASH_V1_ENABLED=1 |
|
|
|
# Индексировать названия info hash v2 |
|
APP_INDEX_TORRENT_HASH_V2_ENABLED=1 |
|
|
|
# Индексировать названия файлов |
|
APP_INDEX_TORRENT_FILENAMES_ENABLED=1 |
|
|
|
# Индексировать содержимое поля "источник" |
|
APP_INDEX_TORRENT_SOURCE_ENABLED=1 |
|
|
|
# Индексировать содержимое поля "комментарий" |
|
APP_INDEX_TORRENT_COMMENT_ENABLED=1 |
|
|
|
# Минимальная длина слова для индексации |
|
APP_INDEX_WORD_LENGTH_MIN=3 |
|
|
|
# Максимальная длина слова для индексации |
|
APP_INDEX_WORD_LENGTH_MAX=255 |
|
</code> |
|
|
|
===== Обслуживание ===== |
|
|
|
==== Резервное копирование ==== |
|
|
|
Все пользовательские данные расположены в директории приложения /var |
|
|
|
<code> |
|
/var/cache - кеш приложения |
|
/var/log - журналы |
|
/var/ftp - временное хранилище FTP API |
|
/var/posters - каталог с исходными файлами постеров (пост-обработанные файлы кешируются в /public/posters) |
|
/var/torrents - каталог torrent файлов, соответствующих torrent.ID |
|
/var/data.db - база данных SQLite |
|
</code> |
|
|
|
==== Локализация ==== |
|
|
|
В официальной сборке, переводы осуществляются в рамках площадки [[https://crowdin.com/project/yggtracker|Crowdin]]. |
|
|
|
При использовании собственных сборок, для извлечения строк в директорию /translations, можно использовать команду |
|
|
|
<code> |
|
php bin/console translation:extract --clean --domain="messages" --prefix="" --force ru |
|
</code> |
|
|
|
Если используются внешние провайдеры Crowdin, Loco и другие, выгрузка осуществляется командой: |
|
|
|
<code> |
|
php bin/console translation:push --force --domains="messages" |
|
</code> |
|
|
|
Импорт |
|
|
|
<code> |
|
php bin/console translation:pull --force --intl-icu --domains="messages" |
|
</code> |
|
|
|
После внесения изменений в среде prod, не забываем обновить кеш |
|
|
|
<code> |
|
APP_ENV=prod APP_DEBUG=0 php bin/console cache:clear |
|
</code> |
|
|
|
===== Список узлов ===== |
|
|
|
[[ http://[201:23b4:991a:634d:8359:4521:5576:15b7]/yggtracker/ru | Каталог проекта ]] ([[ http://tracker.ygg/ru | tracker.ygg ]]) - включает межверсионные обновления из репозитория |
|
( |
|
[[ http://[201:23b4:991a:634d:8359:4521:5576:15b7]/yggtracker/ru/rss/torrents | RSS ]], |
|
[[ http://[201:23b4:991a:634d:8359:4521:5576:15b7]/yggtracker/api/torrents | JSON ]], |
|
[[ ftp://[201:23b4:991a:634d:8359:4521:5576:15b7]/yggtracker/ | FTP ]] API |
|
) |
|
|
|
===== Ссылки ===== |
|
|
|
[[ https://github.com/YGGverse/YGGtracker | Исходный код на GitHub ]] \\ |
|
[[ https://github.com/YGGverse/YGGtracker/wiki | Рецепты ]] \\ |
|
[[ https://crowdin.com/project/yggtracker | Локализация ]] \\ |
|
[[ https://mastodon.social/@YGGverse | Новости проекта ]] \\ |
|
[[ https://github.com/YGGverse/qbittorrent-yggtracker-search-plugin|Поисковый плагин для qBittorrent ]]\\ |
|
[[ https://github.com/YGGverse/yggtracker-wanted-torrents-receiver | Утилита для автозагрузки востребованных торрентов]]\\ |
|
|
|
Каналы KevaChat: |
|
|
|
* [[ http://[201:23b4:991a:634d:8359:4521:5576:15b7]/kevachat/room/NWVP1GPp59qEWYGVWWVxGR2JScHHbicWTy#latest | 0200::/7 ]] |
|
* [[ http://kevachat.ygg/room/NWVP1GPp59qEWYGVWWVxGR2JScHHbicWTy#latest | алиас ]] |
|
|
|
[[ yggdrasil:bittorrent:yggtracker | Индексная страница проекта ]] \\ |
|
|
|
~~DISCUSSION~~
|
|
|