Установка и настройка Apache CouchDB на CentOS 7
Этот пошаговый гид показывает, как установить и настроить Apache CouchDB на сервере CentOS 7. Вы узнаете, как добавить репозиторий EPEL, установить CouchDB, включить HTTP-интерфейс (Fauxton), создать административную учётную запись и выполнять базовые операции через API с помощью curl. Контрольные команды и советы по устранению неполадок включены.
Важно: пример использует порт 5984 и директорию установки /opt/couchdb. Настройте IP и пароли под свою среду.
Что понадобится
- Сервер с CentOS 7
- root или эквивалентные привилегии sudo
- Доступ в интернет для загрузки пакетов
План действий
- Установить EPEL
- Установить Apache CouchDB из RPM-репозитория
- Включить HTTP-интерфейс CouchDB и открыть порт 5984
- Создать административную учётную запись через Fauxton
- Базовые операции через API с curl
Шаг 1 — Установка репозитория EPEL
Перед установкой CouchDB на CentOS 7 добавим репозиторий EPEL (Extra Packages for Enterprise Linux). Это стандартный репозиторий для дополнительных пакетов.
Выполните:
yum -y install epel-release
Репозиторий EPEL установлен.
Шаг 2 — Установка Apache CouchDB
Apache CouchDB распространяется в виде rpm-пакетов для RHEL/CentOS. Добавим репозиторий Apache CouchDB и установим пакет.
Перейдите в каталог репозиториев и создайте файл apache-couchdb.repo:
cd /etc/yum.repos.d/
vim apache-couchdb.repoВставьте (сохраните и закройте файл):
[bintray--apache-couchdb-rpm]
name=bintray--apache-couchdb-rpm
baseurl=http://apache.bintray.com/couchdb-rpm/el$releasever/$basearch/
gpgcheck=0
repo_gpgcheck=0
enabled=1Теперь установите пакет:
yum -y install couchdbПосле установки запустите службу и включите автозапуск при загрузке:
systemctl start couchdb
systemctl enable couchdbПроверьте статус сервиса:
systemctl status couchdbВы должны увидеть, что служба активна.

Проверьте слушающие порты (один из удобных способов):
netstat -plntu
Apache CouchDB установлен и по умолчанию слушает порт 5984.
Шаг 3 — Включение HTTP-интерфейса CouchDB
CouchDB предоставляет HTTP-интерфейс и веб-панель администрирования Fauxton. По умолчанию сервис может быть привязан только к localhost. Чтобы открыть доступ извне, измените bind_address.
Откройте конфигурационный файл:
cd /opt/couchdb
vim etc/default.iniНайдите секцию [chttpd] и отредактируйте параметры:
[chttpd]
port = 5984
bind_address = 0.0.0.0Сохраните изменения и перезапустите службу:
systemctl restart couchdbЗатем откройте в браузере (замените IP на адрес вашего сервера):
http://192.168.1.11:5984/_utils/

Примечание
Если на сервере работает firewalld, разрешите порт 5984:
firewall-cmd --add-port=5984/tcp --permanent
firewall-cmd --reload
Дополнительно для случая с SELinux: если SELinux включён, возможно потребуется разрешить сетевой доступ для процесса couchdb или настроить контексты для /opt/couchdb. Проверяйте /var/log/audit/audit.log при ошибках доступа.
Шаг 4 — Создание административной учётной записи
По умолчанию CouchDB запускается в режиме “Admin Party”: нет настроенных администраторов, и доступ открыт. Это удобно для тестов, но небезопасно в продакшене. Закройте “Admin Party” через Fauxton.
Откройте Fauxton по адресу:
http://192.168.1.11:5984/_utils/
Перейдите на вкладку Admin Party, введите имя администратора и пароль, затем нажмите Create Admin.

После создания учётной записи Fauxton запросит вход:

