Changes
🚀 Feature Release - Bun Runtime & Native Installers
Overview
Major release migrating from Node.js to Bun runtime for improved performance and bundling. Introduces native installers for Windows, macOS, and Linux. Also adds multi-instance support, UI-configurable base URL, local timezone logging, and critical bug fixes for content routing.
⚠️ Breaking Changes
Bun Runtime Migration
- Node.js no longer supported: Pulsarr now requires Bun runtime instead of Node.js
- Docker users: No action required - the image handles everything
- Manual installation users: Must install Bun and use
buncommands instead ofnpm
Key Updates
Native Installers
- Windows: Inno Setup installer with automatic TMDB key injection
- macOS: Native .app bundle with DMG installer
- Linux: Install script with systemd service integration
- Split directory support:
dataDirenv var for separate config/data locations
Multi-Instance Support
- Unique webhook names: Multiple Pulsarr instances can now connect to the same Arr server
- Cross-instance protection: Webhooks are scoped per instance, preventing accidental deletion
- Network config UI: Credenza for fixing webhook callback errors
UI-Configurable Base URL
- No longer required in .env: Base URL and port can now be configured directly in the UI
- Simplified setup: Reduces manual configuration for reverse proxy setups
Local Timezone Logging
- Timestamps now use local timezone: Logs display dates and times in your system timezone
- Format:
[2026-02-02 14:30:45 EST]instead of[14:30:45 UTC]
Bug Fixes
- Router target_type filtering: Sonarr rules no longer incorrectly trigger for movies (and vice versa)
- Fetch failure abort sync: Reconciliation now aborts if ANY Arr instance fails to respond, preventing mass false approval requests
Migration & Compatibility
Docker users
docker pull lakker/pulsarr:latestManual installation (NEW - Bun required)
# Install Bun if you haven't already
curl -fsSL https://bun.sh/install | bash
# Then update Pulsarr
git pull origin master
bun install
bun run build
bun run start:prodNative installers - Download from Releases page
No database migrations required.
Full Changelog: v0.9.6...v0.10.0
Docker Image: lakker/pulsarr:0.10.0
- Feature: Bun Runtime & Native Installers (#958) @jamcalli
- fix(sync): abort reconciliation if any arr instance fetch fails (#957) @jamcalli
- feat(logging): use local timezone with date in log timestamps (#956) @jamcalli
- fix(router): filter rules by target_type in approval checks (#955) @jamcalli
- fix(macos): resolve app crash and add DMG installer (#954) @jamcalli
- Feature/native installer polish (#943) @jamcalli
- Feature/native installers (#941) @jamcalli
- fix(docs): improve OpenAPI docs CI and fix script types (#940) @jamcalli
- Feature/bun runtime migration (#938) @jamcalli
- fix(sse): add retry limits and auth detection for SSE connections (#927) @jamcalli
🔄 Dependencies
- chore(deps): lock file maintenance (#953) @renovate[bot]
- chore(deps): update actions/cache digest to cdf6c1f (#951) @renovate[bot]
- chore(deps): pin oven/bun docker tag to 819f911 (#950) @renovate[bot]
- chore(deps): update dependency lucide-react to ^0.563.0 (#952) @renovate[bot]
- chore(deps): update docker/login-action digest to c94ce9f (#928) @renovate[bot]
- chore(deps): update react to v19.2.4 (#932) @renovate[bot]
- chore(deps): update dependency fastify to v5.7.2 (#931) @renovate[bot]
- chore(deps): update dependency @biomejs/biome to v2.3.12 (#930) @renovate[bot]
Docker
docker pull lakker/pulsarr:0.10.0
Contributors
@actions-user, @jamcalli, @renovate[bot] and renovate[bot]