123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577 |
- ; Upgrading CouchDB will overwrite this file.
- [vendor]
- name = The Apache Software Foundation
- [couchdb]
- uuid =
- database_dir = ./data
- view_index_dir = ./data
- ; util_driver_dir =
- ; plugin_dir =
- os_process_timeout = 5000 ; 5 seconds. for view servers.
- max_dbs_open = 500
- delayed_commits = false
- ; 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)
- 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
- ; Default security object for databases if not explicitly set
- ; everyone - same as couchdb 1.0, everyone can read/write
- ; admin_only - only admins can read/write
- ; admin_local - sharded dbs on :5984 are read/write for everyone,
- ; local dbs on :5986 are read/write for admins only
- default_security = admin_local
- ; btree_chunk_size = 1279
- ; maintenance_mode = false
- ; stem_interactive_updates = true
- ; uri_file =
- ; The speed of processing the _changes feed with doc_ids filter can be
- ; influenced directly with this setting - increase for faster processing at the
- ; expense of more memory usage.
- changes_doc_ids_optimization_threshold = 100
- ; Maximum document ID length. Can be set to an integer or 'infinity'.
- ;max_document_id_length = infinity
- ;
- ; Limit maximum document size. Requests to create / update documents with a body
- ; size larger than this will fail with a 413 http error. This limit applies to
- ; requests which update a single document as well as individual documents from
- ; a _bulk_docs request. Since there is no canonical size of json encoded data,
- ; due to variabiliy in what is escaped or how floats are encoded, this limit is
- ; applied conservatively. For example 1.0e+16 could be encoded as 1e16, so 4 used
- ; for size calculation instead of 7.
- ;max_document_size = 4294967296 ; bytes
- ;
- ; Maximum attachment size.
- ; max_attachment_size = infinity
- ;
- ; Do not update the least recently used DB cache on reads, only writes
- ;update_lru_on_read = false
- ;
- ; The default storage engine to use when creating databases
- ; is set as a key into the [couchdb_engines] section.
- default_engine = couch
- ;
- ; Enable this to only "soft-delete" databases when DELETE /{db} requests are
- ; made. This will place a .recovery directory in your data directory and
- ; move deleted databases/shards there instead. You can then manually delete
- ; these files later, as desired.
- ;enable_database_recovery = false
- [couchdb_engines]
- ; The keys in this section are the filename extension that
- ; the specified engine module will use. This is important so
- ; that couch_server is able to find an existing database without
- ; having to ask every configured engine.
- couch = couch_bt_engine
- [cluster]
- q=8
- n=3
- ; placement = metro-dc-a:2,metro-dc-b:1
- ; Supply a comma-delimited list of node names that this node should
- ; contact in order to join a cluster. If a seedlist is configured the ``_up``
- ; endpoint will return a 404 until the node has successfully contacted at
- ; least one of the members of the seedlist and replicated an up-to-date copy
- ; of the ``_nodes``, ``_dbs``, and ``_users`` system databases.
- ; seedlist = couchdb@node1.example.com,couchdb@node2.example.com
- [chttpd]
- ; These settings affect the main, clustered port (5984 by default).
- port = 5984
- bind_address = 0.0.0.0
- backlog = 512
- docroot = ./share/www
- socket_options = [{sndbuf, 262144}, {nodelay, true}]
- server_options = [{recbuf, undefined}]
- require_valid_user = false
- ; List of headers that will be kept when the header Prefer: return=minimal is included in a request.
- ; If Server header is left out, Mochiweb will add its own one in.
- prefer_minimal = Cache-Control, Content-Length, Content-Range, Content-Type, ETag, Server, Transfer-Encoding, Vary
- ;
- ; Limit maximum number of databases when tying to get detailed information using
- ; _dbs_info in a request
- max_db_number_for_dbs_info_req = 100
- ; authentication handlers
- ; authentication_handlers = {chttpd_auth, cookie_authentication_handler}, {chttpd_auth, default_authentication_handler}
- ; uncomment the next line to enable proxy authentication
- ; authentication_handlers = {chttpd_auth, proxy_authentication_handler}, {chttpd_auth, cookie_authentication_handler}, {chttpd_auth, default_authentication_handler}
- ; prevent non-admins from accessing /_all_dbs
- ;admin_only_all_dbs = false
- [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
- [view_compaction]
- ; larger buffer sizes can originate smaller files
- keyvalue_buffer_size = 2097152 ; value in bytes
- [couch_peruser]
- ; If enabled, couch_peruser ensures that a private per-user database
- ; exists for each document in _users. These databases are writable only
- ; by the corresponding user. Databases are in the following form:
- ; userdb-{hex encoded username}
- enable = false
- ; If set to true and a user is deleted, the respective database gets
- ; deleted as well.
- delete_dbs = false
- ; Set a default q value for peruser-created databases that is different from
- ; cluster / q
- ;q = 1
- ; prefix for user databases. If you change this after user dbs have been
- ; created, the existing databases won't get deleted if the associated user
- ; gets deleted because of the then prefix mismatch.
- enable = true
- database_prefix = udb-
- delete_dbs = true
- [httpd]
- port = 5986
- bind_address = 0.0.0.0
- authentication_handlers = {couch_httpd_auth, cookie_authentication_handler}, {couch_httpd_auth, default_authentication_handler}
- secure_rewrites = true
- allow_jsonp = false
- ; 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, undefined}, {sndbuf, 262144}, {nodelay, true}]
- socket_options = [{sndbuf, 262144}]
- enable_cors = false
- enable_xframe_options = false
- ; CouchDB can optionally enforce a maximum uri length;
- ; max_uri_length = 8000
- ; changes_timeout = 60000
- ; config_whitelist =
- ; max_uri_length =
- ; rewrite_limit = 100
- ; x_forwarded_host = X-Forwarded-Host
- ; x_forwarded_proto = X-Forwarded-Proto
- ; x_forwarded_ssl = X-Forwarded-Ssl
- ; Maximum allowed http request size. Applies to both clustered and local port.
- max_http_request_size = 4294967296 ; 4GB
- ; [httpd_design_handlers]
- ; _view =
- ; [ioq]
- ; concurrency = 10
- ; ratio = 0.01
- [ssl]
- port = 6984
- ; [chttpd_auth]
- ; authentication_db = _users
- ; [chttpd_auth_cache]
- ; max_lifetime = 600000
- ; max_objects =
- ; max_size = 104857600
- ; [mem3]
- ; nodes_db = _nodes
- ; shard_cache_size = 25000
- ; shards_db = _dbs
- ; sync_concurrency = 10
- ; [fabric]
- ; all_docs_concurrency = 10
- ; changes_duration =
- ; shard_timeout_factor = 2
- ; uuid_prefix_len = 7
- ; request_timeout = 60000
- ; all_docs_timeout = 10000
- ; attachments_timeout = 60000
- ; view_timeout = 3600000
- ; partition_view_timeout = 3600000
- ; [rexi]
- ; buffer_count = 2000
- ; server_per_node = true
- ; [global_changes]
- ; max_event_delay = 25
- ; max_write_delay = 500
- ; update_db = true
- ; [view_updater]
- ; min_writer_items = 100
- ; min_writer_size = 16777216
- [couch_httpd_auth]
- ; WARNING! This only affects the node-local port (5986 by default).
- ; You probably want the settings under [chttpd].
- authentication_db = _users
- authentication_redirect = /_utils/session.html
- 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 = true ; set to false to disallow persistent cookies
- iterations = 10 ; iterations for password hashing
- ; min_iterations = 1
- ; max_iterations = 1000000000
- ; password_scheme = pbkdf2
- ; proxy_use_secret = false
- ; comma-separated list of public fields, 404 if empty
- ; public_fields =
- ; secret =
- ; users_db_public = false
- ; cookie_domain = example.com
- ; CSP (Content Security Policy) Support for _utils
- [csp]
- enable = true
- ; header_value = default-src 'self'; img-src 'self'; font-src *; script-src 'self' 'unsafe-eval'; style-src 'self' 'unsafe-inline';
- [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 =
- credentials = true
- headers = accept, authorization, content-type, origin, referer
- origins = *
- methods = GET, PUT, POST, HEAD, DELETE, OPTIONS
- ; 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 =
- ; Configuration for the design document cache
- ;[ddoc_cache]
- ; The maximum size of the cache in bytes
- ;max_size = 104857600 ; 100MiB
- ; The period each cache entry should wait before
- ; automatically refreshing in milliseconds
- ;refresh_timeout = 67000
- [x_frame_options]
- ; Settings same-origin will return X-Frame-Options: SAMEORIGIN.
- ; If same origin is set, it will ignore the hosts setting
- ; same_origin = true
- ; Settings hosts will return X-Frame-Options: ALLOW-FROM https://example.com/
- ; List of hosts separated by a comma. * means accept all
- ; hosts =
- [native_query_servers]
- ; erlang query server
- ; enable_erlang_query_server = false
- ; 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]
- ; commit_freq = 5
- reduce_limit = true
- os_process_limit = 100
- ; os_process_idle_limit = 300
- ; os_process_soft_limit = 100
- ; Timeout for how long a response from a busy view group server can take.
- ; "infinity" is also a valid configuration value.
- ;group_info_timeout = 5000
- [mango]
- ; Set to true to disable the "index all fields" text index, which can lead
- ; to out of memory issues when users have documents with nested array fields.
- ;index_all_disabled = false
- ; Default limit value for mango _find queries.
- ;default_limit = 25
- [indexers]
- couch_mrview = true
- [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 =
- # Maximum number of UUIDs retrievable from /_uuids in a single request
- max_count = 1000
- [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
- [replicator]
- ; Random jitter applied on replication job startup (milliseconds)
- startup_jitter = 5000
- ; Number of actively running replications
- max_jobs = 500
- ;Scheduling interval in milliseconds. During each reschedule cycle
- interval = 60000
- ; Maximum number of replications to start and stop during rescheduling.
- max_churn = 20
- ; 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
- ; Request timeout
- ;request_timeout = infinity
- ; If a request fails, the replicator will retry it up to N times.
- retries_per_request = 5
- ; Use checkpoints
- ;use_checkpoints = true
- ; Checkpoint interval
- ;checkpoint_interval = 30000
- ; 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
- ; Maximum document ID length for replication.
- ;max_document_id_length = 0
- ; How much time to wait before retrying after a missing doc exception. This
- ; exception happens if the document was seen in the changes feed, but internal
- ; replication hasn't caught up yet, and fetching document's revisions
- ; fails. This a common scenario when source is updated while continous
- ; replication is running. The retry period would depend on how quickly internal
- ; replication is expected to catch up. In general this is an optimisation to
- ; avoid crashing the whole replication job, which would consume more resources
- ; and add log noise.
- ;missing_doc_retry_msec = 2000
- ; Wait this many seconds after startup before attaching changes listeners
- ; cluster_start_period = 5
- ; Re-check cluster state at least every cluster_quiet_period seconds
- ; cluster_quiet_period = 60
- ; List of replicator client authentication plugins to try. Plugins will be
- ; tried in order. The first to initialize successfully will be used for that
- ; particular endpoint (source or target). Normally couch_replicator_auth_noop
- ; would be used at the end of the list as a "catch-all". It doesn't do anything
- ; and effectively implements the previous behavior of using basic auth.
- ; There are currently two plugins available:
- ; couch_replicator_auth_session - use _session cookie authentication
- ; couch_replicator_auth_noop - use basic authentication (previous default)
- ; Currently, the new _session cookie authentication is tried first, before
- ; falling back to the old basic authenticaion default:
- ;auth_plugins = couch_replicator_auth_session,couch_replicator_auth_noop
- ; To restore the old behaviour, use the following value:
- ;auth_plugins = couch_replicator_auth_noop
- ; Force couch_replicator_auth_session plugin to refresh the session
- ; periodically if max-age is not present in the cookie. This is mostly to
- ; handle the case where anonymous writes are allowed to the database and a VDU
- ; function is used to forbid writes based on the authenticated user name. In
- ; that case this value should be adjusted based on the expected minimum session
- ; expiry timeout on replication endpoints. If session expiry results in a 401
- ; or 403 response this setting is not needed.
- ;session_refresh_interval_sec = 550
- [compaction_daemon]
- ; The delay, in seconds, between each check for which database and view indexes
- ; need to be compacted.
- check_interval = 3600
- ; 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
- ; With lots of databases and/or with lots of design docs in one or more
- ; databases, the compaction_daemon can create significant CPU load when
- ; checking whether databases and view indexes need compacting. The
- ; snooze_period_ms setting ensures a smoother CPU load. Defaults to
- ; 3000 milliseconds wait. Note that this option was formerly called
- ; snooze_period, measured in seconds (it is currently still supported).
- ; snooze_period_ms = 3000
- [compactions]
- ; List of compaction rules for the compaction daemon.
- ; The daemon compacts databases and their respective view groups when all the
- ; condition parameters are satisfied. Configuration can be per database or
- ; global, and it has the following format:
- ;
- ; database_name = [ {ParamName, ParamValue}, {ParamName, ParamValue}, ... ]
- ; _default = [ {ParamName, ParamValue}, {ParamName, ParamValue}, ... ]
- ;
- ; 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:
- ;
- ; (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/).
- ;
- ; * 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
- ;
- ; 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:
- ;
- ; 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.
- ;
- ; * 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
- ; the database or view index. When there's not enough free disk space to compact
- ; a particular database or view index, a warning message is logged.
- ;
- ; Examples:
- ;
- ; 1) [{db_fragmentation, "70%"}, {view_fragmentation, "60%"}]
- ; The `foo` database is compacted if its fragmentation is 70% or more.
- ; Any view index of this database is compacted only if its fragmentation
- ; is 60% or more.
- ;
- ; 2) [{db_fragmentation, "70%"}, {view_fragmentation, "60%"}, {from, "00:00"}, {to, "04:00"}]
- ; Similar to the preceding example but a compaction (database or view index)
- ; is only triggered if the current time is between midnight and 4 AM.
- ;
- ; 3) [{db_fragmentation, "70%"}, {view_fragmentation, "60%"}, {from, "00:00"}, {to, "04:00"}, {strict_window, true}]
- ; Similar to the preceding example - a compaction (database or view index)
- ; is only triggered if the current time is between midnight and 4 AM. If at
- ; 4 AM the database or one of its views is still compacting, the compaction
- ; process will be canceled.
- ;
- ; 4) [{db_fragmentation, "70%"}, {view_fragmentation, "60%"}, {from, "00:00"}, {to, "04:00"}, {strict_window, true}, {parallel_view_compaction, true}]
- ; Similar to the preceding example, but a database and its views can be
- ; compacted in parallel.
- ;
- _default = [{db_fragmentation, "70%"}, {view_fragmentation, "60%"}]
- [log]
- ; Possible log levels:
- ; debug
- ; info
- ; notice
- ; warning, warn
- ; error, err
- ; critical, crit
- ; alert
- ; emergency, emerg
- ; none
- ;
- level = info
- ;
- ; Set the maximum log message length in bytes that will be
- ; passed through the writer
- ;
- ; max_message_size = 16000
- ;
- ;
- ; There are three different log writers that can be configured
- ; to write log messages. The default writes to stderr of the
- ; Erlang VM which is useful for debugging/development as well
- ; as a lot of container deployments.
- ;
- ; There's also a file writer that works with logrotate and an
- ; rsyslog writer for deployments that need to have logs sent
- ; over the network.
- ;
- writer = stderr
- ;
- ; File Writer Options:
- ;
- ; The file writer will check every 30s to see if it needs
- ; to reopen its file. This is useful for people that configure
- ; logrotate to move log files periodically.
- ;
- ; file = ./couch.log ; Path name to write logs to
- ;
- ; Write operations will happen either every write_buffer bytes
- ; or write_delay milliseconds. These are passed directly to the
- ; Erlang file module with the write_delay option documented here:
- ;
- ; http://erlang.org/doc/man/file.html
- ;
- ; write_buffer = 0
- ; write_delay = 0
- ;
- ;
- ; Syslog Writer Options:
- ;
- ; The syslog writer options all correspond to their obvious
- ; counter parts in rsyslog nomenclature.
- ;
- ; syslog_host =
- ; syslog_port = 514
- ; syslog_appid = couchdb
- ; syslog_facility = local2
- [stats]
- ; Stats collection interval in seconds. Default 10 seconds.
- ;interval = 10
|