Sign inSign up

feeditout/seedarr

By feeditout

•Updated about 10 hours ago

BitTorrent seeding simulator built on Sonarr/Radarr architecture.

Image
Networking
Web servers
0

10K+

feeditout/seedarr repository overview

Seedarr Skull
Seedarr ⁠

BitTorrent Seeding Simulator — the *arr-family approach to maintaining your ratio.

WebsiteCI/CDLatest ReleaseLicenseDocker Pulls
GHCR.NET 10React 19TypeScript

Seedarr Web UI Screenshot


⁠🚀 What's Changed in this Version

⁠🐛 Bug Fixes
  • fix(test): unblock Sonar Http tests stuck on SignalR coalesce

⁠💡 What is Seedarr?

Seedarr is a BitTorrent seeding simulator built on the proven Sonarr/Radarr architecture. It simulates realistic seeding behavior across trackers without transferring actual data — maintaining your ratio, keeping torrents alive, and looking indistinguishable from a real BitTorrent client.

⁠Key Highlights
  • ⚡ Seeding Simulation: Realistic traffic patterns, burst/idle intervals, Pareto (80/20) and Power Law speed distribution algorithms.
  • 🎭 Client Emulation: Authentically impersonates qBittorrent, Deluge, Transmission, uTorrent, and BiglyBT with matching peer IDs, extension handshakes, and scrape signatures.
  • *🔌 Servarr (arr) Sync: Integrates with Sonarr, Radarr, and Lidarr to automatically import and seed downloaded torrent history.
  • 🌐 Full BitTorrent Protocol Stack: HTTP/UDP tracker announce & scrape (BEP 3, BEP 15, BEP 12), Peer Wire protocol, MSE/PE Diffie-Hellman RC4 encryption, DHT (BEP 5), PEX (BEP 11), and uTP transport.
  • 📡 Built-in Tracker Server: Embedded HTTP & UDP tracker server with peer database and rate-limiting.
  • 🔔 Multi-Channel Notifications: Discord, Telegram, Gotify, Pushover, Apprise, Email/SMTP, and Generic Webhooks.
  • 📈 Real-Time Dashboards: Real-time speed charts, peer geographic maps, tracker health telemetry, and status cards.

⁠⚡ Quick Start

⁠Single Container Run (podman run / docker run)

Option 1: Docker Hub

podman run -d \
  --name seedarr \
  -p 9898:9898 \
  -v seedarr-config:/config \
  -v seedarr-data:/data \
  --restart unless-stopped \
  feeditout/seedarr:latest

Option 2: GitHub Container Registry (GHCR)

podman run -d \
  --name seedarr \
  -p 9898:9898 \
  -v seedarr-config:/config \
  -v seedarr-data:/data \
  --restart unless-stopped \
  ghcr.io/dmzoneill/seedarr:latest

Open http://localhost:9898⁠ in your browser.


⁠Container Compose (podman-compose.yml / compose.yaml)
services:
  seedarr:
    # Option 1 (Docker Hub):
    image: feeditout/seedarr:latest
    # Option 2 (GHCR):
    # image: ghcr.io/dmzoneill/seedarr:latest
    container_name: seedarr
    restart: unless-stopped
    ports:
      - "9898:9898"       # Web UI & REST API
    volumes:
      - /opt/seedarr/config:/config
      - /opt/seedarr/data:/data
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9898/api/v1/health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 15s

Run with Container Compose:

podman-compose up -d
# or: docker compose up -d

⁠📁 Storage Volumes & Port Parameters

ParameterTypeDefaultDescription
-p 9898:9898Port9898Web UI, REST API v1, SignalR push notifications, and OpenAPI/Swagger
-v /configVolume/configApplication database (seedarr.db), configuration settings (config.xml), logs, and certificates
-v /dataVolume/dataWatched .torrent files directory, backup archives, and staged torrent metadata
-e PUID / PGIDEnv1000:1000User and Group ID for internal filesystem permissions
-e TZEnvUTCTimezone for scheduler matrix and automated backup cron jobs

⁠🌐 Reverse Proxy Configuration

⁠Nginx
server {
    listen 80;
    server_name seedarr.yourdomain.com;

    location / {\n        proxy_pass http://127.0.0.1:9898;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # WebSocket / SignalR support
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_read_timeout 86400;
    }
}
⁠Traefik (Docker Labels)
labels:
  - "traefik.enable=true"
  - "traefik.http.routers.seedarr.rule=Host(`seedarr.yourdomain.com`)"
  - "traefik.http.routers.seedarr.entrypoints=websecure"
  - "traefik.http.routers.seedarr.tls.certresolver=letsencrypt"
  - "traefik.http.services.seedarr.loadbalancer.server.port=9898"

⁠🛠️ Supported Architectures & Tags

Multi-architecture builds are automatically published to both Docker Hub and GitHub Packages Container Registry (GHCR):

ArchitectureDocker Hub Tag ExampleGHCR Tag ExampleStatus
linux/amd64feeditout/seedarr:latestghcr.io/dmzoneill/seedarr:latest✅ Verified Stable
linux/arm64feeditout/seedarr:latestghcr.io/dmzoneill/seedarr:latest✅ Verified Stable

Tag summary

Content type

Image

Digest

sha256:aef826e1e…

Size

127.6 MB

Last updated

about 10 hours ago

docker pull feeditout/seedarr