Specifying Jahia properties
October 8, 2024
You can configure Jahia features and services by specifying properties the jahia.properties
file. You can also specify clustering settings in the jahia.node.properties
file. Both files are located in the digital-factory-config/jahia
directory.
Jahia property descriptions
The following tables shows properties that you can add or modify in the jahia.properties
file.
Jahia modes
Property name |
Description |
Default value |
operatingMode |
Specifies a mode, either development , production , or distantPublicationServer |
development |
maintenanceMode |
Enables maintenance mode, where no requests are served except to /tools/. For more information, see Enabling system maintenance and read-only modes. |
false |
readOnlyMode |
Enables read-only mode and disables access to Edit, Studio, and administration modes. For more information, see Enabling system maintenance and read-only modes. |
false |
sessionExpiryTime |
Sets the session lifetime in minutes |
60 |
Jahia Tool Manager
Property name |
Description |
Default value |
jahiaToolManagerUsername |
Specifies the Tool user name. You can access tools by default at localhost:8080/modules/tools/jcrConsole.jsp. |
jahia |
jahiaToolManagerPassword |
Specifies the Tool password. You can access tools by default at localhost:8080/modules/tools/jcrConsole.jsp. |
|
Disk paths
Configures where Jahia stores runtime data on disk, such repository, modules, temporary files
Property name |
Description |
Default value |
jahiaVarDiskPath |
Defines the main location of runtime data. If the jahia.data.dir system property is not set, this value is used for that setting. Otherwise, this value is ignored. |
${jahiaWebAppRoot}/../../../digital-factory-data |
tmpContentDiskPath |
Defines the location of temporary files |
${jahia.data.dir}/content/tmp/ |
jahiaModulesDiskPath |
Defines the location of modules |
${jahia.data.dir}/modules/ |
jahiaImportsDiskPath |
Defines the location of imported files |
${jahia.data.dir}/imports/ |
modulesSourcesDiskPath |
Defines the location of modules sources |
${jahia.data.dir}/sources/ |
jahiaGeneratedResourcesDiskPath |
Defines where dynamically generated resources like aggregated CSS and JS files are stored. Unlike other DiskPath parameters, when running a Jahia cluster using distributed sessions, it must reference a directory shared between cluster nodes. See Configuring Jahia features for more details. |
${jahia.data.dir}/generated-resources/ |
jahia.jackrabbit.home |
JCR repository home folder |
${jahia.data.dir}/repository |
jahia.jackrabbit.datastore.path |
JCR file datastore path in case of the file-based binary storage |
${jahia.jackrabbit.home}/datastore |
URL settings
Property name |
Description |
Default value |
jahiaWebAppsDeployerBaseURL |
Provides your custom URL for the WAR deployer, if you use non-standard URL |
http://127.0.0.1:8080/manager/html/ |
permanentMoveForVanityURL |
If vanity URLs exists for a node and it is accessed with a non-default vanity URL, Jahia informs the client that the resource has permanently moved (HTTP status code 301) |
true |
urlRewriteSeoRulesEnabled |
Enables the URL rewrite engine to shorten content URLs in Live mode. For example, shortening http://my.acme.org/cms/render/live/en/site/myAcme/home.html to http://my.acme.org/home.html |
true |
urlRewriteRemoveCmsPrefix |
Removes the /cms prefix from URLs when SEO URL rewriting is activated (urlRewriteSeoRulesEnabled is set to true) |
true |
urlRewriteUseAbsoluteUrls |
Enables generating absolute URLs for links to resources on other sites
|
true |
siteURLPortOverride |
Forces the generation of siteURLs to a specified port. This bypasses the request.getServerPort() calls and everything else. Specify a port to force generation of the site URL (notably used in the Exit Administration button) to that port. Set to 0 to disable port overrides.
Note: This property may cause issues with cookies or if you access Jahia through multiple front-end machines. |
0 |
disableJsessionIdParameter |
Disables the JsessionId parameter added by the application server to track sessions when no cookie is present |
true |
Mail service configuration
Note: Mail server connection settings can be found in the /settings/mail-server
repository node
Property name |
Description |
Default value |
mail_maxRegroupingOfPreviousException |
Controls mail regrouping of a repeating exception. If a repeating exception occurs more than the maximum specified here, mail is sent and you are informed with an error. |
500 |
Database properties
Note: Database connections are configured through the container-managed datasource connection. In Tomcat, the connection is set in the <jahia-web-app-dir>/META-INF/context.xml file.
Property name |
Description |
Default value |
db_script |
|
derby_embedded.script |
hibernate.dialect |
Specifies the DB dialect used by Hibernate |
org.hibernate.dialect.DerbyTenSevenDialect |
org.quartz.driverDelegateClass |
Specifies the Quartz scheduler driver delegate class |
org.quartz.impl.jdbcjobstore.StdJDBCDelegate |
Template set
Property name |
Description |
Default value |
default_templates_set |
Default value for template set |
sample-bootstrap-templates |
File manager
Property name |
Description |
Default value |
jahiaFileUploadMaxSize |
Configuration of the file manager that uses JCR as a back-end |
104857600 |
Multilingual support
Property name |
Description |
Default value |
characterEncoding |
Specifies character encoding (MIME charset) of the response that is sent to the client, request character encoding and e-mail charset |
UTF-8 |
org.jahia.multilang.default_language_code |
Specifies the fall-back language code after Jahia tries resolving the current browsing code from the session, the browser's settings, and the site's language list |
en |
considerPreferredLanguageAfterLogin |
Specifies whether to switch to the user's preferred language after login. Language switch only occurs if the current site has entries in the user's preferred language |
false |
Authentication
The following table describes container and cookie authentication, and CAS and SPENGO authentication properties.
Property name |
Description |
Default value |
auth.container.enabled |
Enables the container authentication valve
|
false |
auth.cookie.enabled |
Enables cookie authentication for login. The cookie authentication valve uses cookies to store an identifier corresponding to a specific Jahia user when they select the Remember me option in the login engine. |
true |
auth.cas.enabled |
Enables the CAS authentication valve |
false |
auth.cas.serverUrlPrefix |
Specifies the URL prefix of the CAS server |
https://localhost:8443/cas |
auth.cas.loginUrl |
Specifies the redirect URL to the CAS server for login |
${auth.cas.serverUrlPrefix}/login |
auth.cas.logoutUrl |
Specifies the logout URL to invalidate the user session on the CAS server |
${auth.cas.serverUrlPrefix}/logout |
auth.spnego.enabled |
Enables the SpnegoHttpFilter and adjust its configuration in the applicationcontext-spnego.xml file |
false |
Custom errorDocument site property
Property name |
Description |
Default value |
site.error.enabled |
Enables specific error document pages for each site |
true |
User and group name validation
Property name |
Description |
Default value |
userManagementUserNamePattern |
Specifies the pattern for the user name validation. The new user name will be tested against this regular expression (see java.util.regex.Pattern) pattern.
Please update the resource bundle message: org.jahia.admin.users.ManageUsers.onlyCharacters.label (JahiaInternalResources.properties) to reflect the pattern changes. |
[0-9a-z_A-Z\\-\\{\\}\\.@]+ |
userManagementGroupNamePattern |
Specifies the pattern for the group name validation. The new group name will be tested against this regular expression (see java.util.regex.Pattern) pattern.
Please update the resource bundle message: org.jahia.admin.users.ManageGroups.onlyCharacters.label (JahiaInternalResources.properties) to reflect the pattern changes. |
= [0-9a-z_A-Z\\-\\{\\}]+ |
File error dumping
By default, Jahia dumps contain errors in files. Dump files are created in temp directory and have the following format:
error-DATE-TIME-EXCEPTION_COUNT_SINCE_STARTUP.txt
Generated files contain information to help you understand the context of an error. When submitting an error to Jahia support, activate this logging and submit files into the support tracking system.
Property name |
Description |
Default value |
dumpErrorsToFiles |
Enables file error dumping |
true |
fileDumpMaxRegroupingOfPreviousException |
Controls file regrouping of a repeating exception. If a repeating exception occurs more than this maximum, a file will be dumped anyway, just so that we are still informed in case this is the only error sent. |
500 |
useJstackForThreadDumps |
If set to true, a call to an external jstack tool (from Oracle Java Platform SE package) will be done by Jahia to generate a thread dump. This generate more accurate thread dumps, although the thread dump is slower.
Note: It is not guaranteed that a dump can be read by any thread dump analyzer tool available on the market.
Ensure that "jstack" is available on your PATH before enabling this property. |
false |
Concurrent processing options
Property name |
Description |
Default value |
maxModulesToGenerateInParallel |
Specifies how many threads can perform heavy weight processing (module creation not served from the cache) |
50 |
moduleGenerationWaitTime |
Specifies how long threads wait before starting to generate modules in heavy load situations (in milliseconds) |
10,000 |
moduleGenerationThreadDumpToSystemOut |
Generates a thread dump into System.out for troubleshooting the cause of a slowdown
|
true |
moduleGenerationTthreadDumpToFile |
Generates a thread dump into a separate file, under the ${java.io.temp}/jahia-threads/<current-date> folder, for troubleshooting the cause of a slowdown |
true |
minimumIntervalAfterLastAutoThreadDump |
When Jahia does not respond fast enough (see moduleGenerationWaitTime) an automatic thread dump will be created to help figuring out what caused the slowdown. In order to not spam the log file, a minimum interval between two dumps can be defined. Set to -1 to disable automatic thread dumps. |
60,000 |
maxRequestRenderTime |
Specifies the maximum time (in milliseconds) that request rendering continues before an error is thrown and the request processing is stopped. Specify a value of -1 or 0 to apply no timeout to request processing.
Note: A fragment rendering cannot be canceled. This timeout check is applied after the fragment rendering completes and before other fragments start to render. |
60,000 |
Search Indexes Consistency Check and Fix
See Jackrabbit Class ConsistencyCheck documentation for details.
Property name |
Description |
Default value |
jahia.jackrabbit.searchIndex.enableConsistencyCheck |
Specifies whether to perform a consistency check for the Jackrabbit search indexes, depending on the forceConsistencyCheck parameter. If set to false, no consistency check is performed on startup. |
false |
jahia.jackrabbit.searchIndex.forceConsistencyCheck |
Runs a consistency check for search indexes on every startup. If false, a consistency check is only performed when the search index detects a prior forced shutdown. |
false |
jahia.jackrabbit.searchIndex.autoRepair |
Repairs errors detected by a consistency check of search indexes. If false, errors are only written to the log. |
true |
jahia.jackrabbit.searchIndex.spellChecker.distanceImplementation |
Specifies the distance implementation for suggested words for the spell checker |
org.apache.lucene.search.spell.LevensteinDistance |
jahia.jackrabbit.searchIndex.spellChecker.minimumScore |
Specifies the minimum similarity score for suggested words for the spell checker. A lower value increases the amount of suggestions. |
0.7 |
Workspace Persistence Manager Consistency Check and Fix
Property name |
Description |
Default value |
jahia.jackrabbit.consistencyCheck |
Specifies whether to perform a consistency check of the JCR repository during startup |
false |
jahia.jackrabbit.consistencyFix |
Specifies whether the consistency check should attempt to fix issues that it discovers |
false |
repositoryDirectoryListingDisabled |
Disables the directory listing for the /repository servlet.
Note: The WebDAV client access won't work in such a case. |
false |
repositoryAllowedNodeTypes |
Specifies the node types that can be exposed through the /repository WebDAV servlet. Node types not listed here are unavailable. |
rep:root,jnt:virtualsitesFolder,
jnt:virtualsite,jnt:folder,jnt:file |
jahia.publication.versionedTypes |
Specifies the list of node types that Jahia creates versions for when publishing |
jmix:editorialContent,jnt:file |
jahia.fileServlet.statisticsEnabled |
Enables access statistics logging in the Files servlet that serves files from the JCR repository |
false |
jahia.jcr.maxNameSize |
Specifies the maximum size of node names |
32 |
jahia.ui.contentTab.defaultSynchronizeNameWithTitle |
Enables the automatic synchronization of the title with the system name in Edit mode |
true |
accessManagerPathPermissionCacheMaxSize |
Specifies the maximum number of entries for the JCR access manager cache that optimizes the resolution of permissions for node paths. The cache is an LRU cache that retains the specified number of entries in memory and removes the least recently used entries. The cache is instantiated for each JCR session and is usually short-lived, except in the case of long-running operations such as exports, publications, and copies.
It is recommended to keep this value low as the cache can grow quite fast on large JCR repositories. If no value is specified, the default value is 100 entries. |
100 |
jahia.jackrabbit.queryStatsEnabled |
Enables the collection of JCR query execution statistics. You can view the list of slowest queries and most popular queries in JCR Query Statistics in Jahia Tools. |
true |
Document converter service
Property name |
Description |
Default value |
documentConverter.enabled |
Enables the document conversion service |
false |
documentConverter.officeHome |
Specifies the file system path to the Open Office. The path is typically /usr/lib/openoffice
for Linux, c:/Program Files (x86)/OpenOffice.org for Windows, and /Applications/OpenOffice.org.app/Contents for Mac OS X. |
|
Document viewer service
Property name |
Description |
Default value |
jahia.dm.viewer.enabled |
Enables the document viewer service, which allows previewing documents of various formats, such as Office, as an SWF flash or PDF file |
false |
jahia.dm.viewer.pdf2swf |
Specifies the path to the pdf2swf utility (from SWFTools). The document viewer service requires the utility to be able to present documents as an SWF Flash. The path is typically /usr/bin/pdf2swf
for Linux and c:/Program Files (x86)/SWFTools/pdf2swf.exe for Windows. If the SWFTools installation folder is present in your PATH, you can specify only the executable name here.
Leave this property empty to preview documents as a PDF rather than SWF. |
pdf2swf |
Document thumbnails service
Property name |
Description |
Default value |
jahia.dm.thumbnails.enabled |
Enables the document thumbnails service. The service automatically creates thumbnail images for uploaded documents for PDF files. For the service to work with non-PDF files, the document converter service should be enabled to perform an intermediate conversion of documents to PDF files. |
true |
Video thumbnails service
Property name |
Description |
Default value |
jahia.dm.thumbnails.video.enabled |
Enables the video thumbnails service. The service automatically creates thumbnail images for uploaded video files. |
false |
jahia.dm.thumbnails.video.ffmpeg |
The path to the ffmpeg utility executable file, which is required by the video thumbnails service. The path is typically /usr/bin/ffmpeg for Linux and c:/Program Files (x86)ffmpeg-20120503-git-c1fe2db-win64-static/bin/ffmpeg.exe for Windows.
If the ffmpeg/bin folder is present in your PATH, you can specify only the executable name here. |
ffmpeg |
Image conversion service
Property name |
Description |
Default value |
imageService |
Specifies the image service to use. The native Java service is ImageJAndJava2DImageService .
To use ImageMagick, set the value to ImageMagickImageService and the ImageMagick path to the proper value. Note: ImageMagic will by default use a lot of memory for conversions. If you want to limit memory usage (for example in Docker containers), you should use an environment variable such as MAGIC_MEMORY_LIMIT=1GiB. |
ImageJAndJava2DImageService |
imageMagickPath |
The path to ImageMagick and exiftools. For Windows the path is typically C:\\Programs\\ImageMagick;C:\\Programs\\exiftool <p< p="<> </p<> |
|
Source control and Maven executables
Property name |
Description |
Default value |
gitPath |
Specifies the path to git executable |
git |
svnPath |
Specifies the path to svn executable |
svn |
mvnPath |
Specifies the path to mvn executable |
mvn |
System users resources
Property name |
Description |
Default value |
guestUserResourceModuleName |
Associates users with a resource bundle. Set the module name that contains the resource for guest |
DefaultJahiaTemplates |
guestUserResourceKey |
Specifies the key for guest |
label.user.guest |
System group resources
Property name |
Description |
Default value |
guestGroupResourceModuleName |
Associates groups with a resource bundle. Set the module name that contains the resource for guest. |
DefaultJahiaTemplates |
guestGroupResourceKey |
Specifies the key for guest |
label.group.guest |
Users and groups
Property name |
Description |
Default value |
jahiaJCRUserCountLimit |
Limits the number of JCR users which are read for the Users page in Server Settings>Users and Roles. By default, 100 JCR users are retrieved. |
100 |
jahia.settings.userDisplayLimit |
Limits the number of users that display by default in the Users page in Server Settings>Users and Roles. By default, 100 users display. |
100 |
jahia.settings.memberDisplayLimit |
Limits the total number of group members that display by default in the Groups page in Server Settings>Users and Roles. By default, 100 groups display. |
100 |
OSGi settings
Property name |
Description |
Default value |
karaf.remoteShell.port |
Specifies the port which the Apache Karaf OSGi command line shell listens for SSH connections. Set it to a negative value to disable this feature. |
8101 |
karaf.remoteShell.host |
Specifies the bind address for the SSH shell. 127.0.0.1 means the SSH shell only allows local connections to be established. You may define a dedicated IP address, the console will bind to, or 0.0.0.0 which means it will be bound to all available network interfaces. |
127.0.0.1 |
Mass imports
Define whether you want to first expand all binary files on your hard drive before import instead of searching them in the zip files. Expanding is much faster for thousands of files. You can configure the path where to expand those files. Files will be deleted at the end of import. You can also configure at what rate you want to save your node.
Property name |
Description |
Default value |
expandImportedFilesOnDisk |
Specifies whether to first expand all binary files on your hard drive before performing a mass import, instead of searching them in the zip files. Expanding is much faster for thousands of files. |
false |
expandImportedFilesOnDiskPath |
Specifies the path to expand binary files in when performing a mass import. Files are deleted at the end of import. |
/tmp |
importMaxBatch |
Specifies the rate at which to save your node during a mass import |
500 |
Search and indexing
Property name |
Description |
Default value |
queryApproxCountLimit |
Specifies how many results should be iterated through before calculating approximate number of further results |
100 |
jahia.jackrabbit.reindexOnStartup |
Specifies whether to reindex all repository content on server startup
Note: Reindexing can take a significant amount of time depending on the volume of data |
false |
Work in progress
Property name |
Description |
Default value |
wip.checkbox.checked |
Specifies whether work in progress checkbox should be checked when opening edit engine. |
false |
Tagging service
Property name |
Description |
Default value |
tag.suggester.faceted |
Specifies whether the query used to suggest tags uses a faceted query to retrieve the tags. The faceted suggester sorts tags by usage count and provides the count in the result map. The faceted suggester can be slower than the default suggester. Set to true to enable the faceted suggester. |
false |
Publication settings
Property name |
Description |
Default value |
jahia.ui.pickers.suppressPublicationInfo |
Specifies whether publication status information is present in content picker UIs. If suppressed, publication status is not calculated, which can speed up the rendering of corresponding UI elements. |
false |
jahia.ui.managers.suppressTreePublicationInfo |
Specifies whether publication status information is present in the left tree for the managers (content manager, repository explorer, etc.). If suppressed, publication status is not calculated, which can speed up the rendering of corresponding UI elements. |
false |
jahia.ui.managers.suppressTablePublicationInfo |
Specifies whether publication status information is present in the content table for the managers (content manager, repository explorer, etc.). If suppressed, publication status is not calculated, which can speed up the rendering of corresponding UI elements. |
false |
jahia.publication.batchSize |
Defines the size of publication batch, including how many nodes can be published at once. If the number of nodes in the publication job exceeds this limit, the publication action is performed in batches. Specify a value of -1 to define no limit on the batch. In this case, the publication job processes all specified nodes at once. |
100 |
jahia.publicationManagerNodeTypes |
Specifies which additional items display in the Publication Manager, such as menu labels, and internal and external links |
jmix:publication,jmix:workflowRulesable,
jnt:navMenuText |
area.auto.activated |
Specifies whether areas are automatically activated the first time a page display in Edit and Contribute mode |
true |
external.users.properties.readonly |
Lists the external user properties that are read-only. All the other user properties can be overridden locally. You can also set read-only properties for a specific provider by setting the same property suffixed with a period (.) and the provider key, for example external.users.properties.readonly.ldap=j:firstName,j:lastName,j:organization . |
j:firstName,j:lastName,j:organization,
j:email |
REST API
Property name |
Description |
Default value |
jahia.find.disabled |
Disables the find servlet and prevents queries through the API. Setting to false to allow users to perform any query on /find and /{workspace}/{language}/query . |
true |
jahia.find.nodeTypesToSkip |
Specifies the node types that are skipped by the find API |
jnt:passwordHistory,jnt:passwordHistoryEntry |
jahia.find.propertiesToSkip |
Specifies the properties that are skipped by the find API |
jnt:user.j:password,
jnt:passwordHistoryEntry.j:password |
Aggregate and cache
Property name |
Description |
Default value |
useNewAggregateAndCacheImplementation |
Switches between the Render chain V1 (false) and V2 (true) implementation |
false |
GWT theme activation
Property name |
Description |
Default value |
jahia.ui.theme |
Enables the anthracite theme for Google Web Toolkit (GWT) UI |
jahia-anthracite |
Documentation
Property name |
Description |
Default value |
documentation.link |
Defines the link to the documentation |
https://academy.jahia.com/documentation/digital-experience-manager/7.3 |
sql2CheatSheet.link |
Defines the link to the JCR-SQL2 Query cheat sheet topic in the Academy. The link displays below advanced searches in Content and Media Manager. |
https://academy.jahia.com/documentation/techwiki/search/jcrsql2-query-cheat-sheet |
whatsNew.link |
Defines the link to the What's New? page in the Academy |
https://www.jahia.com/$ui-lang([en,fr],en)/customers/whatsnew?dxversion |
whatsNew.display |
Specifies whether to display the What's New? button in the Jahia menu |
true |
Drag and drop customization
Property name |
Description |
Default value |
jahia.ui.dragAndDrop |
Defines drag and drop behavior in Edit mode. You can specify the following values:
ENABLED : All entire content is draggable
NO_DRAG_IN_EDIT_AREA : Dragging in the main panel is disabled but content can still be dropped from the navigation panel
DRAG_ZONE_IN_EDIT_AREA : A drag zone displays at the top left of the module. Content can only be dragged in this zone
DISABLED : All dragging and dropping is disabled |
DRAG_ZONE_IN_EDIT_AREA |
JQuery configuration
Property name |
Description |
Default value |
jahia.jquery.version |
The JQuery version for using JQuery in a page. The system looks for jquery-[version].min.js. The JQuery module provides versions 1.12.4 and 3.4.1. Other versions can be added in a separate module. |
3.3.1 |
JQuery-migratecanbeaddedhere:jahia.jquery.plugins |
JQuery mapping plugins. Includes one or more JS files every time JQuery is called in a page. Note that JQuery-migrate (jquery-migrate-3.0.1.min.js ) can be added here. |
jquery-migrate-3.0.1.min.js |
Site import
Property name |
Description |
Default value |
jahia.site.import.scanner.interval |
Specifies the interval of the site import file observer in milliseconds |
30000 |
Other settings
Consult with Jahia support before adding the following Jahia property.
Property name |
Description |
Default value |
jahia.atmosphere.heartbeat |
Specifies the interval (in seconds) at which the system checks the validity of the session. Ask for assistance before changing this value. Introduced with Jahia 8.0.1.0. |
60 |
Jahia node property descriptions
Cluster settings
The following table shows properties that you can add or modify in the jahia.node.properties
file.
Property name |
Description |
Default value |
cluster.activated |
Activates most of the clustering communicating |
false |
cluster.node.serverId |
The serverId must be unique for each node in the cluster |
dx-8f590fe5-02c3-4f8f-9cf0-a83f080d10f6 |
processingServer |
Specifies whether this instance of Jahia will execute long-running operations such as background jobs (for example workflow, imports, and text extraction). Only one cluster node may be a processing server. All other nodes must set this value to false . |
true |
cluster.tcp.bindAddress |
The IP or unambiguous hostname to start the server socket on. If left empty, the IP address of first non-loopback network interface that can be detect on the machine is used. |
|
cluster.tcp.bindPort |
The port number to bind the server socket to JGroups-based cluster communication for caches and Atmosphere messages |
7870 |
cluster.hazelcast.bindPort |
The port number to bind the server socket to Hazelcast-based clustered communication for bundle deployment |
7860 |