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
5984abierto en el firewall si quieres acceso externo.
Actualiza los paquetes del sistema:
apt update
apt upgrade -yAñ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.gpgLuego 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/nullActualiza los repositorios e instala los paquetes necesarios:
apt update
apt install couchdb -yDurante 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.iniPuntos 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 = truePara 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 couchdbComprueba el estado:
systemctl status couchdbVerifica que funciona
Prueba desde consola con curl:
curl http://127.0.0.1:5984Deberí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
- 📖 Aprende todos sobre los comandos de GNU/Linux en nuestro Diccionario "De la A a la Z: Los comandos de GNU/Linux"
- 💪 ¡Forma parte de la Comunidad de ./voidNull!
- 🤖 Disfruta de todos nuestros Cursos sobre Ansible, Proxmox, Home Assistant entre otros.
- 📩 Mantente actualizado con lo último en GNU/Linux y Software Libre. Recibe nuestra Newsletter mensual.
Comentarios