diff --git a/bitmagnet.io/Gemfile.lock b/bitmagnet.io/Gemfile.lock index 2bca4ed8..dc894b7e 100644 --- a/bitmagnet.io/Gemfile.lock +++ b/bitmagnet.io/Gemfile.lock @@ -13,10 +13,10 @@ GEM ffi (1.17.0-arm64-darwin) ffi (1.17.0-x86_64-linux-gnu) forwardable-extended (2.6.0) - google-protobuf (4.28.2-arm64-darwin) + google-protobuf (4.29.0-arm64-darwin) bigdecimal rake (>= 13) - google-protobuf (4.28.2-x86_64-linux) + google-protobuf (4.29.0-x86_64-linux) bigdecimal rake (>= 13) http_parser.rb (0.8.0) @@ -56,8 +56,8 @@ GEM jekyll-include-cache jekyll-seo-tag (>= 2.0) rake (>= 12.3.1) - kramdown (2.4.0) - rexml + kramdown (2.5.1) + rexml (>= 3.3.9) kramdown-parser-gfm (1.1.0) kramdown (~> 2.0) liquid (4.0.4) @@ -77,18 +77,17 @@ GEM rb-fsevent (0.11.2) rb-inotify (0.11.1) ffi (~> 1.0) - rexml (3.3.8) - rouge (4.4.0) + rexml (3.3.9) + rouge (4.5.1) safe_yaml (1.0.5) - sass-embedded (1.79.5) - google-protobuf (~> 4.27) - rake (>= 13) - sass-embedded (1.79.5-arm64-darwin) - google-protobuf (~> 4.27) + sass-embedded (1.81.0-arm64-darwin) + google-protobuf (~> 4.28) + sass-embedded (1.81.0-x86_64-linux-gnu) + google-protobuf (~> 4.28) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) unicode-display_width (2.6.0) - webrick (1.8.2) + webrick (1.9.0) PLATFORMS arm64-darwin-22 @@ -106,4 +105,4 @@ DEPENDENCIES webrick (~> 1.8) BUNDLED WITH - 2.5.9 + 2.5.22 diff --git a/bitmagnet.io/_includes/head_custom.html b/bitmagnet.io/_includes/head_custom.html index f6f40207..6887e16a 100644 --- a/bitmagnet.io/_includes/head_custom.html +++ b/bitmagnet.io/_includes/head_custom.html @@ -12,5 +12,16 @@ gtag("config", "G-J0XY0QVC39"); + + + + + {{ page.title }} | {{ site.title }} | {{ site.tagline }} {% seo title=false %} diff --git a/bitmagnet.io/_sass/custom/custom.scss b/bitmagnet.io/_sass/custom/custom.scss new file mode 100644 index 00000000..dbd5f1a5 --- /dev/null +++ b/bitmagnet.io/_sass/custom/custom.scss @@ -0,0 +1,7 @@ +.nav-list-site-settings { + margin-top: 10px; +} + +.nav-list-link .fas { + margin-right: 6px; +} diff --git a/bitmagnet.io/assets/images/webui-health-check.png b/bitmagnet.io/assets/images/webui-health-check.png new file mode 100644 index 00000000..57244f70 Binary files /dev/null and b/bitmagnet.io/assets/images/webui-health-check.png differ diff --git a/bitmagnet.io/assets/js/site.js b/bitmagnet.io/assets/js/site.js new file mode 100644 index 00000000..66b0927c --- /dev/null +++ b/bitmagnet.io/assets/js/site.js @@ -0,0 +1,49 @@ +document.addEventListener("DOMContentLoaded", function () { + const lightIcon = "fa-sun"; + const darkIcon = "fa-moon"; + + let isDark = + window.matchMedia && + window.matchMedia("(prefers-color-scheme: dark)").matches; + + const siteNav = document.querySelector("nav.site-nav"); + const icon = document.createElement("i"); + icon.classList.add("fas"); + const span = document.createElement("span"); + span.innerHTML = "Toggle dark mode"; + const link = document.createElement("a"); + link.classList.add("nav-list-link"); + link.append(icon, span); + link.setAttribute("href", "#"); + const li = document.createElement("li"); + li.classList.add("nav-list-item"); + li.append(link); + const ul = document.createElement("ul"); + ul.classList.add("nav-list", "nav-list-site-settings"); + ul.append(li); + siteNav.append(ul); + + function update() { + if (isDark) { + jtd.setTheme("dark"); + icon.classList.remove(darkIcon); + icon.classList.add(lightIcon); + } else { + jtd.setTheme("light"); + icon.classList.remove(lightIcon); + icon.classList.add(darkIcon); + } + } + + update(); + + function toggle() { + isDark = !isDark; + update(); + } + + jtd.addEvent(link, "click", function (event) { + event.preventDefault(); + toggle(); + }); +}); diff --git a/bitmagnet.io/external-resources.md b/bitmagnet.io/external-resources.md index ecf49f03..9fee7aba 100644 --- a/bitmagnet.io/external-resources.md +++ b/bitmagnet.io/external-resources.md @@ -1,5 +1,6 @@ --- title: External Resources +description: Community-developed resources, tools and packages for bitmagnet layout: default nav_order: 7 --- @@ -9,6 +10,7 @@ nav_order: 7 Community members have developed the following resources, tools and packages; these are not maintained under the **bitmagnet** project: - [@davispuh](https://github.com/davispuh) has published an Arch package, `bitmagnet-git`, [in the AUR repository](https://aur.archlinux.org/packages/bitmagnet-git). +- [@DrFrankensteinUK](https://github.com/DrFrankensteinUK) has written [a **bitmagnet** on Synology NAS guide](https://drfrankenstein.co.uk/bitmagnet-in-container-manager-on-a-synology-nas/). - [@DyonR](https://github.com/DyonR) has developed [magnetico2bitmagnet](https://github.com/DyonR/magnetico2bitmagnet), a collection of scripts for importing into **bitmagnet** from Magnetico and other sources. - [@DyonR](https://github.com/DyonR) has written [a **bitmagnet** on Unraid guide](https://github.com/DyonR/bitmagnet-unraid). - Your link could be here! diff --git a/bitmagnet.io/faq.md b/bitmagnet.io/faq.md index b0ea5980..5dcd35fd 100644 --- a/bitmagnet.io/faq.md +++ b/bitmagnet.io/faq.md @@ -1,5 +1,6 @@ --- title: FAQ +description: Frequently Asked Questions about bitmagnet layout: default nav_order: 1 --- @@ -12,7 +13,7 @@ No. **bitmagnet** does not download, store or distribute any content _at all_. I ## Should I use a VPN with **bitmagnet**? -It is recommended to use a VPN: **bitmagnet** may download **metadata about** illegal and copyrighted content. It is possible that rudimentary law enforcement and anti-piracy tracking tools would incorrectly flag this activity, although we've never heard about anyone getting into trouble for using this or similar metadata crawlers. Setting up a VPN is simple and cheap, and it's better to be safe than sorry. We are not affiliated with any VPN providers, but if you're unsure which provider to choose, we can recommend [Mullvad](https://mullvad.net/). +It is recommended to use a VPN: **bitmagnet** may download **metadata about** illegal and copyrighted content. It is possible that rudimentary law enforcement and anti-piracy tracking tools would incorrectly flag this activity, although we've never heard about anyone getting into trouble for using this or similar metadata crawlers. Setting up a VPN is simple and cheap, and it's better to be safe than sorry. We are not affiliated with any VPN providers, but if you're unsure which provider to choose, we can recommend [Mullvad](https://mullvad.net/) and [ProtonVPN](https://protonvpn.com/). ## Is **bitmagnet** intended to be used as a public service? @@ -20,7 +21,7 @@ No, it was designed to be self-hosted. The UI and API allow destructive actions, ## What are the system requirements for **bitmagnet**? -As a rough guide, you should allow around 300MB RAM for BitMagnet, and at least 1GB RAM for the Postgres database. You should allow roughly 50GB of disk space per 10 million torrents, which should suffice for several months of crawling, however there is no upper limit to how many torrents might ultimately be crawled. The database will run fastest when it has plenty of RAM and a fast disk, preferably a SSD. +As a rough guide, you should allow around 300MB RAM for BitMagnet, and at least 1GB RAM for the Postgres database. You should allow roughly 80GB of disk space per 10 million torrents, which should suffice for several months of crawling, however there is no upper limit to how many torrents might ultimately be crawled. The database will run fastest when it has plenty of RAM and a fast disk, preferably a SSD. ## I've started **bitmagnet** for the first time and am not seeing torrents right away, is something wrong? @@ -28,9 +29,23 @@ If everything is working, **bitmagnet** should begin showing torrents in the web ## **bitmagnet** isn't finding any new torrents, what's wrong? -If **bitmagnet** isn't finding new torrents, it probably isn't due to a problem with the software - many people are using it successfully. You may have a networking or firewall issue, or a VPN misconfiguration preventing you from connecting to the DHT. Additionally, the TMDB API is blocked in certain countries; if you are in an affected country you may need to either disable the TMDB integration with the `tmdb.enabled` configuration key, or use a VPN. Configuring a personal TMDB API key (or disabling TMDB) will make the queue run a **lot** faster. -**bitmagnet** now shows its health status in the main toolbar: It will show a tick for health, a cross for unhealthy or sometimes 3 dots for pending. Click on it to open the health dialog and check that all workers are running and healthy. The dashboard can be used to monitor queue throughput. On the queues dashboard, the following would indicate a problem: +{: .warning-title } + +> Important +> +> **bitmagnet** is known to work well on Linux and MacOS; if it isn't finding new torrents when running on these platforms, this is probably due to a misconfiguration, rather than a bug in the software. +> +> Note that some Windows users have reported issues: if you are having issues on Windows, then for now it's advisable to run the software on Linux or MacOS instead. + + +**bitmagnet** now shows its health status in the main toolbar: It will show a tick for health, a cross for unhealthy or sometimes 3 dots for pending. Click on it to open the health dialog and check that all workers are running and healthy. + +![WebUI health check screenshot](/assets/images/webui-health-check.png) + +The most common issues are networking, firewall or a VPN misconfigurations preventing **bitmagnet** from connecting to the DHT. Additionally, the TMDB API is blocked in certain countries; if you are in an affected country you may need to either disable the TMDB integration with the `tmdb.enabled` configuration key, or use a VPN. Configuring a personal TMDB API key (or disabling TMDB) will make the queue run a **lot** faster. + +The dashboard can be used to monitor queue throughput. On the queues dashboard, the following would indicate a problem: - A high number of pending jobs, and the number of processed jobs not increasing over time - A high number of failed jobs diff --git a/bitmagnet.io/guides.md b/bitmagnet.io/guides.md index f40eab3b..79ad495f 100644 --- a/bitmagnet.io/guides.md +++ b/bitmagnet.io/guides.md @@ -1,5 +1,6 @@ --- title: Guides +description: Guides for setting up and using bitmagnet layout: default nav_order: 3 has_children: true diff --git a/bitmagnet.io/guides/backup-restore-merge.md b/bitmagnet.io/guides/backup-restore-merge.md index 3d201851..3f8bfce7 100644 --- a/bitmagnet.io/guides/backup-restore-merge.md +++ b/bitmagnet.io/guides/backup-restore-merge.md @@ -1,5 +1,6 @@ --- title: Backup, Restore & Merge +description: How to backup, restore, merge and share bitmagnet databases parent: Guides layout: default nav_order: 7 diff --git a/bitmagnet.io/guides/classifier.md b/bitmagnet.io/guides/classifier.md index fd49fdef..d22a8985 100644 --- a/bitmagnet.io/guides/classifier.md +++ b/bitmagnet.io/guides/classifier.md @@ -1,5 +1,6 @@ --- title: Classifier +description: Understanding and customizing bitmagnet's classifier parent: Guides layout: default nav_order: 4 diff --git a/bitmagnet.io/guides/endpoints.md b/bitmagnet.io/guides/endpoints.md index bf8bdac9..2472cd7c 100644 --- a/bitmagnet.io/guides/endpoints.md +++ b/bitmagnet.io/guides/endpoints.md @@ -11,7 +11,8 @@ redirect_from: **bitmagnet** exposes functionality on a number of endpoints: -- `/` - Main web user interface +- `/` - Redirects to `/webui` +- `/webui` - Main web user interface - `/graphql` - GraphQL API including the GraphiQL browser interface - `/torznab/*` - Torznab API for integration compatible applications - `/import` - Import API for adding new content to the library (see [the importing guide](/guides/import.html)) diff --git a/bitmagnet.io/guides/import.md b/bitmagnet.io/guides/import.md index dbc9a817..902ce893 100644 --- a/bitmagnet.io/guides/import.md +++ b/bitmagnet.io/guides/import.md @@ -1,5 +1,6 @@ --- title: Import +description: Importing torrents into bitmagnet parent: Guides layout: default nav_order: 6 diff --git a/bitmagnet.io/guides/observability-telemetry.md b/bitmagnet.io/guides/observability-telemetry.md index 5c264927..6ac2d5f6 100644 --- a/bitmagnet.io/guides/observability-telemetry.md +++ b/bitmagnet.io/guides/observability-telemetry.md @@ -1,5 +1,6 @@ --- title: Observability & Telemetry +description: Observability & Telemetry features in bitmagnet parent: Guides layout: default nav_order: 9 diff --git a/bitmagnet.io/guides/reprocess-reclassify.md b/bitmagnet.io/guides/reprocess-reclassify.md index 78938018..5bd9e0cb 100644 --- a/bitmagnet.io/guides/reprocess-reclassify.md +++ b/bitmagnet.io/guides/reprocess-reclassify.md @@ -1,5 +1,6 @@ --- title: Reprocess & Reclassify +description: Reprocess and reclassify torrents in bitmagnet parent: Guides layout: default nav_order: 5 diff --git a/bitmagnet.io/guides/servarr-integration.md b/bitmagnet.io/guides/servarr-integration.md index e2912f4d..cdd527fb 100644 --- a/bitmagnet.io/guides/servarr-integration.md +++ b/bitmagnet.io/guides/servarr-integration.md @@ -1,5 +1,6 @@ --- title: Servarr Integration +description: Integrating bitmagnet with applications from the Servarr stack parent: Guides layout: default nav_order: 8 diff --git a/bitmagnet.io/guides/tech-stack.md b/bitmagnet.io/guides/tech-stack.md index 5183dc44..21591e10 100644 --- a/bitmagnet.io/guides/tech-stack.md +++ b/bitmagnet.io/guides/tech-stack.md @@ -1,5 +1,6 @@ --- title: Tech Stack +description: The technology stack used in bitmagnet parent: Guides layout: default nav_order: 10 diff --git a/bitmagnet.io/guides/text-search.md b/bitmagnet.io/guides/text-search.md index a88965fa..cfeccdce 100644 --- a/bitmagnet.io/guides/text-search.md +++ b/bitmagnet.io/guides/text-search.md @@ -1,5 +1,6 @@ --- title: Text Search +description: Using bitmagnet's text search parent: Guides layout: default nav_order: 2 diff --git a/bitmagnet.io/index.md b/bitmagnet.io/index.md index ecb2bade..f718b30d 100644 --- a/bitmagnet.io/index.md +++ b/bitmagnet.io/index.md @@ -34,17 +34,15 @@ This means that **bitmagnet** is not reliant on any external trackers or torrent - [x] [An import facility for ingesting torrents from any source, for example the RARBG backup](/guides/import.html) - [x] A torrent search engine - [x] A GraphQL API: currently this provides a single search query; there is also an embedded GraphQL playground at `/graphql` -- [x] A web user interface implemented in Angular: currently this is a simple single-page application providing a user interface for search queries via the GraphQL API +- [x] A responsive, multilingual web user interface implemented in Angular - [x] [A Torznab-compatible endpoint for integration with the Serverr stack](/guides/servarr-integration.html) - [x] A WebUI dashboard for monitoring and administration ### High priority features not yet implemented - [ ] Authentication, API keys, access levels etc. -- [ ] An admin API, and in general a more complete GraphQL API - [ ] Saved searches for content of particular interest, enabling custom feeds in addition to the following feature - [ ] Bi-directional integration with the [Prowlarr indexer proxy](https://prowlarr.com/): Currently **bitmagnet** can be added as an indexer in Prowlarr; bi-directional integration would allow **bitmagnet** to crawl content from any indexer configured in Prowlarr, unlocking many new sources of content -- [ ] More documentation and more tests! ### Pipe dream features diff --git a/bitmagnet.io/setup/configuration.md b/bitmagnet.io/setup/configuration.md index 2317ae9b..2c484ed7 100644 --- a/bitmagnet.io/setup/configuration.md +++ b/bitmagnet.io/setup/configuration.md @@ -1,5 +1,6 @@ --- title: Configuration +description: Configuration options for bitmagnet parent: Setup layout: default nav_order: 2 diff --git a/bitmagnet.io/setup/installation.md b/bitmagnet.io/setup/installation.md index 1fc9b283..d0ccc711 100644 --- a/bitmagnet.io/setup/installation.md +++ b/bitmagnet.io/setup/installation.md @@ -1,5 +1,6 @@ --- title: Installation +description: Installation instructions for bitmagnet parent: Setup layout: default nav_order: 1