Using config.ini to Configure Known

Known is configured through config.ini, a simple file that is stored in the /configuration directory.

Usually, config.ini is created automatically during installation. There is no need to create a config.ini file manually. However, sometimes you may wish to add values here.

Config.ini files use the INI file format.

Per-domain configuration

You can also use yourdomain.ini, in addition to config.ini: for example, if your site was stored at, you could have a supplemental config.ini file at This is most useful in combination with the multitenant setting.

Per domain configuration files are loaded after config.ini is processed.

Example config.ini file

database = 'MySQL'
dbhost = 'localhost'
dbname = 'database_name'
dbpass = 'database_password'
dbuser = 'known_db_user'
uploadpath = '/Users/ben/Sites/';

Common config.ini directives

The following directives are most commonly used to configure Known.

The database engine used by Known. eg, "MongoDB" or "MySQL".

The database host. This is most commonly "localhost".

The database name. This is whatever you have configured your database server to use - for example, "known".

Your database password. Depending on your server configuration, this may not be required.

A database connection string. If you're using MongoDB in particular, you can use this to supply authentication credentials instead of dbuser, dbpass and dbname.

Your database user.

The file system to use. This is most commonly "local", for local storage. Other plugins may allow for other options. If you are using MongoDB, you can leave this option blank to use GridFS storage.

The full path used by Known to upload files. This path must be writeable by the web server.

smtp_host, smtp_port, smtp_username, smtp_secure, from_email
Configuration for SMTP server. Without these set (here or in the UI) it will be impossible to send password recovery emails. 'smtp_secure' should be 'tls' or 'ssl'.

Log levels to show: * 0 - off * 1 - errors * 2 - errors & warnings * 3 - errors, warnings, & useful information * 4 - errors, warnings, useful information, & debugging output

Enable debugging output.

Other config.ini directives

Use this to force plugins to always be loaded. Plugins that are listed here will never appear in the plugins directory in Site Configuration, and there will be no visible way to switch them off.

You may use this directive multiple times, for example:

alwaysplugins[] = 'Webhooks'
alwaysplugins[] = 'StaticPages'

Lists plugins that can never be loaded, no matter what. Plugins that are listed here will never appear in the plugins directory, and will never be loaded.

antiplugins[] = 'Twitter'
antiplugins[] = 'Facebook'

directloadplugins[] (alpha)
A list of plugins that should be loaded from an external, explicitly specified location. These have a special format, as follows:

directloadplugins[MyPlugin] = '/path/to/MyPlugin'
directloadplugins[AnotherPlugin] = '/path/to/AnotherPlugin'

Note that paths should not have a trailing slash. Plugins must have been designed to be loaded in this way.

Triggers experimental, hidden functionality to be enabled. This is false by default.

experimental = true

Triggers whether plugins should allow site users to connect more than one syndication account per service. This is true by default.

multi_syndication = false

Allows you to power more than one Known site from the same installation. If this is the case, Known will expect the database name to be the site host. "www" is always stripped, so for example, if the website address was, Known would expect the database name to be In most cases, you should leave the default value here.

multitenant = true

A list of plugins that must be loaded before all other plugins. Like alwaysplugins, these will always be loaded, and will not show up in the plugin list.

prerequisiteplugins[] = 'FrameworkPlugin'
prerequisiteplugins[] = 'AnotherLibraryPlugin'

The internal identifier used to store the user session.

sessionname = 'knownsession'