Wrong Times in n8n: Setting UTC, GENERIC_TIMEZONE and Cron Correctly
By default, n8n runs in America/New_York instead of Europe/Berlin. Here is how to correctly set GENERIC_TIMEZONE and the workflow timezone.
The most practically relevant n8n environment variables for German self-hosting setups: host, webhook URL, timezone, security, and database at a glance.
Anyone who self-hosts an n8n instance configures central settings such as accessibility, timezone, database and security not through the interface, but through environment variables that are set when the container or process starts. Of the more than one hundred documented variables, only a handful are truly decisive for most German self-hosting setups, for example N8N_HOST for the hostname, WEBHOOK_URL for public access behind a reverse proxy, or GENERIC_TIMEZONE so that time-triggered workflows fire at the correct time. This article organizes the most practically relevant variables by topic area and shows an example of use for each. As of: July 2026.
These variables determine how n8n is reachable internally and externally, and in which timezone time-triggered workflows run.
Especially for companies for whom German data sovereignty and control over their own data are important, it is worth taking a close look at the security-relevant variables.
For production operation, most setups switch from the bundled SQLite database to PostgreSQL, which is configured via its own variables.
Most problems with n8n self-hosting do not arise from missing variables, but from incorrectly set URLs or a timezone that does not match the server location. Anyone who wants to set up, secure, or migrate their own n8n instance to Postgres will find at the n8n services from NordFlux support for setup and configuration.
This depends on the installation type. With Docker this happens via -e flags or an .env file in the docker-compose.yml, with a classic installation as system environment variables that are set before the n8n process starts.
n8n then automatically generates a random key on first start. If this is lost, for example during a container rebuild without persistent storage, credentials already stored can no longer be decrypted.
Only if n8n runs behind a reverse proxy or under a different public address than configured internally. With direct access via N8N_HOST and N8N_PORT, the variable is usually not necessary.
Yes, most variables only take effect after a restart of the n8n process. Running workflows and already stored data remain unaffected, as long as the database connection does not change.
Further details on all documented variables can be found in the n8n documentation on environment variables as well as specifically on database configuration.
Founder of NordFlux. Spent four years automating processes at enterprise scale at Dräger, and now brings that depth to the mid-market — pragmatic and with full data sovereignty.
Certifications
By default, n8n runs in America/New_York instead of Europe/Berlin. Here is how to correctly set GENERIC_TIMEZONE and the workflow timezone.
n8n webhook fine in testing, silent in production? Here is how to find the cause: activation, WEBHOOK_URL, path conflicts.
n8n OAuth redirect points to localhost? Here is how to fix redirect_uri_mismatch with N8N_HOST and WEBHOOK_URL.
Misconfigured variables like WEBHOOK_URL or GENERIC_TIMEZONE often go unnoticed until webhooks fail or cron jobs fire at the wrong time. With NordFlux managed n8n hosting, the configuration is documented and tested from the start. We also review existing instances for risky default values.