Project: Apache CouchDB
Code Location: git://
Download File
Apache CouchDB INSTALL.Windows

For a high-level guide to Microsoft Windows.


There is a troubleshooting guide:

There is a wiki for general documentation:

And some Windows-specific tips:

There are collection of friendly mailing lists:

Please work through these in order if you experience any problems.


You will need the following installed:

 * Erlang OTP (>=14B01, <R17)    (
 * ICU        (>=4.*)            (
 * OpenSSL    (>=0.9.8r)         (
 * Mozilla SpiderMonkey (=1.8.5) (
 * libcurl    (>=7.20)           (
 * Cygwin                        (
 * Microsoft SDK 7.0 or 7.1      (
 * Python (>= 2.68) for docs     (
 * Python Sphinx (>=1.1.3)       (

General Notes

 * When installing Cygwin, be sure to select all the `development` tools.

 * When installing Erlang, you must build it from source.

 * The CouchDB build requires a number of the Erlang build scripts.

 * All dependent libraries should be built with the same version of
   microsoft SDK.

 * Do not try to link against libraries built with, or included in,
   Cygwin or MingW. They are not compatible with the Erlang/OTP or CouchDB
   build scripts.

 * ICU version 4.6 and later will build cleanly using MSBuild.

 * Python and Sphinx are optional for building the online documentation.
   Use cygwin-provided Python and install Sphinx via easy_install or pip.
   Further information is here

Setting Up Cygwin

Before starting any Cygwin terminals, run:

    set CYGWIN=nontsec

To set up your environment, run:


Replace [VS_BIN] with the path to your Visual Studio `bin` directory.

You must check that:

    * The `which link` command points to the Microsoft linker.

    * The `which cl` command points to the Microsoft compiler.

    * The `which mc` command points to the Microsoft message compiler.

    * The `which mt` command points to the Microsoft manifest tool.

    * The `which nmake` command points to the Microsoft make tool.

If you do not do this, the build may fail due to Cygwin ones found in `/usr/bin`
being used instead.

Building Erlang

You must include Win32 OpenSSL, built statically from source. Use
exactly the same version as required by the Erlang/OTP build process.

However, you can skip the GUI tools by running:

   echo "skipping gs" > lib/gs/SKIP

   echo "skipping ic" > lib/ic/SKIP

   echo "skipping jinterface" > lib/jinterface/SKIP

Follow the rest of the Erlang instructions as described.

After running:

   ./otp_build release -a

You should run:

   ./release/win32/Install.exe -s

This will set up the release/win32/bin directory correctly. The CouchDB
installation scripts currently write their data directly into this

To set up your environment for building CouchDB, run:

    eval `./otp_build env_win32`

To set up the `ERL_TOP` environment variable, run:

    export ERL_TOP=[ERL_TOP]

Replace `[ERL_TOP]` with the Erlang source directory name.

Remember to use `/cygdrive/c/` instead of `c:/` as the directory prefix.

To set up your path, run:

    export PATH=$ERL_TOP/release/win32/erts-5.8.5/bin:$PATH

If everything was successful, you should be ready to build CouchDB.


Building CouchDB

Note that `win32-curl` is only required if you wish to run the developer

The documentation step may be skipped using `--disable-docs` if you wish.

Once you have satisfied the dependencies you should run:

    ./configure \
        --with-js-include=/cygdrive/c/path_to_spidermonkey_include \
        --with-js-lib=/cygdrive/c/path_to_spidermonkey_lib \
        --with-win32-icu-binaries=/cygdrive/c/path_to_icu_binaries_root \
        --with-erlang=$ERL_TOP/release/win32/usr/include \
        --with-win32-curl=/cygdrive/c/path/to/curl/root/directory \
        --with-openssl-bin-dir=/cygdrive/c/openssl/bin \
        --with-msvc-redist-dir=/cygdrive/c/dir/with/vcredist_platform_executable \
        --disable-init \
        --disable-launchd \

This command could take a while to complete.

If everything was successful you should see the following message:

    You have configured Apache CouchDB, time to relax.


To install CouchDB you should run:

    make install

If everything was successful you should see the following message:

    You have installed Apache CouchDB, time to relax.


To build the .exe installer package, you should run:

    make dist

Alternatively, you may run CouchDB directly from the build tree, but
to avoid any contamination do not run `make dist` after this.

First Run

You can start the CouchDB server by running:


When CouchDB starts it should eventually display the following message:

    Apache CouchDB has started, time to relax.


To check that everything has worked, point your web browser to:

From here you should run the verification tests in Firefox.