Simple build-time configuring Zonemaster-GUI using "config.ts"
The config.ts configuration file can be used for build-time settings of
the Zonemaster-GUI. Any changes to this file require a rebuild of the
installation package.
Finding "config.ts"
In the source tree the file is found as config.ts relative to the root of
the Git tree. The installed GUI does not ship with this file, because the
values defined in this file are baked in the GUI’s HTML and JavaScript files.
Rebuilding Zonemaster-GUI after update
When config.ts is updated, Zonemaster-GUI has to be rebuilt. See
Build a custom Zonemaster-GUI installation package for how to get the source
tree and building a custom installation package.
Default "config.ts" file
The config.ts file is the central configuration file for the Zonemaster-GUI
application. It defines various settings that control the behavior and appearance
of the application.
import type { Config } from '@/types.ts';
import packageJson from './package.json';
const config: Config = {
defaultLanguage: 'en',
enabledLanguages: ['da', 'en', 'es', 'fi', 'fr', 'nb', 'sv', 'sl'],
baseUrl: import.meta.env.PUBLIC_BASE_URL || '/',
apiBaseUrl: import.meta.env.PUBLIC_API_URL || '/api',
pollingInterval: import.meta.env.PUBLIC_POLLING_INTERVAL || 5000,
clientInfo: {
version: packageJson.version,
id: 'Zonemaster-GUI',
},
siteInfo: {
email: 'contact@zonemaster.net',
siteName: '',
},
setTitle(title: string) {
return `${title} – Zonemaster`;
}
};
export default config;
"config.ts" configuration options
- defaultLanguage: The default language to use when no language is specified.
- The default language must be one of the enabled languages.
- The default value is "en".
- If this option is updated see Updating Apache configuration for required matching update of the Apache configuration.
- enabledLanguages: An array of language codes that are supported by the
application.
- The array should match the list of language codes in the Locale setting in the Backend configuration.
- The array must only include language codes also included in
project.inlang/settings.json, but it may be fewer. To add new languages, see Translating Zonemaster-GUI.project.inlang/settings.jsonmust only be updated in that process.
- baseUrl: The base path Zonemaster-GUI is served on. By default it is "/".
- For example, if Zonemaster-GUI is served at
http://domaintest.xa/zonemaster, instead of justhttp://domaintest.xa/, then this option must be set to/zonemaster. - If this option is updated see Updating Apache configuration for required matching update of the Apache configuration.
- For example, if Zonemaster-GUI is served at
- apiBaseUrl: The base URL for API requests. The default value is
/apiand must be kept so ifbaseUrlhas its default value.- If
baseUrlis updated, then this option must also be updated so that this option is equal tobaseUrl+ '/api', i.e. '/zonemaster/api' in the example above.
- If
- pollingInterval: The interval (in milliseconds) for polling the API. This
is taken from the
PUBLIC_POLLING_INTERVALenvironment variable (default empty) or defaults to 5000 ms. - clientInfo: Information about the client application. These details are
included in every API request to start tests as (spoofable) indications of
origin. Both are best left as default.
- version: The version of the application, taken from package.json.
- id: The identifier for the client application.
- siteInfo: Information about the site.
- email: The contact email address. To be set in the footer in a mailto URL, if non-empty.
- siteName: The name of the site. To be set in the header if non-empty.
Updating Apache configuration
Preferably do the updates to the zonemaster.conf-example file before building
the installation package. If done so the normal installation instruction can be
followed using the custom installation package.
Finding "zonemaster.conf-example"
In the source tree the file is found as zonemaster.conf-example relative to the
root of the Git tree. It is included in the installation package and is installed
as zonemaster.conf in a default installation.
defaultLanguage
If defaultLanguage has been updated in config.ts the "DEFAULT_LANGUAGE"
variable must be updated in zonemaster.conf-example. The same language code
must be used.
baseUrl
If baseUrl has been set to a non-default value in config.ts the "BASE_URL"
variable must be defined with the same value. By default the variable is
undefined (baseUrl equal to "/").