> Markdown version of [Configuration](https://vaadin.com/docs/v24/tools/dspublisher/configuration). Section index: [llms.txt](https://vaadin.com/docs/v24/tools/llms.txt)

# Design System Publisher Configuration

## <a id="options"></a>Configuration Options

Environment variables override the JSON property configuration. The website needs to be rebuilt — or restarted in development mode — in order for changes to the configuration variables to take effect.

All *path* options are relative to the content project folder.

| ENV Variable JSON Property                               | Description                                                                                                                                                                                                                    | Default Value              |
| -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------- |
| `CONFIG_PATH` N/A                                        | Path to configuration JSON files.                                                                                                                                                                                              | `"dspublisher/config"`     |
| `THEME_PATH` `themePath`                                 | Path to theme customizations. See [Site Customization](https://vaadin.com/docs/v24/tools/dspublisher/customization.md).                                                                                                        | `"dspublisher/theme"`      |
| `ARTICLES_PATH` `articlesPath`                           | Path to the AsciiDoc articles.                                                                                                                                                                                                 | `"articles"`               |
| `EXAMPLES_IMPORT_PATH` `examplesImportPath`              | Path to the dynamically imported custom element examples.                                                                                                                                                                      | `"frontend/demo"`          |
| `TITLE` `title`                                          | The site title. Used as the main prefix in the page `<title>`. Also used in meta tags and sitemap generation. Not visible in the site UI.                                                                                      | `"Docs"`                   |
| `SITE_URL` `siteUrl`                                     | The root URL of the site (i.e., the domain without a path). For example, `"https://example.com"`. A \[filename]sitemap.xml is not generated unless this is provided.                                                           | `""`                       |
| `PATH_PREFIX` `pathPrefix`                               | The root path where the website is hosted. For example, if you deploy the site to `https://example.com/docs`, the path prefix should be `"/docs"`.                                                                             | `"/"`                      |
| `PROXY_VAADIN_HOSTNAME` `proxyVaadinHostname`            | The host name of the Vaadin project. Used for request proxying.                                                                                                                                                                | `"localhost"`              |
| `EXAMPLES_INCLUDE_URL_PREFIX` `examplesIncludeUrlPrefix` | URL prefix from which JavaScript examples are included.                                                                                                                                                                        | `"/vaadin/web-component/"` |
| `VAADIN_CONNECT_PREFIX` `vaadinConnectPrefix`            | Prefix used for Vaadin Fusion endpoints. Replaces effectively only global `VAADIN_CONNECT_PREFIX` variables with the provided value.                                                                                           | `"/connect"`               |
| `VERSIONS_URL` `versionsUrl`                             | An absolute URL to a JSON file that defines the available versions of the documentation. See example later on this page.                                                                                                       | `""`                       |
| `VERSIONS` `versions`                                    | A JSON object defining the available documentation versions. See example later on this page.                                                                                                                                   | `""`                       |
| `DOCS_IMPORT_EXAMPLE_RESOURCES` N/A                      | If `"true"`, load all frontend resources up front when the first component sample is encountered. See [Rendered UI Examples](https://vaadin.com/docs/v24/tools/dspublisher/editing.md#rendered-examples) for more information. | `undefined`                |

You can prefix the environment variable names with `DOCS_` (e.g., `DOCS_TITLE`) if you need to avoid conflicts with other systems that use the same variable names. The `VERSIONS` variable is an exception, as it expects a JSON value, and providing that as a string through the command line would be verbose. For example:

`versions.json`

```json
[
  {
    "title": "Vaadin 23",
    "shortTitle": "V23",
    "url": "/docs/latest"
  },
  {
    "title": "Vaadin 22",
    "shortTitle": "V22",
    "url": "/docs/v22"
  },
]
```

The `title` value is shown in the version drop-down, and the `shortTitle` value, if provided, is shown as the drop-down button value when that version is selected.

## <a id="configuration-json-file"></a>Configuration JSON File

The configuration options with a JSON property can be overridden with a configuration file. The default configuration is the following:

`default.json`

```json
{
  "articlesPath": "articles",
  "themePath": "dspublisher/theme",
  "examplesImportPath": "frontend/demo",
  "examplesIncludeUrlPrefix": "/vaadin/web-component/",
  "vaadinConnectPrefix": "/connect",
  "proxyVaadinHostname": "localhost",
  "pathPrefix": "/",
  "versionsUrl": "",
  "versions": "",
  "siteUrl": "",
  "title": "Docs"
}
```

Create a `default.json` file in the content project, in the folder defined by the `CONFIG_PATH` variable — `dspublisher/config`, by default — and override the properties you need. You don’t have to repeat the default values.

You can also define a `production.json` configuration file in the same folder, to use a different configuration for your production build.

With the configuration files in place, you can use execute `npm run dspublisher:start`, or `npm run dspublisher:build` without extra command-line parameters.
