yum install firewalld -y
sed "s/\"80\"/\"5984\"/;s/WWW (HTTP)/CouchDB/;/<description>.*/d" /usr/lib/firewalld/services/http.xml > /etc/firewalld/services/couchdb.xml
systemctl start firewalld
systemctl enable firewalld
firewall-cmd --permanent --zone=public --add-interface=eth0
firewall-cmd --reload
firewall-cmd --permanent --add-service=couchdb --zone=public
firewall-cmd --reload

yum install epel-release -y
yum install autoconf autoconf-archive automake curl-devel erlang-asn1 erlang-erts erlang-eunit erlang-os_mon erlang-xmerl help2man js-devel libicu-devel libtool perl-Test-Harness gcc-c++ -y

dd if=/dev/zero of=/root/temp.img bs=1M count=100
mkfs.xfs /root/temp.img
mkdir /mnt/tmp
mount -o loop /root/temp.img /mnt/tmp

curl -sSL http://www-us.apache.org/dist/couchdb/source/1.6.1/apache-couchdb-1.6.1.tar.gz -o /mnt/tmp/apache-couchdb-1.6.1.tar.gz

cd /mnt/tmp
tar -zxvf apache-couchdb-1.6.1.tar.gz

cd apache-couchdb-1.6.1

./configure --with-erlang=/usr/lib64/erlang/usr/include

make && make install

# one file is quicker than rm -rf entire branch of nonsense
cd
umount /mnt/tmp
rm -f /root/temp.img

useradd --system --home /usr/local/var/lib/couchdb --no-create-home --shell /bin/bash -c "CouchDB Administrator" couchdb

chown -R couchdb:couchdb /usr/local/etc/couchdb
chown -R couchdb:couchdb /usr/local/var/lib/couchdb
chown -R couchdb:couchdb /usr/local/var/log/couchdb
chown -R couchdb:couchdb /usr/local/var/run/couchdb

chmod 0770 /usr/local/etc/couchdb
chmod 0770 /usr/local/var/lib/couchdb
chmod 0770 /usr/local/var/log/couchdb
chmod 0770 /usr/local/var/run/couchdb

cat > /usr/lib/systemd/system/couchdb.service << EOF
[Unit]
Description=CouchDB
Documentation=http://docs.couchdb.org/en/1.6.1/contents.html
Wants=network-online.target
After=network-online.target

[Service]
User=couchdb
Group=couchdb
Type=simple
StandardOutput=journal
StandardError=journal
Restart=always
StartLimitInterval=10
StartLimitBurst=5
PIDFile=/usr/local/var/run/couchdb/couchdb.pid
ExecStart=/usr/local/bin/couchdb -p /usr/local/var/run/couchdb/couchdb.pid

[Install]
WantedBy=multi-user.target
EOF

sed -i.original "s/bind_address =.*/bind_address = $PUBLIC_IP/" /usr/local/etc/couchdb/default.ini

systemctl start couchdb
systemctl enable couchdb

export PUBLIC_IP=$(ip addr | grep 'state UP' -A2 | tail -n1 | awk '{print $2}' | cut -f1  -d'/')
curl http://$PUBLIC_IP:5984

