Гид по технологиям

Установка Apache CouchDB на CentOS 8

• 5 min read • Базы данных • Обновлено 22 Nov 2025
Установка Apache CouchDB на CentOS 8
Установка Apache CouchDB на CentOS 8

Этот пошаговый гид объясняет, как установить и настроить Apache CouchDB на CentOS 8. Вы научитесь добавить репозиторий, установить пакет, настроить доступ по сети, открыть порт в брандмауэре и проверить работу через веб-интерфейс и curl. В конце — рекомендации по безопасности, альтернативы и контрольный список для ролей.

Логотип Apache CouchDB и схема документационной базы

Что такое CouchDB

CouchDB — это документно-ориентированная NoSQL СУБД с открытым исходным кодом, написанная на Erlang. Она хранит документы в формате JSON и предоставляет RESTful HTTP API для создания, чтения, обновления и удаления документов. JSON — это текстовый формат для структурированных данных. RESTful API позволяет работать с базой по HTTP с помощью curl или клиента.

Важно: по умолчанию CouchDB слушает порт 5984 и не создаёт учётную запись администратора при установке.

Требования

  • Сервер с CentOS 8.
  • Доступ root или пользователь с правами sudo.

Установка Apache CouchDB

По умолчанию CouchDB отсутствует в репозиториях CentOS 8. Нужно добавить репозиторий CouchDB и зависимый репозиторий EPEL.

Установите EPEL:

dnf install epel-release -y

Создайте файл репозитория CouchDB:

nano /etc/yum.repos.d/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

Сохраните и закройте файл. Затем установите CouchDB:

dnf install couchdb -y

Когда установка завершится, переходите к настройке.

Настройка CouchDB

В этом руководстве мы настраиваем единичный (standalone) экземпляр CouchDB. По умолчанию сервер привязан к localhost и не имеет администратора. Создадим администратора и разрешим внешние подключения.

Отредактируйте локальный конфигурационный файл:

nano /opt/couchdb/etc/local.ini

Измените bind_address на 0.0.0.0 и добавьте учётную запись администратора в секцию [admins]:

[chttpd]
port = 5984
bind_address = 0.0.0.0  

[admins]
admin = password

Сохраните и закройте файл.

Далее запустите и включите сервис CouchDB:

systemctl start couchdb  
systemctl enable couchdb

Проверьте статус сервиса:

systemctl status couchdb

Ожидаемый фрагмент вывода (пример):

