Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Fetching contributors…
Cannot retrieve contributors at this time
205 lines (121 sloc) 5.48 KB
Apache CouchDB README.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) (
* 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.
Jump to Line
Something went wrong with that request. Please try again.