Sign inSign up

feeditout/seedarr

By feeditout

Updated 1 day ago

BitTorrent seeding simulator built on Sonarr/Radarr architecture.

Image
Networking
Web servers
0

7.7K

feeditout/seedarr repository overview

Seedarr Skull
Seedarr

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

Docker Pulls Docker Image Size Architectures Latest Release CI/CD Status License Website


Seedarr Web UI Screenshot


🚀 What's Changed in this Version

🐛 Bug Fixes
  • fix(mediainspection): restrict ContainerFormat to recognized media container extensions (Closes #174)
  • fix(diskspace): resolve Linux mount points in DiskSpaceCheck via IDiskSpaceService (Closes #172)
  • fix(onboarding): mark GettingStartedModal as completed on finish (Closes #219)
  • fix(ui): prevent permanent log silencing after Clear in SystemLogs (Closes #194)
  • fix(i18n): support defaultValue in options object and fallback rendering (Closes #203)
  • fix(ui): prevent permanent event silencing after Clear in SystemEvents (Closes #238)
  • fix(fastresume): protect fastresume files against truncation via atomic write (Closes #404)
  • fix(seeding): eliminate execution-time drift in SeedingEngine tick loop (Closes #393)
  • fix(theme): persist toggleTheme to localStorage and resolve system preference (Closes #216)

💡 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 (docker run)
docker run -d \
  --name seedarr \
  -p 9898:9898 \
  -v seedarr-config:/config \
  -v seedarr-data:/data \
  --restart unless-stopped \
  feeditout/seedarr:latest

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


Docker Compose (compose.yaml / docker-compose.yml)
services:
  seedarr:
    image: feeditout/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

📁 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):

ArchitectureTag ExampleStatus
linux/amd64feeditout/seedarr:latest, feeditout/seedarr:1.3.38✅ Verified Stable
linux/arm64feeditout/seedarr:latest, feeditout/seedarr:1.3.38✅ Verified Stable

Tag summary

Content type

Image

Digest

sha256:4dff60fc7

Size

153.7 MB

Last updated

1 day ago

docker pull feeditout/seedarr