summaryrefslogtreecommitdiff
path: root/etc/couchdb/default.ini.tpl.in
blob: 1fa95b4a1df19dca72c851fb5ec48f9b143b47c5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
; @configure_input@

; Upgrading CouchDB will overwrite this file.

[couchdb]
database_dir = %localstatelibdir%
view_index_dir = %localstatelibdir%
util_driver_dir = %couchprivlibdir%
max_document_size = 4294967296 ; 4 GB
max_attachment_chunk_size = 4294967296 ; 4GB
os_process_timeout = 5000 ; 5 seconds. for view and external servers.
max_dbs_open = 100
delayed_commits = false
batch_save_size = 1000 ; number of docs at which to save a batch
batch_save_interval = 1000 ; milliseconds after which to save batches

[httpd]
port = 5984
bind_address = 127.0.0.1
authentication_handlers = {couch_httpd_oauth, oauth_authentication_handler}, {couch_httpd_auth, default_authentication_handler}
default_handler = {couch_httpd_db, handle_request}
WWW-Authenticate = Basic realm="administrator"

[log]
file = %localstatelogdir%/couch.log
level = info

[couch_httpd_auth]
authentication_db = users
secret = replace this with a real secret in your local.ini file
require_valid_user = false

[query_servers]
javascript = %bindir%/%couchjs_command_name% %localdatadir%/server/main.js

; Changing reduce_limit to false will disable reduce_limit.
; If you think you're hitting reduce_limit with a "good" reduce function,
; please let us know on the mailing list so we can fine tune the heuristic.
[query_server_config]
reduce_limit = true

; enable external as an httpd handler, then link it with commands here.
; note, this api is still under consideration.
; [external]
; mykey = /path/to/mycommand

[daemons]
view_manager={couch_view, start_link, []}
external_manager={couch_external_manager, start_link, []}
db_update_notifier={couch_db_update_notifier_sup, start_link, []}
batch_save={couch_batch_save_sup, start_link, []}
query_servers={couch_query_servers, start_link, []}
httpd={couch_httpd, start_link, []}
stats_aggregator={couch_stats_aggregator, start, []}
stats_collector={couch_stats_collector, start, []}
uuids={couch_uuids, start, []}

[httpd_global_handlers]
/ = {couch_httpd_misc_handlers, handle_welcome_req, <<"Welcome">>}
favicon.ico = {couch_httpd_misc_handlers, handle_favicon_req, "%localdatadir%/www"}

_utils = {couch_httpd_misc_handlers, handle_utils_dir_req, "%localdatadir%/www"}
_all_dbs = {couch_httpd_misc_handlers, handle_all_dbs_req}
_active_tasks = {couch_httpd_misc_handlers, handle_task_status_req}
_config = {couch_httpd_misc_handlers, handle_config_req}
_replicate = {couch_httpd_misc_handlers, handle_replicate_req}
_uuids = {couch_httpd_misc_handlers, handle_uuids_req}
_restart = {couch_httpd_misc_handlers, handle_restart_req}
_stats = {couch_httpd_stats_handlers, handle_stats_req}
_log = {couch_httpd_misc_handlers, handle_log_req}
_sleep = {couch_httpd_misc_handlers, handle_sleep_req}
_session = {couch_httpd_auth, handle_session_req}
_oauth = {couch_httpd_oauth, handle_oauth_req}
_user = {couch_httpd_auth, handle_user_req}

[httpd_db_handlers]
_view_cleanup = {couch_httpd_db, handle_view_cleanup_req}
_compact = {couch_httpd_db, handle_compact_req}
_design = {couch_httpd_db, handle_design_req}
_view = {couch_httpd_view, handle_db_view_req}
_temp_view = {couch_httpd_view, handle_temp_view_req}
_changes = {couch_httpd_db, handle_changes_req}

; The external module takes an optional argument allowing you to narrow it to a
; single script. Otherwise the script name is inferred from the first path section
; after _external's own path.
; _mypath = {couch_httpd_external, handle_external_req, <<"mykey">>}
; _external = {couch_httpd_external, handle_external_req}

[httpd_design_handlers]
_view = {couch_httpd_view, handle_view_req}
_show = {couch_httpd_show, handle_doc_show_req}
_list = {couch_httpd_show, handle_view_list_req}
_info = {couch_httpd_db,   handle_design_info_req}
_update = {couch_httpd_show, handle_doc_update_req}

[uuids]
; Known algorithms:
;   random - 128 bits of random awesome
;     All awesome, all the time.
;   sequential - monotonically increasing ids with random increments
;     First 26 hex characters are random. Last 6 increment in
;     random amounts until an overflow occurs. On overflow, the
;     random prefix is regenerated and the process starts over.
;   utc_random - Time since Jan 1, 1970 UTC with microseconds
;     First 14 characters are the time in hex. Last 18 are random.
algorithm = random

[stats]
; rate is in milliseconds
rate = 1000
; sample intervals are in seconds
samples = [0, 60, 300, 900]

; Style guide for descriptions: Start with a lowercase letter & do not add 
; a trailing full-stop / period.
; Please keep this in alphabetical order.
[stats_descriptions]
{couchdb, database_writes} = number of times a database was changed
{couchdb, database_reads} = number of times a document was read from a database
{couchdb, open_databases} = number of open databases
{couchdb, open_os_files} = number of file descriptors CouchDB has open
{couchdb, request_time} = length of a request inside CouchDB without MochiWeb

{httpd, bulk_requests} = number of bulk requests
{httpd, requests} = number of HTTP requests
{httpd, temporary_view_reads} = number of temporary view reads
{httpd, view_reads} = number of view reads
{httpd, clients_requesting_changes} = number of clients for continuous _changes

{httpd_request_methods, 'COPY'} = number of HTTP COPY requests
{httpd_request_methods, 'DELETE'} = number of HTTP DELETE requests
{httpd_request_methods, 'GET'} = number of HTTP GET requests
{httpd_request_methods, 'HEAD'} = number of HTTP HEAD requests
{httpd_request_methods, 'MOVE'} = number of HTTP MOVE requests
{httpd_request_methods, 'POST'} = number of HTTP POST requests
{httpd_request_methods, 'PUT'} = number of HTTP PUT requests

{httpd_status_codes, '200'} = number of HTTP 200 OK responses
{httpd_status_codes, '201'} = number of HTTP 201 Created responses
{httpd_status_codes, '202'} = number of HTTP 202 Accepted responses
{httpd_status_codes, '301'} = number of HTTP 301 Moved Permanently responses
{httpd_status_codes, '304'} = number of HTTP 304 Not Modified responses
{httpd_status_codes, '400'} = number of HTTP 400 Bad Request responses
{httpd_status_codes, '401'} = number of HTTP 401 Unauthorized responses
{httpd_status_codes, '403'} = number of HTTP 403 Forbidden responses
{httpd_status_codes, '404'} = number of HTTP 404 Not Found responses
{httpd_status_codes, '405'} = number of HTTP 405 Method Not Allowed responses
{httpd_status_codes, '409'} = number of HTTP 409 Conflict responses
{httpd_status_codes, '412'} = number of HTTP 412 Precondition Failed responses
{httpd_status_codes, '500'} = number of HTTP 500 Internal Server Error responses