Skip to content

Contributing

Thank you for your interest in contributing! This guide covers how to set up the development environment and follow project conventions.

  • Node.js v22+
  • pnpm v9+ (this repo pins pnpm 11 via packageManager)
  • (Optional) FFmpeg for live remux of progressive MP4 while downloading
  • (Optional) A TMDB API key — via Settings → Modules (see TMDB) or TMDB_API_KEY
  • (Optional) A Prowlarr, Jackett, or Torrentio setup for torrent search
  1. Fork and clone the repository

    Terminal window
    git clone https://github.com/Artpou/seedarr.git
    cd seedarr
  2. Install dependencies

    Terminal window
    pnpm install
  3. Set up environment variables

    Copy .env.example to .env and fill in the values you need. At minimum:

    Terminal window
    API_PORT=3002
    WEB_URL=http://localhost:3000
    VITE_API_URL=http://localhost:3002
    TMDB_API_KEY=your_tmdb_api_key_here
  4. Initialize the database

    Terminal window
    pnpm db:push
  5. Start the development servers

    Terminal window
    pnpm dev
Terminal window
pnpm check # lint + types + tests + knip
pnpm lint:fix # auto-fix with Biome
pnpm db:generate # generate Drizzle migrations
pnpm db:migrate # apply migrations

Always run pnpm check before submitting a pull request.

  • TypeScript strict mode — never use any
  • Biome for lint/format (2-space indent, 120 cols, double quotes)
  • kebab-case files, PascalCase components
  • API types from @seedarr/sdk; request DTOs from @seedarr/contracts
  • UI primitives stay app-local (apps/web/src/shared/ui, apps/website/src/components/ui)

For architecture details, see Architecture and AGENTS.md in the repository.