Введите сохранённые логин и пароль.
Важно
Храните учётные данные в безопасном хранилище. При необходимости интегрируйте CouchDB с внешними системами аутентификации.
Шаг 5 — Базовые операции через API с curl
CouchDB управляется через HTTP API. В качестве клиента мы используем curl. Ниже — набор часто используемых команд.
- Hello CouchDB — узнать версию и статус сервера:
curl -X GET http://localhost:5984/
Вы увидите информацию о версии CouchDB (в примере 2.1.0).
- Создать новую базу данных (PUT). Если включена аутентификация, укажите логин:пароль в URL или используйте заголовки Authorization.
Пример без учётных данных — ожидаемо получите Unauthorized:
curl -X PUT http://localhost:5984/hakase_dbПример с учётными данными (замените hakase:aqwe123 на свои):
curl -X PUT http://hakase:aqwe123@localhost:5984/hakase_db
- Просмотреть список баз данных:
curl -X GET http://hakase:aqwe123@localhost:5984/_all_dbs- Получить информацию о базе данных:
curl -X GET http://hakase:aqwe123@localhost:5984/hakase_db
- Удалить базу данных:
curl -X DELETE http://hakase:aqwe123@localhost:5984/hakase_dbПроверьте, что базы нет:
curl -X GET http://hakase:aqwe123@localhost:5984/_all_dbs
Полезная шпаргалка по командам
- Управление службой:
systemctl start|stop|restart couchdb
systemctl enable couchdb
systemctl status couchdb- Сетевые проверки:
netstat -plntu | grep 5984
ss -plntu | grep 5984
curl -I http://localhost:5984/- Firewall:
firewall-cmd --add-port=5984/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-ports- SELinux (проверка режима):
sestatusЕсли SELinux — Enforcing, при проблемах с доступом проверьте audit.log.
Критерии приёмки
- Сервис couchdb активен и слушает порт 5984: systemctl status couchdb + ss/netstat показывают порт.
- Fauxton доступен по http://
:5984/_utils/ и запрашивает учётные данные после создания администратора. - Можно создать, просмотреть и удалить базу данных через curl с учётными данными.
- Порт 5984 открыт в фаерволе (если фаервол активен).
Устранение неполадок
- CouchDB не запускается: проверьте журналы systemctl journalctl -u couchdb и /opt/couchdb/log/*.json.
- Порт не слушается: проверьте bind_address в etc/default.ini и перезапустите сервис.
- Fauxton недоступен извне: проверьте firewall-cmd и SELinux.
- Ошибка Unauthorized при curl: проверьте правильность логина:пароля и кодировку символов в URL. Лучше использовать –user или заголовок Authorization.
Совет: используйте –user вместо встраивания пароля в URL:
curl -u hakase:aqwe123 -X GET http://localhost:5984/_all_dbsКонтрольный список для ролей
Администратор сервера:
- Установить EPEL и CouchDB
- Открыть порт 5984 в фаерволе
- Настроить SELinux или контексты
ДевОпс/инфра:
- Настроить systemd unit, мониторинг и рестарт при падении
- Настроить резервное копирование файлов couchdb и репликацию при необходимости
Разработчик:
- Использовать CouchDB API для создания/удаления баз
- Настроить тесты, валидировать JSON-документы
Альтернативные подходы
- Контейнеризация: запуск CouchDB в Docker или Podman упрощает изоляцию и деплоймент.
- Пакетный менеджер: если доступен более свежий rpm-репозиторий, используйте его для доступа к новым версиям.
- Управляемые сервисы: для критичных нагрузок рассмотрите управляемые NoSQL-решения.
Модель зрелости использования CouchDB
- Начальный: single-node, Admin Party выключен, ручные бэкапы.
- Базовый: single-node с мониторингом и регулярными бэкапами.
- Производственный: кластер/репликация, автоматическое восстановление, централизованное управление конфигурацией.
Факто-бокс
- Порт по умолчанию: 5984
- Формат данных: JSON документы
- Модель: документно-ориентированная NoSQL база
- Управление: HTTP API и Fauxton веб-интерфейс
Безопасность и конфиденциальность
- Отключите Admin Party немедленно в продакшен.
- Используйте HTTPS через обратный прокси (nginx/HAProxy) или включите TLS, если применимо.
- Ограничьте доступ по IP в фаерволе.
Итог
Установка и базовая конфигурация Apache CouchDB на CentOS 7 занимает несколько шагов: добавление EPEL, установка rpm-пакета, открытие порта и создание администратора через Fauxton. После этого можно управлять базами через HTTP API с помощью curl. Рекомендуется дополнительно настроить мониторинг, резервное копирование и защищённый доступ по HTTPS.
Справочная документация:
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента