Skip to content

Update SimpleTorrent to 1.4.0 - #6071

Open
makrron wants to merge 1 commit into
getumbrel:masterfrom
makrron:update-simple-torrent-1.4.0
Open

makrron wants to merge 1 commit into
getumbrel:masterfrom
makrron:update-simple-torrent-1.4.0

Conversation

@makrron

@makrron makrron commented Sep 8, 2026

Copy link
Copy Markdown

Type

App update

App

App ID: simple-torrent
Upstream project: https://github.com/makrron/simple-torrent
Version: 1.4.0

Summary

  • Upgraded SimpleTorrent from legacy 1.3.9-hotfix-1 to 1.4.0.
  • Switched from unpullable legacy image (boypt/cloud-torrent:1.3.9 returning HTTP 401) to maintained multi-arch image makrron/simple-torrent:1.4.0@sha256:c1e8c4722ad0a5c60c876ca0c6cd9fa5891df101fe274cedb736957484b8f0de supporting linux/amd64, linux/arm64 (Raspberry Pi 4/5), linux/arm/v7, and linux/386.
  • Overhauled torrent search engine with modular JSON scrapers, automatic mirror failover, and updated scrapers for active providers (YTS, 1337X, The Pirate Bay, LimeTorrents, Nyaa, TorrentGalaxy).
  • Upstream release notes: https://github.com/makrron/simple-torrent/releases/tag/v1.4.0

Verification

Umbrel testing performed:

  • Validated with Umbrel linter: npm run lint:apps -- simple-torrent --check-imagespassed with 0 errors and 0 warnings.

  • Code hygiene check: git diff --check passed cleanly.

  • Verified Docker execution: starts cleanly with non-root UID 1000:1000, --port=8086, and volume mounts for /torrents, /downloads, and /config.

    Environment tested:

    • Local Docker runtime & static linter verification
    • Umbrel device
    • Local umbrelOS test environment

    Architecture tested:

    • amd64
    • arm64 (verified multi-arch manifest index contains native arm64)

    Known lint warnings or caveats:
    None.

Notes

  • Preserves existing permissions (STORAGE_DOWNLOADS), volumes, and pre-start
    migration hook.
  • Upstream maintainer and repository updated to makrron/simple-torrent.

@nmfretz

nmfretz commented Sep 9, 2026

Copy link
Copy Markdown
Member

Thanks for working on this @makrron. Given that the original project has been archived for several years and its image is no longer available, I think it might make more sense for us to retire the current listing for now.

I also noticed your fork disables HTTPS certificate verification in both server/server_search.go and search/client.go. Was that intentional? The first changes Go’s default HTTP transport, so it also affects torrent downloads, RSS feeds, and tracker lists beyond search.

@nmfretz nmfretz added the question Further information is requested label Sep 9, 2026
@makrron

makrron commented Sep 9, 2026

Copy link
Copy Markdown
Author

Hi @nmfretz. Thank you so much for the review and for catching this!

That was definitely a mistake introduced while overhauling the search scrapers to tolerate certain torrent mirrors with flaky certificates. Modifying http. DefaultTransport globally in init() was an oversight and a genuine security risk
that shouldn't have been there.

I have just pushed a fix:

  1. Completely removed the init() block in server/server_search.go. Go's DefaultTransport is no longer mutated.
  2. Removed InsecureSkipVerify: true from search/client.go. Outbound HTTP/HTTPS requests now strictly validate TLS certificates against system root CAs.
  3. Verified the mirror failover engine against live providers: any mirror with an invalid/expired certificate is safely rejected and automatically fails over to valid HTTPS mirrors.

Regarding the Umbrel listing:
I completely understand and respect your decision to retire the current listing given that boypt archived the upstream repo years ago and the original image is defunct.

My goal with this fork was to breathe new life into the client for the self-hosted community:

  • Updated to modern Go 1.22 runtime.
  • Pure multi-arch builds (linux/amd64 and linux/arm64 for Raspberry Pi 4/5).
  • Modular search engine with active providers and resilient failovers.
  • Automated CI/CD release pipeline with clean security audits.

If you decide to retire the official listing for now, that's completely fine. Alternatively, if you're open to pointing the listing to this maintained fork or would prefer me to submit it as a Community App once you've retired the old one, please let me know.

Thanks again for the great catch and for build the Umbrel ecosystem!

@makrron

makrron commented Sep 13, 2026

Copy link
Copy Markdown
Author

Hi @nmfretz

Following up on our conversation from last week. I wanted to let you know that I have
been running this maintained version on my own Umbrel 2.0 Beta 1 (deployed via
my community app store), and it is fully operational and rock solid:

  • 100% Functional & Verified: The web UI, magnet handling, download pipeline to
    the shared Umbrel downloads folder (/data/storage/downloads), and the scraper failover
    engine are working seamlessly on bare-metal Umbrel hardware.
  • Security Hardened (v1.4.1): As mentioned in my previous reply, the TLS bypass
    issue has been completely eliminated in upstream release v1.4.1. Outbound requests
    strictly adhere to system root CAs, and Go's global DefaultTransport is no longer
    mutated.
  • Drop-in Replacement: Since the legacy boypt/cloud-torrent:1.3.9 image is
    completely dead (HTTP 401 on pull), adopting this maintained fork directly revives the
    app for existing Umbrel users without breaking changes, permission issues, or data loss.

If you are open to maintaining the listing under this active fork, I can immediately
update this PR branch with the clean v1.4.1 image digest so everything is ready to
merge.

On the other hand, if Umbrel's official policy strictly favors retiring legacy apps
that have moved to forks in favor of community app stores, I completely understand and
will keep distributing it via my community store.

Thanks again for your time and feedback!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

question Further information is requested

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants