Add transmission for torrent-based ZIM downloads #3

Merged
eblume merged 3 commits from feature/transmission-torrent-downloads into main 2026-01-14 12:00:33 -08:00
Owner

Summary

  • Add new transmission ansible role using homebrew + brew services
  • Modify kiwix role to download ZIM archives via BitTorrent instead of blocking HTTP
  • Kiwix role now depends on transmission (auto-runs with --tags kiwix)
  • Completed downloads are symlinked from ~/transmission/ to kiwix-tools directory
  • Downloads happen in background; ansible reports progress without blocking

Benefits

  • Reduces load on kiwix.org servers (P2P distribution)
  • Non-blocking downloads - ansible completes immediately, torrent continues in background
  • Seeding helps the community
  • transmission-remote --move allows relocating downloads without losing progress

File locations

  • Config: /opt/homebrew/var/transmission/settings.json (managed by ansible)
  • Torrents: /opt/homebrew/var/transmission/Torrents/
  • Downloads: ~/transmission/

Test plan

  • Transmission installs and starts via brew services
  • Config deployed to correct homebrew location
  • Torrent added automatically for configured ZIM archives
  • Download completes successfully via BitTorrent
  • Symlink created when download finishes
  • kiwix-serve restarts and serves content
  • Zettelkasten updated with new service documentation

🤖 Generated with Claude Code

## Summary - Add new `transmission` ansible role using homebrew + brew services - Modify `kiwix` role to download ZIM archives via BitTorrent instead of blocking HTTP - Kiwix role now depends on transmission (auto-runs with `--tags kiwix`) - Completed downloads are symlinked from `~/transmission/` to kiwix-tools directory - Downloads happen in background; ansible reports progress without blocking ## Benefits - Reduces load on kiwix.org servers (P2P distribution) - Non-blocking downloads - ansible completes immediately, torrent continues in background - Seeding helps the community - `transmission-remote --move` allows relocating downloads without losing progress ## File locations - Config: `/opt/homebrew/var/transmission/settings.json` (managed by ansible) - Torrents: `/opt/homebrew/var/transmission/Torrents/` - Downloads: `~/transmission/` ## Test plan - [x] Transmission installs and starts via brew services - [x] Config deployed to correct homebrew location - [x] Torrent added automatically for configured ZIM archives - [x] Download completes successfully via BitTorrent - [x] Symlink created when download finishes - [x] kiwix-serve restarts and serves content - [x] Zettelkasten updated with new service documentation 🤖 Generated with [Claude Code](https://claude.com/claude-code)
- Add new transmission ansible role using homebrew + brew services
- Configure transmission to download to ~/transmission with localhost-only RPC
- Modify kiwix role to use transmission for downloading ZIM archives via BitTorrent
- Add role dependency so running --tags kiwix auto-runs transmission
- Keep fallback to direct HTTP download when kiwix_use_transmission: false
- Symlink completed downloads from transmission dir to kiwix-tools dir

This reduces load on kiwix.org servers and allows downloads to continue
in the background without blocking ansible runs.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Homebrew's transmission-cli service uses /opt/homebrew/var/transmission/
  not ~/.config/transmission-daemon/
- Add task to clean up old config directory
- Update zettelkasten with correct paths

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
eblume force-pushed feature/transmission-torrent-downloads from 1304aad299 to 6bb5f323d6 2026-01-14 11:59:39 -08:00 Compare
Prevents accidentally including commits from other feature branches.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
eblume merged commit 2a6fcd915c into main 2026-01-14 12:00:33 -08:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
eblume/blumeops!3
No description provided.