Skip to content

jacred-fdb/jacred

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

182 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Jacred-FDB β€” Torrent aggregator & file database

JacRed

Build

АгрСгатор Ρ‚ΠΎΡ€Ρ€Π΅Π½Ρ‚-Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€ΠΎΠ² с API Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Jackett. Π₯Ρ€Π°Π½ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ Π‘Π” (fdb), ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΡŽ с ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΉ Π±Π°Π·ΠΎΠΉ ΠΈ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ парсинг Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€ΠΎΠ² ΠΏΠΎ cron.

AI ДокумСнтация

DeepWiki


ВрСбования

  • .NET 9.0 (для запуска ΠΈΠ· исходников)
  • Для установки скриптом: Linux (systemd, cron), рСкомСндуСтся Debian/Ubuntu

Установка

Установка ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ (Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΎΡ‚ любого ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΏΡ€ΠΈ нСобходимости запросится sudo):

curl -s https://raw.githubusercontent.com/jacred-fdb/jacred/main/jacred.sh | bash

Π‘ΠΊΡ€ΠΈΠΏΡ‚ устанавливаСт ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² /opt/jacred, создаёт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ systemd-сСрвис jacred, добавляСт cron для сохранСния Π‘Π” ΠΈ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ запускС ΠΏΠΎ ТСланию скачиваСт Π³ΠΎΡ‚ΠΎΠ²ΡƒΡŽ Π±Π°Π·Ρƒ.

ΠžΠΏΡ†ΠΈΠΈ:

ΠžΠΏΡ†ΠΈΡ ОписаниС
--no-download-db НС ΡΠΊΠ°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ Π½Π΅ Ρ€Π°ΡΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π±Π°Π·Ρƒ (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ установкС)
--pre-release Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈΠ· послСднСго pre-release (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 2.0.0-dev1)
--update ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с послСднСго Ρ€Π΅Π»ΠΈΠ·Π° (ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π‘Π”, Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹, ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ)
--remove ΠŸΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ JacRed (сСрвис, cron, ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ прилоТСния)
-h, --help ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ справку

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:

# ΠžΠ±Ρ‹Ρ‡Π½Π°Ρ установка (ΠΎΠ΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°)
curl -s https://raw.githubusercontent.com/jacred-fdb/jacred/main/jacred.sh | bash

# Установка Π±Π΅Π· Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π±Π°Π·Ρ‹ (ΠΎΠ΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°)
curl -s https://raw.githubusercontent.com/jacred-fdb/jacred/main/jacred.sh | bash -s -- --no-download-db

# Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ скрипт ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ
curl -s https://raw.githubusercontent.com/jacred-fdb/jacred/main/jacred.sh -o jacred.sh
chmod +x jacred.sh
sudo ./jacred.sh --no-download-db

# Установка pre-release вСрсии
curl -s https://raw.githubusercontent.com/jacred-fdb/jacred/main/jacred.sh | bash -s -- --pre-release

# Или ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ pre-release
curl -s https://raw.githubusercontent.com/jacred-fdb/jacred/main/jacred.sh -o jacred.sh
chmod +x jacred.sh
sudo ./jacred.sh --pre-release

# ОбновлСниС ΡƒΠΆΠ΅ установлСнного прилоТСния
sudo /opt/jacred/jacred.sh --update

# ОбновлСниС Π΄ΠΎ pre-release вСрсии
sudo /opt/jacred/jacred.sh --update --pre-release

# Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅
sudo /opt/jacred/jacred.sh --remove

Установка/ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅/ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ (cron Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Ρ‘Π½ для этого ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ):

sudo -u myservice ./jacred.sh
sudo -u myservice ./jacred.sh --update
sudo -u myservice ./jacred.sh --remove

ПослС установки:

  • НастройтС ΠΊΠΎΠ½Ρ„ΠΈΠ³: /opt/jacred/init.yaml ΠΈΠ»ΠΈ /opt/jacred/init.conf
  • ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΠΊ: systemctl restart jacred
  • ΠŸΠΎΠ»Π½Ρ‹ΠΉ crontab для парсинга: crontab /opt/jacred/Data/crontab

