
Product
Introducing Reports: An Extensible Reporting Framework for Socket Data
Explore exportable charts for vulnerabilities, dependencies, and usage with Reports, Socket’s new extensible reporting framework.
couchdb-bootstrap
Advanced tools
Bootstrap projects: configure CouchDB, setup security, deploy ddocs and create users.
Bootstrap CouchDB server from CLI or API.
/_configCouchDB Bootstrap combines different small tools, which can also be used independently. Each of those tools come has a similar API and is shipped with a CLI:
Think about CouchDB Bootstrap as a toplevel manager, which reads a directory of
databases and optional _config and hands each file over to the appropriate tool:
project/couchdb
├── _config.json
├── _replicator
│ ├── setup-alice.json
│ └── setup-bob.json
├── _users
│ ├── alice.json
│ └── bob.json
├── myapp
│ ├── _design
│ │ └── myapp.js
│ ├── _security.json
│ └── adoc.json
├── myapp-alice
│ ├── doc1.json
│ ├── doc2-commonjs.js
│ └── _security.json
└── myapp-bob
└── _security.json
In the directory tree above project/couchdb/_config.json is handed to
couchdb-configure,
project/couchdb/_replicator/setup-alice.json,
project/couchdb/myapp/_design/myapp.js
project/couchdb/myapp/adoc.json are handed (beside others) to
couchdb-push
and project/couchdb/myapp-alice/_security.json to
couchdb-secure.
Since couchdb-bootstrap@14.2 it is possible to provide a configuration object:
{
'my-db': {
_security: {
members: {
roles: [],
names: [
'alice@example.com'
]
},
admins: {
roles: [],
names: [
'alice@example.com'
]
}
},
mydoc: {
date: '2018-03-16T19:27:52.361Z',
title: 'Welcome'
},
_design: {
myapp: {
views: {
'by-date': {
map: function (doc) {
if ('date' in doc) {
emit(doc.date, null)
}
},
reduce: '_count'
}
}
}
}
},
_users: {
alice: {
_id: 'org.couchdb.user:alice@example.com',
type: 'user',
roles: [],
name: 'alice@example.com',
password: 'secure'
}
}
}
See couchdb-compile for more details about the CouchDB Filesystem Mapping on a document / security object / config level.
bootstrap(url, source[, options], callback)
url - CouchDB server URLsource - bootstrap object or directory holding the bootstrap treeoptions.index - When set to true, folders are searched for index.js, which, if present, is treated as CommonJS module. Default is false.options.concurrency - Limit number of concurrent requests. Defaults to 100.options.multipart - When set to true, attachments are saved via multipart api. Default is false.options.watch - When set to true, documents are pushed (not _config!) on filesystem change. Default is false.options.mapDbName - Set to object or function to map directories to custom database namescallback - called when done with a response object describing the status of all operations.var bootstrap = require('couchdb-bootstrap')
bootstrap('http://localhost:5984', 'project/couchdb', function(error, response) {
// here we go
})
Since 14.2.0 it is possible to provide a configuration object:
var bootstrap = require('couchdb-bootstrap')
var config = {
'my-db': {
_design: {
myapp: {
views: {
'by-date': {
map: function (doc) {
if ('date' in doc) {
emit(doc.date, null)
}
},
reduce: '_count'
}
}
}
}
}
}
bootstrap('http://localhost:5984', config, function(error, response) {
//
})
couchdb-bootstrap URL [SOURCE] [OPTIONS]
Or use the shortcurt cdbb.
When SOURCE is omitted, the current directory will be used.
options.index is always true.
OPTIONS can be --concurrency, --multipart, --watch or --mapDbName='{"old-name": "new-name"}', see above.
couchdb-bootstrap http://localhost:5984 project/couchdb
Source as CommonJS file:
couchdb-bootstrap http://localhost:5984 bootstrap.js
See test/fixtures/bootstrap.js for an example.
npm test
FAQs
Bootstrap projects: configure CouchDB, setup security, deploy ddocs and create users.
The npm package couchdb-bootstrap receives a total of 1,078 weekly downloads. As such, couchdb-bootstrap popularity was classified as popular.
We found that couchdb-bootstrap demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Explore exportable charts for vulnerabilities, dependencies, and usage with Reports, Socket’s new extensible reporting framework.

Product
Socket for Jira lets teams turn alerts into Jira tickets with manual creation, automated ticketing rules, and two-way sync.

Company News
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.