schema
Which edition of the message layout is used, so I can change the format without misreading old messages.
Possible values:Always 1
Voluntary, anonymous statistics. Here is everything that is sent, and everything that never is.
Help me improve Nielix. I would very much like a few numbers from your server. I use them solely to keep developing Nielix and to see which features are used and which are not.
I never get anything private: no titles, file names, folders, usernames, emails, channel addresses or what you watch. Only coarse numbers, such as which version you run and whether you use external channels. I do not store your IP address. It is on by default, and you can turn it off whenever you like.
The server sends at most one message a week. This page describes the message field by field, and the list is the same list the server and my receiver use. A field that is not listed here cannot be accepted by my receiver at all.
The message has exactly these fields. All are required. If a message contains a field that is not listed here, I reject the whole message and nothing is stored.
Which edition of the message layout is used, so I can change the format without misreading old messages.
Possible values:Always 1
A random UUID your server creates the first time and keeps locally. It is not tied to your account, your server id or anything else. It is only used to count the same installation once a week, and so you can have your data deleted.
Possible values:A random UUID (version 4)
Which version of Nielix the server runs.
Possible values:A version number, at most 40 characters, such as 0.9.1 or 0.9.1-rc.1
The operating system the server runs on: linux, windows, darwin (macOS) or other.
Possible values:linux | windows | darwin | other
The processor type: amd64, arm64, arm or other.
Possible values:amd64 | arm64 | arm | other
Whether the server runs in a Docker container (docker) or some other way (other).
Possible values:docker | other
Whether the server uses hardware accelerated transcoding: none, vaapi, qsv, nvenc or other.
Possible values:none | vaapi | qsv | nvenc | other
Which features are turned on in the server, as yes/no. Nothing about what they are used for.
Contains these 11 yes/no fields (the same list in both groups): (yes or no)
Which features were actually used in the last 30 days, as yes/no. This is the important one: a feature can be on without being used.
Contains these 11 yes/no fields (the same list in both groups): (yes or no)
Coarse counts in the server, only as a range and never as an exact number.
Contains these 4 fields, all as a range: (A range: 0, 1, 2-3, 4-10, 11-30, 31+)
How many of each kind of player are paired, only as a range.
Contains these 5 fields, all as a range: (A range: 0, 1, 2-3, 4-10, 11-30, 31+)
The license state of the server: free, premium, grace (in the grace period after expiry) or expired. No key and no account.
Possible values:free | premium | grace | expired
How many days the server has run without a restart. It says something about whether it can be relied on day to day.
Possible values:A whole number between 0 and 36500
Whether the server checks for new versions by itself.
Possible values:yes or no
The language the server is set to: da, en, sv, nb or de.
Possible values:da | en | sv | nb | de
This is what a whole message looks like. The values are made up.
{
"schema": 1,
"install_id": "4f1c2a9e-7b3d-4e58-9a6c-2d1e0b7f5a43",
"version": "0.9.1",
"os": "linux",
"arch": "amd64",
"runtime": "docker",
"hw_transcode": "vaapi",
"features_enabled": {
"external_channels": true,
"downloads": true,
"syncplay": true,
"guest_links": true,
"recordings": true,
"dlna": true,
"push": true,
"screensaver": true,
"mcp": true,
"own_channels": true,
"offline_downloads": true
},
"features_used_30d": {
"external_channels": false,
"downloads": true,
"syncplay": false,
"guest_links": false,
"recordings": false,
"dlna": false,
"push": false,
"screensaver": true,
"mcp": false,
"own_channels": false,
"offline_downloads": false
},
"counts": {
"users": "2-3",
"libraries": "4-10",
"channels": "11-30",
"devices": "4-10"
},
"client_kinds": {
"androidtv": "1",
"web": "2-3",
"android": "1",
"ios": "0",
"other": "0"
},
"license_state": "free",
"uptime_days": 42,
"update_check_enabled": true,
"language": "da"
}There is no room for it in the message, so it cannot be sent, neither by mistake nor on purpose.
The first time you set the server up, the guide asks. You can turn the statistics off there.
Later you can turn it off or on under Settings in the server, and see exactly what is sent.
If you want to be sure the server never sends anything, set the environment variable NIELIX_TELEMETRY=off. Then it is off, whatever the settings say.
NIELIX_TELEMETRY=offUnder Settings in the server there is a button, Delete my data. It immediately deletes everything I have stored from your installation. Behind the button is a single call, DELETE /api/v1/telemetry/ followed by your install_id. Your install_id is the proof, so I can delete without knowing who you are.
The answer is the same whether I had anything or not. The combined weekly totals, where your installation is one among many and cannot be recognized, are not changed.
I keep an individual installation's messages for 13 months after its last message. After that I delete them automatically, and only the combined weekly totals remain.
In my own overview no group of fewer than 5 installations is shown. If a group is smaller, it only says that it is under 5.
Your IP address and your browser or program type are not stored, neither in the database nor in my logs. The access log for this particular address is switched off.
The message passes through my reverse proxy (Traefik). Its access log is set up to leave out the client address, and the web server's own log does not store the address either.
I only look up a country code from the address when the message arrives (for example DK), using a dataset that sits on my own server and calls no third party. The address is thrown away immediately, and only the country code is stored.
IP geolocation: DB-IP Lite Country, from db-ip.com, under Creative Commons Attribution 4.0.
Your install_id is a random UUID the server creates locally. It is not derived from anything on your server and is not tied to your account with me, your server id, your license or your name. That means I cannot tell who you are from the statistics.
The same id does follow the same installation from week to week, so I can see whether installations stick around. That makes the messages pseudonymous rather than completely unrecognizable, which is why you can always have them deleted.
The server does not only send. At the daily licence sync, if the server is connected to an account, I can answer with messages to the server administrator: a security fix, a new version or a short piece of information. They show as a banner in the server administration and as a list under Settings.
There is no advertising in them and no tracking. I only record that a message was delivered to a server. I cannot see whether it was read or dismissed, and the server does not report it back.
A critical security message is also in the update feed (latest.json) as securityAdvisory, so a server without an account can see it. The server compares with the version in the message itself, so the call to the feed does not tell me which version you run.
Server overview is off by default. If you switch it on under Licence in the server administration, the server sends at the sync: version, how long it has been running, free disk space in percent, how many open items the health page has (only a number), whether a new version exists, and the licence state. Nothing about content. It is tied to your account so you can see the status and get alarms, and the history is deleted after 30 days.
Settings backup in the cloud is also off by default. If you switch it on, the server encrypts the copy with a key from your passphrase before it is sent. I cannot read it and have no back door. If you forget the passphrase, the copy cannot be opened. I keep the 5 newest per server.
Solely to keep developing Nielix: which versions are running, which features are used and which are not, and whether there are platforms I should look after more. I do not sell the numbers, share them with anyone or use them for advertising.
The numbers only cover those who have the statistics turned on and run a version that can send them. There are many I do not see, so my numbers are always a minimum.
See also: Privacy policy, Fair use