Apache CouchDB es una base de datos NoSQL orientada a documentos que utiliza JSON para almacenar datos


Apache CouchDB es una base de datos NoSQL orientada a documentos que utiliza JSON para almacenar datos, JavaScript para consultas y MapReduce, y HTTP como API principal. Es especialmente útil para aplicaciones web modernas que requieren sincronización, replicación y tolerancia a particiones.

Requisitos previos

Antes de comenzar, asegúrate de tener:

  • Un sistema Debian 12 actualizado.
  • Acceso root o un usuario con privilegios sudo.
  • Puerto 5984 abierto en el firewall si quieres acceso externo.

Actualiza los paquetes del sistema:

apt update
apt upgrade -y

Añadir el repositorio oficial de CouchDB

CouchDB no está actualizado en los repositorios de Debian, así que se recomienda usar el repositorio oficial. Lo primero será añadir la llave para el repositorio:

curl https://couchdb.apache.org/repo/keys.asc | gpg --dearmor -o /etc/apt/keyrings/couchdb-archive-keyring.gpg

Luego añade el repositorio:

echo "deb [signed-by=/etc/apt/keyrings/couchdb-archive-keyring.gpg] https://apache.jfrog.io/artifactory/couchdb-deb/ bookworm main" | tee /etc/apt/sources.list.d/couchdb.list > /dev/null

Actualiza los repositorios e instala los paquetes necesarios:

apt update
apt install couchdb -y

Durante la instalación, tendremos que seleccionar el tipo de configuración. Si solo es para un servidor, recomendamos usar Standalone:

En CouchDB, el Erlang magic cookie (.erlang.cookie) se utiliza para que los nodos de un clúster puedan comunicarse de forma segura entre ellos. Es un archivo que contiene una cadena secreta compartida por todos los nodos.

Si no tenemos que utilizando de forma remota, usaremos 127.0.0.1:

Finalmente configuramos una contraseña para el admin:

Configuración de CouchDB

Durante la instalación, verás un asistente interactivo que te preguntará si quieres:

  • Instalar como nodo único (standalone) o en clúster.
  • Configurar la IP de binding (por defecto 127.0.0.1 si es para localhost).
  • Crear una cuenta de administrador.

Si te saltaste la configuración o quieres modificarla más adelante, edita el archivo:

nano /opt/couchdb/etc/local.ini

Puntos clave del fichero:

  • [admins]: Define usuarios administradores.
  • [httpd]: Configura el puerto y la IP de escucha (bind_address).
  • [couch_httpd_auth]: Habilita autenticación persistente.

Ejemplo de local.ini para acceso local:

[admins]
admin = contraseña_segura

[chttpd]
bind_address = 127.0.0.1

[httpd]
enable_cors = true

Para acceso remoto, cambia bind_address a 0.0.0.0, pero solo tras asegurar la instancia.

Iniciar y habilitar CouchDB

Inicia el servicio y lo habilitamos para que arranque con el sistema:

systemctl enable --now couchdb

Comprueba el estado:

systemctl status couchdb

Verifica que funciona

Prueba desde consola con curl:

curl http://127.0.0.1:5984

Deberías recibir algo como:

{
 "couchdb":"Welcome",
  "version":"3.5.0",
  "git_sha":"11f0d3643",
  "uuid":"e7477f146b97f03f1c0baa1fb039027f",
  "features": [
    "access-ready",
    "partitioned",
    "pluggable-storage-engines",
    "reshard",
    "scheduler"
  ],
  "vendor": {
    "name":"The Apache Software Foundation"
  }
}

Conclusión

Ya tienes CouchDB funcionando en Debian 12. Puedes usarlo como base de datos para tus aplicaciones modernas, con replicación, tolerancia a fallos y una API sencilla basada en HTTP.

¿Lo vas a usar con Node.js? ¿Quizás para sincronizar datos offline en móviles? Sea cual sea tu caso, CouchDB es una gran opción cuando buscas robustez y flexibilidad.


Más sobre ./voidNull

Haz que cada palabra cuente: tu donación nos inspira a seguir creando contenido. Accede al apartado de Donación para hacer tu aportación