Skip to content

Server configuration

This article provides a guide to configuring CloudBeaver, using the main server configuration file (cloudbeaver.conf) and additional runtime settings. It explains how to set up various server parameters, including database connections, authentication settings, and resource quotas.

Note

Some configuration values support variables that can be set using command line arguments, optional settings when running Docker Desktop, or defined within the Docker Compose file.

Main server configuration

The main configuration file is cloudbeaver.conf. By default, you'll find it in the /opt/cloudbeaver/ folder. If you want to use a different file, you can specify its location with the command line parameter -web-config <config-file-path>.

The server configuration uses a JSONC format (like JSON, but with comments and no extra quotes), so it's easy for most JSON parsers to handle.

You can also set configuration options in another file: /opt/cloudbeaver/workspace/.data/.cloudbeaver.runtime.conf. This is handy if you're using a shared Docker volume for the workspace. This file works the same as cloudbeaver.conf but takes priority, meaning its settings will override those in cloudbeaver.conf.

Tip

If you're using Docker, the .cloudbeaver.runtime.conf file can be especially useful for customizing configurations across different containers easily. All paths can be absolute or relative to the server start directory (or current directory).

Example configuration:

{
    forceHttps: "${CLOUDBEAVER_FORCE_HTTPS:false}",
    supportedHosts: [],
    server: {
        serverName: "CloudBeaver CE Server",
        serverPort: "${CLOUDBEAVER_WEB_SERVER_PORT:8978}",
        workspaceLocation: "${CLOUDBEAVER_WORKSPACE_LOCATION:workspace}",
        contentRoot: "web",
        driversLocation: "drivers",
        sslConfigurationPath:"${CLOUDBEAVER_SSL_CONF_PATH:workspace/.data/ssl-config.xml}",
        rootURI: "${CLOUDBEAVER_ROOT_URI:/}",
        serviceURI: "/api/",
        expireSessionAfterPeriod: "${CLOUDBEAVER_EXPIRE_SESSION_AFTER_PERIOD:1800000}",
        bindSessionToIp: "${CLOUDBEAVER_BIND_SESSION_TO_IP:dbeaverDomains}",
        develMode: "${CLOUDBEAVER_DEVEL_MODE:true}",
        productSettings: {
            "core.localization.language": "${CLOUDBEAVER_CORE_LOCALIZATION:en}",
            "core.theming.theme": "${CLOUDBEAVER_CORE_THEMING_THEME:light}",
            "plugin.log-viewer.disabled": "${CLOUDBEAVER_LOG_VIEWER_DISABLED:false}",
            "plugin.log-viewer.logBatchSize": "${CLOUDBEAVER_LOG_VIEWER_LOG_BATCH_SIZE:1000}",
            "plugin.log-viewer.maxLogRecords": "${CLOUDBEAVER_LOG_VIEWER_MAX_LOG_RECORDS:2000}",
            "plugin.sql-editor.autoSave": "${CLOUDBEAVER_SQL_EDITOR_AUTOSAVE:true}",
            "plugin.sql-editor.disabled": "${CLOUDBEAVER_SQL_EDITOR_DISABLED:false}",
            "plugin.sql-editor.maxFileSize": "${CLOUDBEAVER_SQL_EDITOR_MAX_FILE_SIZE:10240}",
            "sql.proposals.insert.table.alias": "${CLOUDBEAVER_SQL_PROPOSALS_INSERT_TABLE_ALIAS:PLAIN}"
        },
        database: {
            driver: "${CLOUDBEAVER_DB_DRIVER:h2_embedded_v2}",
            url: "${CLOUDBEAVER_DB_URL:jdbc:h2:${workspace}/.data/cb.h2v2.dat}",
            schema: "${CLOUDBEAVER_DB_SCHEMA:''}",
            user: "${CLOUDBEAVER_DB_USER:''}",
            password: "${CLOUDBEAVER_DB_PASSWORD:''}",
            initialDataConfiguration: "${CLOUDBEAVER_DB_INITIAL_DATA:conf/initial-data.conf}",
            pool: {
                minIdleConnections: "${CLOUDBEAVER_DB_MIN_IDLE_CONNECTIONS:4}",
                maxIdleConnections: "${CLOUDBEAVER_DB_MAX_IDLE_CONNECTIONS:10}",
                maxConnections: "${CLOUDBEAVER_DB_MAX_CONNECTIONS:100}",
                validationQuery: "${CLOUDBEAVER_DB_VALIDATION_QUERY:SELECT 1}"
            },
            backupEnabled: "${CLOUDBEAVER_DB_BACKUP_ENABLED:true}"
        },
        sm: {
            enableBruteForceProtection: "${CLOUDBEAVER_BRUTE_FORCE_PROTECTION_ENABLED:true}",
            expiredAuthAttemptInfoTtl: "${CLOUDBEAVER_EXPIRED_AUTH_ATTEMPT_INFO_TTL:60}",
            maxFailedLogin: "${CLOUDBEAVER_MAX_FAILED_LOGINS:10}",
            minimumLoginTimeout: "${CLOUDBEAVER_MINIMUM_LOGIN_TIMEOUT:1}",
            blockLoginPeriod: "${CLOUDBEAVER_BLOCK_PERIOD:300}",
            connectionBruteForce: {
                enabled: "${CLOUDBEAVER_CONNECTION_BF_PROTECTION_ENABLED:false}",
                maxFailedConnectAttempts: "${CLOUDBEAVER_CONNECTION_BF_PROTECTION_MAX_ATTEMPTS:5}",
                errorAttemptsPeriodInMinutes: "${CLOUDBEAVER_CONNECTION_BF_PROTECTION_ERROR_ATTEMPTS_PERIOD:1440}",
                blockTimeInMinutes: "${CLOUDBEAVER_CONNECTION_BF_BLOCK_PERIOD:60}"
            },
            passwordPolicy: {
                minLength: "${CLOUDBEAVER_POLICY_MIN_LENGTH:8}",
                requireMixedCase: "${CLOUDBEAVER_POLICY_REQUIRE_MIXED_CASE:true}",
                minNumberCount: "${CLOUDBEAVER_POLICY_MIN_NUMBER_COUNT:1}",
                minSymbolCount: "${CLOUDBEAVER_POLICY_MIN_SYMBOL_COUNT:0}"
            }
        },
    },
    qm: {
        driver: "${CLOUDBEAVER_QM_DB_DRIVER:h2_embedded_v2}",
        url: "${CLOUDBEAVER_QM_DB_URL:jdbc:h2:${workspace}/.metadata/qmdb/qmdb}",
        user: "${CLOUDBEAVER_QM_DB_USER:''}",
        password: "${CLOUDBEAVER_QM_DB_PASSWORD:''}",
        schema: "${CLOUDBEAVER_QM_DB_SCHEMA:''}",
        pool: {
            minIdleConnections: "${CLOUDBEAVER_QM_DB_MIN_IDLE_CONNECTIONS:4}",
            maxIdleConnections: "${CLOUDBEAVER_QM_DB_MAX_IDLE_CONNECTIONS:10}",
            maxConnections: "${CLOUDBEAVER_QM_DB_MAX_CONNECTIONS:100}",
            validationQuery: "${CLOUDBEAVER_QM_DB_VALIDATION_QUERY:SELECT 1}"
        },
        backupEnabled: "${CLOUDBEAVER_QM_DB_BACKUP_ENABLED:true}"
    },
    app: {
        anonymousAccessEnabled: "${CLOUDBEAVER_APP_ANONYMOUS_ACCESS_ENABLED:false}",
        supportsCustomConnections: "${CLOUDBEAVER_APP_SUPPORTS_CUSTOM_CONNECTIONS:false}",
        publicCredentialsSaveEnabled: "${CLOUDBEAVER_APP_PUBLIC_CREDENTIALS_SAVE_ENABLED:true}",
        adminCredentialsSaveEnabled: "${CLOUDBEAVER_APP_ADMIN_CREDENTIALS_SAVE_ENABLED:true}",
        enableReverseProxyAuth: false,
        forwardProxy: "${CLOUDBEAVER_APP_FORWARD_PROXY:true}",
        linkExternalCredentialsWithUser: true,
        redirectOnFederatedAuth: false,
        resourceManagerEnabled: "${CLOUDBEAVER_APP_RESOURCE_MANAGER_ENABLED:true}",
        showReadOnlyConnectionInfo: "${CLOUDBEAVER_APP_READ_ONLY_CONNECTION_INFO:false}",
        grantConnectionsAccessToAnonymousTeam: "${CLOUDBEAVER_APP_GRANT_CONNECTIONS_ACCESS_TO_ANONYMOUS_TEAM:false}",
        systemVariablesResolvingEnabled: "${CLOUDBEAVER_SYSTEM_VARIABLES_RESOLVING_ENABLED:false}",
        defaultUserTeam: "${CLOUDBEAVER_APP_DEFAULT_USER_TEAM:user}",
        apiCallLoggingEnabled: "${CLOUDBEAVER_API_CALL_LOGGING_ENABLED:false}",
        resourceQuotas: {
            dataExportFileSizeLimit: "${CLOUDBEAVER_RESOURCE_QUOTA_DATA_EXPORT_FILE_SIZE_LIMIT:10000000}",
            resourceManagerFileSizeLimit: "${CLOUDBEAVER_RESOURCE_QUOTA_RESOURCE_MANAGER_FILE_SIZE_LIMIT:500000}",
            sqlMaxRunningQueries: "${CLOUDBEAVER_RESOURCE_QUOTA_SQL_MAX_RUNNING_QUERIES:100}",
            sqlResultSetRowsLimit: "${CLOUDBEAVER_RESOURCE_QUOTA_SQL_RESULT_SET_ROWS_LIMIT:100000}",
            sqlTextPreviewMaxLength: "${CLOUDBEAVER_RESOURCE_QUOTA_SQL_TEXT_PREVIEW_MAX_LENGTH:4096}",
            sqlBinaryPreviewMaxLength: "${CLOUDBEAVER_RESOURCE_QUOTA_SQL_BINARY_PREVIEW_MAX_LENGTH:261120}"
        },
        defaultNavigatorSettings: {
            showOnlyEntities: true,
            hideFolders: true,
            hideVirtualModel: true
        },
        enabledFeatures: [],
        enabledAuthProviders: [
            "local"
        ],
        enabledDrivers: [],
        disabledDrivers: [
            "h2:h2_embedded",
            "h2:h2_embedded_v2",
            "clickhouse:yandex_clickhouse",
            "generic:duckdb_jdbc",
            "sqlite:sqlite_jdbc"
        ]
    }
}

