Skip to main content

Instance settings

Instance settings are accessible to all superadmins of your Windmill instance. This is where you manage settings and features across all workspaces.

This is from the Instance settings that you can see on which Windmill version your instance is running.

Instance version

Admins workspace

The Admins workspace is for superadmins only and contains scripts whose purpose is to manage your Windmill instance, such as keeping resource types up to date or the New User Setup App.

The resources types created from the Admins workspace are shared across all workspaces.

You can access it from the list of workspaces or from Instance settings.

Admins workspace

Global Users

Global Users are users of the Windmill instance. They are not associated with any workspace and can be assigned to any workspace (from the workspace settings).

From there you can manually add a user to the instance, giving an email and a password. Users can be set to User or Superadmin roles.

You can also enable automatic username creation from emails. Usernames will be shared accross workspaces. We recommend setting it to avoid duplicated usernames.

A more common way to add users is to use SSO/OAuth.

For each user, you can see Email, Auth (manually-set password or Auth methods), name and role.

Global Users

Core

Core settings

Base url

The base URL is the public base url of the instance.

If the base URL is not set correctly, some server-side generated URLs like resume URLs will be incorrect. Additionally, OAuth and SSO functionalities will not work properly.

Email domain

Domain to display in webhooks for email triggers (should match the MX record).

Request size limit in MB

Maximum size of HTTP requests in MB. Cloud only.

Default timeout

Default timeout for individual jobs, in seconds.

You will find a helper to convert days, hours, minutes, and seconds to seconds.

Note that you can set a custom timeout for flow steps.

Max timeout for sync endpoints

Maximum amount of time (measured in seconds) that a sync endpoint is allowed to run before it is forcibly stopped or timed out.

You will find a helper to convert days, hours, minutes, and seconds to seconds.

License key

The license key is used to enable Enterprise Edition. You can get one by starting a free trial from the pricing page or by contacting us at [email protected]

To see how to upgrade your instance to Enterprise Edition, see the Upgrade to Enterprise Edition docs.

From there you also have two buttons:

  • Renew key: to renew the license key (as long as you have a valid subscription). Anyway, the key is automatically renewed everyday as long as your subscription is valid.
  • Open customer portal: the recommended way to access the Customer portal where you can manage your subscription.

If your subscription is active, the key is automatically renewed everyday. A key is typically valid for 35 days.

Non-prod instance

Whether we should consider the reported usage of this instance as non-prod.

It is useful to avoid counting the usage of a non-prod instance in the billing.

This setting is only available on Enterprise Edition.

Retention period in secs

How long to keep the jobs data (especially the audit logs) in the database (max 30 days on Community Edition).

You will find a helper to convert days, hours, minutes, and seconds to seconds.

This setting is only available on Enterprise Edition.

Expose metrics

Expose Prometheus metrics for workers and servers on port 8001 at /metrics.

This setting is only available on Enterprise Edition.

Instance object storage

Connect your instance to a S3 bucket to store large logs and global cache for Python and Go.

This feature has no overlap with the Workspace object storage.

You can choose to use either S3 or Azure Blob Storage. For each you will find a button to test settings from a server or from a worker.

S3/Azure for Python/Go cache & large logs

This setting is only available on Enterprise Edition.

Critical alert channels

Channels to send critical alerts to. SMTP must be configured for the email channel. A Slack workspace must be connected to the instance for the Slack channel.

You can add multiple channels between Email and Slack.

This setting is only available on Enterprise Edition.

Azure OpenAI base path

All Windmill AI features will run on the specified deployed model. Format: https://{your-resource-name}.openai.azure.com/openai/deployments/{deployment-id}.

This setting is only available on Enterprise Edition.

Private Hub base url

Base url of your private Hub instance, without trailing slash.

This setting is only available on Enterprise Edition.

SSO/OAuth

Windmill supports SSO/OAuth for user authentication. You can enable it from the Instance settings.

Single Sign On

When at least one of the SSO options is set, users will be able to login to Windmill via their third-party account.