? couchdb.service - Apache CouchDB
   Loaded: loaded (/usr/lib/systemd/system/couchdb.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2020-04-11 07:40:47 EDT; 35s ago
 Main PID: 11992 (beam.smp)
    Tasks: 43 (limit: 26213)
   Memory: 36.4M
   CGroup: /system.slice/couchdb.service
           ??11992 /opt/couchdb/bin/../erts-9.3.3.14/bin/beam.smp -K true -A 16 -Bd -- -root /opt/couchdb/bin/.. -progname couchdb -- -home /o>
           ??12004 /opt/couchdb/bin/../erts-9.3.3.14/bin/epmd -daemon
           ??12023 erl_child_setup 1024
           ??12045 sh -s disksup
           ??12047 /opt/couchdb/bin/../lib/os_mon-2.4.4/priv/bin/memsup
           ??12048 /opt/couchdb/bin/../lib/os_mon-2.4.4/priv/bin/cpu_sup

Apr 11 07:40:47 centos8 systemd[1]: Started Apache CouchDB.

Проверка прослушиваемого порта:

netstat -pnltu | grep 5984

Ожидаемый вывод:

tcp        0      0 0.0.0.0:5984            0.0.0.0:*               LISTEN      11992/beam.smp

Важно: команды systemctl и netstat требуют прав root или sudo.

Настройка SELinux и брандмауэра

По умолчанию в CentOS 8 включён SELinux. В боевой среде предпочтительнее настроить корректные правила SELinux, но для простоты в примере мы переводим его в режим permissive.

Отредактируйте файл конфигурации SELinux:

nano /etc/selinux/config

Найдите строку:

SELINUX=enforcing

Замените её на:

SELINUX=permissive

Сохраните и перезагрузите систему, чтобы изменения вступили в силу.

Разрешите порт 5984 в firewalld:

firewall-cmd --zone=public --permanent --add-port=5984/tcp  
firewall-cmd --reload

Примечание: вместо полного отключения SELinux рассмотрите добавление правил безопасности для CouchDB.

Доступ к веб-интерфейсу CouchDB

Проверьте работу сервера через curl:

curl http://your-server-ip:5984/

Если всё в порядке, вы увидите JSON с информацией о версии, например:

{"couchdb":"Welcome","version":"3.0.0","git_sha":"03a77db6c","uuid":"d0406ea8f0b1a3f18020ec90e627ae35","features":["access-ready","partitioned","pluggable-storage-engines","reshard","scheduler"],"vendor":{"name":"The Apache Software Foundation"}}

Откройте веб-интерфейс управления по адресу:

http://your-server-ip:5984/_utils/

Вы будете перенаправлены на страницу входа.

Страница входа CouchDB

Введите имя администратора и пароль, затем нажмите Log in.

После входа вы увидите панель управления:

Панель управления CouchDB

Работа с базами данных через curl

Создание базы данных testdb:

curl -u admin:password -X PUT http://your-server-ip:5984/testdb

Ожидаемый ответ:

{"ok":true}

Создание базы userdb:

curl -u admin:password -X PUT http://your-server-ip:5984/userdb

Проверка информации о базе:

curl -u admin:password -X GET http://your-server-ip:5984/testdb

Пример ответа:

{"db_name":"testdb","purge_seq":"0-g1AAAABXeJzLYWBgYMpgTmEQTM4vTc5ISXIwNDLXMwBCwxyQVB4LkGRoAFL_gSArkQGP2kSGpHqIoiwAtOgYRA","update_seq":"0-g1AAAABXeJzLYWBgYMpgTmEQTM4vTc5ISXIwNDLXMwBCwxyQVB4LkGRoAFL_gSArkQGP2kSGpHqIoiwAtOgYRA","sizes":{"file":16700,"external":0,"active":0},"props":{},"doc_del_count":0,"doc_count":0,"disk_format_version":8,"compact_running":false,"cluster":{"q":2,"n":1,"w":1,"r":1},"instance_start_time":"0"}

Удаление базы testdb:

curl -u admin:password -X DELETE http://your-server-ip:5984/testdb

Ответ:

{"ok":true}

Создание базы данных в CouchDB

Контрольный список перед вводом в эксплуатацию

Администратор:

  • Проверить, что создана учётная запись администратора и пароль надёжен.
  • Настроить бэкапы и мониторинг (логи, использование диска, память).
  • Ограничить доступ по IP или через VPN.

Разработчик:

  • Тестировать CRUD через REST API и клиентские библиотеки.
  • Убедиться, что модели документов устойчивы к обновлениям схемы.

Оператор:

  • Настроить alerting при критических ошибках сервиса.
  • Планировать обновления и миграции с минимальным временем простоя.

Рекомендации по безопасности

  • Используйте HTTPS (TLS) перед открытием сервиса в интернет. Настройте обратный прокси (nginx или Apache) с TLS и ограничьте доступ к CouchDB по localhost.
  • Не храните пароли в открытом виде в скриптах; используйте vault или переменные окружения.
  • Отключайте или ограничивайте административные интерфейсы только доверенными сетями.
  • Рассмотрите включение SELinux в режиме enforcing и настройку политик вместо полного перевода в permissive.

Когда CouchDB подходит, а когда нет

Подходит:

  • Если ваша модель данных естественно представляется документами JSON.
  • Если требуются простые RESTful операции и горизонтальная масштабируемость с репликацией.

Не подходит:

  • Для сложных транзакций с отношениями типа «многие ко многим», где нужны ACID-транзакции между таблицами (реляционные СУБД лучше подходят).
  • Для случаев, где критически важна строгая целостность ссылок между множественными сущностями.

Альтернативы и миграция

  • MongoDB — ещё одна популярная документно-ориентированная БД, часто выбирается за богатую экосистему и гибкие индексы.
  • PostgreSQL с JSONB — альтернатива, если нужны и реляционные возможности, и хранение JSON.
  • Couchbase — похожа на CouchDB, но ориентирована на высокую производительность и встроенный кеш.

Миграция: экспортируйте документы через API или инструменты миграции, тестируйте поиски и индексы в новой системе перед полным переносом.

Ментальные модели и эвристики

  • Представляйте данные как набор независимых документов. Каждый документ — автономная единица с уникальным _id.
  • Индексируйте только то, что действительно требуется для запросов.
  • Репликация в CouchDB — мощный инструмент для распределённых приложений и оффлайн-синхронизации.

Небольшой набор проверок (тесты приёмки)

  • Сервис запущен и слушает порт 5984.
  • Веб-UI доступен по /_utils/ и позволяет войти под админом.
  • Создание, чтение, обновление и удаление документов работает через API.
  • Файлы логов CouchDB не содержат критических ошибок при старте.

Быстрый плейбук для восстановления после сбоя

  1. Проверить статус systemd: systemctl status couchdb.
  2. Посмотреть логи: journalctl -u couchdb -n 200.
  3. Проверить доступность порта: netstat -pnltu | grep 5984.
  4. Если служба не стартует, временно вернуть SELINUX в permissive и проверить ошибки конфигурации.
  5. Восстановить данные из последних бэкапов при необходимости.

Краткая сводка

Вы установили и настроили CouchDB на CentOS 8, разрешили доступ по сети, открыли порт в firewalld и проверили работу через curl и веб-интерфейс. В руководстве также приведены рекомендации по безопасности, альтернативы и чек-листы для ролей.

Важно: перед открытием CouchDB в продуктивной сети настройте TLS и локальную политику безопасности.

Дополнительные ресурсы

Официальная документация Apache CouchDB: https://couchdb.apache.org/

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро