Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(Insights): Add Anonymous Usage Data collection #3543

Merged
merged 22 commits into from
Dec 17, 2024
Merged

feat(Insights): Add Anonymous Usage Data collection #3543

merged 22 commits into from
Dec 17, 2024

Conversation

deluan
Copy link
Member

@deluan deluan commented Dec 14, 2024

Original post:

In the next release, I'll be introducing the collection of anonymous usage statistics. This data will help me understand how Navidrome is used across different environments, which features are most popular, and how I can improve the software moving forward.

What Will Be Collected?

I always valued your privacy, so the data collected is minimal and strictly anonymous. Here's an overview:

  • Application Details: Navidrome version and uptime.
  • System Information: Operating system type and version, architecture, number of CPUs, memory usage.
  • Library Statistics: Number of tracks, albums, artists, playlists, shares, radios, and active users.
  • Configuration Settings: Non-sensitive config options like which features are enabled (e.g., LastFM, Spotify, Prometheus).
  • Filesystem Types: Type of filesystems used for your music, data, cache, and backup directories.

You can view the exact data that will be collected here: Data Collected by Navidrome

Navidrome instances will send this info once a day and data will be retained for 30 days. After that it will be completely wiped from the collection server.

Why Am I Collecting This Data?

Understanding how Navidrome is used helps me:

  • Identify which platforms and configurations are most common.
  • Prioritize features and fixes based on actual usage.
  • Ensure that updates don't inadvertently affect the majority of users.

Your Privacy Matters

  • No Personal Data: I do not and will not collect any personally identifiable information.
  • Transparency: Being open-source, you can review the code to see exactly what is being collected.
  • Opt-Out Option: While the data collection will be enabled by default to gather meaningful insights, you can opt out at any time if you prefer.

How to Opt-Out

If you wish to disable data collection, you can do so by setting the new config option EnableInsightsCollector (or ND_ENABLEINSIGHTSCOLLECTOR env var) to false. If you have EnableExternalServices set to false, it will also disable the insights collection. Detailed instructions will be provided in the release notes.

Data Collection Server

The server used to receive this data will be open-sourced and hosted by me. I won't use any external services like Sentry for this purpose. This ensures that your data is handled responsibly and remains within the Navidrome project. Here's the code for the server: https://github.com/navidrome/insights

Signed-off-by: Deluan <deluan@navidrome.org>
Signed-off-by: Deluan <deluan@navidrome.org>
Signed-off-by: Deluan <deluan@navidrome.org>
Signed-off-by: Deluan <deluan@navidrome.org>
Signed-off-by: Deluan <deluan@navidrome.org>
Signed-off-by: Deluan <deluan@navidrome.org>
Signed-off-by: Deluan <deluan@navidrome.org>
Signed-off-by: Deluan <deluan@navidrome.org>
Signed-off-by: Deluan <deluan@navidrome.org>
…it will always be false)

Signed-off-by: Deluan <deluan@navidrome.org>
Signed-off-by: Deluan <deluan@navidrome.org>
Signed-off-by: Deluan <deluan@navidrome.org>
Signed-off-by: Deluan <deluan@navidrome.org>
Also add opt-out info to the SignUp form

Signed-off-by: Deluan <deluan@navidrome.org>
… user is created

Signed-off-by: Deluan <deluan@navidrome.org>
Signed-off-by: Deluan <deluan@navidrome.org>
Signed-off-by: Deluan <deluan@navidrome.org>
Signed-off-by: Deluan <deluan@navidrome.org>
Signed-off-by: Deluan <deluan@navidrome.org>
@deluan deluan merged commit 8e2052f into master Dec 17, 2024
34 checks passed
@deluan deluan deleted the insights branch December 17, 2024 22:10
@RedKage
Copy link

RedKage commented Dec 22, 2024

I'm sorry but I am gonna have to be that guy: privacy should be the default, and as such this should be off by default, and users should opt-in if they want to participate to the telemetry.

Rant below.


I love Navidrome, and that's why I am commenting. I have seen so many negative posts everywhere as soon as an open source project decides to create a telemetry feature that is on by default. KDE comes to mind, Firefox, many others I forget.

The only reason I see to force telemetry on by default, is to benefit from people naively installing the software and not being aware that telemetry is happening. This is malicious. This is how I feel.
"opt-in telemetry is effectively the same as no telemetry". I hear this often as a defense. Perhaps.
But this underlines my point of view: given the choice, the user would opt-out.

A better way would be to show a nicely written message in the UI, somewhere in the account settings and have a checkbox to allow telemetry. Yes, beg for it instead of forcing it on users.
Were it be this way, I would have opted in. But since it is trying to the force its way, now I will go out of my way to actively disable telemetry.

This leaves me a bad aftertaste. I will be wary henceforth of Navidrome's decision and will carefully read the changelog... just in case something similar comes up later. It always starts with a good intent...

Do not get me wrong, you could not have done a better implemented telemetry. I see the effort to be transparent about it, to make a separate endpoint for it, etc. But that should still have been off by default.

@wolfyjade
Copy link

sorry to say but I very much have to agree with @RedKage here.

I myself have been using Navidrome for over 3 years now and was really excited to see how the project has and had been progressing, but this kind of opt-out telemetry, especially with the amount of data collected, makes me reconsider if I should continue using Navidrome at all if the situation doesn't improve in that regard.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants