| ; <?php exit; ?> DO NOT REMOVE THIS LINE |
| ; If you want to change some of these default values, the best practise is to override |
| ; them in your configuration file in config/config.ini.php. If you directly edit this file, |
| ; you will lose your changes when you upgrade Matomo. |
| ; For example if you want to override action_title_category_delimiter, |
| ; edit config/config.ini.php and add the following: |
| ; [General] |
| ; action_title_category_delimiter = "-" |
|
|
| ;-------- |
| ; WARNING - YOU SHOULD NOT EDIT THIS FILE DIRECTLY - Edit config.ini.php instead. |
| ;-------- |
|
|
| [database] |
| host = |
| username = |
| password = |
| dbname = |
| tables_prefix = |
| port = 3306 |
| adapter = PDO\MYSQL |
| type = InnoDB |
| schema = Mysql |
|
|
| ; Database SSL Options START |
| ; Turn on or off SSL connection to database, possible values for enable_ssl: 1 or 0 |
| enable_ssl = 0 |
| ; Direct path to server CA file, CA bundle supported (required for ssl connection) |
| ssl_ca = |
| ; Direct path to client cert file (optional) |
| ssl_cert = |
| ; Direct path to client key file (optional) |
| ssl_key = |
| ; Direct path to CA cert files directory (optional) |
| ssl_ca_path = |
| ; List of one or more ciphers for SSL encryption, in OpenSSL format (optional) |
| ssl_cipher = |
| ; Whether to skip verification of self signed certificates (optional, only supported |
| ; w/ specific PHP versions, and is mostly for testing purposes) |
| ssl_no_verify = |
| ; Database SSL Options END |
|
|
| ; if charset is set to utf8, Matomo will ensure that it is storing its data using UTF8 charset. |
| ; it will add a sql query SET at each page view. |
| ; Matomo should work correctly without this setting but we recommend to have a charset set. |
| charset = utf8 |
|
|
| ; In some database setups the collation used for queries and creating tables can have unexpected |
| ; values, or change after a database version upgrade. |
| ; If you encounter "Illegal mix of collation" errors, setting this config to the value matching |
| ; your existing database tables can help. |
| ; This setting will only be used if "charset" is also set. |
| ; Matomo should work correctly without this setting but we recommend to have a collation set. |
| collation = |
|
|
| ; Database error codes to ignore during updates |
| ; |
| ;ignore_error_codes[] = 1105 |
|
|
| ; Add a query hint for the order of joined tables when building segment queries in MySQL. This can be used to override |
| ; sub-optimal choices by the MySQL optimizer and always ensure the query plan starts with the first table in the query. |
| enable_segment_first_table_join_prefix = 0 |
|
|
| ; Add a query hint for the order of joined tables for all log table queries in MySQL. |
| enable_first_table_join_prefix = 0 |
|
|
| ; If configured, the following queries will be executed on the reader instead of the writer. |
| ; * archiving queries that hit a log table |
| ; * live queries that hit a log table |
| ; You only want to enable a reader if you can ensure there is minimal replication lag / delay on the reader. |
| ; Otherwise you might get corrupt data in the reports. |
| [database_reader] |
| host = |
| username = |
| password = |
| dbname = |
| port = 3306 |
|
|
| ; If you are using Amazon Aurora you can enable aurora_read_only_read_committed to prevent purge lag which happens |
| ; when internal garbage collection is blocked by long-running archiving queries. The setting will be only applied |
| ; if you are using Amazon Aurora and have configured a reader database. |
| aurora_readonly_read_committed = |
|
|
| [database_tests] |
| host = "127.0.0.1" |
| username = "@USERNAME@" |
| password = |
| dbname = matomo_tests |
| tables_prefix = |
| port = 3306 |
| adapter = PDO\MYSQL |
| type = InnoDB |
| schema = Mysql |
| charset = utf8mb4 |
| collation = utf8mb4_general_ci |
| enable_ssl = 0 |
| ssl_ca = |
| ssl_cert = |
| ssl_key = |
| ssl_ca_path = |
| ssl_cipher = |
| ssl_no_verify = 1 |
|
|
| [tests] |
| ; needed in order to run tests. |
| ; if Matomo is available at http: |
| ; note: the REQUEST_URI should not contain "plugins" or "tests" in the PATH |
| http_host = localhost |
| remote_addr = "127.0.0.1" |
| request_uri = "@REQUEST_URI@" |
| port = |
| enable_logging = 0 |
|
|
| [log] |
| ; possible values for log: screen, database, file, errorlog, syslog |
| log_writers[] = screen |
|
|
| ; log level, everything logged w/ this level or one of greater severity |
| ; will be logged. everything else will be ignored. possible values are: |
| ; ERROR, WARN, INFO, DEBUG |
| ; this setting will apply to every log writer, if there is no specific log level defined for a writer. |
| log_level = WARN |
|
|
| ; you can also set specific log levels for different writers, by appending the writer name to log_level_, like so: |
| ; this allows you to log more information to one backend vs another. |
| ; log_level_screen = |
| ; log_level_file = |
| ; log_level_errorlog = |
| ; log_level_syslog = |
|
|
| ; if configured to log in a file, log entries will be made to this file |
| logger_file_path = tmp/logs/matomo.log |
|
|
| ; if configured to log to syslog, mark them with this identifier string. |
| ; This acts as an easy-to-find tag in the syslog. |
| logger_syslog_ident = 'matomo' |
|
|
| [Cache] |
| ; available backends are 'file', 'array', 'null', 'redis', 'chained' |
| ; 'array' will cache data only during one request |
| ; 'null' will not cache anything at all |
| ; 'file' will cache on the filesystem |
| ; 'redis' will cache on a Redis server, use this if you are running Matomo with multiple servers. Further configuration in [RedisCache] is needed |
| ; 'chained' will chain multiple cache backends. Further configuration in [ChainedCache] is needed |
| backend = chained |
|
|
| ; Configuration to switch on/off opcache_reset when general caches are cleared. This may be useful for multi-tenant installations that would rather |
| ; manage opcache resets by themselves. This could also be used by scripts to temporarily switch off opcache resets. |
| enable_opcache_reset = 1 |
|
|
| [ChainedCache] |
| ; The chained cache will always try to read from the fastest backend first (the first listed one) to avoid requesting |
| ; the same cache entry from the slowest backend multiple times in one request. |
| backends[] = array |
| backends[] = file |
|
|
| [RedisCache] |
| ; Redis server configuration. |
| host = "127.0.0.1" |
| port = 6379 |
| ; instead of host and port a unix socket path can be configured |
| unix_socket = "" |
| timeout = 0.0 |
| password = "" |
| database = 14 |
| ; In case you are using queued tracking: Make sure to configure a different database! Otherwise queued requests might |
| ; be flushed |
|
|
| [Debug] |
| ; if set to 1, the archiving process will always be triggered, even if the archive has already been computed |
| ; this is useful when making changes to the archiving code so we can force the archiving process |
| always_archive_data_period = 0; |
| always_archive_data_day = 0; |
| ; Force archiving Custom date range (without re-archiving sub-periods used to process this date range) |
| always_archive_data_range = 0; |
|
|
| ; if set to 1, all the SQL queries will be recorded by the profiler |
| ; and a profiling summary will be printed at the end of the request |
| ; NOTE: you must also set [log] log_writers[] = "screen" to enable the profiler to print on screen |
| enable_sql_profiler = 0 |
|
|
| ; If set to 1, all requests to matomo.php will be forced to be 'new visitors' |
| tracker_always_new_visitor = 0 |
|
|
| ; if set to 1, all SQL queries will be logged using the DEBUG log level |
| log_sql_queries = 0 |
|
|
| ; if set to 1, core:archive profiling information will be recorded in a log file. the log file is determined by the |
| ; archive_profiling_log option. |
| archiving_profile = 0 |
|
|
| ; if set to an absolute path, core:archive profiling information will be logged to specified file |
| archive_profiling_log = |
|
|
| ; if set to 1, use of a php profiler will be enabled. the profiler will not be activated unless its installation |
| ; can be detected and the correct query and CLI parameters are supplied to toggle it. |
| ; Note: this setting is not dependent on development mode, since it is often required to run the profiler with |
| ; all optimizations and caches enabled. |
| enable_php_profiler = 0 |
|
|
| [DebugTests] |
| ; When set to 1, standalone plugins (those with their own git repositories) |
| ; will be loaded when executing tests. |
| enable_load_standalone_plugins_during_tests = 0 |
|
|
| [Development] |
| ; Enables the development mode where we avoid most caching to make sure code changes will be directly applied as |
| ; some caches are only invalidated after an update otherwise. When enabled it'll also performs some validation checks. |
| ; For instance if you register a method in a widget we will verify whether the method actually exists and is public. |
| ; If not, we will show you a helpful warning to make it easy to find simple typos etc. |
| enabled = 0 |
| |
| ; if set to 1, javascript files will be included individually and neither merged nor minified. |
| ; this option must be set to 1 when adding, removing or modifying javascript files |
| ; Note that for quick debugging, instead of using below setting, you can add `&disable_merged_assets=1` to the Matomo URL |
| disable_merged_assets = 0 |
| |
| ; if set to 1, the sourcemaps for built vue files will be allowed to be served. |
| ; this is useful for debugging vue files in the browser |
| allow_vue_sourcemaps = 0 |
| |
| [General] |
| ; the following settings control whether Unique Visitors `nb_uniq_visitors` and Unique users `nb_users` will be processed for different period types. |
| ; year and range periods are disabled by default, to ensure optimal performance for high traffic Matomo instances |
| ; if you set it to 1 and want the Unique Visitors to be re-processed for reports in the past, drop all matomo_archive_* tables |
| ; it is recommended to always enable Unique Visitors and Unique Users processing for 'day' periods |
| enable_processing_unique_visitors_day = 1 |
| enable_processing_unique_visitors_week = 1 |
| enable_processing_unique_visitors_month = 1 |
| enable_processing_unique_visitors_year = 0 |
| enable_processing_unique_visitors_range = 0 |
| |
| ; controls whether Unique Visitors will be processed for groups of websites. these metrics describe the number |
| ; of unique visitors across the entire set of websites, so if a visitor visited two websites in the group, she |
| ; would still only be counted as one. only relevant when using plugins that group sites together |
| enable_processing_unique_visitors_multiple_sites = 0 |
| |
| ; The list of periods that are available in the Matomo calendar |
| ; Example use case: custom date range requests are processed in real time, |
| ; so they may take a few minutes on very high traffic website: you may remove "range" below to disable this period |
| enabled_periods_UI = "day,week,month,year,range" |
| |
| ; The list of periods that are available in through the API. This also controls the list of periods that are allowed |
| ; to be archived. You can disable some of them if you have a high traffic website and archiving is too compute heavy. |
| ; NOTE: if you disable a period in the API, it's parent periods are effectively disabled as well. For example, if |
| ; month periods are disabled, then year periods can no longer be computed, so they are effectively disabled as well. |
| enabled_periods_API = "day,week,month,year,range" |
|
|
| ; whether to enable segment archiving cache |
| ; Note: if you use any plugins, this need to be compliant with Matomo and |
| ; * depending on the segment you create you may need a newer MySQL version (eg 5.7 or newer) |
| ; * use a reader database for archiving in case you have configured a database reader |
| enable_segments_cache = 1 |
|
|
| ; when set to 1, all requests to Matomo will return a maintenance message without connecting to the DB |
| ; this is useful when upgrading using the shell command, to prevent other users from accessing the UI while Upgrade is in progress |
| maintenance_mode = 0 |
|
|
| ; Defines the release channel that shall be used. Currently available values are: |
| ; "latest_stable", "latest_beta", "latest_4x_stable", "latest_4x_beta" |
| release_channel = "latest_stable" |
|
|
| ; character used to automatically create categories in the Actions > Pages, Outlinks and Downloads reports |
| ; for example a URL like "example.com/blog/development/first-post" will create |
| ; the page first-post in the subcategory development which belongs to the blog category |
| action_url_category_delimiter = / |
|
|
| ; similar to above, but this delimiter is only used for page titles in the Actions > Page titles report |
| action_title_category_delimiter = "" |
|
|
| ; the maximum url category depth to track. if this is set to 2, then a url such as |
| ; "example.com/blog/development/first-post" would be treated as "example.com/blog/development". |
| ; this setting is used mainly to limit the amount of data that is stored by Matomo. |
| action_category_level_limit = 10 |
|
|
| ; minimum number of websites to run autocompleter |
| autocomplete_min_sites = 5 |
|
|
| ; maximum number of websites showed in search results in autocompleter |
| site_selector_max_sites = 15 |
|
|
| ; if set to 1, shows sparklines (evolution graph) in 'All Websites' report (MultiSites plugin) |
| show_multisites_sparklines = 1 |
|
|
| ; number of websites to display per page in the All Websites dashboard |
| all_websites_website_per_page = 50 |
|
|
| ; if set to 0, the anonymous user will not be able to use the 'segments' parameter in the API request |
| ; this is useful to prevent full DB access to the anonymous user, or to limit performance usage |
| anonymous_user_enable_use_segments_API = 1 |
|
|
| ; if browser trigger archiving is disabled, API requests with a &segment= parameter will still trigger archiving. |
| ; You can force the browser archiving to be disabled in most cases by setting this setting to 1 |
| ; The only time that the browser will still trigger archiving is when requesting a custom date range that is not pre-processed yet |
| browser_archiving_disabled_enforce = 0 |
|
|
| ; Add custom currencies to Sites Manager. |
| currencies[BTC] = Bitcoin |
|
|
| ; default expiry time in days for invite user tokens |
| default_invite_user_token_expiry_days = 7 |
|
|
| ; By default, users can create Segments which are to be processed in Real-time. |
| ; Setting this to 0 will force all newly created Custom Segments to be "Pre-processed (faster, requires archive.php cron)" |
| ; This can be useful if you want to prevent users from adding much load on the server. |
| ; Notes: |
| ; * any existing Segment set to "processed in Real time", will still be set to Real-time. |
| ; this will only affect custom segments added or modified after this setting is changed. |
| ; * users with at least 'view' access will still be able to create pre-processed segments, regardless |
| ; of what this is set to. |
| enable_create_realtime_segments = 1 |
|
|
| ; Whether to enable the "Suggest values for segment" in the Segment Editor panel. |
| ; Set this to 0 in case your Matomo database is very big, and suggested values may not appear in time |
| enable_segment_suggested_values = 1 |
|
|
| ; By default, any user with a "view" access for a website can create segment assigned to this website. |
| ; Set this to "admin" or "superuser" to require that users should have at least this access to create new segments. |
| ; Note: anonymous user (even if it has view access) is not allowed to create or edit segment. |
| ; Possible values are "view", "write", "admin", "superuser" |
| adding_segment_requires_access = "view" |
|
|
| ; Whether it is allowed for users to add segments that affect all websites or not. If there are many websites |
| ; this admin option can be used to prevent users from performing an action that will have a major impact |
| ; on Matomo performance. |
| allow_adding_segments_for_all_websites = 1 |
|
|
| ; When archiving segments for the first time, this determines the oldest date that will be archived. |
| ; This option can be used to avoid archiving (for instance) the lastN years for every new segment. |
| ; Valid option values include: "beginning_of_time" (start date of archiving will not be changed) |
| ; "segment_last_edit_time" (start date of archiving will be the earliest last edit date found, |
| ; if none is found, the created date is used) |
| ; "segment_creation_time" (start date of archiving will be the creation date of the segment) |
| ; editLastN where N is an integer (eg "editLast10" to archive for 10 days before the segment last edit date) |
| ; lastN where N is an integer (eg "last10" to archive for 10 days before the segment creation date) |
| process_new_segments_from = "beginning_of_time" |
|
|
| ; this action name is used when the URL ends with a slash / |
| ; it is useful to have an actual string to write in the UI |
| action_default_name = index |
|
|
| ; default language to use in Matomo |
| default_language = en |
|
|
| ; default number of elements in the datatable |
| datatable_default_limit = 10 |
|
|
| ; Each datatable report has a Row Limit selector at the bottom right. |
| ; By default you can select from 5 to 500 rows. You may customise the values below |
| ; -1 will be displayed as 'all' and it will export all rows (filter_limit=-1) |
| datatable_row_limits = "5,10,25,50,100,250,500,-1" |
|
|
| ; default number of rows returned in API responses |
| ; this value is overwritten by the '# Rows to display' selector. |
| ; if set to -1, a click on 'Export as' will export all rows independently of the current '# Rows to display'. |
| API_datatable_default_limit = 100 |
|
|
| ; Maximum number of URLs allowed in API.getBulkRequest for authenticated users (-1 disables the limit) |
| API_bulk_request_limit = -1 |
|
|
| ; When period=range, below the datatables, when user clicks on "export", the data will be aggregate of the range. |
| ; Here you can specify the comma separated list of formats for which the data will be exported aggregated by day |
| ; (ie. there will be a new "date" column). For example set to: "rss,tsv,csv" |
| datatable_export_range_as_day = "rss" |
|
|
| ; This setting is overridden in the UI, under "User Settings". |
| ; The date and period loaded by Matomo uses the defaults below. Possible values: yesterday, today. |
| default_day = yesterday |
| ; Possible values: day, week, month, year. |
| default_period = day |
|
|
| ; Time in seconds after which an archive will be computed again. This setting is used only for today's statistics. |
| ; This setting is overridden in the UI, under "General Settings". |
| ; This setting is only used if it hasn't been overridden via the UI yet, or if enable_general_settings_admin=0 |
| time_before_today_archive_considered_outdated = 900 |
|
|
| ; Time in seconds after which an archive will be computed again. This setting is used only for week's statistics. |
| ; If set to "-1" (default), it will fall back to the UI setting under "General settings" unless enable_general_settings_admin=0 |
| ; is set. In this case it will default to "time_before_today_archive_considered_outdated"; |
| time_before_week_archive_considered_outdated = -1 |
| |
| ; Same as config setting "time_before_week_archive_considered_outdated" but it is only applied to monthly archives |
| time_before_month_archive_considered_outdated = -1 |
| |
| ; Same as config setting "time_before_week_archive_considered_outdated" but it is only applied to yearly archives |
| time_before_year_archive_considered_outdated = -1 |
| |
| ; Same as config setting "time_before_week_archive_considered_outdated" but it is only applied to range archives |
| time_before_range_archive_considered_outdated = -1 |
| |
| ; Time in seconds after a started archiving job is considered as failed and will be retried |
| ; Do not configure this value lower than the maximum time it can take for the longest running archiving job to finish |
| archive_failure_recovery_timeout = 86400 |
| |
| ; This setting is overridden in the UI, under "General Settings". |
| ; The default value is to allow browsers to trigger the Matomo archiving process. |
| ; This setting is only used if it hasn't been overridden via the UI yet, or if enable_general_settings_admin=0 |
| enable_browser_archiving_triggering = 1 |
|
|
| ; By default, Matomo will force archiving of range periods from browser requests, even if enable_browser_archiving_triggering |
| ; is set to 0. This can sometimes create too much of a demand on system resources. Setting this option to 0 and |
| ; disabling browser trigger archiving will make sure ranges are not archived on browser request. Since the cron |
| ; archiver does not archive any custom date ranges, you must either disable range (using enabled_periods_API and enabled_periods_UI) |
| ; or make sure the date ranges users' want to see will be processed somehow. |
| archiving_range_force_on_browser_request = 1 |
| |
| ; By default Matomo will automatically archive all date ranges any user has chosen in their account settings. |
| ; This is limited to the available options last7, previous7, last30 and previous30. |
| ; If you need any other period, or want to ensure one of those is always archived, you can define them here |
| archiving_custom_ranges[] = |
| |
| ; If configured, archiving queries will be aborted after the configured amount of seconds. Set it to -1 if the query time |
| ; should not be limited. Note: This feature requires a recent MySQL version (5.7 or newer) and the PDO\MYSQL extension |
| ; must be used. Some MySQL forks like MariaDB might not support this feature which uses the MAX_EXECUTION_TIME hint. |
| ; This feature will not work with the MYSQLI extension. |
| archiving_query_max_execution_time = 7200 |
| |
| ; Allows you to disable archiving segments for selected plugins. For more details please see https://matomo.org/faq/how-to-disable-archiving-the-segment-reports-for-specific-plugins |
| ; Here you can specify the comma separated list eg: "plugin1,plugin2" |
| disable_archiving_segment_for_plugins = "" |
| |
| ; By default Matomo will archive data showing the contribution of each action to goal conversions, for sites tracking millions |
| ; of visits with a large number of goals this may negatively impact archiving performance. You can disable archiving of action |
| ; goal contribution here: |
| disable_archive_actions_goals = 0 |
| |
| ; By default Matomo runs OPTIMIZE TABLE SQL queries to free spaces after deleting some data. |
| ; If your Matomo tracks millions of pages, the OPTIMIZE TABLE queries might run for hours (seen in "SHOW FULL PROCESSLIST \g") |
| ; so you can disable these special queries here: |
| enable_sql_optimize_queries = 1 |
| |
| ; By default Matomo is purging complete date range archives to free spaces after deleting some data. |
| ; If you are pre-processing custom ranges using CLI task to make them easily available in UI, |
| ; you can prevent this action from happening by setting this parameter to value bigger than 1 |
| purge_date_range_archives_after_X_days = 1 |
| |
| ; Minimum advised memory limit in Mb in php.ini file (see memory_limit value) |
| ; Set to "-1" to always use the configured memory_limit value in php.ini file. |
| minimum_memory_limit = 128 |
| |
| ; Minimum memory limit in Mb enforced when archived via ./console core:archive |
| ; Set to "-1" to always use the configured memory_limit value in php.ini file. |
| minimum_memory_limit_when_archiving = 768 |
| |
| ; Matomo will check that usernames and password have a minimum length, and will check that characters are "allowed" |
| ; This can be disabled, if for example you wish to import an existing User database in Matomo and your rules are less restrictive |
| disable_checks_usernames_attributes = 0 |
| |
| ; Matomo will use the configured hash algorithm where possible. |
| ; For legacy data, fallback or non-security scenarios, we use md5. |
| hash_algorithm = whirlpool |
| |
| ; set the algorithm used by password_hash() |
| ; "default" for the algorithm used by the PHP version or one of ["bcrypt", "argon2i", "argon2id"] |
| ; "argon2id" requires at least PHP 7.3.0 |
| ; for all argon2 algorithms, additional parameters can be changed below |
| ; any changes are applied to the stored hash on the next login of a user |
| ; see https://www.php.net/manual/en/function.password-hash.php and https://wiki.php.net/rfc/argon2_password_hash |
| ; for more information |
| password_hash_algorithm = default |
| |
| ; The number of CPU threads used for calculating the hash |
| password_hash_argon2_threads = default |
| |
| ; The amount of memory (in KB) used for calculating the hash |
| ; a minimum of 8 times the number of threads |
| password_hash_argon2_memory_cost = default |
| |
| ; The number of iterations for calculating the hash |
| password_hash_argon2_time_cost = default |
| |
| ; If set to 1, Matomo will automatically redirect all http:// requests to https:// |
| ; If SSL / https is not correctly configured on the server, this will break Matomo |
| ; If you set this to 1, and your SSL configuration breaks later on, you can always edit this back to 0 |
| ; it is recommended for security reasons to always use Matomo over https |
| force_ssl = 0 |
| |
| ; If set to 1, Matomo will send a Content-Security-Policy header |
| csp_enabled = 1 |
| |
| ; If set, and csp_enabled is on, Matomo will send a report-uri in the Content-Security-Policy-Report-Only header |
| ; instead of a Content-Security-Policy header. |
| csp_report_only = 0 |
| |
| ; If set to 1 Matomo will prefer using SERVER_NAME variable over HTTP_HOST. |
| ; This can add an additional layer of security as SERVER_NAME can not be manipulated by sending custom host headers when configure correctly. |
| host_validation_use_server_name = 0 |
| |
| ; This list defines the hostnames that a valid sources to download GeoIP databases from. Subdomains of those hostnames will be accepted automatically. |
| geolocation_download_from_trusted_hosts[] = maxmind.com |
| geolocation_download_from_trusted_hosts[] = db-ip.com |
| geolocation_download_from_trusted_hosts[] = ip2location.com |
| |
| ; Session garbage collection on (as on some operating systems, i.e. Debian, it may be off by default) |
| session_gc_probability = 1 |
| |
| ; (DEPRECATED) has no effect |
| login_cookie_name = matomo_auth |
| |
| ; By default, the auth cookie is set only for the duration of session. |
| ; if "Remember me" is checked, the auth cookie will be valid for 14 days by default |
| login_cookie_expire = 1209600 |
| |
| ; Sets the session cookie path |
| login_cookie_path = |
| |
| ; the amount of time before an idle session is considered expired. only affects session that were created without the |
| ; "remember me" option checked |
| login_session_not_remembered_idle_timeout = 3600 |
| |
| ; email address that appears as a Reply-to in the password recovery email |
| ; if specified, {DOMAIN} will be replaced by the current Matomo domain |
| login_password_recovery_replyto_email_address = "no-reply@{DOMAIN}" |
| ; name that appears as a Reply-to in the password recovery email |
| login_password_recovery_replyto_email_name = "No-reply" |
| |
| ; When configured, only users from a configured IP can log into your Matomo. You can define one or multiple |
| ; IPv4, IPv6, and IP ranges. You may also define hostnames. However, resolving hostnames in each request |
| ; may slightly slow down your Matomo. |
| ; This allowlist also affects API requests unless you disabled it via the setting |
| ; "login_allowlist_apply_to_reporting_api_requests" below. Note that neither this setting, nor the |
| ; "login_allowlist_apply_to_reporting_api_requests" restricts authenticated tracking requests (tracking requests |
| ; with a "token_auth" URL parameter). |
| ; |
| ; Examples: |
| ; login_allowlist_ip[] = 204.93.240.* |
| ; login_allowlist_ip[] = 204.93.177.0/24 |
| ; login_allowlist_ip[] = 199.27.128.0/21 |
| ; login_allowlist_ip[] = 2001:db8::/48 |
| ; login_allowlist_ip[] = matomo.org |
| |
| ; By default, if an allowlisted IP address is specified via "login_allowlist_ip[]", the reporting user interface as |
| ; well as HTTP Reporting API requests will only work for these allowlisted IPs. |
| ; Set this setting to "0" to allow HTTP Reporting API requests from any IP address. |
| login_allowlist_apply_to_reporting_api_requests = 1 |
| |
| ; By default when user logs out they are redirected to Matomo "homepage" usually the Login form. |
| ; Uncomment the next line to set a URL to redirect the user to after they log out of Matomo. |
| ; login_logout_url = http://... |
| |
| ; By default the logme functionality to automatically log in users using url params is disabled |
| ; You can enable that by setting this to "1". See https://matomo.org/faq/how-to/faq_30/ for more details |
| login_allow_logme = 0 |
| |
| ; Set to 1 to disable the framebuster on standard Non-widgets pages (a click-jacking countermeasure). |
| ; Default is 0 (i.e., bust frames on all non Widget pages such as Login, API, Widgets, Email reports, etc.). |
| enable_framed_pages = 0 |
| |
| ; Set to 1 to disable the framebuster on Admin pages (a click-jacking countermeasure). |
| ; Default is 0 (i.e., bust frames on the Settings forms). |
| enable_framed_settings = 0 |
| |
| ; Set to 1 to allow using token_auths with write or admin access in iframes that embed Matomo. |
| ; Note that the token used will be in the URL in the iframe, and thus will be stored in webserver |
| ; logs and possibly other places. Using write or admin token_auths can be seen as a security risk, |
| ; though it can be necessary in some use cases. We do not recommend enabling this setting, for more |
| ; information view the FAQ: https://matomo.org/faq/troubleshooting/faq_147/ |
| enable_framed_allow_write_admin_token_auth = 0 |
| |
| ; Set to 1 to only allow tokens to be used in a secure way (e.g. via POST requests). This will completely prevent using |
| ; token_auth as URL parameter in GET requests. When enabled all new authentication tokens |
| ; will be created for Secure use only, and previously created tokens will only be accepted in a secure way (POST requests). |
| ; Recommended for best security. |
| only_allow_secure_auth_tokens = 0 |
| |
| ; Number of days after which a personal auth token is recommended to be rotated and an email notification will be sent to the user. |
| ; If set to 0 days, notifications won't be sent. |
| ; Recommended to keep enabled for best security. |
| auth_token_rotation_notification_days = 180 |
|
|
| ; Number of days that will be added to 'today' to preset an expiration date when a new auth token is being created |
| ; For example, if a user starts creating an auth token on 1 May 2025, the expiry date will be preset to 1 November 2025. |
| auth_token_default_expiration_days = 180 |
|
|
| ; Number of days before the expiration date of a personal auth token, where an email notification is sent to the user. |
| ; If set to 0 days, notifications won't be sent. |
| ; Recommended to keep enabled for best security. |
| auth_token_expiration_notification_days = 30 |
| |
| ; language cookie name for session |
| language_cookie_name = matomo_lang |
| |
| ; standard email address displayed when sending emails |
| noreply_email_address = "noreply@{DOMAIN}" |
| |
| ; standard email name displayed when sending emails. If not set, a default name will be used. |
| noreply_email_name = "" |
| |
| ; email address to use when an administrator should be contacted. If not set, email addresses of all super users will be used instead. |
| ; To use multiple addresses simply concatenate them with a ',' |
| contact_email_address = "" |
| |
| ; set to 0 to disable sending of all emails. useful for testing. |
| emails_enabled = 1 |
| |
| ; set to 0 to disable sending of emails when a password or email is changed |
| enable_update_users_email = 1 |
| |
| ; feedback email address; |
| ; when testing, use your own email address or "nobody" |
| feedback_email_address = "feedback@matomo.org" |
| |
| ; using to set reply_to in reports e-mail to login of report creator |
| scheduled_reports_replyto_is_user_email_and_alias = 0 |
| |
| ; scheduled reports truncate limit |
| ; the report will be rendered with the first 23 rows and will aggregate other rows in a summary row |
| ; 23 rows table fits in one portrait page |
| scheduled_reports_truncate = 23 |
| |
| ; during archiving, Matomo will limit the number of results recorded, for performance reasons |
| ; maximum number of rows for any of the Referrers tables (keywords, search engines, campaigns, etc.) |
| datatable_archiving_maximum_rows_referrers = 1000 |
| ; maximum number of rows for any of the Referrers subtable (search engines by keyword, keyword by campaign, etc.) |
| datatable_archiving_maximum_rows_subtable_referrers = 50 |
| |
| ; maximum number of rows for the Users report |
| datatable_archiving_maximum_rows_userid_users = 50000 |
| |
| ; maximum number of rows for the Custom Dimensions report |
| datatable_archiving_maximum_rows_custom_dimensions = 1000 |
| ; maximum number of rows for the Custom Dimensions subtable reports |
| datatable_archiving_maximum_rows_subtable_custom_dimensions = 1000 |
| |
| ; maximum number of rows for any of the Actions tables (pages, downloads, outlinks) |
| datatable_archiving_maximum_rows_actions = 500 |
| ; maximum number of rows used when archiving flat page/title actions before rebuilding hierarchy |
| ; if set to 0, legacy hierarchical-only Actions archiving is used |
| datatable_archiving_maximum_rows_actions_flat = 0 |
| ; maximum number of rows for pages in categories (sub pages, when clicking on the + for a page category) |
| ; note: should not exceed the display limit in Piwik\Actions\Controller::ACTIONS_REPORT_ROWS_DISPLAY |
| ; because each subdirectory doesn't have paging at the bottom, so all data should be displayed if possible. |
| datatable_archiving_maximum_rows_subtable_actions = 100 |
| ; maximum number of rows for the Site Search table |
| datatable_archiving_maximum_rows_site_search = 500 |
|
|
| ; maximum number of rows for any of the Events tables (Categories, Actions, Names) |
| datatable_archiving_maximum_rows_events = 500 |
| ; maximum number of rows for sub-tables of the Events tables (eg. for the subtables Categories>Actions or Categories>Names). |
| datatable_archiving_maximum_rows_subtable_events = 500 |
|
|
| ; maximum number of rows for the Products reports |
| datatable_archiving_maximum_rows_products = 10000 |
|
|
| ; maximum number of AI Assistants listed in Bot Tracking reports |
| datatable_archiving_maximum_rows_bots = 250 |
| ; maximum number of page/document rows listed per AI Assistant in Bot Tracking reports |
| datatable_archiving_maximum_rows_subtable_bots = 250 |
| ; maximum number of content URLs (pages/documents) listed in the AI Chatbots Content Requests reports |
| datatable_archiving_maximum_rows_ai_chatbot_content = 50000 |
| ; maximum number of page URLs listed in the Human-Favoured / AI-Favoured Pages reports |
| ; (these span the full human page-URL set, matching the content reports cap) |
| datatable_archiving_maximum_rows_ai_chatbot_favoured_pages = 50000 |
|
|
| ; maximum number of rows for other tables (Providers, User settings configurations) |
| datatable_archiving_maximum_rows_standard = 500 |
|
|
| ; maximum number of rows to fetch from the database when archiving. if set to 0, no limit is used. |
| ; this can be used to speed up the archiving process, but is only useful if you're site has a large |
| ; amount of actions, referrers or custom variable name/value pairs. |
| archiving_ranking_query_row_limit = 50000 |
| |
| ; maximum number of actions that is shown in the visitor log for each visitor |
| visitor_log_maximum_actions_per_visit = 500 |
| |
| ; by default, the real time Live! widget will update every 5 seconds and refresh with new visits/actions/etc. |
| ; you can change the timeout so the widget refreshes more often, or not as frequently |
| live_widget_refresh_after_seconds = 5 |
| |
| ; by default, the Live! real time visitor count widget will check to see how many visitors your |
| ; website received in the last 3 minutes. changing this value will change the number of minutes |
| ; the widget looks in. Only values between 1 and 2880 are allowed. |
| live_widget_visitor_count_last_minutes = 3 |
| |
| ; by default visitor profile will show aggregated information for the last up to 100 visits of a visitor |
| ; this limit can be adjusted by changing this value |
| live_visitor_profile_max_visits_to_aggregate = 100 |
| |
| ; maximum number of AI chatbots listed in the real-time AI Chatbots reports |
| live_ai_chatbots_maximum_rows = 100 |
| ; maximum number of page URLs listed in the real-time AI Chatbots top page URL reports |
| live_ai_chatbots_top_page_urls_maximum_rows = 100 |
| |
| ; If configured, will abort a MySQL query after the configured amount of seconds and show an error in the UI to for |
| ; example lower the date range or tweak the segment (if one is applied). Set it to -1 if the query time should not be |
| ; limited. Note: This feature requires a recent MySQL version (5.7 or newer) and the PDO\MYSQL extension must be used. |
| ; Some MySQL forks like MariaDB might not support this feature which uses the MAX_EXECUTION_TIME hint. This feature will |
| ; not work with the MYSQLI extension. |
| live_query_max_execution_time = -1 |
| |
| ; In "All Websites" dashboard, when looking at today's reports (or a date range including today), |
| ; the page will automatically refresh every 5 minutes. Set to 0 to disable automatic refresh |
| multisites_refresh_after_seconds = 300 |
|
|
| ; by default, an update notification for a new version of Matomo is shown to every user. Set to 1 if only |
| ; the superusers should see the notification. |
| show_update_notification_to_superusers_only = 0 |
|
|
| ; Set to 1 if you're using https on your Matomo server and Matomo can't detect it, |
| ; e.g., a reverse proxy using https-to-http, or a web server that doesn't |
| ; set the HTTPS environment variable. |
| assume_secure_protocol = 0 |
| |
| ; Set to 1 if you're using more than one server for your Matomo installation. For example if you are using Matomo in a |
| ; load balanced environment, if you have configured failover or if you're just using multiple servers in general. |
| ; By enabling this flag we will for example not allow the installation of a plugin via the UI as a plugin would be only |
| ; installed on one server or a config one change would be only made on one server instead of all servers. |
| ; This flag doesn't need to be enabled when the config file is on a shared filesystem such as NFS or EFS. |
| ; When enabled, Matomo will return the response code 200 instead of 503 in maintenance mode. |
| multi_server_environment = 0 |
|
|
| ; List of proxy headers for client IP addresses |
| ; Matomo will determine the user IP by extracting the first IP address found in this proxy header. |
| ; |
| ; CloudFlare (CF-Connecting-IP) |
| ;proxy_client_headers[] = HTTP_CF_CONNECTING_IP |
| ; |
| ; ISP proxy (Client-IP) |
| ;proxy_client_headers[] = HTTP_CLIENT_IP |
| ; |
| ; de facto standard (X-Forwarded-For) |
| ;proxy_client_headers[] = HTTP_X_FORWARDED_FOR |
|
|
| ; List of proxy headers for host IP addresses |
| ; |
| ; de facto standard (X-Forwarded-Host) |
| ;proxy_host_headers[] = HTTP_X_FORWARDED_HOST |
|
|
| ; List of proxy headers for scheme (http/https) detection. |
| ; If unset, Matomo will ignore proxy scheme headers by default. |
| ; |
| ; de facto standard (X-Forwarded-Proto) |
| ;proxy_scheme_headers[] = HTTP_X_FORWARDED_PROTO |
| ; |
| ; alternative header (X-Forwarded-Scheme) |
| ;proxy_scheme_headers[] = HTTP_X_FORWARDED_SCHEME |
| ; |
| ; alternative header (X-Url-Scheme) |
| ;proxy_scheme_headers[] = HTTP_X_URL_SCHEME |
|
|
| ; List of proxy IP addresses (or IP address ranges) to skip (if present in the above headers). |
| ; Generally, only required if there's more than one proxy between the visitor and the backend web server. |
| ; |
| ; Examples: |
| ;proxy_ips[] = 204.93.240.* |
| ;proxy_ips[] = 204.93.177.0/24 |
| ;proxy_ips[] = 199.27.128.0/21 |
| ;proxy_ips[] = 173.245.48.0/20 |
| |
| ; Set to 1 if you're using a proxy which is rewriting the URI. |
| ; By enabling this flag the header HTTP_X_FORWARDED_URI will be considered for the current script name. |
| proxy_uri_header = 0 |
|
|
| ; If set to 1 we use the last IP in the list of proxy IPs when determining the client IP. Using the last IP can be more |
| ; secure when using proxy headers in combination with a load balancer. By default the first IP is read according to RFC7239 |
| ; which is required when the client sends the IP through a proxy header as well as the load balancer. |
| proxy_ip_read_last_in_list = 1 |
|
|
| ; Enables the trusted host check, to ensure Matomo only works when accessed through a configured trusted host. |
| ; If a request comes from an untrusted domain, a warning is shown, instead of processing the request. |
| ; This helps prevent host header attacks and enhances security, so disable it with caution. |
| ; See https: |
| enable_trusted_host_check = 1 |
|
|
| ; List of trusted hosts (eg domain or subdomain names) when generating absolute URLs. |
| ; This only needs to be set for any hostnames that the Matomo UI will be accessed from. It is not necessary to set this |
| ; for other additional hostnames (For example tracking, API, etc.) |
| ; Examples: |
| ;trusted_hosts[] = example.com |
| ;trusted_hosts[] = stats.example.com |
|
|
| ; List of Cross-origin resource sharing domains (eg domain or subdomain names) when generating absolute URLs. |
| ; Described here: https: |
| ; |
| ; Examples: |
| ;cors_domains[] = http: |
| ;cors_domains[] = http: |
| ; |
| ; Or you may allow cross domain requests for all domains with: |
| ;cors_domains[] = * |
|
|
| ; If you use this Matomo instance over multiple hostnames, Matomo will need to know a unique instance_id for this |
| ; instance, so that Matomo can serve the right custom logo and tmp |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |