diff options
Diffstat (limited to 'etc/couchdb/default.ini.tpl.in')
-rw-r--r-- | etc/couchdb/default.ini.tpl.in | 897 |
1 files changed, 674 insertions, 223 deletions
diff --git a/etc/couchdb/default.ini.tpl.in b/etc/couchdb/default.ini.tpl.in index 3267001ae..e98bce620 100644 --- a/etc/couchdb/default.ini.tpl.in +++ b/etc/couchdb/default.ini.tpl.in @@ -1,100 +1,350 @@ ; @configure_input@ -; Upgrading CouchDB will overwrite this file. -[vendor] -name = %package_author_name% -version = %version% +;; WARNING! DO NOT MODIFY THIS FILE! +;; Upgrading CouchDB will overwrite this file! +;; Instead, copy it as local.ini within the same directory and edit it to +;; override these default setting. Make sure that couchdb user has read-write +;; permissions for it. +;; +;; For the latest actual configuration options description please consult with +;; CouchDB docs: +;; http://docs.couchdb.org/en/latest/config/index.html +;; + + +;------------------------------------------------------------------------------- +; Server Administrators +;------------------------------------------------------------------------------- +; To create an admin account uncomment the '[admins]' section below and add a +; line in the format 'username = password'. When you next start CouchDB, it +; will change the password to a hash (so that your passwords don't linger +; around in plain-text files). You can add more admin accounts with more +; 'username = password' lines. Don't forget to restart CouchDB after +; changing this. +[admins] +;admin = mysecretpassword + + +;------------------------------------------------------------------------------- +; CouchDB Base Configuration +;------------------------------------------------------------------------------- [couchdb] + +; Location of CouchDB's databases files. database_dir = %localstatelibdir% + +; Location of CouchDB's view index files. view_index_dir = %localstatelibdir% + +; Specified location of Erlang's binary drivers. util_driver_dir = %couchprivlibdir% -max_document_size = 4294967296 ; 4 GB -os_process_timeout = 5000 ; 5 seconds. for view and external servers. -max_dbs_open = 100 -delayed_commits = true ; set this to false to ensure an fsync before 201 Created is returned + +; Location of CouchDB plugins. +plugin_dir = %locallibdir%/plugins + +; Location of the URI file. +; Used to locate CouchDB active instance host:port pair. +; uri_file = %localstaterundir%/couch.uri -; Method used to compress everything that is appended to database and view index files, except -; for attachments (see the attachments section). Available methods are: + +; CouchDB instance UUID. Sets automatically on first start. +uuid = + +; This option places an upper bound on the number of databases that can be open +; at one time. CouchDB reference counts database accesses internally and will +; close idle databases when it must. +; Sometimes it is necessary to keep more than the default open at once, such as +; in deployments where many databases will be continuously replicating. +; +max_dbs_open = 100 + +; Defines limit of size in bytes that document may has in JSON form. +; Doesn’t applies for attachments since they are been transferred as stream of +; chunks. +; +max_document_size = 4294967296 ; 4 GB + +; Number of milliseconds that external processes such as query servers and +; externals may process CouchDB commands before return any result. +; Keeping this value smaller you’ll be ensured that your services works fast, +; but you may tweak it depending on your needs. +; +os_process_timeout = 5000 ; 5 seconds + +; When this config value as false the CouchDB provides guaranty of fsync call +; before return HTTP 201 Created response on each document saving. +; Setting this option as `true` may raise some overall performance with cost of +; losing durability - it’s strongly not recommended to do such in production. +; +delayed_commits = true + +; Method used to compress everything that is appended to database and view index +; files, except for attachments (see the attachments section). +; Available methods are: +; +; * none - no compression +; * snappy - use google snappy, a very fast compressor/decompressor +; * deflate_[N] - use zlib's deflate, N is the compression level which ranges +; from 1 (fastest, lowest compression ratio) to 9 (slowest, +; highest compression ratio) ; -; none - no compression -; snappy - use google snappy, a very fast compressor/decompressor -; deflate_[N] - use zlib's deflate, N is the compression level which ranges from 1 (fastest, -; lowest compression ratio) to 9 (slowest, highest compression ratio) file_compression = snappy + ; Higher values may give better read performance due to less read operations ; and/or more OS page cache hits, but they can also increase overall response ; time for writes when there are many attachment write requests in parallel. +; attachment_stream_buffer_size = 4096 -plugin_dir = %locallibdir%/plugins -[database_compaction] -; larger buffer sizes can originate smaller files -doc_buffer_size = 524288 ; value in bytes -checkpoint_after = 5242880 ; checkpoint after every N bytes were written +[attachments] +; Defines zlib compression level for the attachments from 1 (lowest, fastest) +; to 9 (highest, slowest). 0 value disables compression. +; +compression_level = 8 + +; List of attachments MIME types that are allowed to be compressed. +compressible_types = text/*, application/javascript, application/json, application/xml + + +[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. +; * utc_id - Time since Jan 1, 1970 UTC with microseconds, +; plus utc_id_suffix string. +; First 14 characters are the time in hex, +; uuids/utc_id_suffix string value is appended to these. +; +algorithm = sequential + +; The utc_id_suffix value will be appended to uuids generated by the utc_id +; algorithm. Replicating instances should have unique utc_id_suffix values +; to ensure uniqueness of utc_id ids. +; +utc_id_suffix = -[view_compaction] -; larger buffer sizes can originate smaller files -keyvalue_buffer_size = 2097152 ; value in bytes + +;------------------------------------------------------------------------------- +; HTTP Server +;------------------------------------------------------------------------------- [httpd] -port = 5984 + +; Defines the IP address by which CouchDB will be accessible. +; To let CouchDB listen any available IP address, just setup 0.0.0.0 value: +;bind_address = 0.0.0.0 +; For IPv6 support you need to set ::1 if you want to let CouchDB listen local +; IP address: +;bind_address = ::1 +; or :: for any available: +;bind_address = :: +; bind_address = 127.0.0.1 -authentication_handlers = {couch_httpd_oauth, oauth_authentication_handler}, {couch_httpd_auth, cookie_authentication_handler}, {couch_httpd_auth, default_authentication_handler} -default_handler = {couch_httpd_db, handle_request} -secure_rewrites = true -vhost_global_handlers = _utils, _uuids, _session, _oauth, _users -allow_jsonp = false + +; Defined the port number to listen. To let CouchDB handle any free port, set +; this option to 0: +;port = 0 +; The assigned port for CouchDB could be located in the URI file. +; +port = 5984 + ; Options for the MochiWeb HTTP server. ;server_options = [{backlog, 128}, {acceptor_pool_size, 16}] + ; For more socket options, consult Erlang's module 'inet' man page. ;socket_options = [{recbuf, 262144}, {sndbuf, 262144}, {nodelay, true}] -log_max_chunk_size = 1000000 + +; List of used authentication handlers that used by CouchDB. You may extend +; them via third-party plugins or remove some of them if you won’t let users +; to use one of provided methods. +; +; Available handlers: +; +; {couch_httpd_oauth, oauth_authentication_handler}: handles OAuth; +; {couch_httpd_auth, cookie_authentication_handler}: used for Cookie auth; +; {couch_httpd_auth, proxy_authentication_handler}: used for Proxy auth; +; {couch_httpd_auth, default_authentication_handler}: used for Basic auth; +; {couch_httpd_auth, null_authentication_handler}: Everlasting Admin Party! +; +authentication_handlers = {couch_httpd_oauth, oauth_authentication_handler}, {couch_httpd_auth, cookie_authentication_handler}, {couch_httpd_auth, default_authentication_handler} + +; Sets the configuration modification whitelist. Only whitelisted values may be +; changed via the config's HTTP API. To allow the admin to change this list over +; HTTP, remember to include {httpd,config_whitelist} itself to the whitelist. +; Excluding it from the list would require editing config file for updates. +; For example: +;config_whitelist = [{httpd,config_whitelist}, {log,level}] +; +config_whitelist = + +; Controls JSONP feature support. +allow_jsonp = false + +; Controls CORS feature support. enable_cors = false +; Isolates databases via subdomains for rewrites. +secure_rewrites = true + +; Specifies default HTTP requests handler. +default_handler = {couch_httpd_db, handle_request} + +; List of global handlers that are available for virtual hosts. +vhost_global_handlers = _utils, _uuids, _session, _oauth, _users + +; Specifies default timeout value for Changes Feed in milliseconds. +changes_feed = 60000 ; 60 seconds + +; Defines maximum chunk size in bytes for _log resource. +log_max_chunk_size = 1000000 + +; The x_forwarded_host header (X-Forwarded-Host by default) is used to forward +; the original value of the Host header field in case, for example, if a reverse +; proxy is rewriting the “Host” header field to some internal host name before +; forward the request to CouchDB. +; +x_forwarded_host = X-Forwarded-Host + +; The x_forwarded_proto header is used for identifying the originating +; protocol of an HTTP request, since a reverse proxy may communicate +; with CouchDB instance using HTTP even if the request to the reverse proxy is +; HTTPS. +; +x_forwarded_proto = X-Forwarded-Proto + +; The x_forwarded_ssl header tells CouchDB that it should use the https scheme +; instead of the http. Actually, it’s a synonym for "X-Forwarded-Proto: https" +; header, but used by some reverse proxies. +; +x_forwarded_ssl = X-Forwarded-Ssl + +; Set this option to trigger basic-auth popup on unauthorized requests. +; Commonly used with require_valid_user option from [couch_httpd_auth] section. +; If you don't configure a WWW-Authenticate header, CouchDB will send +; Basic realm="server" in order to prevent you getting logged out. +; +;WWW-Authenticate = Basic realm="Welcome to the CouchDB!" + + +;------------------------------------------------------------------------------- +; SSL Support +;------------------------------------------------------------------------------- +; To activate SSL support, enable HTTPS daemon first: +; +; [daemons] +; httpsd = {couch_httpd, start_link, [https]} +; [ssl] + +; Port number for HTTPS connections. port = 6984 -[log] -file = %localstatelogdir%/couch.log -level = info -include_sasl = true +; Path to file containing PEM encoded CA certificates (trusted +; certificates used for verifying a peer certificate). May be omitted if +; you do not want to verify the peer. +; +;cacert_file = /etc/ssl/certs + +; Path to a file containing the user’s certificate. +;cert_file = /etc/couchdb/server.pem + +; Path to file containing user’s private PEM encoded key. +;key_file = /etc/couchdb/server_key.pem + +; Certificate's password in plain text. Only used if the private keyfile is +; password protected. Make sure that only trusted users may read config file. +; +;password = somepassword + +; Maximum peer certificate depth (must be set even if certificate +; validation is off). +; +ssl_certificate_max_depth = 1 + +; Set to true to validate peer certificates. +verify_ssl_certificates = false + +; The verification fun (optional) if not specified, the default +; verification fun will be used. The function definition should be written in +; the next format: +;verify_fun = {Module, VerifyFun} + + +;------------------------------------------------------------------------------- +; Authentication and Authorization +;------------------------------------------------------------------------------- [couch_httpd_auth] +; Makes cookies persistent if true. +allow_persistent_cookies = false + +; Number of user context object's to cache in memory to reduce disk lookups. +auth_cache_size = 50 + +; Specifies name of the system database for storing CouchDB users. authentication_db = _users + +; Specifies location for redirection on successful authentication +; if text/html response accepted by client (via Accept header). +; authentication_redirect = /_utils/session.html + +; Number of iterations for password hashing by PBKDF2 algorithm. +; Higher number provides better hash durability, but with cost of performance +; on each request that requires authentication. +; +iterations = 10 + +; When this option true the secret is required for Proxy Auth. +proxy_use_secret = false + +; Allows all users browse /_all_docs resource of authentication database and +; activates public_fields feature. +; +users_db_public = false + +; Comma-separated list of field names that will be available to view for +; any user document in authentication_db. If unset or not specified, +; authenticated users may retrieve only their own docs. +; You need set users_db_public=true to enable this feature. +; +public_fields = + +; When this option true no requests allowed from anonymous users - +; everyone should be authenticated. If you set this to true, you would like also +; to set the WWW-Authenticate option in [httpd] section. +; require_valid_user = false -timeout = 600 ; number of seconds before automatic logout -auth_cache_size = 50 ; size is number of cache entries -allow_persistent_cookies = false ; set to true to allow persistent cookies -iterations = 10 ; iterations for password hashing -; comma-separated list of public fields, 404 if empty -; public_fields = -[cors] -credentials = false -; List of origins separated by a comma, * means accept all -; Origins must include the scheme: http://example.com -; You can’t set origins: * and credentials = true at the same time. -;origins = * -; List of accepted headers separated by a comma -; headers = -; List of accepted methods -; methods = +; Authentication secret. Sets automatically on first auth if was unset. +secret = +; Number of seconds since the last request before session will be expired. +timeout = 600 + +; Specifies HTTP header name for Proxy Auth that contains the list of user’s +; roles separated by a comma. +; +x_auth_roles = X-Auth-CouchDB-Roles + +; Specifies HTTP header name for Proxy Auth with token to authenticate +; the authorization. This token is an HMAC-SHA1 created from secret key and +; username. The secret key should be the same in the client and CouchDB node. +; This token is optional if value of proxy_use_secret option isn’t true. +; +x_auth_roles = X-Auth-CouchDB-Token + +; Specifies HTTP header name for Proxy Auth containing the username. +x_auth_username = X-Auth-CouchDB-UserName -; Configuration for a vhost -;[cors:http://example.com] -; credentials = false -; List of origins separated by a comma -; Origins must include the scheme: http://example.com -; You can’t set origins: * and credentials = true at the same time. -;origins = -; List of accepted headers separated by a comma -; headers = -; List of accepted methods -; methods = [couch_httpd_oauth] ; If set to 'true', oauth token and consumer secrets will be looked up @@ -118,159 +368,70 @@ credentials = false ; } ; } ; } +; use_users_db = false -[query_servers] -javascript = %bindir%/%couchjs_command_name% %localbuilddatadir%/server/main.js -coffeescript = %bindir%/%couchjs_command_name% %localbuilddatadir%/server/main-coffee.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 -os_process_limit = 25 +;------------------------------------------------------------------------------- +; Logging +;------------------------------------------------------------------------------- -[daemons] -index_server={couch_index_server, start_link, []} -external_manager={couch_external_manager, start_link, []} -query_servers={couch_query_servers, start_link, []} -vhosts={couch_httpd_vhost, start_link, []} -httpd={couch_httpd, start_link, []} -stats_aggregator={couch_stats_aggregator, start, []} -stats_collector={couch_stats_collector, start, []} -uuids={couch_uuids, start, []} -auth_cache={couch_auth_cache, start_link, []} -replicator_manager={couch_replicator_manager, start_link, []} -os_daemons={couch_os_daemons, start_link, []} -compaction_daemon={couch_compaction_daemon, start_link, []} - -[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_replicator_httpd, handle_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} -_session = {couch_httpd_auth, handle_session_req} -_oauth = {couch_httpd_oauth, handle_oauth_req} -_db_updates = {couch_dbupdates_httpd, handle_req} -_plugins = {couch_plugins_httpd, handle_req} - -[httpd_db_handlers] -_all_docs = {couch_mrview_http, handle_all_docs_req} -_changes = {couch_httpd_db, handle_changes_req} -_compact = {couch_httpd_db, handle_compact_req} -_design = {couch_httpd_db, handle_design_req} -_temp_view = {couch_mrview_http, handle_temp_view_req} -_view_cleanup = {couch_mrview_http, handle_cleanup_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} +[log] +; Specifies the location of file for logging output. +file = %localstatelogdir%/couch.log -[httpd_design_handlers] -_compact = {couch_mrview_http, handle_compact_req} -_info = {couch_mrview_http, handle_info_req} -_list = {couch_mrview_show, handle_view_list_req} -_rewrite = {couch_httpd_rewrite, handle_rewrite_req} -_show = {couch_mrview_show, handle_doc_show_req} -_update = {couch_mrview_show, handle_doc_update_req} -_view = {couch_mrview_http, handle_view_req} +; Logging level defines how verbose and detailed logging will be +; Available levels: +; +; * debug: Very informative and detailed debug logging. Includes HTTP headers, +; external processes communications, auth information and more; +; * info: Informative logging. Includes HTTP requests headlines, +; startup notifications of external processes etc. +; * warning: Warning messages are alerts about edge situations which may lead +; to errors. For instance, compaction daemon alerts about low or +; insufficient disk space at this level. +; * error: Error level includes only things that going wrong, crush reports +; and HTTP error responses (5xx codes). +; * none: Disables logging for any messages. +; +level = info -; enable external as an httpd handler, then link it with commands here. -; note, this api is still under consideration. -; [external] -; mykey = /path/to/mycommand +; Includes SASL information in logs. +include_sasl = true -; Here you can setup commands for CouchDB to manage -; while it is alive. It will attempt to keep each command -; alive if it exits. -; [os_daemons] -; some_daemon_name = /path/to/script -with args +[log_level_by_module] +; In this section you can specify log level on a per-module basis. +; See src/*/*.erl for various available modules. For example: +;couch_httpd = debug +;couch_replicator = info +;couch_query_servers = error -[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. -; utc_id - Time since Jan 1, 1970 UTC with microseconds, plus utc_id_suffix string -; First 14 characters are the time in hex. uuids/utc_id_suffix string value is appended to these. -algorithm = sequential -; The utc_id_suffix value will be appended to uuids generated by the utc_id algorithm. -; Replicating instances should have unique utc_id_suffix values to ensure uniqueness of utc_id ids. -utc_id_suffix = +;------------------------------------------------------------------------------- +; Compaction +;------------------------------------------------------------------------------- -[stats] -; rate is in milliseconds -rate = 1000 -; sample intervals are in seconds -samples = [0, 60, 300, 900] +[database_compaction] +; Larger buffer sizes (in bytes) can originate smaller files. +doc_buffer_size = 524288 -[attachments] -compression_level = 8 ; from 1 (lowest, fastest) to 9 (highest, slowest), 0 to disable compression -compressible_types = text/*, application/javascript, application/json, application/xml +; Checkpoint after every N bytes were written. +checkpoint_after = 5242880 -[replicator] -db = _replicator -; Maximum replicaton retry count can be a non-negative integer or "infinity". -max_replication_retry_count = 10 -; More worker processes can give higher network throughput but can also -; imply more disk and network IO. -worker_processes = 4 -; With lower batch sizes checkpoints are done more frequently. Lower batch sizes -; also reduce the total amount of used RAM memory. -worker_batch_size = 500 -; Maximum number of HTTP connections per replication. -http_connections = 20 -; HTTP connection timeout per replication. -; Even for very fast/reliable networks it might need to be increased if a remote -; database is too busy. -connection_timeout = 30000 -; If a request fails, the replicator will retry it up to N times. -retries_per_request = 10 -; Some socket options that might boost performance in some scenarios: -; {nodelay, boolean()} -; {sndbuf, integer()} -; {recbuf, integer()} -; {priority, integer()} -; See the `inet` Erlang module's man page for the full list of options. -socket_options = [{keepalive, true}, {nodelay, false}] -; Path to a file containing the user's certificate. -;cert_file = /full/path/to/server_cert.pem -; Path to file containing user's private PEM encoded key. -;key_file = /full/path/to/server_key.pem -; String containing the user's password. Only used if the private keyfile is password protected. -;password = somepassword -; Set to true to validate peer certificates. -verify_ssl_certificates = false -; File containing a list of peer trusted certificates (in the PEM format). -;ssl_trusted_certificates_file = /etc/ssl/certs/ca-certificates.crt -; Maximum peer certificate depth (must be set even if certificate validation is off). -ssl_certificate_max_depth = 3 +[view_compaction] +; Larger buffer sizes (in bytes) can originate smaller files. +keyvalue_buffer_size = 2097152 [compaction_daemon] -; The delay, in seconds, between each check for which database and view indexes +; The delay in seconds between checks for database and view indexes ; need to be compacted. +; check_interval = 300 + ; If a database or view index file is smaller then this value (in bytes), ; compaction will not happen. Very small files always have a very high ; fragmentation therefore it's not worth to compact them. +; min_file_size = 131072 [compactions] @@ -284,44 +445,44 @@ min_file_size = 131072 ; ; Possible parameters: ; -; * db_fragmentation - If the ratio (as an integer percentage), of the amount -; of old data (and its supporting metadata) over the database -; file size is equal to or greater then this value, this -; database compaction condition is satisfied. -; This value is computed as: +; * db_fragmentation +; If the ratio (as an integer percentage), of the amount of old data +; (and its supporting metadata) is over the database file size is equal to +; or greater then this value, this database compaction condition is satisfied. +; This value is computed as: ; -; (file_size - data_size) / file_size * 100 +; (file_size - data_size) / file_size * 100 ; -; The data_size and file_size values can be obtained when -; querying a database's information URI (GET /dbname/). +; The data_size and file_size values can be obtained when querying a database's +; information URI (GET /dbname/). ; -; * view_fragmentation - If the ratio (as an integer percentage), of the amount -; of old data (and its supporting metadata) over the view -; index (view group) file size is equal to or greater then -; this value, then this view index compaction condition is -; satisfied. This value is computed as: +; * view_fragmentation +; If the ratio (as an integer percentage), of the amount of old data +; (and its supporting metadata) over the view index (view group) file size +; is equal to or greater then this value, then this view index compaction +; condition is satisfied. This value is computed as: ; -; (file_size - data_size) / file_size * 100 +; (file_size - data_size) / file_size * 100 ; -; The data_size and file_size values can be obtained when -; querying a view group's information URI -; (GET /dbname/_design/groupname/_info). +; The data_size and file_size values can be obtained when querying +; a view group's information URI (GET /dbname/_design/groupname/_info). ; -; * from _and_ to - The period for which a database (and its view groups) compaction -; is allowed. The value for these parameters must obey the format: +; * from _and_ to +; The period for which a database (and its view groups) compaction is allowed. +; The value for these parameters must obey the format: ; -; HH:MM - HH:MM (HH in [0..23], MM in [0..59]) +; HH:MM - HH:MM (HH in [0..23], MM in [0..59]) ; -; * strict_window - If a compaction is still running after the end of the allowed -; period, it will be canceled if this parameter is set to 'true'. -; It defaults to 'false' and it's meaningful only if the *period* -; parameter is also specified. +; * strict_window +; If a compaction is still running after the end of the allowed period, +; it will be canceled if this parameter is set to 'true'. +; It defaults to 'false' and it's meaningful only if the *period* parameter +; is also specified. ; -; * parallel_view_compaction - If set to 'true', the database and its views are -; compacted in parallel. This is only useful on -; certain setups, like for example when the database -; and view index directories point to different -; disks. It defaults to 'false'. +; * parallel_view_compaction +; If set to 'true', the database and its views are compacted in parallel. +; This is only useful on certain setups, like for example when the database +; and view index directories point to different disks. It defaults to 'false'. ; ; Before a compaction is triggered, an estimation of how much free disk space is ; needed is computed. This estimation corresponds to 2 times the data size of @@ -349,5 +510,295 @@ min_file_size = 131072 ; Similar to the preceding example, but a database and its views can be ; compacted in parallel. ; +; Example of the default compaction configuration: +; ;_default = [{db_fragmentation, "70%"}, {view_fragmentation, "60%"}, {from, "23:00"}, {to, "04:00"}] + +;------------------------------------------------------------------------------- +; Replicator +;------------------------------------------------------------------------------- + +[replicator] + +; Replicator database name. +db = _replicator + +; HTTP connection timeout per replication. +; Even for very fast/reliable networks it might need to be increased if a remote +; database is too busy. +; +connection_timeout = 30000 + +; Defines replication checkpoint interval in milliseconds. +checkpoint_interval = 5000 + +; Maximum number of HTTP connections per replication. +http_connections = 20 + +; Maximum replication retry count can be a non-negative integer or "infinity". +max_replication_retry_count = 10 + +; If a request fails, the replicator will retry it up to N times. +retries_per_request = 10 + +; Some socket options that might boost performance in some scenarios: +; - {nodelay, boolean()} +; - {sndbuf, integer()} +; - {recbuf, integer()} +; - {priority, integer()} +; See the `inet` Erlang module's man page for the full list of options. +; +socket_options = [{keepalive, true}, {nodelay, false}] + +; If enabled, CouchDB will make checkpoints during replication and at the +; completion of replication to efficiently resume it from any of these. +; This is not the option that you'd like to disable! +; +use_checkpoints = true + +; With lower batch sizes checkpoints are done more frequently. Lower batch sizes +; also reduce the total amount of used RAM memory. +; +worker_batch_size = 500 + +; More worker processes can give higher network throughput but can also +; imply more disk and network IO. +; +worker_processes = 4 + +;;; Replicators SSL options + +; Path to a file containing the user's certificate. +;cert_file = /full/path/to/server_cert.pem + +; Path to file containing user's private PEM encoded key. +;key_file = /full/path/to/server_key.pem + +; String containing the user's password. Only used if the private keyfile +; is password protected. +; +;password = somepassword + +; Maximum peer certificate depth. +; Must be set even if certificate validation is off. +; +ssl_certificate_max_depth = 3 + +; File containing a list of peer trusted certificates (in the PEM format). +;ssl_trusted_certificates_file = /etc/ssl/certs/ca-certificates.crt + +; Set to true to validate peer certificates. +verify_ssl_certificates = false + + +;------------------------------------------------------------------------------- +; Query Servers +;------------------------------------------------------------------------------- + +[query_servers] +javascript = %bindir%/%couchjs_command_name% %localbuilddatadir%/server/main.js +coffeescript = %bindir%/%couchjs_command_name% %localbuilddatadir%/server/main-coffee.js + +; Experimental Node.JS query server +; nodejs = %bindir%/couchjs-node %localbuilddatadir%/server/main.js + + +[query_server_config] +; The delay in seconds before commit view index changes on disk. +commit_freq = 5 + +; Amount of processes that may be spawned for single query server's group. +os_process_limit = 25 + +; 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. +; +reduce_limit = true + + +[native_query_servers] +;; WARNING! Unlike the JavaScript query server, the Erlang one does not runs +; in a sandbox mode. This means that Erlang code has full access to your OS, +; filesystem and network, which may lead to security issues. +; Enable this on your own risk. +; +;erlang = {couch_native_process, start_link, []} + + +;------------------------------------------------------------------------------- +; CORS Support +;------------------------------------------------------------------------------- +; This section requires httpd/enable_cors option have true value: +; +; [httpd] +; enable_cors = true +; + +;;; Global CORS settings +[cors] +; By default, neither authentication headers nor cookies are included in +; requests and responses. To do so requires both setting +; XmlHttpRequest.withCredentials = true on the request object in the browser +; and enabling credentials support in CouchDB. +; +;credentials = false + +; List of origins separated by a comma, * means accept all. +; Origins must include the scheme: http://example.com +; You can’t set origins: * and credentials = true at the same time. +; +;origins = * + +; List of accepted headers separated by a comma. +; headers = + +; List of accepted methods. +; methods = + +;;; Configuration for a vhost +; +;[cors:http://example.com] +; credentials = false +; List of origins separated by a comma +; Origins must include the scheme: http://example.com +; You can’t set origins: * and credentials = true at the same time. +;origins = +; List of accepted headers separated by a comma +; headers = +; List of accepted methods +; methods = + + +;------------------------------------------------------------------------------- +; Virtual Hosts +;------------------------------------------------------------------------------- +; To enable Virtual Hosts in CouchDB, add a vhost = path directive. +; All requests to the Virual Host will be redirected to the path. +; In the example below all requests to http://example.com/ are redirected +; to /database. +; If you run CouchDB on a specific port, include the port number in the vhost: +; example.com:5984 = /database +; +[vhosts] +;example.com = /database/ + + +;------------------------------------------------------------------------------- +; Externals +;------------------------------------------------------------------------------- + +[external] +; Enable external as an httpd handler, then link it with commands here. +; See [httpd_db_handlers] section for HTTP handler definition. +; +;mykey = /path/to/mycommand + +[os_daemons] +; For any commands listed here, CouchDB will attempt to ensure that +; the process remains alive. Daemons should monitor their environment +; to know when to exit. This can most easily be accomplished by exiting +; when stdin is closed. +; +;foo = /path/to/command -with args + +[update_notification] +;unique notifier name=/full/path/to/exe -with "cmd line arg" + + +;------------------------------------------------------------------------------- +; HTTP Resource Handlers +;------------------------------------------------------------------------------- + +[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} +_db_updates = {couch_dbupdates_httpd, handle_req} +_log = {couch_httpd_misc_handlers, handle_log_req} +_oauth = {couch_httpd_oauth, handle_oauth_req} +_plugins = {couch_plugins_httpd, handle_req} +_replicate = {couch_replicator_httpd, handle_req} +_restart = {couch_httpd_misc_handlers, handle_restart_req} +_session = {couch_httpd_auth, handle_session_req} +_stats = {couch_httpd_stats_handlers, handle_stats_req} +_uuids = {couch_httpd_misc_handlers, handle_uuids_req} + +;;; HTTP Proxy handler +; Proxies HTTP requests to the specified location +; Example: GET /_spec/rfc2616 -> http://tools.ietf.org/html/rfc2616 +;_spec = {couch_httpd_proxy, handle_proxy_req, <<"http://tools.ietf.org/html">>} + + +[httpd_db_handlers] +_all_docs = {couch_mrview_http, handle_all_docs_req} +_changes = {couch_httpd_db, handle_changes_req} +_compact = {couch_httpd_db, handle_compact_req} +_design = {couch_httpd_db, handle_design_req} +_temp_view = {couch_mrview_http, handle_temp_view_req} +_view_cleanup = {couch_mrview_http, handle_cleanup_req} + +;;; HTTP External handler +; 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. +; For "mykey" definition see [external] section. +; +;_mypath = {couch_httpd_external, handle_external_req, <<"mykey">>} +;_external = {couch_httpd_external, handle_external_req} + + +[httpd_design_handlers] +_compact = {couch_mrview_http, handle_compact_req} +_info = {couch_mrview_http, handle_info_req} +_list = {couch_mrview_show, handle_view_list_req} +_rewrite = {couch_httpd_rewrite, handle_rewrite_req} +_show = {couch_mrview_show, handle_doc_show_req} +_update = {couch_mrview_show, handle_doc_update_req} +_view = {couch_mrview_http, handle_view_req} + + +;------------------------------------------------------------------------------- +; Internal Services +;------------------------------------------------------------------------------- +[daemons] +auth_cache={couch_auth_cache, start_link, []} +compaction_daemon={couch_compaction_daemon, start_link, []} +external_manager={couch_external_manager, start_link, []} +httpd={couch_httpd, start_link, []} +index_server={couch_index_server, start_link, []} +os_daemons={couch_os_daemons, start_link, []} +query_servers={couch_query_servers, start_link, []} +replicator_manager={couch_replicator_manager, start_link, []} +stats_aggregator={couch_stats_aggregator, start, []} +stats_collector={couch_stats_collector, start, []} +uuids={couch_uuids, start, []} +vhosts={couch_httpd_vhost, start_link, []} + +; Uncomment to enable HTTPS support. See [ssl] section for config options. +;httpsd = {couch_httpd, start_link, [https]} + + +;------------------------------------------------------------------------------- +; Misc +;------------------------------------------------------------------------------- + +[stats] +; Rate of statistics gathering in milliseconds. +rate = 1000 + +; Samples are used tracks the mean and standard value deviation within specified +; intervals (in seconds). +; +samples = [0, 60, 300, 900] + +; For CouchDB distributors there is option to explicitly define this information +; in welcome message +[vendor] +name = %package_author_name% +version = %version% |