Skip to content

Commit

Permalink
Docsite updates
Browse files Browse the repository at this point in the history
  • Loading branch information
mgdigital committed Jan 8, 2025
1 parent d050649 commit ff0d088
Show file tree
Hide file tree
Showing 20 changed files with 114 additions and 21 deletions.
25 changes: 12 additions & 13 deletions bitmagnet.io/Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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)
Expand All @@ -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
Expand All @@ -106,4 +105,4 @@ DEPENDENCIES
webrick (~> 1.8)

BUNDLED WITH
2.5.9
2.5.22
11 changes: 11 additions & 0 deletions bitmagnet.io/_includes/head_custom.html
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,16 @@

gtag("config", "G-J0XY0QVC39");
</script>

<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.1/css/all.min.css"
integrity="sha512-5Hs3dF2AEPkpNAR7UiOHba+lRSJNeM2ECkwxUIxC1Q/FLycGTbNapWXB4tP889k5T5Ju8fs4b1P5z/iB4nMfSQ=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
/>

<script src="{{ site.baseurl }}{% link assets/js/site.js %}"></script>

<title>{{ page.title }} | {{ site.title }} | {{ site.tagline }}</title>
{% seo title=false %}
7 changes: 7 additions & 0 deletions bitmagnet.io/_sass/custom/custom.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
.nav-list-site-settings {
margin-top: 10px;
}

.nav-list-link .fas {
margin-right: 6px;
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
49 changes: 49 additions & 0 deletions bitmagnet.io/assets/js/site.js
Original file line number Diff line number Diff line change
@@ -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();
});
});
2 changes: 2 additions & 0 deletions bitmagnet.io/external-resources.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
title: External Resources
description: Community-developed resources, tools and packages for bitmagnet
layout: default
nav_order: 7
---
Expand All @@ -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!
23 changes: 19 additions & 4 deletions bitmagnet.io/faq.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
title: FAQ
description: Frequently Asked Questions about bitmagnet
layout: default
nav_order: 1
---
Expand All @@ -12,25 +13,39 @@ 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?

No, it was designed to be self-hosted. The UI and API allow destructive actions, and no security or scalability review has taken place, so it's not advised. An API is exposed, that could in theory be used to build a public service, but it's not going to be the focus of this project to support that use case.

## 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?

If everything is working, **bitmagnet** should begin showing torrents in the web UI within a maximum of 10 minutes (which is its cache TTL). The refresh button at the top of the torrent listing is a cache buster - use it to see new torrent content in real time. Bear in mind that when a torrent is inserted into the database, a background queue job must run before it will become available in the UI. If you're importing thousands or millions of torrents, it might therefore take a while for everything to show. Check the next question if you're still not seeing torrents.

## **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
Expand Down
1 change: 1 addition & 0 deletions bitmagnet.io/guides.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
title: Guides
description: Guides for setting up and using bitmagnet
layout: default
nav_order: 3
has_children: true
Expand Down
1 change: 1 addition & 0 deletions bitmagnet.io/guides/backup-restore-merge.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down
1 change: 1 addition & 0 deletions bitmagnet.io/guides/classifier.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
title: Classifier
description: Understanding and customizing bitmagnet's classifier
parent: Guides
layout: default
nav_order: 4
Expand Down
3 changes: 2 additions & 1 deletion bitmagnet.io/guides/endpoints.md
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand Down
1 change: 1 addition & 0 deletions bitmagnet.io/guides/import.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
title: Import
description: Importing torrents into bitmagnet
parent: Guides
layout: default
nav_order: 6
Expand Down
1 change: 1 addition & 0 deletions bitmagnet.io/guides/observability-telemetry.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
title: Observability & Telemetry
description: Observability & Telemetry features in bitmagnet
parent: Guides
layout: default
nav_order: 9
Expand Down
1 change: 1 addition & 0 deletions bitmagnet.io/guides/reprocess-reclassify.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
title: Reprocess & Reclassify
description: Reprocess and reclassify torrents in bitmagnet
parent: Guides
layout: default
nav_order: 5
Expand Down
1 change: 1 addition & 0 deletions bitmagnet.io/guides/servarr-integration.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
title: Servarr Integration
description: Integrating bitmagnet with applications from the Servarr stack
parent: Guides
layout: default
nav_order: 8
Expand Down
1 change: 1 addition & 0 deletions bitmagnet.io/guides/tech-stack.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
title: Tech Stack
description: The technology stack used in bitmagnet
parent: Guides
layout: default
nav_order: 10
Expand Down
1 change: 1 addition & 0 deletions bitmagnet.io/guides/text-search.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
title: Text Search
description: Using bitmagnet's text search
parent: Guides
layout: default
nav_order: 2
Expand Down
4 changes: 1 addition & 3 deletions bitmagnet.io/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
1 change: 1 addition & 0 deletions bitmagnet.io/setup/configuration.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
title: Configuration
description: Configuration options for bitmagnet
parent: Setup
layout: default
nav_order: 2
Expand Down
1 change: 1 addition & 0 deletions bitmagnet.io/setup/installation.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
title: Installation
description: Installation instructions for bitmagnet
parent: Setup
layout: default
nav_order: 1
Expand Down

0 comments on commit ff0d088

Please sign in to comment.