Server parameters

Configure main server settings directly in the file or using environment variables (when available).

Name Environment variable Default value Units Description
serverPort CLOUDBEAVER_WEB_SERVER_PORT 8978 port number Port CloudBeaver server listens on.
workspaceLocation CLOUDBEAVER_WORKSPACE_LOCATION workspace URL Root folder for projects.
contentRoot Not available web path Path to directory with static content.
driversLocation Not available drivers path Optional path for driver .jar files.
rootURI CLOUDBEAVER_ROOT_URI / URI path Web application URI prefix. / by default.
serviceURI Not available /api/ URI path Services API URI prefix (relative to rootURI). /api/ by default. For more information on Server API, see API explorer.
productConfiguration Not available - file path Path to product (web interface) configuration file (JSON).
sslConfigurationPath CLOUDBEAVER_SSL_CONF_PATH workspace/.data/ssl-config.xml file path Path to the SSL configuration file for HTTPS connections.
develMode CLOUDBEAVER_DEVEL_MODE true boolean When set to true, extra debug information is printed in logs, and the GraphQL console is enabled on the server.
expireSessionAfterPeriod CLOUDBEAVER_EXPIRE_SESSION_AFTER_PERIOD 1800000 milliseconds Maximum idle time after which the user's session will be closed.
forceHttps CLOUDBEAVER_FORCE_HTTPS false boolean Enforces secure connections. For details, see Force HTTPS mode.
bindSessionToIp CLOUDBEAVER_BIND_SESSION_TO_IP dbeaverDomains string Bind user sessions to client IP addresses. For details, see Bind session IDs to IP addresses.

