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.
522 lines
28 KiB
522 lines
28 KiB
9 months ago
|
====== 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~~
|