In this tutorial, you will learn how to install Couchbase Server on CentOS/Rocky Linux. According to the documentation, Couchbase Server is an open source, distributed, JSON document database. It exposes a scale-out, key-value store with managed cache for sub-millisecond data operations, purpose-built indexers for efficient queries, and a powerful query engine for executing SQL-like queries.
Install Couchbase Server on CentOS/Rocky Linux
Couchbase is available in different editions; Enterprise, Community and Couchbase Capella.
This guide is about how to install the community edition Couchbase server.
System Requirements
Before you can proceed to install Couchbase Server, there are some few requirements needed;
- Check the minimum system resource requirements.
- Disable Transparent hugepages. This can easily be done by creating a system service.
cat > /etc/systemd/system/disable_thp.service << 'EOL'
[Unit]
Description=Disable Kernel Support for Transparent Huge Pages (THP)
[Service]
Type=simple
ExecStart=/bin/sh -c "echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled && echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag"
[Install]
WantedBy=multi-user.target
EOL
systemctl daemon-reload
systemctl enable --now disable_thp
- Disable Swapiness
echo 'vm.swappiness=0' > /etc/sysctl.conf
sysctl -p
Next, proceed to install Couchbase Server.
There are different ways in which you can install Couchbase server;
Install Couchbase Server using YUM via Couchbase repositories
- To install Install Couchbase Server via YUM, you first need to install Couchbase repositories;
yum install https://packages.couchbase.com/releases/couchbase-release/couchbase-release-1.0-x86_64.rpm
- Install Couchbase server on Rocky Linux
yum install couchbase-server-community
Sample installation output;
Running transaction
Preparing : 1/1
Installing : ncurses-compat-libs-6.1-9.20180224.el8.x86_64 1/3
Installing : bzip2-1.0.6-26.el8.x86_64 2/3
Running scriptlet: couchbase-server-community-7.0.2-6703.x86_64 3/3
Minimum RAM required : 4 GB
System RAM configured : 1.77 GB
Minimum number of processors required : 4 cores
Number of processors on the system : 2 cores
Installing : couchbase-server-community-7.0.2-6703.x86_64 3/3
Running scriptlet: couchbase-server-community-7.0.2-6703.x86_64 3/3
Created symlink /etc/systemd/system/multi-user.target.wants/couchbase-server.service → /usr/lib/systemd/system/couchbase-server.service.
You have successfully installed Couchbase Server.
Please browse to http://rocky8:8091/ to configure your server.
Refer to https://docs.couchbase.com for additional resources.
Please note that you have to update your firewall configuration to
allow external connections to a number of network ports for full
operation. Refer to the documentation for the current list:
https://docs.couchbase.com/server/7.0/install/install-ports.html
By using this software you agree to the End User License Agreement.
See /opt/couchbase/LICENSE.txt.
Verifying : bzip2-1.0.6-26.el8.x86_64 1/3
Verifying : ncurses-compat-libs-6.1-9.20180224.el8.x86_64 2/3
Verifying : couchbase-server-community-7.0.2-6703.x86_64 3/3
Installed:
bzip2-1.0.6-26.el8.x86_64 couchbase-server-community-7.0.2-6703.x86_64 ncurses-compat-libs-6.1-9.20180224.el8.x86_64
Complete!
Install using RPM Binary Package
To install Couchbase Server via RPM binary package, navigate to the Couchbase downloads page and select the appropriate package of Couchbase Server to install and grab the link for the RPM binary package.
Note, for Rocky Linux, we will use an RPM binary for CentOS 8. For example, the command below downloads version 7.0.2 of Couchbase server for CentOS 8 and installs it on Rocky Linux 8;
yum localinstall https://packages.couchbase.com/releases/7.0.2/couchbase-server-community-7.0.2-centos8.x86_64.rpm
You can run the same command above on CentOS 8;
On CentOS 7;
yum localinstall https://packages.couchbase.com/releases/7.0.2/couchbase-server-community-7.0.2-centos7.x86_64.rpm
Check the downloads page for other RHEL distros.
Running Couchbase Server Service
When installed, Couchbase server service is started and enabled to run on system boot;
Check the status;
systemctl status couchbase-server
Sample output;
● couchbase-server.service - Couchbase Server
Loaded: loaded (/usr/lib/systemd/system/couchbase-server.service; enabled; vendor preset: disabled)
Drop-In: /etc/systemd/system/couchbase-server.service.d
└─override.conf
Active: active (running) since Mon 2022-03-28 17:36:39 EAT; 1min 14s ago
Docs: https://docs.couchbase.com
Process: 64569 ExecStop=/opt/couchbase/bin/couchbase-server -k (code=exited, status=0/SUCCESS)
Main PID: 64606 (beam.smp)
Tasks: 168 (limit: 11388)
Memory: 175.6M
CGroup: /system.slice/couchbase-server.service
├─64606 /opt/couchbase/lib/erlang/erts-10.7.2.7/bin/beam.smp -A 16 -sbwt none -- -root /opt/couchbase/lib/erlang -progname erl -- -home /opt/couchbase -- -smp e>
├─64621 /opt/couchbase/lib/erlang/erts-10.7.2.7/bin/epmd -daemon
├─64670 erl_child_setup 200000
├─64689 /opt/couchbase/lib/erlang/erts-10.7.2.7/bin/beam.smp -A 16 -sbt u -P 327680 -K true -swt low -sbwt none -MMmcs 30 -e102400 -- -root /opt/couchbase/lib/e>
├─64711 erl_child_setup 200000
├─64732 sh -s disksup
├─64734 /opt/couchbase/lib/erlang/lib/os_mon-2.5.1.1/priv/bin/memsup
├─64735 /opt/couchbase/lib/erlang/lib/os_mon-2.5.1.1/priv/bin/cpu_sup
├─64736 /opt/couchbase/lib/erlang/erts-10.7.2.7/bin/beam.smp -P 327680 -K true -- -root /opt/couchbase/lib/erlang -progname erl -- -home /opt/couchbase -- -pa />
├─64743 erl_child_setup 200000
├─64762 sh -s disksup
├─64764 /opt/couchbase/lib/erlang/lib/os_mon-2.5.1.1/priv/bin/memsup
├─64765 /opt/couchbase/lib/erlang/lib/os_mon-2.5.1.1/priv/bin/cpu_sup
├─64768 inet_gethost 4
├─64769 inet_gethost 4
├─64770 /opt/couchbase/bin/priv/godu
├─64774 sh -s ns_disksup
├─64775 /opt/couchbase/bin/priv/godu
├─64780 /opt/couchbase/bin/goport -graceful-shutdown=false -window-size=524288
├─64784 /opt/couchbase/bin/prometheus --config.file /opt/couchbase/var/lib/couchbase/config/prometheus.yml --web.enable-admin-api --web.enable-lifecycle --stora>
├─64792 inet_gethost 4
├─64795 inet_gethost 4
├─64796 /opt/couchbase/bin/saslauthd-port
├─64801 /opt/couchbase/bin/goport -graceful-shutdown=false -window-size=524288
├─64805 /opt/couchbase/bin/goxdcr -sourceKVAdminPort=8091 -xdcrRestPort=9998 -isEnterprise=false -ipv4=required -ipv6=optional
├─64814 portsigar for [email protected] 64606
└─64815 /opt/couchbase/bin/memcached -C /opt/couchbase/var/lib/couchbase/config/memcached.json
Mar 28 17:36:39 rocky8 systemd[1]: Started Couchbase Server.
Open Couchbase Ports on Firewall
Couchbase server uses various TCP ports for network communication. If you are running a system level or edge firewall, be sure to open these ports where necessary.
for i in 369 8091-8094 9100-9105 9998 9999 11209-11211 11214 11215 18091-18093 21100-21299; do firewall-cmd --add-port=$i/tcp --permanent; done
firewall-cmd --reload
You can as well use iptables if you want.
Access the Couchbase Web Console
You can now access your Couchbase web console via the url http://server-IP-or-domain-name:8091
.
Upon accessing the url, you will be promted to either join an existing Couchbase cluster or create a new cluster.
In my setup, I don’t have an existing cluster. Hence, I will create a new one. Hence, enter the name of the cluster, admin username and password.
Next, accept the EULA and choose whether to setup disk, ram and services or finish with defaults. We choose finish with defaults in this setup.
Dashboard with sample buckets loaded;
Sample Couchbase server dashboard;
And there you go. You have learnt how to install Couchbase Server on Linux.
Further Reading
Next Couchbase Cluster Setup Steps
Other Tutorials