Configuration Parameters

How do I override application variables?

There are few settings that can't be changed by the user interface. These parameters are defined with PHP constants.

To override them, rename the file config.default.php to config.php.

Database configuration

By default, Miniflux uses Sqlite but Postgres and MySQL are also supported.

Sqlite configuration

You could change the default location of the Sqlite file by changing the default values:

define('DB_DRIVER', 'sqlite');
define('DB_FILENAME', DATA_DIRECTORY.'/db.sqlite');

Postgres configuration

Miniflux will creates the schema automatically but not the database itself:

CREATE DATABASE miniflux;

The config.php have to be modified as well:

define('DB_DRIVER', 'postgres');

// Replace these values:
define('DB_HOSTNAME', 'localhost');
define('DB_NAME', 'miniflux');
define('DB_USERNAME', 'my postgres user');
define('DB_PASSWORD', 'my secret password');

MySQL configuration

Miniflux will creates the schema automatically but not the database itself:

CREATE DATABASE miniflux;

The config.php have to be modified as well:

define('DB_DRIVER', 'mysql');

// Replace these values:
define('DB_HOSTNAME', 'localhost');
define('DB_NAME', 'miniflux');
define('DB_USERNAME', 'my mysql user');
define('DB_PASSWORD', 'my secret password');

List of parameters

Actually, the following constants can be overridden:

// HTTP_TIMEOUT => default value is 20 seconds (Maximum time to fetch a feed)
define('HTTP_TIMEOUT', '20');

// HTTP_MAX_RESPONSE_SIZE => Maximum accepted size of the response body in MB (default 2MB)
define('HTTP_MAX_RESPONSE_SIZE', 2097152);

// DATA_DIRECTORY => default is data (writable directory)
define('DATA_DIRECTORY', 'data');

// FAVICON_DIRECTORY => default is favicons (writable directory)
define('FAVICON_DIRECTORY', DATA_DIRECTORY.DIRECTORY_SEPARATOR.'favicons');

// FAVICON_URL_PATH => default is data/favicons/
define('FAVICON_URL_PATH', 'data/favicons');

// Database driver: "sqlite", "postgres", or "mysql" default is sqlite
define('DB_DRIVER', 'sqlite');

// Database connection parameters when Postgres or MySQL are used
define('DB_HOSTNAME', 'localhost');
define('DB_NAME', 'miniflux');
define('DB_USERNAME', 'my db user');
define('DB_PASSWORD', 'my secret password');

// DB_FILENAME => database file when Sqlite is used
define('DB_FILENAME', DATA_DIRECTORY.'/db.sqlite');

// Enable/disable debug mode
define('DEBUG_MODE', false);

// DEBUG_FILENAME => default is data/debug.log
define('DEBUG_FILENAME', DATA_DIRECTORY.'/debug.log');

// Theme folder on the filesystem => default is themes
define('THEME_DIRECTORY', 'themes');

// Theme URL path => default is themes
define('THEME_URL_PATH', 'themes');

// SESSION_SAVE_PATH => default is empty (used to store session files in a custom directory)
define('SESSION_SAVE_PATH', '');

// PROXY_HOSTNAME => default is empty (make HTTP requests through a HTTP proxy if set)
define('PROXY_HOSTNAME', '');

// PROXY_PORT => default is 3128 (default port of Squid)
define('PROXY_PORT', 3128);

// PROXY_USERNAME => default is empty (set the proxy username is needed)
define('PROXY_USERNAME', '');

// PROXY_PASSWORD => default is empty
define('PROXY_PASSWORD', '');

// SUBSCRIPTION_CONCURRENT_REQUESTS => number of concurrent feeds to refresh at once
// Reduce this number on systems with limited processing power
define('SUBSCRIPTION_CONCURRENT_REQUESTS', 5);

// Disable automatically a feed after X parsing failure
define('SUBSCRIPTION_DISABLE_THRESHOLD_ERROR', 10);

// Allow the cronjob to be accessible from the browser
define('ENABLE_CRONJOB_HTTP_ACCESS', true);

// Enable/disable HTTP header X-Frame-Options
define('ENABLE_XFRAME', true);

// Enable/disable HSTS HTTP header
define('ENABLE_HSTS', true);