· 6 years ago · Dec 30, 2019, 02:34 AM
1; <?php exit; ?> DO NOT REMOVE THIS LINE
2; If you want to change some of these default values, the best practise is to override
3; them in your configuration file in config/config.ini.php. If you directly edit this file,
4; you will lose your changes when you upgrade Matomo.
5; For example if you want to override action_title_category_delimiter,
6; edit config/config.ini.php and add the following:
7; [General]
8; action_title_category_delimiter = "-"
9
10;--------
11; WARNING - YOU SHOULD NOT EDIT THIS FILE DIRECTLY - Edit config.ini.php instead.
12;--------
13
14[database]
15host =
16username =
17password =
18dbname =
19tables_prefix =
20port = 3306
21adapter = PDO\MYSQL
22type = InnoDB
23schema = Mysql
24
25; Database SSL Options START
26; Turn on or off SSL connection to database, possible values for enable_ssl: 1 or 0
27enable_ssl = 0
28; Direct path to server CA file, CA bundle supported (required for ssl connection)
29ssl_ca =
30; Direct path to client cert file (optional)
31ssl_cert =
32; Direct path to client key file (optional)
33ssl_key =
34; Direct path to CA cert files directory (optional)
35ssl_ca_path =
36; List of one or more ciphers for SSL encryption, in OpenSSL format (optional)
37ssl_cipher =
38; Whether to skip verification of self signed certificates (optional, only supported
39; w/ specific PHP versions, and is mostly for testing purposes)
40ssl_no_verify =
41; Database SSL Options END
42
43; if charset is set to utf8, Matomo will ensure that it is storing its data using UTF8 charset.
44; it will add a sql query SET at each page view.
45; Matomo should work correctly without this setting but we recommend to have a charset set.
46charset = utf8
47
48; If configured, the following queries will be executed on the reader instead of the writer.
49; * archiving queries that hit a log table
50; * live queries that hit a log table
51; You only want to enable a reader if you can ensure there is minimal replication lag / delay on the reader.
52; Otherwise you might get corrupt data in the reports.
53[database_reader]
54host =
55username =
56password =
57dbname =
58port = 3306
59
60[database_tests]
61host = localhost
62username = "@USERNAME@"
63password =
64dbname = matomo_tests
65tables_prefix = matomotests_
66port = 3306
67adapter = PDO\MYSQL
68type = InnoDB
69schema = Mysql
70charset = utf8
71enable_ssl = 0
72ssl_ca =
73ssl_cert =
74ssl_key =
75ssl_ca_path =
76ssl_cipher =
77ssl_no_verify = 1
78
79[tests]
80; needed in order to run tests.
81; if Matomo is available at http://localhost/dev/matomo/ replace @REQUEST_URI@ with /dev/matomo/
82; note: the REQUEST_URI should not contain "plugins" or "tests" in the PATH
83http_host = localhost
84remote_addr = "127.0.0.1"
85request_uri = "@REQUEST_URI@"
86port =
87enable_logging = 0
88
89; access key and secret as listed in AWS -> IAM -> Users
90aws_accesskey = ""
91aws_secret = ""
92; key pair name as listed in AWS -> EC2 -> Key Pairs. Key name should be different per user.
93aws_keyname = ""
94; PEM file can be downloaded after creating a new key pair in AWS -> EC2 -> Key Pairs
95aws_pem_file = "<path to pem file>"
96aws_securitygroups[] = "default"
97aws_region = "us-east-1"
98aws_ami = "ami-ac24bac4"
99aws_instance_type = "c3.large"
100
101[log]
102; possible values for log: screen, database, file
103log_writers[] = screen
104
105; log level, everything logged w/ this level or one of greater severity
106; will be logged. everything else will be ignored. possible values are:
107; ERROR, WARN, INFO, DEBUG
108; this setting will apply to every log writer, if there is no specific log level defined for a writer.
109log_level = WARN
110
111; you can also set specific log levels for different writers, by appending the writer name to log_level_, like so:
112; this allows you to log more information to one backend vs another.
113; log_level_screen =
114; log_level_file =
115
116; if configured to log in a file, log entries will be made to this file
117logger_file_path = tmp/logs/matomo.log
118
119[Cache]
120; available backends are 'file', 'array', 'null', 'redis', 'chained'
121; 'array' will cache data only during one request
122; 'null' will not cache anything at all
123; 'file' will cache on the filesystem
124; 'redis' will cache on a Redis server, use this if you are running Matomo with multiple servers. Further configuration in [RedisCache] is needed
125; 'chained' will chain multiple cache backends. Further configuration in [ChainedCache] is needed
126backend = chained
127
128[ChainedCache]
129; The chained cache will always try to read from the fastest backend first (the first listed one) to avoid requesting
130; the same cache entry from the slowest backend multiple times in one request.
131backends[] = array
132backends[] = file
133
134[RedisCache]
135; Redis server configuration.
136host = "127.0.0.1"
137port = 6379
138; instead of host and port a unix socket path can be configured
139unix_socket = ""
140timeout = 0.0
141password = ""
142database = 14
143; In case you are using queued tracking: Make sure to configure a different database! Otherwise queued requests might
144; be flushed
145
146[Debug]
147; if set to 1, the archiving process will always be triggered, even if the archive has already been computed
148; this is useful when making changes to the archiving code so we can force the archiving process
149always_archive_data_period = 0;
150always_archive_data_day = 0;
151; Force archiving Custom date range (without re-archiving sub-periods used to process this date range)
152always_archive_data_range = 0;
153
154; if set to 1, all the SQL queries will be recorded by the profiler
155; and a profiling summary will be printed at the end of the request
156; NOTE: you must also set [log] log_writers[] = "screen" to enable the profiler to print on screen
157enable_sql_profiler = 0
158
159; If set to 1, all requests to matomo.php will be forced to be 'new visitors'
160tracker_always_new_visitor = 0
161
162; if set to 1, all SQL queries will be logged using the DEBUG log level
163log_sql_queries = 0
164
165; if set to 1, core:archive profiling information will be recorded in a log file. the log file is determined by the
166; archive_profiling_log option.
167archiving_profile = 0
168
169; if set to an absolute path, core:archive profiling information will be logged to specified file
170archive_profiling_log =
171
172[DebugTests]
173; When set to 1, standalone plugins (those with their own git repositories)
174; will be loaded when executing tests.
175enable_load_standalone_plugins_during_tests = 0
176
177[Development]
178; Enables the development mode where we avoid most caching to make sure code changes will be directly applied as
179; some caches are only invalidated after an update otherwise. When enabled it'll also performs some validation checks.
180; For instance if you register a method in a widget we will verify whether the method actually exists and is public.
181; If not, we will show you a helpful warning to make it easy to find simple typos etc.
182enabled = 0
183
184; if set to 1, javascript files will be included individually and neither merged nor minified.
185; this option must be set to 1 when adding, removing or modifying javascript files
186; Note that for quick debugging, instead of using below setting, you can add `&disable_merged_assets=1` to the Matomo URL
187disable_merged_assets = 0
188
189[General]
190; the following settings control whether Unique Visitors `nb_uniq_visitors` and Unique users `nb_users` will be processed for different period types.
191; year and range periods are disabled by default, to ensure optimal performance for high traffic Matomo instances
192; 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
193; it is recommended to always enable Unique Visitors and Unique Users processing for 'day' periods
194enable_processing_unique_visitors_day = 1
195enable_processing_unique_visitors_week = 1
196enable_processing_unique_visitors_month = 1
197enable_processing_unique_visitors_year = 0
198enable_processing_unique_visitors_range = 0
199
200; controls whether Unique Visitors will be processed for groups of websites. these metrics describe the number
201; of unique visitors across the entire set of websites, so if a visitor visited two websites in the group, she
202; would still only be counted as one. only relevant when using plugins that group sites together
203enable_processing_unique_visitors_multiple_sites = 0
204
205; The list of periods that are available in the Matomo calendar
206; Example use case: custom date range requests are processed in real time,
207; so they may take a few minutes on very high traffic website: you may remove "range" below to disable this period
208enabled_periods_UI = "day,week,month,year,range"
209enabled_periods_API = "day,week,month,year,range"
210
211; whether to enable segment archiving cache
212; Note: if you use any plugins, this need to be compliant with Matomo and
213; * depending on the segment you create you may need a newer MySQL version (eg 5.7 or newer)
214; * use a reader database for archiving in case you have configured a database reader
215enable_segments_cache = 1
216
217; whether to enable subquery cache for Custom Segment archiving queries
218enable_segments_subquery_cache = 0
219; Any segment subquery that matches more than segments_subquery_cache_limit IDs will not be cached,
220; and the original subquery executed instead.
221segments_subquery_cache_limit = 100000
222; TTL: Time to live for cache files, in seconds. Default to 60 minutes
223segments_subquery_cache_ttl = 3600
224
225; when set to 1, all requests to Matomo will return a maintenance message without connecting to the DB
226; this is useful when upgrading using the shell command, to prevent other users from accessing the UI while Upgrade is in progress
227maintenance_mode = 0
228
229; Defines the release channel that shall be used. Currently available values are:
230; "latest_stable", "latest_beta", "latest_2x_stable", "latest_2x_beta"
231release_channel = "latest_stable"
232
233; character used to automatically create categories in the Actions > Pages, Outlinks and Downloads reports
234; for example a URL like "example.com/blog/development/first-post" will create
235; the page first-post in the subcategory development which belongs to the blog category
236action_url_category_delimiter = /
237
238; similar to above, but this delimiter is only used for page titles in the Actions > Page titles report
239action_title_category_delimiter = ""
240
241; the maximum url category depth to track. if this is set to 2, then a url such as
242; "example.com/blog/development/first-post" would be treated as "example.com/blog/development".
243; this setting is used mainly to limit the amount of data that is stored by Matomo.
244action_category_level_limit = 10
245
246; minimum number of websites to run autocompleter
247autocomplete_min_sites = 5
248
249; maximum number of websites showed in search results in autocompleter
250site_selector_max_sites = 15
251
252; if set to 1, shows sparklines (evolution graph) in 'All Websites' report (MultiSites plugin)
253show_multisites_sparklines = 1
254
255; number of websites to display per page in the All Websites dashboard
256all_websites_website_per_page = 50
257
258; if set to 0, the anonymous user will not be able to use the 'segments' parameter in the API request
259; this is useful to prevent full DB access to the anonymous user, or to limit performance usage
260anonymous_user_enable_use_segments_API = 1
261
262; if browser trigger archiving is disabled, API requests with a &segment= parameter will still trigger archiving.
263; You can force the browser archiving to be disabled in most cases by setting this setting to 1
264; The only time that the browser will still trigger archiving is when requesting a custom date range that is not pre-processed yet
265browser_archiving_disabled_enforce = 0
266
267; Add custom currencies to Sites Manager.
268currencies[BTC] = Bitcoin
269
270; By default, users can create Segments which are to be processed in Real-time.
271; Setting this to 0 will force all newly created Custom Segments to be "Pre-processed (faster, requires archive.php cron)"
272; This can be useful if you want to prevent users from adding much load on the server.
273; Notes:
274; * any existing Segment set to "processed in Real time", will still be set to Real-time.
275; this will only affect custom segments added or modified after this setting is changed.
276; * when set to 0 then any user with at least 'view' access will be able to create pre-processed segments.
277enable_create_realtime_segments = 1
278
279; Whether to enable the "Suggest values for segment" in the Segment Editor panel.
280; Set this to 0 in case your Matomo database is very big, and suggested values may not appear in time
281enable_segment_suggested_values = 1
282
283; By default, any user with a "view" access for a website can create segment assigned to this website.
284; Set this to "admin" or "superuser" to require that users should have at least this access to create new segments.
285; Note: anonymous user (even if it has view access) is not allowed to create or edit segment.
286; Possible values are "view", "admin", "superuser"
287adding_segment_requires_access = "view"
288
289; Whether it is allowed for users to add segments that affect all websites or not. If there are many websites
290; this admin option can be used to prevent users from performing an action that will have a major impact
291; on Matomo performance.
292allow_adding_segments_for_all_websites = 1
293
294; When archiving segments for the first time, this determines the oldest date that will be archived.
295; This option can be used to avoid archiving (for isntance) the lastN years for every new segment.
296; Valid option values include: "beginning_of_time" (start date of archiving will not be changed)
297; "segment_last_edit_time" (start date of archiving will be the earliest last edit date found,
298; if none is found, the created date is used)
299; "segment_creation_time" (start date of archiving will be the creation date of the segment)
300; lastN where N is an integer (eg "last10" to archive for 10 days before the segment creation date)
301process_new_segments_from = "beginning_of_time"
302
303; this action name is used when the URL ends with a slash /
304; it is useful to have an actual string to write in the UI
305action_default_name = index
306
307; default language to use in Matomo
308default_language = en
309
310; default number of elements in the datatable
311datatable_default_limit = 10
312
313; Each datatable report has a Row Limit selector at the bottom right.
314; By default you can select from 5 to 500 rows. You may customise the values below
315; -1 will be displayed as 'all' and it will export all rows (filter_limit=-1)
316datatable_row_limits = "5,10,25,50,100,250,500,-1"
317
318; default number of rows returned in API responses
319; this value is overwritten by the '# Rows to display' selector.
320; if set to -1, a click on 'Export as' will export all rows independently of the current '# Rows to display'.
321API_datatable_default_limit = 100
322
323; When period=range, below the datatables, when user clicks on "export", the data will be aggregate of the range.
324; Here you can specify the comma separated list of formats for which the data will be exported aggregated by day
325; (ie. there will be a new "date" column). For example set to: "rss,tsv,csv"
326datatable_export_range_as_day = "rss"
327
328; This setting is overridden in the UI, under "User Settings".
329; The date and period loaded by Matomo uses the defaults below. Possible values: yesterday, today.
330default_day = yesterday
331; Possible values: day, week, month, year.
332default_period = day
333
334; Time in seconds after which an archive will be computed again. This setting is used only for today's statistics.
335; This setting is overriden in the UI, under "General Settings".
336; This setting is only used if it hasn't been overriden via the UI yet, or if enable_general_settings_admin=0
337time_before_today_archive_considered_outdated = 900
338
339; Time in seconds after which an archive will be computed again. This setting is used only for week's statistics.
340; If set to "-1" (default), it will fall back to the UI setting under "General settings" unless enable_general_settings_admin=0
341; is set. In this case it will default to "time_before_today_archive_considered_outdated";
342time_before_week_archive_considered_outdated = -1
343
344; Same as config setting "time_before_week_archive_considered_outdated" but it is only applied to monthly archives
345time_before_month_archive_considered_outdated = -1
346
347; Same as config setting "time_before_week_archive_considered_outdated" but it is only applied to yearly archives
348time_before_year_archive_considered_outdated = -1
349
350; Same as config setting "time_before_week_archive_considered_outdated" but it is only applied to range archives
351time_before_range_archive_considered_outdated = -1
352
353; This setting is overriden in the UI, under "General Settings".
354; The default value is to allow browsers to trigger the Matomo archiving process.
355; This setting is only used if it hasn't been overridden via the UI yet, or if enable_general_settings_admin=0
356enable_browser_archiving_triggering = 1
357
358; By default, Matomo will force archiving of range periods from browser requests, even if enable_browser_archiving_triggering
359; is set to 0. This can sometimes create too much of a demand on system resources. Setting this option to 0 and
360; disabling browser trigger archiving will make sure ranges are not archived on browser request. Since the cron
361; archiver does not archive any custom date ranges, you must either disable range (using enabled_periods_API and enabled_periods_UI)
362; or make sure the date ranges users' want to see will be processed somehow.
363archiving_range_force_on_browser_request = 1
364
365; By default Matomo will automatically archive all date ranges any user has chosen in his account settings.
366; This is limited to the available options last7, previous7, last30 and previous30.
367; If you need any other period, or want to ensure one of those is always archived, you can define them here
368archiving_custom_ranges[] =
369
370; By default Matomo runs OPTIMIZE TABLE SQL queries to free spaces after deleting some data.
371; If your Matomo tracks millions of pages, the OPTIMIZE TABLE queries might run for hours (seen in "SHOW FULL PROCESSLIST \g")
372; so you can disable these special queries here:
373enable_sql_optimize_queries = 1
374
375; By default Matomo is purging complete date range archives to free spaces after deleting some data.
376; If you are pre-processing custom ranges using CLI task to make them easily available in UI,
377; you can prevent this action from happening by setting this parameter to value bigger than 1
378purge_date_range_archives_after_X_days = 1
379
380; MySQL minimum required version
381; note: timezone support added in 4.1.3
382minimum_mysql_version = 4.1
383
384; PostgreSQL minimum required version
385minimum_pgsql_version = 8.3
386
387; Minimum advised memory limit in Mb in php.ini file (see memory_limit value)
388; Set to "-1" to always use the configured memory_limit value in php.ini file.
389minimum_memory_limit = 128
390
391; Minimum memory limit in Mb enforced when archived via ./console core:archive
392; Set to "-1" to always use the configured memory_limit value in php.ini file.
393minimum_memory_limit_when_archiving = 768
394
395; Matomo will check that usernames and password have a minimum length, and will check that characters are "allowed"
396; This can be disabled, if for example you wish to import an existing User database in Matomo and your rules are less restrictive
397disable_checks_usernames_attributes = 0
398
399; Matomo will use the configured hash algorithm where possible.
400; For legacy data, fallback or non-security scenarios, we use md5.
401hash_algorithm = whirlpool
402
403; Matomo uses PHP's dbtable for session.
404; If you prefer configuring sessions through the php.ini directly, you may unset this value to an empty string
405session_save_handler = dbtable
406
407; If set to 1, Matomo will automatically redirect all http:// requests to https://
408; If SSL / https is not correctly configured on the server, this will break Matomo
409; If you set this to 1, and your SSL configuration breaks later on, you can always edit this back to 0
410; it is recommended for security reasons to always use Matomo over https
411force_ssl = 0
412
413; (DEPRECATED) has no effect
414login_cookie_name = piwik_auth
415
416; By default, the auth cookie is set only for the duration of session.
417; if "Remember me" is checked, the auth cookie will be valid for 14 days by default
418login_cookie_expire = 1209600
419
420; Sets the session cookie path
421login_cookie_path =
422
423; the amount of time before an idle session is considered expired. only affects session that were created without the
424; "remember me" option checked
425login_session_not_remembered_idle_timeout = 3600
426
427; email address that appears as a Sender in the password recovery email
428; if specified, {DOMAIN} will be replaced by the current Matomo domain
429login_password_recovery_email_address = "password-recovery@{DOMAIN}"
430; name that appears as a Sender in the password recovery email
431login_password_recovery_email_name = Matomo
432
433; email address that appears as a Reply-to in the password recovery email
434; if specified, {DOMAIN} will be replaced by the current Matomo domain
435login_password_recovery_replyto_email_address = "no-reply@{DOMAIN}"
436; name that appears as a Reply-to in the password recovery email
437login_password_recovery_replyto_email_name = "No-reply"
438
439; When configured, only users from a configured IP can log into your Matomo. You can define one or multiple
440; IPv4, IPv6, and IP ranges. You may also define hostnames. However, resolving hostnames in each request
441; may slightly slow down your Matomo.
442; This whitelist also affects API requests unless you disabled it via the setting
443; "login_whitelist_apply_to_reporting_api_requests" below. Note that neither this setting, nor the
444; "login_whitelist_apply_to_reporting_api_requests" restricts authenticated tracking requests (tracking requests
445; with a "token_auth" URL parameter).
446;
447; Examples:
448; login_whitelist_ip[] = 204.93.240.*
449; login_whitelist_ip[] = 204.93.177.0/24
450; login_whitelist_ip[] = 199.27.128.0/21
451; login_whitelist_ip[] = 2001:db8::/48
452; login_whitelist_ip[] = matomo.org
453
454; By default, if a whitelisted IP address is specified via "login_whitelist_ip[]", the reporting user interface as
455; well as HTTP Reporting API requests will only work for these whitelisted IPs.
456; Set this setting to "0" to allow HTTP Reporting API requests from any IP address.
457login_whitelist_apply_to_reporting_api_requests = 1
458
459; By default when user logs out they are redirected to Matomo "homepage" usually the Login form.
460; Uncomment the next line to set a URL to redirect the user to after they log out of Matomo.
461; login_logout_url = http://...
462
463; Set to 1 to disable the framebuster on standard Non-widgets pages (a click-jacking countermeasure).
464; Default is 0 (i.e., bust frames on all non Widget pages such as Login, API, Widgets, Email reports, etc.).
465enable_framed_pages = 0
466
467; Set to 1 to disable the framebuster on Admin pages (a click-jacking countermeasure).
468; Default is 0 (i.e., bust frames on the Settings forms).
469enable_framed_settings = 0
470
471; language cookie name for session
472language_cookie_name = matomo_lang
473
474; standard email address displayed when sending emails
475noreply_email_address = "noreply@{DOMAIN}"
476
477; standard email name displayed when sending emails. If not set, a default name will be used.
478noreply_email_name = ""
479
480; set to 0 to disable sending of all emails. useful for testing.
481emails_enabled = 1
482
483; set to 0 to disable sending of emails when a password or email is changed
484enable_update_users_email = 1
485
486; feedback email address;
487; when testing, use your own email address or "nobody"
488feedback_email_address = "feedback@matomo.org"
489
490; using to set reply_to in reports e-mail to login of report creator
491scheduled_reports_replyto_is_user_email_and_alias = 0
492
493; scheduled reports truncate limit
494; the report will be rendered with the first 23 rows and will aggregate other rows in a summary row
495; 23 rows table fits in one portrait page
496scheduled_reports_truncate = 23
497
498; during archiving, Matomo will limit the number of results recorded, for performance reasons
499; maximum number of rows for any of the Referrers tables (keywords, search engines, campaigns, etc.)
500datatable_archiving_maximum_rows_referrers = 1000
501; maximum number of rows for any of the Referrers subtable (search engines by keyword, keyword by campaign, etc.)
502datatable_archiving_maximum_rows_subtable_referrers = 50
503
504; maximum number of rows for the Users report
505datatable_archiving_maximum_rows_userid_users = 50000
506
507; maximum number of rows for the Custom Variables names report
508; Note: if the website is Ecommerce enabled, the two values below will be automatically set to 50000
509datatable_archiving_maximum_rows_custom_variables = 1000
510; maximum number of rows for the Custom Variables values reports
511datatable_archiving_maximum_rows_subtable_custom_variables = 1000
512
513; maximum number of rows for any of the Actions tables (pages, downloads, outlinks)
514datatable_archiving_maximum_rows_actions = 500
515; maximum number of rows for pages in categories (sub pages, when clicking on the + for a page category)
516; note: should not exceed the display limit in Piwik\Actions\Controller::ACTIONS_REPORT_ROWS_DISPLAY
517; because each subdirectory doesn't have paging at the bottom, so all data should be displayed if possible.
518datatable_archiving_maximum_rows_subtable_actions = 100
519; maximum number of rows for the Site Search table
520datatable_archiving_maximum_rows_site_search = 500
521
522; maximum number of rows for any of the Events tables (Categories, Actions, Names)
523datatable_archiving_maximum_rows_events = 500
524; maximum number of rows for sub-tables of the Events tables (eg. for the subtables Categories>Actions or Categories>Names).
525datatable_archiving_maximum_rows_subtable_events = 500
526
527; maximum number of rows for other tables (Providers, User settings configurations)
528datatable_archiving_maximum_rows_standard = 500
529
530; maximum number of rows to fetch from the database when archiving. if set to 0, no limit is used.
531; this can be used to speed up the archiving process, but is only useful if you're site has a large
532; amount of actions, referrers or custom variable name/value pairs.
533archiving_ranking_query_row_limit = 50000
534
535; maximum number of actions that is shown in the visitor log for each visitor
536visitor_log_maximum_actions_per_visit = 500
537
538; by default, the real time Live! widget will update every 5 seconds and refresh with new visits/actions/etc.
539; you can change the timeout so the widget refreshes more often, or not as frequently
540live_widget_refresh_after_seconds = 5
541
542; by default, the Live! real time visitor count widget will check to see how many visitors your
543; website received in the last 3 minutes. changing this value will change the number of minutes
544; the widget looks in.
545live_widget_visitor_count_last_minutes = 3
546
547; by default visitor profile will show aggregated information for the last up to 100 visits of a visitor
548; this limit can be adjusted by changing this value
549live_visitor_profile_max_visits_to_aggregate = 100
550
551; If configured, will abort a MySQL query after the configured amount of seconds and show an error in the UI to for
552; example lower the date range or tweak the segment (if one is applied). Set it to -1 if the query time should not be
553; limited. Note: This feature requires a recent MySQL version (5.7 or newer). Some MySQL forks like MariaDB might not
554; support this feature which uses the MAX_EXECUTION_TIME hint.
555live_query_max_execution_time = -1
556
557; In "All Websites" dashboard, when looking at today's reports (or a date range including today),
558; the page will automatically refresh every 5 minutes. Set to 0 to disable automatic refresh
559multisites_refresh_after_seconds = 300
560
561; by default, an update notification for a new version of Matomo is shown to every user. Set to 1 if only
562; the superusers should see the notification.
563show_update_notification_to_superusers_only = 0
564
565; Set to 1 if you're using https on your Matomo server and Matomo can't detect it,
566; e.g., a reverse proxy using https-to-http, or a web server that doesn't
567; set the HTTPS environment variable.
568assume_secure_protocol = 0
569
570; Set to 1 if you're using more than one server for your Matomo installation. For example if you are using Matomo in a
571; load balanced environment, if you have configured failover or if you're just using multiple servers in general.
572; By enabling this flag we will for example not allow the installation of a plugin via the UI as a plugin would be only
573; installed on one server or a config one change would be only made on one server instead of all servers.
574multi_server_environment = 0
575
576; List of proxy headers for client IP addresses
577; Matomo will determine the user IP by extracting the first IP address found in this proxy header.
578;
579; CloudFlare (CF-Connecting-IP)
580;proxy_client_headers[] = HTTP_CF_CONNECTING_IP
581;
582; ISP proxy (Client-IP)
583;proxy_client_headers[] = HTTP_CLIENT_IP
584;
585; de facto standard (X-Forwarded-For)
586;proxy_client_headers[] = HTTP_X_FORWARDED_FOR
587
588; List of proxy headers for host IP addresses
589;
590; de facto standard (X-Forwarded-Host)
591;proxy_host_headers[] = HTTP_X_FORWARDED_HOST
592
593; List of proxy IP addresses (or IP address ranges) to skip (if present in the above headers).
594; Generally, only required if there's more than one proxy between the visitor and the backend web server.
595;
596; Examples:
597;proxy_ips[] = 204.93.240.*
598;proxy_ips[] = 204.93.177.0/24
599;proxy_ips[] = 199.27.128.0/21
600;proxy_ips[] = 173.245.48.0/20
601
602; Set to 1 if you're using a proxy which is rewriting the URI.
603; By enabling this flag the header HTTP_X_FORWARDED_URI will be considered for the current script name.
604proxy_uri_header = 0
605
606; Whether to enable trusted host checking. This can be disabled if you're running Matomo
607; on several URLs and do not wish to constantly edit the trusted host list.
608enable_trusted_host_check = 1
609
610; List of trusted hosts (eg domain or subdomain names) when generating absolute URLs.
611;
612; Examples:
613;trusted_hosts[] = example.com
614;trusted_hosts[] = stats.example.com
615
616; List of Cross-origin resource sharing domains (eg domain or subdomain names) when generating absolute URLs.
617; Described here: https://en.wikipedia.org/wiki/Cross-origin_resource_sharing
618;
619; Examples:
620;cors_domains[] = http://example.com
621;cors_domains[] = http://stats.example.com
622;
623; Or you may allow cross domain requests for all domains with:
624;cors_domains[] = *
625
626; If you use this Matomo instance over multiple hostnames, Matomo will need to know
627; a unique instance_id for this instance, so that Matomo can serve the right custom logo and tmp/* assets,
628; independently of the hostname Matomo is currently running under.
629; instance_id = stats.example.com
630
631; The API server is an essential part of the Matomo infrastructure/ecosystem to
632; provide services to Matomo installations, e.g., getLatestVersion and
633; subscribeNewsletter.
634api_service_url = http://api.matomo.org
635
636; When the ImageGraph plugin is activated, report metadata have an additional entry : 'imageGraphUrl'.
637; This entry can be used to request a static graph for the requested report.
638; When requesting report metadata with $period=range, Matomo needs to translate it to multiple periods for evolution graphs.
639; eg. $period=range&date=previous10 becomes $period=day&date=previous10. Use this setting to override the $period value.
640graphs_default_period_to_plot_when_period_range = day
641
642; When the ImageGraph plugin is activated, enabling this option causes the image graphs to show the evolution
643; within the selected period instead of the evolution across the last n periods.
644graphs_show_evolution_within_selected_period = 0
645
646; This option controls the default number of days in the past to show in evolution graphs generated by the ImageGraph plugin
647graphs_default_evolution_graph_last_days_amount = 30
648
649; The Overlay plugin shows the Top X following pages, Top X downloads and Top X outlinks which followed
650; a view of the current page. The value X can be set here.
651overlay_following_pages_limit = 300
652
653; With this option, you can disable the framed mode of the Overlay plugin. Use it if your website contains a framebuster.
654overlay_disable_framed_mode = 0
655
656; Controls whether the user is able to upload a custom logo for their Matomo install
657enable_custom_logo = 1
658
659; By default we check whether the Custom logo is writable or not, before we display the Custom logo file uploader
660enable_custom_logo_check = 1
661
662; If php is running in a chroot environment, when trying to import CSV files with createTableFromCSVFile(),
663; Mysql will try to load the chrooted path (which is incomplete). To prevent an error, here you can specify the
664; absolute path to the chroot environment. eg. '/path/to/matomo/chrooted/'
665absolute_chroot_path =
666
667; The path (relative to the Matomo directory) in which Matomo temporary files are stored.
668; Defaults to ./tmp (the tmp/ folder inside the Matomo directory)
669tmp_path = "/tmp"
670
671; In some rare cases it may be useful to explicitely tell Matomo not to use LOAD DATA INFILE
672; This may for example be useful when doing Mysql AWS replication
673enable_load_data_infile = 1
674
675; By setting this option to 0:
676; - links to Enable/Disable/Uninstall plugins will be hidden and disabled
677; - links to Uninstall themes will be disabled (but user can still enable/disable themes)
678enable_plugins_admin = 1
679
680; By setting this option to 0 the users management will be disabled
681enable_users_admin = 1
682
683; By setting this option to 0 the websites management will be disabled
684enable_sites_admin = 1
685
686; By setting this option to 1, it will be possible for Super Users to upload Matomo plugin ZIP archives directly in Matomo Administration.
687; Enabling this opens a remote code execution vulnerability where
688; an attacker who gained Super User access could execute custom PHP code in a Matomo plugin.
689enable_plugin_upload = 0
690
691; By setting this option to 0 (e.g. in common.config.ini.php) the installer will be disabled.
692enable_installer = 1
693
694; By setting this option to 0, you can prevent Super User from editing the Geolocation settings.
695enable_geolocation_admin = 1
696
697; By setting this option to 0, the old raw data and old report data purging features will be hidden from the UI
698; Note: log purging and old data purging still occurs, just the Super User cannot change the settings.
699enable_delete_old_data_settings_admin = 1
700
701; By setting this option to 0, the following settings will be hidden and disabled from being set in the UI:
702; - Archiving settings
703; - Update settings
704; - Email server settings
705; - Trusted Matomo Hostname
706enable_general_settings_admin = 1
707
708; Disabling this will disable features like automatic updates for Matomo,
709; its plugins and components like the GeoIP database, referrer spam blacklist or search engines and social network definitions
710enable_internet_features = 1
711
712; By setting this option to 0, it will disable the "Auto update" feature
713enable_auto_update = 1
714
715; By setting this option to 0, no emails will be sent in case of an available core.
716; If set to 0 it also disables the "sent plugin update emails" feature in general and the related setting in the UI.
717enable_update_communication = 1
718
719; Comma separated list of plugin names for which console commands should be loaded (applies when Matomo is not installed yet)
720always_load_commands_from_plugin=
721
722; This controls whether the pivotBy query parameter can be used with any dimension or just subtable
723; dimensions. If set to 1, it will fetch a report with a segment for each row of the table being pivoted.
724; At present, this is very inefficient, so it is disabled by default.
725pivot_by_filter_enable_fetch_by_segment = 0
726
727; This controls the default maximum number of columns to display in a pivot table. Since a pivot table displays
728; a table's rows as columns, the number of columns can become very large, which will affect webpage layouts.
729; Set to -1 to specify no limit. Note: The pivotByColumnLimit query parameter can be used to override this default
730; on a per-request basis;
731pivot_by_filter_default_column_limit = 10
732
733; If set to 0 it will disable advertisements for providers of Professional Support for Matomo.
734piwik_professional_support_ads_enabled = 1
735
736; The number of days to wait before sending the JavaScript tracking code email reminder.
737num_days_before_tracking_code_reminder = 5
738
739; The maximum number of segments that can be compared simultaneously.
740data_comparison_segment_limit = 5
741
742; The maximum number of periods that can be compared simultaneously.
743data_comparison_period_limit = 5
744
745; The path to a custom cacert.pem file Matomo should use.
746; By default Matomo uses a file extracted from the Firefox browser and provided here: https://curl.haxx.se/docs/caextract.html.
747; The file contains root CAs and is used to determine if the chain of a SSL certificate is valid and it is safe to connect.
748; Most users will not have to use a custom file here, but if you run your Matomo instance behind a proxy server/firewall that
749; breaks and reencrypts SSL connections you can set your custom file here.
750custom_cacert_pem=
751
752; Whether or not to send weekly emails to superusers about tracking failures.
753; Default is 1.
754enable_tracking_failures_notification = 1
755
756[Tracker]
757
758; Matomo uses "Privacy by default" model. When one of your users visit multiple of your websites tracked in this Matomo,
759; Matomo will create for this user a fingerprint that will be different across the multiple websites.
760; If you want to track unique users across websites you may set this setting to 1.
761; Note: setting this to 0 increases your users' privacy.
762enable_fingerprinting_across_websites = 0
763
764; Matomo uses first party cookies by default. If set to 1,
765; the visit ID cookie will be set on the Matomo server domain as well
766; this is useful when you want to do cross websites analysis
767use_third_party_id_cookie = 0
768
769; If tracking does not work for you or you are stuck finding an issue, you might want to enable the tracker debug mode.
770; Once enabled (set to 1) messages will be logged to all loggers defined in "[log] log_writers" config.
771debug = 0
772
773; This option is an alternative to the debug option above. When set to 1, you can debug tracker request by adding
774; a debug=1 query parameter in the URL. All other HTTP requests will not have debug enabled. For security reasons this
775; option should be only enabled if really needed and only for a short time frame. Otherwise anyone can set debug=1 and
776; see the log output as well.
777debug_on_demand = 0
778
779; This setting is described in this FAQ: https://matomo.org/faq/how-to/faq_175/
780; Note: generally this should only be set to 1 in an intranet setting, where most users have the same configuration (browsers, OS)
781; and the same IP. If left to 0 in this setting, all visitors will be counted as one single visitor.
782trust_visitors_cookies = 0
783
784; name of the cookie used to store the visitor information
785; This is used only if use_third_party_id_cookie = 1
786cookie_name = _pk_uid
787
788; by default, the Matomo tracking cookie expires in 13 months (365 + 28 days)
789; This is used only if use_third_party_id_cookie = 1
790cookie_expire = 33955200;
791
792; The path on the server in which the cookie will be available on.
793; Defaults to empty. See spec in https://curl.haxx.se/rfc/cookie_spec.html
794; This is used for the Ignore cookie, and the third party cookie if use_third_party_id_cookie = 1
795cookie_path =
796
797; The domain on the server in which the cookie will be available on.
798; Defaults to empty. See spec in https://curl.haxx.se/rfc/cookie_spec.html
799; This is used for the third party cookie if use_third_party_id_cookie = 1
800cookie_domain =
801
802; set to 0 if you want to stop tracking the visitors. Useful if you need to stop all the connections on the DB.
803record_statistics = 1
804
805; length of a visit in seconds. If a visitor comes back on the website visit_standard_length seconds
806; after their last page view, it will be recorded as a new visit. In case you are using the Matomo JavaScript tracker to
807; calculate the visit count correctly, make sure to call the method "setSessionCookieTimeout" eg
808; `_paq.push(['setSessionCookieTimeout', timeoutInSeconds=1800])`
809visit_standard_length = 1800
810
811; The amount of time in the past to match the current visitor to a known visitor via fingerprint. Defaults to visit_standard_length.
812; If you are looking for higher accuracy of "returning visitors" metrics, you may set this value to 86400 or more.
813; This is especially useful when you use the Tracking API where tracking Returning Visitors often depends on this setting.
814; The value window_look_back_for_visitor is used only if it is set to greater than visit_standard_length.
815; Note: visitors with visitor IDs will be matched by visitor ID from any point in time, this is only for recognizing visitors
816; by device fingerprint.
817window_look_back_for_visitor = 0
818
819; visitors that stay on the website and view only one page will be considered as time on site of 0 second
820default_time_one_page_visit = 0
821
822; Comma separated list of URL query string variable names that will be removed from your tracked URLs
823; By default, Matomo will remove the most common parameters which are known to change often (eg. session ID parameters)
824url_query_parameter_to_exclude_from_url = "gclid,fbclid,fb_xd_fragment,fb_comment_id,phpsessid,jsessionid,sessionid,aspsessionid,doing_wp_cron,sid,pk_vid"
825
826; if set to 1, Matomo attempts a "best guess" at the visitor's country of
827; origin when the preferred language tag omits region information.
828; The mapping is defined in core/DataFiles/LanguageToCountry.php,
829enable_language_to_country_guess = 1
830
831; When the `./console core:archive` cron hasn't been setup, we still need to regularly run some maintenance tasks.
832; Visits to the Tracker will try to trigger Scheduled Tasks (eg. scheduled PDF/HTML reports by email).
833; Scheduled tasks will only run if 'Enable Matomo Archiving from Browser' is enabled in the General Settings.
834; Tasks run once every hour maximum, they might not run every hour if traffic is low.
835; Set to 0 to disable Scheduled tasks completely.
836scheduled_tasks_min_interval = 3600
837
838; name of the cookie to ignore visits
839ignore_visits_cookie_name = piwik_ignore
840
841; Comma separated list of variable names that will be read to define a Campaign name, for example CPC campaign
842; Example: If a visitor first visits 'index.php?piwik_campaign=Adwords-CPC' then it will be counted as a campaign referrer named 'Adwords-CPC'
843; Includes by default the GA style campaign parameters
844campaign_var_name = "pk_cpn,pk_campaign,piwik_campaign,utm_campaign,utm_source,utm_medium"
845
846; Comma separated list of variable names that will be read to track a Campaign Keyword
847; Example: If a visitor first visits 'index.php?piwik_campaign=Adwords-CPC&piwik_kwd=My killer keyword' ;
848; then it will be counted as a campaign referrer named 'Adwords-CPC' with the keyword 'My killer keyword'
849; Includes by default the GA style campaign keyword parameter utm_term
850campaign_keyword_var_name = "pk_kwd,pk_keyword,piwik_kwd,utm_term"
851
852; if set to 1, actions that contain different campaign information from the visitor's ongoing visit will
853; be treated as the start of a new visit. This will include situations when campaign information was absent before,
854; but is present now.
855create_new_visit_when_campaign_changes = 1
856
857; if set to 1, actions that contain different website referrer information from the visitor's ongoing visit
858; will be treated as the start of a new visit. This will include situations when website referrer information was
859; absent before, but is present now.
860create_new_visit_when_website_referrer_changes = 0
861
862; ONLY CHANGE THIS VALUE WHEN YOU DO NOT USE MATOMO ARCHIVING, SINCE THIS COULD CAUSE PARTIALLY MISSING ARCHIVE DATA
863; Whether to force a new visit at midnight for every visitor. Default 1.
864create_new_visit_after_midnight = 1
865
866; maximum length of a Page Title or a Page URL recorded in the log_action.name table
867page_maximum_length = 1024;
868
869; Tracker cache files are the simple caching layer for Tracking.
870; TTL: Time to live for cache files, in seconds. Default to 5 minutes.
871tracker_cache_file_ttl = 300
872
873; Whether Bulk tracking requests to the Tracking API requires the token_auth to be set.
874bulk_requests_require_authentication = 0
875
876; Whether Bulk tracking requests will be wrapped within a DB Transaction.
877; This greatly increases performance of Log Analytics and in general any Bulk Tracking API requests.
878bulk_requests_use_transaction = 1
879
880; DO NOT USE THIS SETTING ON PUBLICLY AVAILABLE MATOMO SERVER
881; !!! Security risk: if set to 0, it would allow anyone to push data to Matomo with custom dates in the past/future and even with fake IPs!
882; When using the Tracking API, to override either the datetime and/or the visitor IP,
883; token_auth with an "admin" access is required. If you set this setting to 0, the token_auth will not be required anymore.
884; DO NOT USE THIS SETTING ON PUBLIC MATOMO SERVERS
885tracking_requests_require_authentication = 1
886
887; By default, Matomo accepts only tracking requests for up to 1 day in the past. For tracking requests with a custom date
888; date is older than 1 day, Matomo requires an authenticated tracking requests. By setting this config to another value
889; You can change how far back Matomo will track your requests without authentication. The configured value is in seconds.
890tracking_requests_require_authentication_when_custom_timestamp_newer_than = 86400;
891
892; if set to 1, all the SQL queries will be recorded by the profiler
893; and a profiling summary will be printed at the end of the request
894; NOTE: you must also set "[Tracker] debug = 1" to enable the profiler.
895enable_sql_profiler = 0
896
897[Segments]
898; Reports with segmentation in API requests are processed in real time.
899; On high traffic websites it is recommended to pre-process the data
900; so that the analytics reports are always fast to load.
901; You can define below the list of Segments strings
902; for which all reports should be Archived during the cron execution
903; All segment values MUST be URL encoded.
904;Segments[]="visitorType==new"
905;Segments[]="visitorType==returning,visitorType==returningCustomer"
906
907; If you define Custom Variables for your visitor, for example set the visit type
908;Segments[]="customVariableName1==VisitType;customVariableValue1==Customer"
909
910[Deletelogs]
911; delete_logs_enable - enable (1) or disable (0) delete log feature. Make sure that all archives for the given period have been processed (setup a cronjob!),
912; otherwise you may lose tracking data.
913; delete_logs_schedule_lowest_interval - lowest possible interval between two table deletes (in days, 1|7|30). Default: 7.
914; delete_logs_older_than - delete data older than XX (days). Default: 180
915delete_logs_enable = 0
916delete_logs_schedule_lowest_interval = 7
917delete_logs_older_than = 180
918delete_logs_max_rows_per_query = 100000
919enable_auto_database_size_estimate = 1
920enable_database_size_estimate = 1
921delete_logs_unused_actions_schedule_lowest_interval = 30
922
923[Deletereports]
924delete_reports_enable = 0
925delete_reports_older_than = 12
926delete_reports_keep_basic_metrics = 1
927delete_reports_keep_day_reports = 0
928delete_reports_keep_week_reports = 0
929delete_reports_keep_month_reports = 1
930delete_reports_keep_year_reports = 1
931delete_reports_keep_range_reports = 0
932delete_reports_keep_segment_reports = 0
933
934[mail]
935defaultHostnameIfEmpty = defaultHostnameIfEmpty.example.org ; default Email @hostname, if current host can't be read from system variables
936transport = ; smtp (using the configuration below) or empty (using built-in mail() function)
937port = ; optional; defaults to 25 when security is none or tls; 465 for ssl
938host = ; SMTP server address
939type = ; SMTP Auth type. By default: NONE. For example: LOGIN
940username = ; SMTP username
941password = ; SMTP password
942encryption = ; SMTP transport-layer encryption, either 'ssl', 'tls', or empty (i.e., none).
943
944[proxy]
945type = BASIC ; proxy type for outbound/outgoing connections; currently, only BASIC is supported
946host = ; Proxy host: the host name of your proxy server (mandatory)
947port = ; Proxy port: the port that the proxy server listens to. There is no standard default, but 80, 1080, 3128, and 8080 are popular
948username = ; Proxy username: optional; if specified, password is mandatory
949password = ; Proxy password: optional; if specified, username is mandatory
950
951[Plugins]
952; list of plugins (in order they will be loaded) that are activated by default in the Matomo platform
953Plugins[] = CorePluginsAdmin
954Plugins[] = CoreAdminHome
955Plugins[] = CoreHome
956Plugins[] = WebsiteMeasurable
957Plugins[] = IntranetMeasurable
958Plugins[] = Diagnostics
959Plugins[] = CoreVisualizations
960Plugins[] = Proxy
961Plugins[] = API
962Plugins[] = Widgetize
963Plugins[] = Transitions
964Plugins[] = LanguagesManager
965Plugins[] = Actions
966Plugins[] = Dashboard
967Plugins[] = MultiSites
968Plugins[] = Referrers
969Plugins[] = UserLanguage
970Plugins[] = DevicesDetection
971Plugins[] = Goals
972Plugins[] = Ecommerce
973Plugins[] = SEO
974Plugins[] = Events
975Plugins[] = UserCountry
976Plugins[] = GeoIp2
977Plugins[] = VisitsSummary
978Plugins[] = VisitFrequency
979Plugins[] = VisitTime
980Plugins[] = VisitorInterest
981Plugins[] = RssWidget
982Plugins[] = Feedback
983Plugins[] = Monolog
984
985Plugins[] = Login
986Plugins[] = TwoFactorAuth
987Plugins[] = UsersManager
988Plugins[] = SitesManager
989Plugins[] = Installation
990Plugins[] = CoreUpdater
991Plugins[] = CoreConsole
992Plugins[] = ScheduledReports
993Plugins[] = UserCountryMap
994Plugins[] = Live
995Plugins[] = CustomVariables
996Plugins[] = PrivacyManager
997Plugins[] = ImageGraph
998Plugins[] = Annotations
999Plugins[] = MobileMessaging
1000Plugins[] = Overlay
1001Plugins[] = SegmentEditor
1002Plugins[] = Insights
1003Plugins[] = Morpheus
1004Plugins[] = Contents
1005Plugins[] = BulkTracking
1006Plugins[] = Resolution
1007Plugins[] = DevicePlugins
1008Plugins[] = Heartbeat
1009Plugins[] = Intl
1010Plugins[] = Marketplace
1011Plugins[] = ProfessionalServices
1012Plugins[] = UserId
1013Plugins[] = CustomPiwikJs
1014Plugins[] = Tour
1015
1016[PluginsInstalled]
1017PluginsInstalled[] = Diagnostics
1018PluginsInstalled[] = Login
1019PluginsInstalled[] = CoreAdminHome
1020PluginsInstalled[] = UsersManager
1021PluginsInstalled[] = SitesManager
1022PluginsInstalled[] = Installation
1023PluginsInstalled[] = Monolog
1024PluginsInstalled[] = Intl
1025
1026[APISettings]
1027; Any key/value pair can be added in this section, they will be available via the REST call
1028; index.php?module=API&method=API.getSettings
1029; This can be used to expose values from Matomo, to control for example a Mobile app tracking
1030SDK_batch_size = 10
1031SDK_interval_value = 30
1032
1033; NOTE: do not directly edit this file! See notice at the top