{"id":16975184,"url":"https://github.com/luckypuppy514/jproxy","last_synced_at":"2025-04-07T07:18:39.454Z","repository":{"id":50354290,"uuid":"502304475","full_name":"LuckyPuppy514/jproxy","owner":"LuckyPuppy514","description":"介于 Sonarr / Radarr 和 Jackett / Prowlarr 之间的代理，主要用于优化查询和提升识别率 | A proxy between Sonarr / Radarr and Jackett / Prowlarr, mainly used to optimize search and improve recognition rate","archived":false,"fork":false,"pushed_at":"2024-07-18T14:32:48.000Z","size":327339,"stargazers_count":243,"open_issues_count":19,"forks_count":28,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-10-15T01:09:26.301Z","etag":null,"topics":["anime","jackett","prowlarr","sonarr"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LuckyPuppy514.png","metadata":{"files":{"readme":"README.en_US.md","changelog":"changelog.en_US.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-06-11T09:26:16.000Z","updated_at":"2024-10-13T06:10:58.000Z","dependencies_parsed_at":"2024-01-15T01:53:19.834Z","dependency_job_id":"25fc3356-486c-422c-a79c-dcd2afcee18c","html_url":"https://github.com/LuckyPuppy514/jproxy","commit_stats":null,"previous_names":[],"tags_count":65,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LuckyPuppy514%2Fjproxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LuckyPuppy514%2Fjproxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LuckyPuppy514%2Fjproxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LuckyPuppy514%2Fjproxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LuckyPuppy514","download_url":"https://codeload.github.com/LuckyPuppy514/jproxy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247608160,"owners_count":20965953,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["anime","jackett","prowlarr","sonarr"],"created_at":"2024-10-14T01:09:26.411Z","updated_at":"2025-04-07T07:18:39.433Z","avatar_url":"https://github.com/LuckyPuppy514.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\r\n  \u003ca href=\"https://github.com/LuckyPuppy514/jproxy\"\u003e\r\n    \u003cimg alt=\"JProxy Logo\" width=\"200\" src=\"https://raw.githubusercontent.com/LuckyPuppy514/image/main/2023/2023-04-02/logo.png\"\u003e\r\n  \u003c/a\u003e\r\n\u003c/p\u003e\r\n\u003cp align=\"center\"\u003e\r\n  \u003ca href=\"https://github.com/LuckyPuppy514/jproxy\"\u003e\u003cimg alt=\"stars\" src=\"https://badgen.net/github/stars/LuckyPuppy514/jproxy\"/\u003e\u003c/a\u003e\r\n  \u003ca href=\"https://github.com/LuckyPuppy514/jproxy\"\u003e\u003cimg alt=\"forks\" src=\"https://badgen.net/github/forks/LuckyPuppy514/jproxy\"/\u003e\u003c/a\u003e\r\n  \u003ca href=\"https://hub.docker.com/r/luckypuppy514/jproxy\"\u003e\u003cimg alt=\"docker pulls\" src=\"https://img.shields.io/docker/pulls/luckypuppy514/jproxy.svg\"/\u003e\u003c/a\u003e\r\n  \u003ca href=\"https://github.com/LuckyPuppy514/jproxy/blob/main/LICENSE.txt\"\u003e\u003cimg alt=\"MIT License\" src=\"https://badgen.net/github/license/LuckyPuppy514/jproxy\"/\u003e\u003c/a\u003e\r\n\u003c/p\u003e\r\n\r\n\u003cdiv align=\"center\"\u003e\r\n  \u003ca href=\"https://github.com/LuckyPuppy514/jproxy/blob/main/README.md\"\u003e简体中文\u003c/a\u003e | English\r\n\u003c/div\u003e\r\n\r\n- [🌟 Introduce](#-introduce)\r\n- [🧱 Install](#-install)\r\n  - [Docker](#docker)\r\n  - [Windows](#windows)\r\n- [☃️ Basic Configuration](#️-basic-configuration)\r\n- [😘 Contributing](#-contributing)\r\n- [👏 Related Efforts](#-related-efforts)\r\n- [🃏 License](#-license)\r\n\r\n## 🌟 Introduce\r\n\r\nA proxy between `Sonarr / Radarr` and `Jackett / Prowlarr`, mainly used to optimize search and improve recognition rate\r\n\r\n```mermaid\r\ngraph LR\r\n    1[Sonarr / Radarr] == request Jackett / Prowlarr Torznab interface ==\u003e 2(JProxy) == proxy Sonarr / Radarr request ==\u003e 3(Jackett / Prowlarr)\r\n\r\n    3(Jackett / Prowlarr) == return raw result ==\u003e 2(JProxy) == return formatted result ==\u003e 1(Sonarr / Radarr)\r\n    \r\n    2(JProxy) == optimize search keywords ==\u003e 2(JProxy)\r\n    2(JProxy) == format search result ==\u003e 2(JProxy)\r\n```\r\n\r\n![20230405044128](https://github.com/LuckyPuppy514/image/raw/main/2023/2023-04-05/20230405044128.webp)\r\n![20230406181845](https://github.com/LuckyPuppy514/image/raw/main/2023/2023-04-06/20230406181845.webp)\r\n![20230414101425](https://github.com/LuckyPuppy514/image/raw/main/2023/2023-04-14/20230414101425.webp)\r\n\r\n## 🧱 Install\r\n\r\n### Docker\r\n\r\n```text\r\nversion: '3.0'\r\nservices:\r\n   jproxy:\r\n      image: luckypuppy514/jproxy:latest\r\n      container_name: jproxy\r\n      restart: unless-stopped\r\n      environment:\r\n      - PUID=1000\r\n      - PGID=1000\r\n      - TZ=Asia/Shanghai\r\n      - JAVA_OPTS=-Xms512m -Xmx512m\r\n      ports:\r\n      - 8117:8117\r\n      volumes:\r\n      - /docker/jproxy/database:/app/database\r\n```\r\n\r\nIf you want deploy via `docker run` ，see [docker-run.sh](https://github.com/LuckyPuppy514/jproxy/blob/main/docker/docker-run.sh)\r\n\r\n|          Parameter           |      Default      |                                                          Description                                                           |\r\n| :--------------------------: | :---------------: | :----------------------------------------------------------------------------------------------------------------------------: |\r\n|             PUID             |         0         |                                                            User ID                                                             |\r\n|             PGID             |         0         |                                                            Group ID                                                            |\r\n|              TZ              |   Asia/Shanghai   |                                                            Timezone                                                            |\r\n|          JAVA_OPTS           | -Xms512m -Xmx512m |                                                         JVM parameters                                                         |\r\n|        CACHE_EXPIRES         |       4320        |                                                Cache expiration time (minutes)                                                 |\r\n|        TOKEN_EXPIRES         |       10080       |                                                Login expiration time (minutes)                                                 |\r\n|        SYNC_INTERVAL         |         3         |                                               Synchronization interval (minutes)                                               |\r\n|         RENAME_FILE          |       true        |                                                File rename switch (true/false)                                                 |\r\n|          MIN_COUNT           |         8         | Append title of primary language (without season and episode number) to search while current result count less than this value |\r\n| INDEXER_RESULT_CACHE_EXPIRES |        15         |                                         Indexer result cache expiration time (minutes)                                         |\r\n\r\nIf you need to set a proxy, you can append the corresponding proxy parameters in `JAVA_OPTS`\r\n\r\n- HTTP Proxy\r\n  `-Xms512m -Xmx512m -Dhttp.proxyHost=192.168.6.2 -Dhttp.proxyPort=12345`\r\n- SOCKS Proxy\r\n  `-Xms512m -Xmx512m -DsocksProxyHost=192.168.6.2 -DsocksProxyPort=54321`\r\n\r\n### Windows\r\n\r\n1. [Download jdk17](https://kutt.lckp.top/yrnerc), install and configure environment variables\r\n2. [Download windows.zip](https://github.com/LuckyPuppy514/jproxy/releases) ，unzip to the installation directory\r\n\r\n|      Filename      |        Explanation        |                 Remark                  |\r\n| :----------------: | :-----------------------: | :-------------------------------------: |\r\n|    startup.bat     |       starup script       |                    -                    |\r\n|    shutdown.bat    |      shutdown script      |                    -                    |\r\n| startup-daemon.bat | startup background script | hidden window running in the background |\r\n|      database      |         database          |          keep it while upgrade          |\r\n|       config       |    configuration files    |                    -                    |\r\n|     jproxy.jar     |   Runnable jar package    |                    -                    |\r\n\r\n## ☃️ Basic Configuration\r\n\r\n- URL: `http://127.0.0.1:8117/login`\r\n- User: `jproxy`\r\n- Password: `jproxy@2023`\r\n\r\n![20230406181038](https://github.com/LuckyPuppy514/image/raw/main/2023/2023-04-06/20230406181038.webp)\r\n\r\n① Fill in `Sonarr Server Url`, `API KEY`, and `Indexer Address` in `System -  Configure` (Jackett or Prowlarr)\r\n\r\n![20230404182207](https://github.com/LuckyPuppy514/image/raw/main/2023/2023-04-04/20230404182207.webp)\r\n![20230414101841](https://github.com/LuckyPuppy514/image/raw/main/2023/2023-04-14/20230414101841.webp)\r\n\r\n💡 After saving, it should normally be as shown in the picture below ✅, otherwise please check the input and network connectivity\r\n\r\n![20230414101757](https://github.com/LuckyPuppy514/image/raw/main/2023/2023-04-14/20230414101757.webp)\r\n\r\n② For the first use, it is recommended to manually synchronize `Series Title` and `Series Rule` once (it will be automatically synchronized later)\r\n\r\n![20230406182240](https://github.com/LuckyPuppy514/image/raw/main/2023/2023-04-06/20230406182240.webp)\r\n![20230406182304](https://github.com/LuckyPuppy514/image/raw/main/2023/2023-04-06/20230406182304.webp)\r\n\r\n③ Modify the `IP` and `Port` of the indexer to the `IP` and `Port` of JProxy, and append the path\r\n\r\nJackett\r\n\r\n`http://192.168.6.15:9117/api/v2.0/......` ➡️ `http://192.168.6.14:8117/sonarr/jackett/api/v2.0/......`\r\n\r\n![20230404172541](https://github.com/LuckyPuppy514/image/raw/main/2023/2023-04-04/20230404172541.webp)\r\n\r\nProwlarr\r\n\r\n`http://192.168.6.15:9696` ➡️ `http://192.168.6.14:8117/sonarr/prowlarr`\r\n\r\n![20230806210024](https://github.com/LuckyPuppy514/image/raw/main/2023/2023-08-06/20230806210024.webp)\r\n\r\nAnd change `Authentication Required` to `Disabled for Local Addresses`\r\n\r\n![20230806211107](https://github.com/LuckyPuppy514/image/raw/main/2023/2023-08-06/20230806211107.webp)\r\n\r\n[🎗️ For advanced configuration and usage, see wiki](https://github.com/LuckyPuppy514/jproxy/wiki)\r\n\r\n## 😘 Contributing\r\n\r\nFeel free to dive in！[Open an issue](https://github.com/LuckyPuppy514/jproxy/issues/new/choose) or submit PRs.\r\n\r\n- [arco-design-pro-vue](https://github.com/arco-design/arco-design-pro-vue)\r\n- [spring-boot](https://github.com/spring-projects/spring-boot)\r\n- [sqlite](https://github.com/sqlite/sqlite)\r\n- [liquibase](https://github.com/liquibase/liquibase)\r\n- [mybatis](https://github.com/mybatis/mybatis-3)\r\n- [mybatis-plus](https://github.com/baomidou/mybatis-plus)\r\n- [caffeine](https://github.com/ben-manes/caffeine)\r\n- [knife4j](https://github.com/xiaoymin/knife4j)\r\n- [charon](https://github.com/mkopylec/charon-spring-boot-starter)\r\n- [jib](https://github.com/GoogleContainerTools/jib)\r\n\r\n## 👏 Related Efforts\r\n\r\n- [Sonarr](https://github.com/Sonarr/Sonarr)\r\n- [Radarr](https://github.com/radarr/radarr)\r\n- [Jackett](https://github.com/Jackett/Jackett)\r\n- [Prowlarr](https://github.com/Prowlarr/Prowlarr)\r\n- [qBittorrent](https://github.com/qbittorrent/qBittorrent)\r\n\r\n## 🃏 License\r\n\r\n[MIT](https://github.com/LuckyPuppy514/jproxy/blob/main/LICENSE) © LuckyPuppy514\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluckypuppy514%2Fjproxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluckypuppy514%2Fjproxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluckypuppy514%2Fjproxy/lists"}