WebSockets

CloudBeaver uses a persistent WebSocket for real-time events and async task status in the application. The socket shares the same host and port as the site and switches to wss when HTTPS is enabled. No extra domains or ports are required.

For configuration details and troubleshooting, see WebSockets.

Product settings

For details on configuring productSettings, see the Product settings parameters.

Database configuration

Configures the database for storing users, credentials, and permissions in server.database.

Name Environment variable Default value Units Description
driver CLOUDBEAVER_DB_DRIVER h2_embedded_v2 driver ID Database driver (e.g., h2_embedded, postgres-jdbc).
url CLOUDBEAVER_DB_URL jdbc:h2:${workspace}/.data/cb.h2v2.dat JDBC URL Database JDBC URL (e.g., jdbc:postgresql://localhost:5432/cb).
schema CLOUDBEAVER_DB_SCHEMA - string Specifies the database schema where CloudBeaver will store its data (e.g., public).
user CLOUDBEAVER_DB_USER - string Database user name.
password CLOUDBEAVER_DB_PASSWORD - string Database user password.
initialDataConfiguration CLOUDBEAVER_DB_INITIAL_DATA conf/initial-data.conf file path Path to the admin configuration and team data file (JSON) that will be loaded the first time the server runs. For more details, see Initial data configuration guide.
backupEnabled CLOUDBEAVER_DB_BACKUP_ENABLED true boolean Enables or disables backups of the database.

Info

For more information on CloudBeaver's database, see Server Database

Database connection pool configuration

Configure the connection pool used by the CloudBeaver database in server.database.pool:

Name Environment variable Default value Units Description
validationQuery CLOUDBEAVER_DB_VALIDATION_QUERY SELECT 1 SQL query Query that checks the successful connection to the database.
minIdleConnections CLOUDBEAVER_DB_MIN_IDLE_CONNECTIONS 4 connections Minimum number of idle connections that should be kept in the pool.
maxIdleConnections CLOUDBEAVER_DB_MAX_IDLE_CONNECTIONS 10 connections Maximum number of idle connections that should be kept in the pool.
maxConnections CLOUDBEAVER_DB_MAX_CONNECTIONS 100 connections Maximum number of idle and active connections that should be kept in the pool.

Application parameters

In the section app:

Name Environment variable Default value Units Description
anonymousAccessEnabled CLOUDBEAVER_APP_ANONYMOUS_ACCESS_ENABLED false boolean Allows anonymous access. Anonymous users are assigned to the anonymousUserTeam.
supportsCustomConnections CLOUDBEAVER_APP_SUPPORTS_CUSTOM_CONNECTIONS false boolean Allows users to create custom connections to any databases. Otherwise, only the CloudBeaver administrator can create/edit connections.
publicCredentialsSaveEnabled CLOUDBEAVER_APP_PUBLIC_CREDENTIALS_SAVE_ENABLED true boolean Allows saving user database credentials in a local cache.
adminCredentialsSaveEnabled CLOUDBEAVER_APP_ADMIN_CREDENTIALS_SAVE_ENABLED true boolean Allows saving global database credentials in a local cache.
forwardProxy CLOUDBEAVER_APP_FORWARD_PROXY true boolean Identifies the originating IP address and other headers of a client connecting through an HTTP proxy.
redirectOnFederatedAuth Not available false boolean If there's only one federation authentication configuration, login attempts automatically when the application opens.
resourceManagerEnabled CLOUDBEAVER_APP_RESOURCE_MANAGER_ENABLED true boolean Enables or disables the resource manager functionality in the application.
showReadOnlyConnectionInfo CLOUDBEAVER_APP_READ_ONLY_CONNECTION_INFO false boolean Shows connection information if the user has read-only permission for it.
grantConnectionsAccessToAnonymousTeam CLOUDBEAVER_APP_GRANT_CONNECTIONS_ACCESS_TO_ANONYMOUS_TEAM false boolean Provides access to predefined shared connections for the anonymous team.
systemVariablesResolvingEnabled CLOUDBEAVER_SYSTEM_VARIABLES_RESOLVING_ENABLED false boolean Enables using environment variables in the connection configuration.
defaultUserTeam CLOUDBEAVER_APP_DEFAULT_USER_TEAM user string The team assigned to the anonymous user, user by default.
enabledAuthProviders Not available ["local"] list of strings List of allowed authorization providers. If absent, all providers are allowed. For more information on providers, see Identity providers.
enabledDrivers Not available [] list of strings List of allowed drivers. If the list is empty, all drivers are allowed. For more details on drivers, see Driver management.
disabledDrivers Not available ["h2:h2_embedded","h2:h2_embedded_v2","clickhouse:yandex_clickhouse","generic:duckdb_jdbc","sqlite:sqlite_jdbc"] list of strings List of prohibited drivers. If the list is empty, all drivers are allowed.
defaultNavigatorSettings Not available showOnlyEntities: true, hideFolders: true, hideVirtualModel: true object Default database navigator settings. For more information, see Navigator settings.
apiCallLoggingEnabled CLOUDBEAVER_API_CALL_LOGGING_ENABLED false boolean Enables writing API call logs into the internal QM database (qm_api_call_log table). For details, see Logger settings.

Resource quotas

Configure the following resource quotas in the app.resourceQuotas section:

Name Environment variable Default value Units Description
dataExportFileSizeLimit ${CLOUDBEAVER_RESOURCE_QUOTA_DATA_EXPORT_FILE_SIZE_LIMIT} 10000000 bytes Maximum size of exported data files.
resourceManagerFileSizeLimit ${CLOUDBEAVER_RESOURCE_QUOTA_RESOURCE_MANAGER_FILE_SIZE_LIMIT} 500000 bytes Maximum file size saved in the resource manager.
sqlMaxRunningQueries ${CLOUDBEAVER_RESOURCE_QUOTA_SQL_MAX_RUNNING_QUERIES} 100 queries Maximum number of simultaneous queries for a single user session, including data read queries (e.g., table data view).
sqlResultSetRowsLimit ${CLOUDBEAVER_RESOURCE_QUOTA_SQL_RESULT_SET_ROWS_LIMIT} 100000 rows Maximum number of rows to select from a table or query.
sqlTextPreviewMaxLength ${CLOUDBEAVER_RESOURCE_QUOTA_SQL_TEXT_PREVIEW_MAX_LENGTH} 4096 bytes Maximum size for a text file shown in the value panel.
sqlBinaryPreviewMaxLength ${CLOUDBEAVER_RESOURCE_QUOTA_SQL_BINARY_PREVIEW_MAX_LENGTH} 261120 bytes Maximum size for a binary file (affects JSON in SQLite) shown in the value panel.

Info

For more information on Resource Manager, see our documentation.

Configure the following properties in the app.defaultNavigatorSettings section:

Name Default value Units Description
showSystemObjects - boolean Show system objects.
showUtilityObjects - boolean Show "utility" objects.
showOnlyEntities true boolean Only show schemas and tables.
mergeEntities - boolean Show all types of database objects in one list (e.g., tables, sequences).
hideFolders true boolean Hide folders like "Tables", "Schemas", "Columns".
hideSchemas - boolean Do not show schemas (all tables in one list).

Example configuration:

    defaultNavigatorSettings: {
        showOnlyEntities: true,
        hideFolders: true,
        hideVirtualModel: true
    }

Info

For more information on Database Navigator, see our documentation.

Initial data

For details on configuring initial data, see the Initial data configuration guide.

Password policy

To configure password policies, refer to the Password policy guide.

Datasource configuration

For information on configuring server datasources, visit the Datasource configuration guide.

Query manager database configuration

To learn about configuring the query manager database, see the Query manager database configuration documentation.

Automatic server configuration

When you start the CloudBeaver server for the first time, an administrator interface guides you through the server setup. However, in some cases-like when running in a Kubernetes environment-you might need to configure the server automatically.

To set up the server automatically, specify the following parameters:

Name Description Example
CB_SERVER_NAME The server’s name. Test Server
CB_SERVER_URL The base URL for the server. https://cloudbeaver.domain.com:10000/
CB_ADMIN_NAME Administrator username. administrator
CB_ADMIN_PASSWORD Administrator password. S0mePazzworD

How to specify these parameters:

  • OS environment variables: Set these variables directly in your system’s environment settings.
  • Configuration file: Add them to a .cloudbeaver.auto.conf file, located in the same directory as the cloudbeaver.conf file.