Introduction
Apache CouchDB is a free open source NoSQL database server that stores databases as documents in JSON format. It includes a RESTful HTTP API that allows you to create, read, edit, and delete documents easily.
This guide will teach you how to install and set up Apache CouchDB on a CentOS 7 server.
Prerequisites
- Deploy a CentOS 7 Rcs Server.
- Log in to the server.
- Update the server.
Setup the CouchDB Repository
Install the CentOS EPEL repository.
$ sudo yum install epel-releaseThen, set up a new CouchDB repository file:
$ sudo nano /etc/yum.repos.d/apache-couchdb.repoPaste the following contents in it:
[Apache-Couchdb]
name=couchdb
baseurl=https://apache.jfrog.io/artifactory/couchdb-rpm/el$releasever/$basearch/
gpgkey=https://couchdb.apache.org/repo/keys.asc https://couchdb.apache.org/repo/rpm-package-key.asc
gpgcheck=1
repo_gpgcheck=1
enabled=1Update the Server.
$ sudo yum install couchdbInstall CouchDB
Now that all necessary repositories are set up, install CouchDB with the following command:
$ sudo yum install couchdbEnable CouchDB to start at boot time.
$ sudo systemctl enable couchdbStart CouchDB.
$ sudo systemctl start couchdbSetup CouchDB
All CouchDB data and configuration files are stored in /opt/couchdb, and local.ini is the main configuration file located in the /etc/ subdirectory. First, set up CouchDB by binding it to a network address, then add a new administrative user.
Open the file /opt/couchdb/etc/local.ini.
$ sudo nano /opt/couchdb/local.iniLocate the entry bind_address =, and change it to your preferred setting. By default, it is set to 127.0.0.1, the address 0.0.0.0 makes CouchDB accessible from any network address, and global binds it to your public Rcs IP Address.
[chttpd]
;port = 5984
bind_address = 127.0.0.1To set up a new user, scroll to the bottom or search for the keyword admins. Under the section, add a new entry with the format username = password. To tighten your server security, replace admin with a secretive username of your choice.
[admins]
admin = YOUR-PASSWORDAdditionally, add the following entry to allow CouchDB to create all necessary system databases upon restart.
[couchdb]
single_node=trueSave and close the file.
Alternatively, you can manually create the system databases: _users, _replicator, _global_changes with the following commands:
$ curl -u Username:Password -X PUT http://127.0.0.1:5984/_users
$ curl -u Username:Password -X PUT http://127.0.0.1:5984/_replicator
$ curl -u Username:Password -X PUT http://127.0.0.1:5984/_global_changesRestart CouchDB for changes to take effect.
$ sudo systemctl restart couchdbConfigure Firewall
First, allow HTTP Traffic on your server.
$ sudo firewall-cmd --permanent --zone=public --add-service=httpIf you have an SSL certificate on the server, allow HTTPS Traffic.
$ sudo firewall-cmd --permanent --zone=public --add-service=https Then, open port 5984.
$ sudo firewall-cmd --permanent --zone=public --add-port=5984/tcpRestart firewall for rules to take effect.
$ sudo systemctl reload firewalldTest Your CouchDB Installation
In your terminal window, test your CouchDB Installation using the following curl command:
$ curl 127.0.0.1:5984Your Output should be similar to the one below:
{"couchdb":"Welcome","version":"3.2.1","git_sha":"244d428af","uuid":"99b896bf19b5b076970e12574b9b9ff8","features":["access-ready","partitioned","pluggable-storage-engines","reshard","scheduler"],"vendor":{"name":"The Apache Software Foundation"}}Visit your Rcs server's public IP address on port 5984 with the /utils endpoint for a GUI version.
http://SERVER-IP:5984/_utils![CouchDB Login page(https://i.imgur.com/RF9K8D8.png)
Log in with the administrator username and password created earlier to proceed.
Conclusion
You have successfully installed and set up CouchDB on a CentOS 7 server. For more information on using Apache CouchDB, visit the official documentation page.