To test SSO, the recommended workflow is to to save the settings and try to login in an incognito window.

SSO

You can add a custom SSO client by providing a client id.

Also, from the instance settings you can enable toggle 'Require users to have been added manually to Windmill to sign in through OAuth'.

Without Enterprise Edition, the number of SSO users is limited to 10.

OAuth

When one of the OAuth options is set, you will be able to create a specific resource containing a 'token' automatically generated by the third-party provider. To test it after setting an oauth client, go to the Resources menu and create a new one of the type of your oauth client (i.e. a 'github' resource if you set GitHub OAuth).

OAuth

Registries

Add private registries for Pip, Bun and npm.

These settings are only available on Enterprise Edition.

Registries

Pip Index Url

Add private PIP registry.

Pip Extra Index Url

Add private extra PIP registry.

Npm Config Registry

Add private NPM registry.

Bunfig Install Scopes

Add private scoped registries for Bun, See: https://bun.sh/docs/install/registries.

SMTP

Setting SMTP unlocks sending emails upon adding new users to the workspace or the instance and sending critical alerts.

SMTP

You need to provide the following details:

NameTypeDescription
HostStringSMTP server host
PortNumberSMTP server port
UsernameStringSMTP server user
PasswordStringSMTP server password
From AddressStringEmail address to send emails from
Implicit TLSBooleanUse implicit TLS (default: false)

You have another field to test the SMTP settings.


Set-up SMTP from the .env file (depreciated)

The relevant environment variables are:

[email protected]
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
[email protected]
SMTP_PASSWORD=app_password

If you used the Setup Windmill on localhost method, open the .env file in any text editor. You can use nano, vim, or any other editor you're comfortable with.

nano .env

Append the following to the end of your .env file:

[email protected]
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
[email protected]
SMTP_PASSWORD=your_app_password

Make sure to replace [email protected] with your actual Gmail email address and your_app_password with the app password you've generated from Gmail.


Note: If you're using Gmail, you'll need to generate an App Password to use as SMTP_PASSWORD. This is a unique password that Gmail provides for apps and services that want to connect to your account.


Save and Close the File:

  • If using nano, press CTRL + O to save and then CTRL + X to exit.
  • If using vim, press Esc, then type :wq and press Enter.

Restart your Windmill application:

  • Since you've made changes to the .env file, you'll need to restart your Windmill application for the changes to take effect.
docker compose down
docker compose up -d

Now, your Windmill instance should use the SMTP settings you've provided to send invites and email to manually added users. Make sure the SMTP details you've provided are correct and that the Gmail account you're using has allowed less secure apps or generated an App Password.

Set up Auto-Invites

When creating a workspace, you have the option to invite automatically everyone on the same domain. That's how you make sure that anyone added to the instance is also added to the workspace.

Slack

Connecting your instance to a Slack workspace enables critical alerts to be sent to a Slack channel.

Slack

Just click on the 'Connect to Slack' button and follow the instructions from Slack.

This setting is only available on Enterprise Edition.

SCIM/SAML

Windmill supports SCIM and SAML for user provisioning and authentication.

SCIM/SAML

You can test settings with button 'Test content/url'.

These settings are only available on Enterprise Edition.

SCIM token

Token used to authenticate requests from the IdP.

SAML metadata

XML metadata url OR content for the SAML IdP.

Debug

Enable debug mode to see additional logs.

Debug

Keep job directories

Toogle to keep Job directories after execution at /tmp/windmill/<worker>/<job_id>.

Expose debug metrics

Expose additional metrics (require metrics to be enabled).

Telemetry

Anonymous usage data is collected to help improve Windmill.

Telemetry

The following information is collected:

  • version of your instance
  • number and total duration of jobs
  • accounts usage
  • login type usage
  • workers usage
  • vVCPUs usage
  • memory usage

From the instance settings, you can manually send usage or disable telemetry.

Under Enterprise Edition (self-hosted), telemetry (only on the ) is mandatory to ensure usage correctly matches the subscription.