Like most other products out there, n8n uses telemetry to track and analyse user behaviour (e.g. which nodes are popular and which aren't, what errors users are making, etc.). This functionality is used by both the frontend and the backend. By default, n8n also contacts the n8n.io/n8n.cloud servers to get information about available updates or workflow templates.
Although the telemetry data would not contain any personal data and the additional information would add useful functionality to n8n, there are still scenarios where you don't want any data to be exchanged with the aforementioned servers.
Fortunately, it's easy to prevent this from happening. Inspired by this forum thread, here is a list of all the relevant environment variables that need to be set to prevent n8n from calling home:
N8N_DIAGNOSTICS_ENABLED=falseSetting this environment variable will prevent n8n from sending telemetry to its servers.
N8N_VERSION_NOTIFICATIONS_ENABLED=falseThis variable prevents n8n from retrieving version information from its servers.
N8N_TEMPLATES_ENABLED=falseThis variable disables the workflow templates in an n8n instance that are otherwise obtained from n8n servers.
EXTERNAL_FRONTEND_HOOKS_URLS=Setting this variable to an empty value will prevent n8n from loading the default frontend hooks file from n8n servers (which contains telemetry functionality).
N8N_DIAGNOSTICS_CONFIG_FRONTEND=Setting this variable to an empty value overrides the default telemetry configuration for the front end.
N8N_DIAGNOSTICS_CONFIG_BACKEND=Setting this variable to an empty value overrides the default server-side telemetry configuration.
N8N_ONBOARDING_FLOW_DISABLED=trueThis will prevent n8n from fetching onboarding prompts.
A basic privacy-friendly Docker compose file for n8n that includes all of the above would look like this: