
Sportarr
Sports event management and download automation
Overview
Sportarr is a PVR for sports, forked from Sonarr. It tracks events across sports leagues, searches your indexers for new releases, renames and organizes the downloaded files, and integrates with Plex, Jellyfin, and Emby. Sportarr is open source under the GPL-3.0 license.
QuickBox Pro installs Sportarr per user as a self-contained build, so there is no host runtime to manage. The application lives under /, your data lives under /, and a per-user systemd service serves the UI at https:// through the nginx reverse proxy. The service listens on 127. only, so nginx is the sole public entry point.
Key features
Sports Event Tracking
Track events across sports leagues
Indexer Search
Search your indexers for new releases
Rename & Organize
Rename and organize downloaded files automatically
Media Server Integration
Integrates with Plex, Jellyfin, and Emby
Self-Contained Runtime
Ships as a self-contained build with no host runtime to install or maintain
Per-User Service
Isolated systemd unit sportarr@username with a random free port, loopback-only, behind nginx
When to use it
Good fit
- You follow sports leagues and want events found, grabbed, and filed automatically instead of by hand
- You already run Sonarr and want the same workflow for sports events
- You want downloaded events renamed and organized into a library your Plex, Jellyfin, or Emby server can read
- You use Usenet or BitTorrent and want one place that searches your indexers for releases
What you get
- Install via
qb install sportarr -u usernamewith no host runtime to provision - Served at
https://behind the QuickBox reverse proxyyour- server/ username/ sportarr/ - Single per-user systemd service
sportarr@usernamethat you can restart on its own - Reinstall keeps your database and API key, so a repair does not cost you your library records
Installation
Install from the Dashboard
Open App Dashboard → Package Management (/), find Sportarr under Media Management (browse the category or search), and click Install. The dashboard streams the install log live. Reinstall and Remove are in the same Package Management panel. To update, use the amber Update badge on the Sportarr row in the App Dashboard.
The install downloads the newest stable upstream release, unpacks it into your per-user install tree, writes Sportarr’s config. for your personal URL path and port, and starts the service. It then waits for Sportarr to answer before it reports success, for up to two minutes.
What you see and can manage is gated by your account: admins manage any user’s apps; regular users manage their own. See App Management for the full flow.
QuickBox installs and updates Sportarr from upstream’s stable releases. Upstream also publishes a rolling development build; QuickBox does not install it, and you do not choose a channel.
QuickBox picks a random free port within 50 of 1867 (1817 to 1917) at install time and binds it to 127. only. The assigned port is recorded in the QuickBox database and written into Sportarr’s config. and the nginx config for you. You never need to touch it.
Install and manage from the CLI
The CLI runs the same lifecycle and suits automation and scripting:
qb install sportarr -u username
qb reinstall sportarr -u username
qb update sportarr -u username
qb remove sportarr -u username| Command | Description |
|---|---|
| qb install sportarr -u username | Install Sportarr for the user at the per-user subpath |
| qb reinstall sportarr -u username | Reinstall Sportarr and keep your database and API key |
| qb update sportarr -u username | Update to the newest stable release, keeping your data |
| qb remove sportarr -u username | Remove Sportarr and delete its data |
Full flag reference: CLI Reference.
Access and authentication
URL
Sportarr is published under the per-user subpath of your QuickBox server:
https://How access is protected
The Sportarr web UI asks for your account’s web login, an HTTP basic authentication username and password prompt from nginx, the same prompt you get for Radarr. Sportarr’s own in-app login is off by default, so there is no second prompt, and the service itself is reachable only through nginx. If you want a second login inside Sportarr, turn on Forms authentication in Sportarr’s settings; the Sportarr wiki covers it.
The / path is outside that web login so that companion apps and scripts can call it. It needs the API key instead: a request with the key succeeds and a request without it gets a 401.
API key
QuickBox generates the API key when it writes config. and stores it in that file as the Api value:
grep -oPm1 '(?<=<ApiKey>)[^<]*' /home/username/.config/Sportarr/config.xmlA reinstall or an update keeps the existing key, so integrations you have already configured keep working.
- Install location
- /opt/
username/ Sportarr/ - Data directory
- /home/
username/ .config/ Sportarr/ - Database
- /home/
username/ .config/ Sportarr/ sportarr. db - Service
- sportarr@username
- Port
- 1867 (random free port near 1867)
Configuration and files
Sportarr keeps the application and your data in two separate trees. Everything that matters to you lives under /, and the install tree under / is replaced on every update.
QuickBox seeds config. with these values, and keeps the port and URL path in sync with nginx and the QuickBox database:
| Setting | Value | Why |
|---|---|---|
Bind | 127. | Only nginx can reach the service |
Url | / | Serves the UI at your per-user path |
Authentication | None | Sportarr’s own login is off; nginx asks for your web login instead |
Update | External | Updates come from qb update, not from inside the app |
Update | false | Nothing updates until you ask |
Analytics, Send | false | Usage reporting is switched off |
QuickBox also keeps snapshots of config. and the nginx config under /.
Service management
Sportarr runs as a per-user systemd instance:
# Check status
sudo systemctl status sportarr@username
# Restart / stop / start
sudo systemctl restart sportarr@username
sudo systemctl stop sportarr@username
sudo systemctl start sportarr@username
# Follow the service log
sudo journalctl -u sportarr@username -fThe service starts automatically at boot and restarts itself if it fails.
Common tasks
Set up Sportarr
Indexers, download clients, root folders, and media server connections are all configured inside Sportarr’s own settings. The Sportarr wiki covers each step, so follow it rather than a QuickBox-specific recipe: wiki.sportarr.net .
Update Sportarr
qb update sportarr -u usernameThe update stops the service, replaces the install tree with the newest stable release, and redeploys the nginx config from the current QuickBox template. It re-syncs Port, Url and Bind in config., then starts the service again. Your database and API key are kept.
Check the logs
# Service output
sudo journalctl -u sportarr@username -f
# Application log files
ls /home/username/.config/Sportarr/logs/Back up your data
Everything worth keeping lives in one tree. Stop the service first for a clean snapshot:
sudo systemctl stop sportarr@username
tar -czf ~/sportarr-backup.tar.gz -C /home/username/.config Sportarr
sudo systemctl start sportarr@usernameRemove Sportarr
qb remove sportarr -u usernameqb remove sportarr deletes the data directory /, including the database, settings, API key, and logs, along with the install tree, the nginx config, and the QuickBox records for the app. Back up the data directory first if you may want your library records back. qb reinstall sportarr keeps the data directory, so the database and API key survive. Your media files in your media folders are not touched by either command.
Troubleshooting
If QuickBox cannot resolve a Sportarr release with a Linux x64 package through its release proxy, the command stops before it downloads or unpacks anything and tells you to check / and your network access. Fix the connection, then run the same qb install sportarr -u username command again. A reinstall has already removed the old install tree, so rerun qb reinstall sportarr -u username.
After starting the service, QuickBox waits up to two minutes for Sportarr to answer, and stops with an error if the service is no longer active or never answers. Check the journal: sudo journalctl -u sportarr@username -n 100. Then rerun qb update sportarr -u username to redeploy a clean install tree.
If the downloaded archive is missing, corrupt, or has no Sportarr executable inside, the command aborts. Check / and network access, then rerun the same command.
Best practices
Do
- Back up
/regularly, since the database, settings, and API key all live therehome/ username/ .config/ Sportarr/ - Use
qb update sportarr -u usernamefor updates, so the install tree, nginx config and port settings stay consistent - Keep integrations pointed at the per-user URL and its API key; the key survives reinstall and update
- Check the journal first when something misbehaves:
sudo journalctl -u sportarr@username
Don't
- Don't run
qb removewithout a backup, because it deletes the database and settings - Don't edit the port or URL path in
config.by hand; QuickBox keeps them in step with nginx and its databasexml - Don't turn on Sportarr's in-app updater; updates are handled by
qb update - Don't expose Sportarr's port directly; it is bound to localhost on purpose
FAQ
Resources
Join the Community
Media server operators sharing configs, getting support, and shaping the future of QuickBox Pro.
- Dedicated Support
- Feature Previews
- Community Configs
- Active Discussions