This version of Kill Bill is not supported anymore, please see our latest documentation

Configuration

System properties

Overview

Kill Bill configuration is done principally via Java System Properties. These can be set on the command line (e.g. java -Dkey1=value1 -Dkey2=value2 -jar killbill-server-jetty-console.war) or in Java Properties files (via -Dorg.killbill.server.properties=file:///path/to/killbill.properties or start.ini if you are using Jetty). Some containers use custom formats (for example, System Properties in GlassFish would be placed in domains/domain1/config/domain.xml), so please refer to your container documentation for more information.

The system properties are global to the system, and therefore will apply to all tenants. Those properties will also be accessible to the various plugins through a special interface. Some parts of the system also rely on additional xml configuration. Currently, only the caching layer which is based on EhCache requires such xml configuration. The location of the xml itself is specified via a system property org.killbill.cache.config.location.

In addition to these global settings, the following is also available on a per tenant basis:

  • Catalog configuration

  • Overdue configuration

  • Invoice templates, and language translation resources

System Properties

Kill Bill relies on config-magic to define, initialize, and make accessible through function calls all its system properties.

Some core services in Kill Bill export some properties, whose name is fairly explanatory:

The properties to configure the database are split between the core Kill Bill services and the plugins to allow plugins to use a different database or configuration (pooling, …​):

The properties to configure the persistent buses and notification queue are shown below. Those properties are built to be used across multiple instances (we have two persistent buses) which explains the substitution parameter instanceName. For more detail on the configuration of the bus and notification queue, check here.

Finally some high level properties to configure OSGI (where to find the plugins, …​), and some Kill Bill web app configuration (multi-tenancy on/off, …​):