### Install Make on Linux Source: https://mkbrr.com/development Use apt to install Make on Linux. ```bash sudo apt install make ``` -------------------------------- ### Install Go on Linux Source: https://mkbrr.com/development Use apt to install Go on Linux. ```bash sudo apt install golang ``` -------------------------------- ### Install Go on Windows Source: https://mkbrr.com/development Use Chocolatey to install Go on Windows. ```bash choco install golang ``` -------------------------------- ### Install Make on Windows Source: https://mkbrr.com/development Use Chocolatey to install Make on Windows. ```bash choco install make ``` -------------------------------- ### Install Git on Linux Source: https://mkbrr.com/development Use apt to install Git on Linux. ```bash sudo apt install git ``` -------------------------------- ### Verify Go Installation Source: https://mkbrr.com/development Check the installed version of Go. ```bash go version ``` -------------------------------- ### Movies Configuration Example Source: https://mkbrr.com/features/batch-mode A configuration example for processing multiple movie files. ```yaml version: 1 jobs: - output: /torrents/movie1.torrent path: /media/movies/movie1.mkv trackers: - https://tracker-one.com/announce/abc private: true comment: "4K HDR Release" source: "UHD" - output: /torrents/movie2.torrent path: /media/movies/movie2.mkv trackers: - https://tracker-one.com/announce/abc private: true comment: "1080p Release" source: "BluRay" - output: /torrents/movie3.torrent path: /media/movies/movie3.mkv trackers: - https://tracker-one.com/announce/abc private: true comment: "720p Release" source: "WEB" ``` -------------------------------- ### Install Go on macOS Source: https://mkbrr.com/development Use Homebrew to install Go on macOS. ```bash brew install go ``` -------------------------------- ### Full presets.yaml configuration example Source: https://mkbrr.com/features/presets A comprehensive example showing the structure of presets.yaml, including global defaults and multiple named presets. ```yaml # yaml-language-server: $schema=https://raw.githubusercontent.com/autobrr/mkbrr/main/schema/presets.json version: 1 # Optional: Default settings applied to ALL presets unless overridden default: private: true no_date: true no_creator: false skip_prefix: false # comment: "Default comment" # source: "DEFAULT_SRC" # exclude_patterns: ["*.bak", "temp.*"] # include_patterns: ["*.mkv", "*.mp4"] presets: preset-name-1: # Name of the preset (used with -P flag) trackers: - "https://tracker-one.com/announce/..." source: "TRACKER1" comment: "Uploaded via mkbrr" private: true exclude_patterns: - "*.nfo" - "*sample*" preset-name-2: trackers: - "udp://tracker-two.org:6969/announce" private: false # Make these torrents public piece_length: 18 # Use 256 KiB pieces for this preset include_patterns: - "*.mkv" - "*.mp4" - "*.avi" ``` -------------------------------- ### Install mkbrr via Go Source: https://mkbrr.com/installation Install mkbrr using the Go toolchain. ```bash go install github.com/autobrr/mkbrr@latest ``` -------------------------------- ### Mixed Content Configuration Example Source: https://mkbrr.com/features/batch-mode A configuration example demonstrating how to mix different types of content like music albums, games, and ebooks in one batch file. ```yaml version: 1 jobs: - output: /torrents/album.torrent path: /media/music/Artist/Album/ trackers: - udp://tracker-three.org:6969/announce private: false piece_length: 18 webseeds: - http://seed.example.com/album/ exclude_patterns: - "*.log" - "folder.jpg" - output: /torrents/game.torrent path: /media/games/Game.iso trackers: - https://tracker-four.com/announce private: true piece_length: 22 # 4 MiB pieces source: "RETAIL" - output: /torrents/ebook.torrent path: /media/books/Book.pdf trackers: - https://tracker-five.com/announce private: true comment: "PDF + Extras" ``` -------------------------------- ### Install Git on Windows Source: https://mkbrr.com/development Use Chocolatey to install Git on Windows. ```bash choco install git ``` -------------------------------- ### Minimal presets.yaml configuration example Source: https://mkbrr.com/features/presets A minimal example of a presets.yaml file containing a single preset definition. ```yaml version: 1 presets: ptp: trackers: - "https://tracker.example.com/announce" private: false source: "EXAMPLE" ``` -------------------------------- ### Install Make on macOS Source: https://mkbrr.com/development Install Make using Xcode Command Line Tools. ```bash # Included with Xcode Command Line Tools xcode-select --install ``` -------------------------------- ### Build Commands Source: https://mkbrr.com/development Standard build and installation commands for the project. ```makefile make build # Build the binary make clean # Remove build artifacts make all # Clean, build, and install the binary make install # Install the binary in GOPATH ``` -------------------------------- ### Install Debian/Ubuntu amd64 package Source: https://mkbrr.com/installation Download and install the Debian/Ubuntu amd64 .deb package. ```bash wget $(curl -s https://api.github.com/repos/autobrr/mkbrr/releases/latest | grep download | grep linux_amd64.deb | cut -d\" -f4) sudo dpkg -i mkbrr_*_linux_amd64.deb ``` -------------------------------- ### Install Alpine amd64 package Source: https://mkbrr.com/installation Download and install the Alpine amd64 .apk package. ```bash wget $(curl -s https://api.github.com/repos/autobrr/mkbrr/releases/latest | grep download | grep linux_amd64.apk | cut -d\" -f4) sudo apk add --allow-untrusted mkbrr_*_linux_amd64.apk ``` -------------------------------- ### Build GUI from source Source: https://mkbrr.com/gui/overview Commands to clone the repository, install the Wails CLI, and build the GUI application. ```bash # Clone the repository git clone https://github.com/autobrr/mkbrr.git cd mkbrr # Install Wails CLI (one-time requirement) make install-wails # Build GUI for your current platform make gui-build # Or build for all platforms make gui-build-all ``` -------------------------------- ### Install Git on macOS Source: https://mkbrr.com/development Use Homebrew to install Git on macOS. ```bash brew install git ``` -------------------------------- ### Install Debian/Ubuntu arm64 package Source: https://mkbrr.com/installation Download and install the Debian/Ubuntu arm64 .deb package. ```bash wget $(curl -s https://api.github.com/repos/autobrr/mkbrr/releases/latest | grep download | grep linux_arm64.deb | cut -d\" -f4) sudo dpkg -i mkbrr_*_linux_arm64.deb ``` -------------------------------- ### Install FreeBSD x86_64 binary Source: https://mkbrr.com/installation Download and extract the FreeBSD x86_64 tar.gz binary to /usr/local/bin. ```bash wget $(curl -s https://api.github.com/repos/autobrr/mkbrr/releases/latest | grep download | grep freebsd_x86_64.tar.gz | cut -d\" -f4) sudo tar -C /usr/local/bin -xzf mkbrr_*_freebsd_x86_64.tar.gz mkbrr ``` -------------------------------- ### TV Shows Configuration Example Source: https://mkbrr.com/features/batch-mode A configuration example for processing TV show seasons, including exclude patterns for specific file types. ```yaml version: 1 jobs: - output: /torrents/show_s01.torrent path: /media/tv/Show/Season 1/ trackers: - udp://tracker-two.org:6969/announce private: true piece_length: 18 # 256 KiB pieces comment: "Complete Season 1" exclude_patterns: - "*.nfo" - "*.jpg" - output: /torrents/show_s02.torrent path: /media/tv/Show/Season 2/ trackers: - udp://tracker-two.org:6969/announce private: true piece_length: 18 comment: "Complete Season 2" exclude_patterns: - "*.nfo" - "*.jpg" ``` -------------------------------- ### Install Alpine arm64 package Source: https://mkbrr.com/installation Download and install the Alpine arm64 .apk package. ```bash wget $(curl -s https://api.github.com/repos/autobrr/mkbrr/releases/latest | grep download | grep linux_arm64.apk | cut -d\" -f4) sudo apk add --allow-untrusted mkbrr_*_linux_arm64.apk ``` -------------------------------- ### Install Debian/Ubuntu armv6 package Source: https://mkbrr.com/installation Download and install the Debian/Ubuntu armv6 .deb package. ```bash wget $(curl -s https://api.github.com/repos/autobrr/mkbrr/releases/latest | grep download | grep linux_armv6.deb | cut -d\" -f4) sudo dpkg -i mkbrr_*_linux_armv6.deb ``` -------------------------------- ### Install Alpine armv6 package Source: https://mkbrr.com/installation Download and install the Alpine armv6 .apk package. ```bash wget $(curl -s https://api.github.com/repos/autobrr/mkbrr/releases/latest | grep download | grep linux_armv6.apk | cut -d\" -f4) sudo apk add --allow-untrusted mkbrr_*_linux_armv6.apk ``` -------------------------------- ### Install Fedora/CentOS arm64 package Source: https://mkbrr.com/installation Download and install the Fedora/CentOS arm64 .rpm package. ```bash wget $(curl -s https://api.github.com/repos/autobrr/mkbrr/releases/latest | grep download | grep linux_arm64.rpm | cut -d\" -f4) sudo rpm -i mkbrr_*_linux_arm64.rpm ``` -------------------------------- ### Install Fedora/CentOS armv6 package Source: https://mkbrr.com/installation Download and install the Fedora/CentOS armv6 .rpm package. ```bash wget $(curl -s https://api.github.com/repos/autobrr/mkbrr/releases/latest | grep download | grep linux_armv6.rpm | cut -d\" -f4) sudo rpm -i mkbrr_*_linux_armv6.rpm ``` -------------------------------- ### Install Fedora/CentOS amd64 package Source: https://mkbrr.com/installation Download and install the Fedora/CentOS amd64 .rpm package. ```bash wget $(curl -s https://api.github.com/repos/autobrr/mkbrr/releases/latest | grep download | grep linux_amd64.rpm | cut -d\" -f4) sudo rpm -i mkbrr_*_linux_amd64.rpm ``` -------------------------------- ### Verify mkbrr installation Source: https://mkbrr.com/installation Check that the installation was successful by displaying the current version of the application. ```bash mkbrr version ``` -------------------------------- ### Add installation directory to PATH Source: https://mkbrr.com/installation Commands to add the Go or binary installation directory to the shell configuration file to resolve 'command not found' errors. ```bash # For Go installations echo 'export PATH=$PATH:$(go env GOPATH)/bin' >> ~/.zshrc && source ~/.zshrc # For binary installations echo 'export PATH=$PATH:/usr/local/bin' >> ~/.zshrc && source ~/.zshrc ``` -------------------------------- ### Example batch.yaml Configuration Source: https://mkbrr.com/features/batch-mode A sample configuration file defining multiple torrent jobs with specific output paths, trackers, and metadata. ```yaml # yaml-language-server: $schema=https://raw.githubusercontent.com/autobrr/mkbrr/main/schema/batch.json version: 1 jobs: - output: /torrents/movie1.torrent path: /media/movies/movie1.mkv trackers: - https://tracker-one.com/announce/abc private: true comment: "4K HDR Release" source: "UHD" - output: /torrents/movie2.torrent path: /media/movies/movie2.mkv trackers: - https://tracker-one.com/announce/abc private: true comment: "1080p Release" source: "BluRay" ``` -------------------------------- ### Install Linux dependencies (Fedora) Source: https://mkbrr.com/gui/overview Install the required WebKitGTK 4.1 and GTK 3 libraries on Fedora systems. ```bash sudo dnf install webkit2gtk4.1 gtk3 ``` -------------------------------- ### Install Linux arm binary Source: https://mkbrr.com/installation Download and extract the Linux arm tar.gz binary to /usr/local/bin. ```bash wget $(curl -s https://api.github.com/repos/autobrr/mkbrr/releases/latest | grep download | grep linux_arm.tar.gz | grep -v arm64 | cut -d\" -f4) sudo tar -C /usr/local/bin -xzf mkbrr_*_linux_arm.tar.gz mkbrr ``` -------------------------------- ### Install Linux x86_64 binary Source: https://mkbrr.com/installation Download and extract the Linux x86_64 tar.gz binary to /usr/local/bin. ```bash wget $(curl -s https://api.github.com/repos/autobrr/mkbrr/releases/latest | grep download | grep linux_x86_64 | cut -d\" -f4) sudo tar -C /usr/local/bin -xzf mkbrr_*_linux_x86_64.tar.gz mkbrr ``` -------------------------------- ### Install Linux dependencies (Debian/Ubuntu) Source: https://mkbrr.com/gui/overview Install the required WebKitGTK 4.1 and GTK 3 libraries on Debian or Ubuntu systems. ```bash sudo apt install libwebkit2gtk-4.1-0 libgtk-3-0 ``` -------------------------------- ### Install macOS Intel binary Source: https://mkbrr.com/installation Download and extract the macOS x86_64 tar.gz binary to /usr/local/bin. ```bash wget $(curl -s https://api.github.com/repos/autobrr/mkbrr/releases/latest | grep download | grep darwin_x86_64.tar.gz | cut -d\" -f4) sudo tar -C /usr/local/bin -xzf mkbrr_*_darwin_x86_64.tar.gz mkbrr ``` -------------------------------- ### Install Linux arm64 binary Source: https://mkbrr.com/installation Download and extract the Linux arm64 tar.gz binary to /usr/local/bin. ```bash wget $(curl -s https://api.github.com/repos/autobrr/mkbrr/releases/latest | grep download | grep linux_arm64.tar.gz | cut -d\" -f4) sudo tar -C /usr/local/bin -xzf mkbrr_*_linux_arm64.tar.gz mkbrr ``` -------------------------------- ### Install Linux dependencies (Arch) Source: https://mkbrr.com/gui/overview Install the required WebKitGTK 4.1 and GTK 3 libraries on Arch Linux systems. ```bash sudo pacman -S webkit2gtk-4.1 gtk3 ``` -------------------------------- ### Include Files with --include Source: https://mkbrr.com/features/filtering Examples of including files using a single pattern, multiple flags, or a comma-separated list. Using --include activates whitelist mode. ```bash mkbrr create . -t ... --include "*.mkv" ``` ```bash mkbrr create . -t ... --include "*.mkv" --include "*.mp4" ``` ```bash mkbrr create . -t ... --include "*.mkv,*.mp4,*.avi" ``` -------------------------------- ### Install mkbrr via AUR Source: https://mkbrr.com/installation Install mkbrr on Arch Linux using the AUR helper yay. ```bash yay -S mkbrr ``` -------------------------------- ### Install macOS Apple Silicon binary Source: https://mkbrr.com/installation Download and extract the macOS arm64 tar.gz binary to /usr/local/bin. ```bash wget $(curl -s https://api.github.com/repos/autobrr/mkbrr/releases/latest | grep download | grep darwin_arm64.tar.gz | cut -d\" -f4) sudo tar -C /usr/local/bin -xzf mkbrr_*_darwin_arm64.tar.gz mkbrr ``` -------------------------------- ### Define a preset configuration Source: https://mkbrr.com/features/presets Example of a preset definition containing include and exclude patterns. ```yaml presets: movies: include_patterns: - "*.mkv" - "*.mp4" exclude_patterns: - "*sample*" ``` -------------------------------- ### Create public tracker torrents Source: https://mkbrr.com/quickstart Examples for creating torrents for public trackers using the --private=false flag and multiple tracker URLs. ```bash # Basic public tracker torrent mkbrr create "Linux.ISO" -t udp://tracker.opentrackr.org:1337/announce --private=false # Multiple public trackers mkbrr create "Linux.ISO" -t udp://tracker1.com -t udp://tracker2.com --private=false ``` -------------------------------- ### Configure valid piece size Source: https://mkbrr.com/quickstart Example of setting a valid piece size, which must be a power of 2 between 16 and 27. ```bash # Valid sizes: 16(64KiB), 17(128KiB), 18(256KiB)...27(128MiB) # Trackers with custom piece ranges also allow 14(16KiB) and 15(32KiB) mkbrr create data -t tracker.url --piece-length 16 ``` -------------------------------- ### Create private tracker torrents Source: https://mkbrr.com/quickstart Examples for creating torrents for private trackers, including custom piece sizes, source tags, and comments. ```bash # Basic private tracker torrent (default) mkbrr create "Movie.2024.1080p.BluRay.x264" -t https://your-tracker.com/announce # With custom piece size mkbrr create "Movie.2024.1080p.BluRay.x264" -t https://your-tracker.com/announce --piece-length 24 # With source and comment mkbrr create "Movie.2024.1080p.BluRay.x264" -t https://your-tracker.com/announce --source "BluRay" --comment "Great quality!" ``` -------------------------------- ### Define Presets in presets.yaml Source: https://mkbrr.com/features/filtering Example configuration for defining include and exclude patterns within a presets.yaml file. ```yaml version: 1 presets: movies: include_patterns: - "*.mkv" - "*.mp4" exclude_patterns: - "*sample*" - "*.nfo" ``` -------------------------------- ### Leaseweb Server Benchmark Command Source: https://mkbrr.com/performance/benchmarks Hyperfine command used to benchmark mkbrr, mktorrent, torrenttools, and torf on a Leaseweb server with a 21 GiB 1080p season pack. It uses 5 runs with a warmup of 1, and includes setup and prepare commands to clear the cache and remove the output torrent file. ```bash hyperfine --warmup 1 --runs 5 \ --setup 'sudo sync && sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"' \ --prepare 'sudo sync && sudo sh -c "echo 3 > /proc/sys/vm/drop_caches" && rm -f /home/user/Show.S01.DL.1080p.WEB.H264-GROUP.torrent' \ 'mkbrr create /home/user/torrents/qbittorrent/Show.S01.DL.1080p.WEB.H264-GROUP' \ 'mktorrent /home/user/torrents/qbittorrent/Show.S01.DL.1080p.WEB.H264-GROUP' \ 'torrenttools create --threads 8 ~/torrents/qbittorrent/Show.S01.DL.1080p.WEB.H264-GROUP' \ 'torf --threads 8 /home/user/torrents/qbittorrent/Show.S01.DL.1080p.WEB.H264-GROUP' ``` -------------------------------- ### Install mkbrr on Alpine Linux Source: https://mkbrr.com/installation Install mkbrr from the official Alpine edge/testing repository. ```bash sudo apk update sudo apk add mkbrr ``` -------------------------------- ### Create content with a preset Source: https://mkbrr.com/features/presets Use the -P or --preset flag to apply a preset when creating content. ```bash mkbrr create /path/to/content -P preset-name-1 ``` -------------------------------- ### Install mkbrr via Homebrew Source: https://mkbrr.com/installation Install mkbrr on macOS or Linux using the Homebrew package manager. ```bash brew install mkbrr ``` -------------------------------- ### Create using a preset Source: https://mkbrr.com/guides/creating-torrents Generates a torrent using a pre-defined configuration preset. ```bash mkbrr create /path/to/content -P mypreset ``` -------------------------------- ### Create a torrent using the CLI Source: https://mkbrr.com/ Basic commands for generating a .torrent file from a data path, with an optional tracker URL. ```bash # Basic usage mkbrr create "path/to/data" -o my.torrent # With a tracker mkbrr create "path/to/data" -o my.torrent --tracker "http://tracker.url" ``` -------------------------------- ### Check mkbrr version Source: https://mkbrr.com/cli-reference/version Run this command to display the version of the installed mkbrr CLI. ```bash mkbrr version ``` -------------------------------- ### PGO Build Commands Source: https://mkbrr.com/development Commands for Profile-Guided Optimization. ```makefile make profile # Generate a PGO profile (run before build-pgo) make build-pgo # Build the binary with PGO optimization make install-pgo # Install the PGO-optimized binary ``` -------------------------------- ### Install mkbrr manually from AUR Source: https://mkbrr.com/installation Manually clone and build the mkbrr package from the Arch User Repository. ```bash git clone https://aur.archlinux.org/mkbrr.git cd mkbrr makepkg -si ``` -------------------------------- ### Run hyperfine benchmark for torrent creation tools Source: https://mkbrr.com/performance/benchmarks Executes a performance comparison using hyperfine with 1 warmup run and 5 measurement runs across four different torrent creation tools. ```bash hyperfine --warmup 1 --runs 5 \ 'mkbrr create The.Show.S02.1080p.SRC.WEB-DL.DDP5.1.H.264-GRP --workers 64' \ 'mktorrent -l 24 The.Show.S02.1080p.SRC.WEB-DL.DDP5.1.H.264-GRP' \ 'torrenttools create --threads 64 The.Show.S02.1080p.SRC.WEB-DL.DDP5.1.H.264-GRP' \ 'torf --threads 64 The.Show.S02.1080p.SRC.WEB-DL.DDP5.1.H.264-GRP' ``` -------------------------------- ### Extract and run Linux binary Source: https://mkbrr.com/gui/overview Commands to extract the downloaded tarball, make the binary executable, and launch the GUI. ```bash tar -xzf mkbrr-gui_*_linux_amd64.tar.gz chmod +x mkbrr-gui ./mkbrr-gui ``` -------------------------------- ### Define Jobs in batch.yaml Source: https://mkbrr.com/features/filtering Example configuration for defining specific jobs with their own include and exclude patterns in a batch.yaml file. ```yaml version: 1 jobs: - output: movie.torrent path: /path/to/movie/ include_patterns: - "*.mkv" exclude_patterns: - "*sample*" ``` -------------------------------- ### Exclude Files with --exclude Source: https://mkbrr.com/features/filtering Examples of excluding files using a single pattern, multiple flags, or a comma-separated list. ```bash mkbrr create . -t ... --exclude "*.nfo" ``` ```bash mkbrr create . -t ... --exclude "*.nfo" --exclude "*sample*" ``` ```bash mkbrr create . -t ... --exclude "*.nfo,*sample*,*.txt" ```