Global config
The global configuration is the single, system-wide configuration object that governs the behavior of the entire Otoroshi gateway. There is exactly one global config per Otoroshi instance (or cluster), and every change made here affects all traffic flowing through the gateway, not just a single route or API.
Why is it called "Danger Zone"?
In the Otoroshi admin UI, this page is labeled Danger Zone for a reason: the settings here are powerful and far-reaching. Modifying global throttling limits, enabling maintenance mode, or changing IP filtering rules will immediately impact every service proxied by Otoroshi. Unlike route-level configuration, which is scoped to a single route or service, the global config acts as a blanket policy layer across the entire platform.
What does the global config control?
The global config covers the following areas:
- Global throttling and rate limiting -- system-wide request-per-second limits, both globally and per IP address
- IP address filtering -- gateway-wide allow lists, block lists, and endless-response addresses that apply before any route matching
- Maintenance mode and read-only mode -- instantly put every service into maintenance or freeze the datastore
- Global plugins -- plugins that run on every single request processed by Otoroshi, on top of any route-level plugins
- TLS settings -- default certificate behavior, trusted CAs, SNI defaults, and automatic certificate generation
- Analytics and metrics -- Elasticsearch datasource configuration, StatsD/Datadog integration, and live metrics toggle
- Let's Encrypt / ACME -- automated certificate provisioning settings
- Geolocation and user-agent extraction -- enrichment of analytics events with geographic and device information
- Backoffice authentication -- the authentication module protecting the Otoroshi admin UI itself
- Proxies -- HTTP proxy configuration for outgoing calls (webhooks, OAuth, Elasticsearch, etc.)
- Quotas alerting -- thresholds for API key quota warnings
- Snowflake ID generator -- unique instance identifier used for distributed ID generation
- Chaos engineering (Snow Monkey) -- fault injection settings that apply across all services
- Global metadata and tags -- labels attached to the global config for organizational purposes
Global config vs. route-level config
Most of your configuration should happen at the route level. Routes let you define specific behavior (authentication, rate limiting, transformations, etc.) for individual APIs or groups of APIs. The global config is reserved for policies that genuinely need to apply everywhere:
- Use route-level config when you want to protect a specific API with an auth module, apply a custom rate limit to one consumer, or transform headers for a particular backend.
- Use global config when you need a gateway-wide IP block list, a system-wide request ceiling, TLS defaults for all domains, or plugins that must execute on every request regardless of the route.
Hot-reloadable
All global config changes are hot-reloadable: they take effect immediately without restarting Otoroshi. This makes the Danger Zone both powerful and sensitive -- there is no deployment step between saving a change and it being live in production.
Misc. Settings
Maintenance mode: It passes every single service in maintenance mode. If a user calls a service, the maintenance page will be displayedNo OAuth login for BackOffice: Forces admins to login only with user/password or user/password/u2F deviceAPI Read Only: Freeze Otoroshi datastore in read only mode. Only people with access to the actual underlying datastore will be able to disable this.Auto link default: When no group is specified on a service, it will be assigned to default oneUse circuit breakers: Use circuit breaker on all servicesUse new http client as the default Http client: All http calls will use the new http client by defaultEnable live metrics: Enable live metrics in the Otoroshi cluster. Performs a lot of writes in the datastoreDigitus medius: Use middle finger emoji as a response character for endless HTTP responses (see IP address filtering settings).Limit conc. req.: Limit the number of concurrent request processed by Otoroshi to a certain amount. Highly recommended for resilienceUse X-Forwarded-* headers for routing: When evaluating routing of a request, X-Forwarded-* headers will be used if presentsMax conc. req.: Maximum number of concurrent requests processed by otoroshi.Max HTTP/1.0 resp. size: Maximum size of an HTTP/1.0 response in bytes. After this limit, response will be cut and sent as is. The best value here should satisfy (maxConcurrentRequests * maxHttp10ResponseSize) < process.memory for worst case scenario.Max local events: Maximum number of events stored.Lines: deprecated
IP address filtering settings
IP allowed list: Only IP addresses that will be able to access Otoroshi exposed servicesIP blocklist: IP addresses that will be refused to access Otoroshi exposed servicesEndless HTTP Responses: IP addresses for which each request will return around 128 Gb of 0s
Quotas settings
Global throttling: The max. number of requests allowed per second globally on OtoroshiThrottling per IP: The max. number of requests allowed per second per IP address globally on Otoroshi
Analytics: Elastic dashboard datasource (read)
Cluster URI: Elastic cluster URIIndex: Elastic indexType: Event type (not needed for elasticsearch above 6.x)User: Elastic User (optional)Password: Elastic password (optional)Version: Elastic version (optional, if none provided it will be fetched from cluster)Apply template: Automatically apply index templateCheck Connection: Button to test the configuration. It will displayed a modal with a connection checklist, if connection is successfull, it will display the found version of the Elasticsearch and the index usedManually apply index template: try to put the elasticsearch template by calling the api of elasticsearchShow index template: try to retrieve the current index template present in elasticsearchClient side temporal indexes handling: When enabled, Otoroshi will manage the creation of indexes over time. When it's disabled, Otoroshi will push in the same indexOne index per: When the previous field is enabled, you can choose the interval of time between the creation of a new index in elasticsearchCustom TLS Settings: Enable the TLS configuration for the communication with ElasticsearchTLS loose: if enabled, will block all untrustful ssl configsTrustAll: allows any server certificates even the self-signed onesClient certificates: list of client certificates used to communicate with elasticsearchTrusted certificates: list of trusted certificates received from elasticsearch
Statsd settings
Datadog agent: The StatsD agent is a Datadog agentStatsD agent host: The host on which StatsD agent is listeningStatsD agent port: The port on which StatsD agent is listening (default is 8125)
Backoffice auth. settings
Backoffice auth. config: the authentication module used in front of Otoroshi. It will be used to connect to Otoroshi on the login page
Let's encrypt settings
Enabled: when enabled, Otoroshi will have the possiblity to sign certificate from let's encrypt notably in the SSL/TSL Certificates pageServer URL: ACME endpoint of let's encryptEmail addresses: (optional) list of addresses used to order the certificatesContact URLs: (optional) list of addresses used to order the certificatesPublic Key: used to ask a certificate to let's encrypt, generated by OtoroshiPrivate Key: used to ask a certificate to let's encrypt, generated by Otoroshi
CleverCloud settings
Once configured, you can register one clever cloud app of your organization directly as an Otoroshi service.
CleverCloud consumer key: consumer key of your clever cloud OAuth 1.0 appCleverCloud consumer secret: consumer secret of your clever cloud OAuth 1.0 appOAuth Token: oauth token of your clever cloud OAuth 1.0 appOAuth Secret: oauth token secret of your clever cloud OAuth 1.0 appCleverCloud orga. Id: id of your clever cloud organization
Global scripts
Global scripts is deprecated, please use global plugins instead (see the next section)!
Global plugins
Enabled: enable the use of global pluginsPlugins on new Otoroshi engine: list of plugins used by the new Otoroshi enginePlugins on old Otoroshi engine: list of plugins used by the old Otoroshi enginePlugin configuration: the overloaded configuration of plugins
Proxies
In this section, you can add a list of proxies for :
- Proxy for alert emails (mailgun)
- Proxy for alert webhooks
- Proxy for Clever-Cloud API access
- Proxy for services access
- Proxy for auth. access (OAuth, OIDC)
- Proxy for client validators
- Proxy for JWKS access
- Proxy for elastic access
Each proxy has the following fields
Proxy host: host of proxyProxy port: port of proxyProxy principal: user of proxyProxy password: password of proxyNon proxy host: IP address that can access the service
Quotas alerting settings
Enable quotas exceeding alerts: When apikey quotas is almost exceeded, an alert will be sentDaily quotas threshold: The percentage of daily calls before sending alertsMonthly quotas threshold: The percentage of monthly calls before sending alerts
User-Agent extraction settings
User-Agent extraction: Allow user-agent details extraction. Can have impact on consumed memory.
Geolocation extraction settings
Extract a geolocation for each call to Otoroshi.
Tls Settings
Use random cert.: Use the first available cert when none matches the current domainDefault domain: When the SNI domain cannot be found, this one will be used to find the matching certificateTrust JDK CAs (server): Trust JDK CAs. The CAs from the JDK CA bundle will be proposed in the certificate request when performing TLS handshakeTrust JDK CAs (trust): Trust JDK CAs. The CAs from the JDK CA bundle will be used as trusted CAs when calling HTTPS resourcesTrusted CAs (server): Select the trusted CAs you want for TLS terminaison. Those CAs only will be proposed in the certificate request when performing TLS handshake
Auto Generate Certificates
Enabled: Generate certificates on the fly when they don't existReply Nicely: When receiving request from a not allowed domain name, accept connection and display a nice error messageCA: certificate CA used to generate missing certificateAllowed domains: Allowed domainsNot allowed domains: Not allowed domains
Global metadata
Tags: tags attached to the global configMetadata: metadata attached to the global config
Actions at the bottom of the page
Recover from a full export file: Load global configuration from a previous exportFull export: Export with all created entitiesFull export (ndjson): Export your full state of database to ndjson formatJSON: Get the global config at JSON formatYAML: Get the global config at YAML formatEnable Panic Mode: Log out all users from UI and prevent any changes to the database by setting the admin Otoroshi api to read-only. The only way to exit of this mode is to disable this mode directly in the database.