The Membase Server Superdupervisor.
JavaScript Erlang HTML CSS Python Ruby Other
Latest commit 87e149d Feb 17, 2017 @ajityagaty ajityagaty committed with vzasade MB-22703: Modify terse_bucket_info to omit...
...unsupported attributes for ephemeral buckets.

Change-Id: I386bd2d4db8991bdc7afefebd6fe641b2bc12207
Tested-by: Ajit Yagaty <>
Reviewed-by: Artem Stemkovski <>
Failed to load latest commit information.
cmake_modules MB-21254: erl: minify classic-ui Jan 24, 2017
deps Merge remote-tracking branch 'couchbase/watson' into master Feb 17, 2017
doc Allow modifications to connection_idle_time in memcached Mar 4, 2016
etc Log json rpc communication to a separate file. Feb 13, 2017
include Log json rpc communication to a separate file. Feb 13, 2017
priv Use FontAwesome checkboxes and radio boxes Feb 17, 2017
scripts [review] Fix flag name passed to gerrit shell. Jan 14, 2017
src MB-22703: Modify terse_bucket_info to omit... Feb 18, 2017
test [sjson] Streaming json encoder. Jan 10, 2017
.gitignore MB-21254: erl: minify classic-ui Jan 24, 2017
CHANGES MB-8663 Mention where to find replication id. Aug 26, 2013
CMakeLists.txt [cmake] Make ns_couchdb depend on ns_server. Feb 14, 2017
GNUmakefile [test] Have make test run triq tests too. Jan 10, 2017
LICENSE bug 1626 - apache license headers on files Jun 29, 2010
README.markdown MB-14932: update README.txt Apr 13, 2016
cbbrowse_logs MB-8101: allow overriding of logs reports dir Apr 16, 2013
cbcollect_info Log json rpc communication to a separate file. Feb 13, 2017
cluster_connect cluster_connect: Add support for 'ephemeral' bucketType Feb 9, 2017
cluster_run Remove mlockall. Jan 10, 2017
configure MB-10807 Fix make test and make dialyzer. Apr 9, 2014 Remove the backslash that used to precede the mlockall flag. Jan 10, 2017 re-factor xdc_rdoc_manager and capi_ddoc_manager Feb 14, 2017


The Couchbase Server

This application represents the top of the hierarchy of all memcached smart services. It is an application in the Erlang OTP sense.


Build dependencies include:

  • erlang R16B03


You should use top level make file and repo manifest as explained here:

Runtime dependencies

Before you start the server, you may need to do the following

  • Make sure the needed ports are not being used (these include 8091, 11211, 11212, etc).


After building everything via top level makefile you'll have couchbase-server script in your $REPO/install/bin (or other prefix if you specified so). You can run this script for normal single node startup.

During development it's convenient to have several 'nodes' on your machine. There's ./cluster_run script in root directory for achieving that. Feel free to ask --help. You normally need something like -n2 where 2 is number of nodes you want.

It'll start REST API on ports 9000...9000+n. memcached on ports 12000+2i and 11999-i and moxi ports on 12001+2i ports. CAPI (which was originally expected to be couch-compatible http API implementation) is 9500...9500+n

Note that blank nodes are not configured and need to be setup. I suggest trying web UI first to get the feeling of what's possible. Just visit REST API port(s) via browser. For development mode clusters it's port 9000 and higher. For production mode it's port 8091.

Other alternative is setting up and clustering nodes via REST API. couchbase-cli allows that. And you can easily write your own script(s).

There's ./cluster_connect script that eases cluster configuration for development clusters. Again, ask --help.

Sometimes during debugging/development you want smaller number of vbuckets. You can change vbuckets number by setting COUCHBASE_NUM_VBUCKETS environment variable to desired number of vbuckets before creating new couchbase bucket.

Other tools

Couchbase ships with a bunch of nice tools. Feel free to check $REPO/install/bin (or $PREFIX/bin). One of notable tools is mbstats. It allows you to query buckets for all kinds of internal stats.

Another notable tool is couchbase-cli.

Copyright (c) 2016, Couchbase, Inc.