We're always looking for people to help make Sonarr even better, there are a number of ways to contribute.
Setup guides, FAQ, the more information we have on the wiki the better.
Sonarr is written in C# (backend) and JS (frontend). The backend is built on the .NET 6, while the frontend utilizes Reactjs.
VS 2022 V17.0 or higher is recommended as it includes the .NET6 SDK
- The Node.js runtime is required. The following versions are supported:
- 12.0 or later
- 14.0 or later
- 16.0 or later
Sonarr will NOT run on older versions such as
6.x, or any version below 12.0!
- Yarn is required to build the frontend
- Yarn is included with Node 16.10+ by default. Enable it with
- For other Node versions, install it with
npm i -g corepack
Clone the repository into your development machine. info
Navigate to the cloned directory
Install the required Node Packages
Start gulp to monitor your development environment for any changes that need post processing using:
Ensure startup project is set to
Sonarr.Console and framework to
Build the solution in Visual Studio, this will ensure all projects correctly built and dependencies restored
Debug/Run the project in Visual Studio to start Sonarr
- Open http://localhost:8989
- If you're adding a new, already requested feature, please comment on GitHub Issues so work is not duplicated (If you want to add something not already on there, please talk to us first)
- Rebase from Sonarr's develop branch, do not merge
- Make meaningful commits, or squash them
- Feel free to make a pull request before work is complete, this will let us see where its at and make comments/suggest improvements
- Reach out to us on the discord if you have any questions
- Add tests (unit/integration)
- Commit with *nix line endings for consistency (We checkout Windows and commit *nix)
- One feature/bug fix per pull request to keep things clean and easy to understand
- Use 4 spaces instead of tabs, this is the default for VS 2019 and WebStorm
- Only make pull requests to
main, if you make a PR to
main we will comment on it and close it
- You're probably going to get some comments or questions from us, they will be to ensure consistency and maintainability
- We'll try to respond to pull requests as soon as possible, if its been a day or two, please reach out to us, we may have missed it
- Each PR should come from its own feature branch not develop in your fork, it should have a meaningful branch name (what is being added/fixed)
If you have any questions about any of this, please let us know.