Π’Π°ΠΆΠ½ΠΎ: ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° синхронизация Π±Π°Π·Ρ‹ с внСшнСго сСрвСра (syncapi). Для ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ парсинга настройтС cron ΠΏΠΎ Data/crontab ΠΈ ΠΏΡ€ΠΈ нСобходимости ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ syncapi.


ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ

ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Ρ„Π°ΠΉΠ»ΠΎΠ²: init.yaml > init.conf. Если ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΎΠ±Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ init.yaml. ΠšΠΎΠ½Ρ„ΠΈΠ³ пСрСчитываСтся автоматичСски ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 10 сСкунд.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³Π°: Data/example.yaml, Data/example.conf. Π’ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΠΉΡ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ОписаниС По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
listenip IP для ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π½ΠΈΡ (any β€” всС интСрфСйсы) any
listenport ΠŸΠΎΡ€Ρ‚ HTTP 9117
apikey ΠšΠ»ΡŽΡ‡ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ API (пусто β€” Π±Π΅Π· ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ) β€”
mergeduplicates ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚Ρ‹ Π² Π²Ρ‹Π΄Π°Ρ‡Π΅ true
mergenumduplicates ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚Ρ‹ ΠΏΠΎ Π½ΠΎΠΌΠ΅Ρ€Ρƒ (сСрии ΠΈ Ρ‚.ΠΏ.) true
openstats ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ доступ ΠΊ /stats/* true
opensync Π Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΡŽ Π±Π°Π·Ρ‹ Ρ‡Π΅Ρ€Π΅Π· sync API true
opensync_v1 Π Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ старый Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ sync v1 false
web Π Π°Π·Π΄Π°Π²Π°Ρ‚ΡŒ статику (Π²Π΅Π±-интСрфСйс) true
maxreadfile Макс. число ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π·Π° ΠΎΠ΄ΠΈΠ½ поисковый запрос 200
evercache КСш ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² (рСкомСндуСтся ΠΏΡ€ΠΈ высокой Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅) см. example
fdbPathLevels Π£Ρ€ΠΎΠ²Π½ΠΈ влоТСнности ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² fdb 2

Бинхронизация

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ОписаниС По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
syncapi URL сСрвСра с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ opensync для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π±Π°Π·Ρ‹ задаётся Π² example
synctrackers Бписок Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€ΠΎΠ² для синхронизации с syncapi см. example
disable_trackers Π’Ρ€Π΅ΠΊΠ΅Ρ€Ρ‹, Π½Π΅ ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π² синкС (RIP ΠΈ Π΄Ρ€.) hdrezka, anifilm, anilibria
timeSync Π˜Π½Ρ‚Π΅Ρ€Π²Π°Π» синхронизации с syncapi, ΠΌΠΈΠ½ 60
timeSyncSpidr Π˜Π½Ρ‚Π΅Ρ€Π²Π°Π» синхронизации Spidr, ΠΌΠΈΠ½ 60
syncsport Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΏΠΎ спорту true
syncspidr Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΡŽ Spidr true

Π›ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ОписаниС По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
log Π£ΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΉ: Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π»ΠΎΠ³ΠΈ fdb ΠΈ парсСров false
logFdb ΠŸΠΈΡΠ°Ρ‚ΡŒ Π»ΠΎΠ³ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΉ/ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Π² Data/log/fdb.*.log false
logFdbRetentionDays Π₯Ρ€Π°Π½ΠΈΡ‚ΡŒ Π»ΠΎΠ³ΠΈ fdb Π½Π΅ Π±ΠΎΠ»Π΅Π΅ N Π΄Π½Π΅ΠΉ (0 β€” Π±Π΅Π· ограничСния) 7
logFdbMaxSizeMb Макс. суммарный Ρ€Π°Π·ΠΌΠ΅Ρ€ Π»ΠΎΠ³ΠΎΠ² fdb, ΠœΠ‘ (0 β€” Π±Π΅Π· ограничСния) 0
logFdbMaxFiles Макс. число Ρ„Π°ΠΉΠ»ΠΎΠ² Π»ΠΎΠ³ΠΎΠ² fdb (0 β€” Π±Π΅Π· ограничСния) 0
logParsers Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π»ΠΎΠ³ΠΈ парсСров ΠΏΠΎ Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€Π°ΠΌ (Data/log/{tracker}.log) false

Бтатистика ΠΈ Ρ‚Ρ€Π΅ΠΊΠΈ

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ОписаниС По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
timeStatsUpdate Π˜Π½Ρ‚Π΅Ρ€Π²Π°Π» обновлСния статистики, ΠΌΠΈΠ½ 90
tracks Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ сбор ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚Ρ€Π΅ΠΊΠΎΠ² (tsuri) false
tracksmod Π Π΅ΠΆΠΈΠΌ Ρ‚Ρ€Π΅ΠΊΠΎΠ²: 0 β€” всС, 1 β€” дСнь/мСсяц 0
tracksdelay Π—Π°Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρƒ запросами ΠΊ tsuri, мс 20000
tsuri URL сСрвиса Π°Π½Π°Π»ΠΈΠ·Π° Ρ‚Ρ€Π΅ΠΊΠΎΠ² ["http://127.0.0.1:8090"]

Π’Ρ€Π΅ΠΊΠ΅Ρ€Ρ‹ (Π±Π»ΠΎΠΊΠΈ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅)

Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ: host, alias (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ .onion), useproxy, reqMinute, parseDelay, log, ΠΏΡ€ΠΈ нСобходимости login (u, p) ΠΈΠ»ΠΈ cookie. ΠŸΠΎΠ»Π½Ρ‹ΠΉ список ΠΈ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ β€” Π² Data/example.yaml / Data/example.conf.

ΠŸΡ€ΠΎΠΊΡΠΈ

  • proxy β€” ΠΎΠ±Ρ‰ΠΈΠ΅ настройки прокси (pattern, list, useAuth, username, password, BypassOnLocal).
  • globalproxy β€” массив ΠΏΡ€Π°Π²ΠΈΠ» (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² .onion Ρ‡Π΅Ρ€Π΅Π· Tor: pattern: "\\.onion", list: ["socks5://127.0.0.1:9050"]).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ минимального ΠΊΠΎΠ½Ρ„ΠΈΠ³Π° (YAML)

listenport: 9120
syncapi: https://jacred.example.com

NNMClub:
  alias: http://nnmclub....onion

globalproxy:
  - pattern: "\\.onion"
    list:
      - socks5://127.0.0.1:9050

Π­ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚ Π² JSON (init.conf):

{
  "listenport": 9120,
  "syncapi": "https://jacred.example.com",
  "NNMClub": { "alias": "http://nnmclub....onion" },
  "globalproxy": [
    { "pattern": "\\.onion", "list": ["socks5://127.0.0.1:9050"] }
  ]
}

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΈ (Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€Ρ‹)

АктивныС (парсинг ΠΈ/ΠΈΠ»ΠΈ синхронизация):
Kinozal, NNMClub, Rutor, TorrentBy, Bitru (Π² Ρ‚.Ρ‡. Bitru API), Rutracker, Megapeer, Selezen, Toloka, Mazepa, Baibako, Lostfilm, Animelayer.

RIP (ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ синхронизация со старых Π±Π°Π·):
Anifilm, AniLibria, HDRezka.

Бписок для synctrackers ΠΈ настройки ΠΏΠΎ Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€Π°ΠΌ см. Π² Data/example.yaml.


Π‘Π°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ парсинг

  1. ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ init.yaml ΠΈΠ»ΠΈ init.conf (ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π² Data/example.yaml, Data/example.conf).
  2. Π›ΠΈΠ±ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ syncapi Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅ (Ρ‚ΠΎΠ³Π΄Π° Π±Π°Π·Π° подтягиваСтся с сСрвСра), Π»ΠΈΠ±ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ cron ΠΏΠΎ Ρ„Π°ΠΉΠ»Ρƒ Data/crontab (Π²Ρ‹Π·ΠΎΠ²Ρ‹ /cron/{tracker}/parse ΠΈ Π΄Ρ€.). Π’ crontab ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎΡ€Ρ‚ 9117 β€” ΠΏΡ€ΠΈ смСнС ΠΏΠΎΡ€Ρ‚Π° ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ URL Π² crontab.

Доступ ΠΊ Π΄ΠΎΠΌΠ΅Π½Π°ΠΌ .onion

  1. Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Tor Π½Π° ΠΏΠΎΡ€Ρ‚Ρƒ 9050.
  2. Π’ ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ для Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€Π° alias с .onion-адрСсом ΠΈ Π² globalproxy ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ с pattern: "\\.onion" ΠΈ list: ["socks5://127.0.0.1:9050"] (ΠΊΠ°ΠΊ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ΡˆΠ΅).

API

  • GET / β€” Π²Π΅Π±-интСрфСйс (Ссли web: true).
  • GET /health β€” ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹. ΠžΡ‚Π²Π΅Ρ‚ JSON: {"status":"OK"}.
  • GET /version β€” вСрсия прилоТСния. ΠžΡ‚Π²Π΅Ρ‚ JSON: {"version":"1.0.0"}.
  • GET /lastupdatedb β€” Π΄Π°Ρ‚Π°/врСмя послСднСго обновлСния Π‘Π” (UTC). ΠžΡ‚Π²Π΅Ρ‚ JSON: {"lastupdatedb":"dd.MM.yyyy HH:mm"}.
  • GET /api/v1.0/conf β€” ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° apikey (?apikey=...).
  • GET /api/v2.0/indexers/{status}/results β€” поиск Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Jackett (query, title, category ΠΈ Ρ‚.Π΄.).
  • GET /api/v1.0/torrents β€” поиск Ρ‚ΠΎΡ€Ρ€Π΅Π½Ρ‚ΠΎΠ² (собствСнный API).
  • GET /api/v1.0/qualitys β€” список качСств.
  • GET /jsondb/save β€” ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π‘Π” Π½Π° диск (ΠΏΡ€ΠΈ использовании syncapi скрипт установки Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ save; ΠΏΡ€ΠΈ собствСнном парсингС cron Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ save ΠΏΠΎ Ρ€Π°ΡΠΏΠΈΡΠ°Π½ΠΈΡŽ).
  • GET /stats/* β€” статистика (Ссли openstats: true).
  • /sync/* β€” эндпоинты синхронизации (Ссли opensync: true).
  • /cron/{tracker}/* β€” запуск парсинга ΠΏΠΎ Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€Π°ΠΌ (parse, ParseAllTask, UpdateTasksParse, parseMagnet ΠΈ Π΄Ρ€. Π² зависимости ΠΎΡ‚ Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€Π°).

Π‘Π±ΠΎΡ€ΠΊΠ°

  • .NET 9.0, см. JacRed.csproj.

Π‘Π±ΠΎΡ€ΠΊΠ° ΠΏΠΎΠ΄ Linux (amd64/arm64), Windows (x64), macOS (arm64/amd64):

./build.sh

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ dist/<platform>/ (single-file, self-contained).


Docker

ΠžΠ±Ρ€Π°Π· ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· Docker ΠΈΠ»ΠΈ Docker Compose. ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ (init.yaml ΠΈΠ»ΠΈ init.conf) ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ (Π±Π°Π·Π° fdb, Π»ΠΎΠ³ΠΈ) хранятся Π² Ρ‚ΠΎΠΌΠ°Ρ…; ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ запускС ΠΈΠ· ΠΎΠ±Ρ€Π°Π·Π° ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠ· Data/.

Docker Run

docker run -d \
  --name jacred \
  -p 9117:9117 \
  -v jacred-config:/app/config \
  -v jacred-data:/app/Data \
  --restart unless-stopped \
  ghcr.io/jacred-fdb/jacred:latest

Docker Compose

name: jacred

services:
  jacred:
    image: ghcr.io/jacred-fdb/jacred:latest
    container_name: jacred
    restart: unless-stopped
    ports:
      - "9117:9117"
    volumes:
      - jacred-config:/app/config
      - jacred-data:/app/Data
    environment:
      - TZ=Europe/London
      - UMASK=0027
    healthcheck:
      test: ["CMD", "curl", "-f", "-s", "--max-time", "10", "http://127.0.0.1:9117/health"]
      interval: 30s
      timeout: 15s
      retries: 3
      start_period: 45s
    deploy:
      resources:
        limits:
          memory: 2048M

volumes:
  jacred-config:
  jacred-data:

ПолСзно:

  • ΠšΠΎΠ½Ρ„ΠΈΠ³: послС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ запуска настройтС init.yaml ΠΈΠ»ΠΈ init.conf Π² Ρ‚ΠΎΠΌΠ΅ jacred-config (Π½Π° хостС: ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Ρ‚ΠΎΠΌΠ° Π² docker volume inspect jacred-config β†’ Mountpoint).
  • ΠŸΠΎΡ€Ρ‚Ρ‹: Π²Π΅Π±-интСрфСйс ΠΈ API доступны Π½Π° ΠΏΠΎΡ€Ρ‚Ρƒ 9117 (ΠΏΡ€ΠΈ нСобходимости ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΌΠ°ΠΏΠΏΠΈΠ½Π³ ports ΠΈ listenport Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅).
  • ΠŸΠ°ΠΌΡΡ‚ΡŒ: ΠΏΡ€ΠΈ большой Π±Π°Π·Π΅ ΠΈΠ»ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ парсингС ΡƒΠ²Π΅Π»ΠΈΡ‡ΡŒΡ‚Π΅ Π»ΠΈΠΌΠΈΡ‚ memory Π² deploy.resources.limits.
  • Π‘Π±ΠΎΡ€ΠΊΠ° своСго ΠΎΠ±Ρ€Π°Π·Π°: Π² ΠΊΠΎΡ€Π½Π΅ рСпозитория Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ docker build -t jacred . ΠΈ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Π²Ρ‹ΡˆΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΎΠ±Ρ€Π°Π· Π½Π° jacred:latest.

Π ΠΎΡƒΡ‚Π΅Ρ€ (Cloudflare Worker)

Π’ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ router/ находится Cloudflare Worker для ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ запросов ΠΏΠΎ хосту/ΠΏΡƒΡ‚ΠΈ Π½Π° Ρ€Π°Π·Π½Ρ‹Π΅ бэкСнды (домашний сСрвСр, Tailscale, Ρ‚ΡƒΠ½Π½Π΅Π»ΠΈ, Pages, Vercel) с ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°ΠΌΠΈ. ДокумСнтация ΠΈ настройка β€” Π² router/README.md.


ЛицСнзия ΠΈ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄: github.com/jacred-fdb/jacred.

About

JacRed - a torrent tracker aggregator

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors 6