O que é o Apache CouchDB e quando utilizá-lo
O Apache CouchDB é um banco de dados NoSQL orientado a documentos, desenvolvido em Erlang, que armazena informações no formato JSON e expõe praticamente toda a sua funcionalidade através de uma API RESTful sobre HTTP. Diferente de bancos relacionais tradicionais, o CouchDB foi projetado desde o início para lidar bem com replicação distribuída, operação offline-first e sincronização entre múltiplos nós, o que o torna uma escolha interessante para cenários de TI industrial.
Em ambientes de manufatura e automação, é comum encontrar sistemas SCADA, gateways IoT e estações de chão de fábrica que precisam coletar dados localmente e sincronizá-los posteriormente com um servidor central, mesmo em conexões instáveis. O modelo de replicação multi-mestre do CouchDB resolve exatamente esse tipo de problema, permitindo que dispositivos de borda continuem operando mesmo quando a rede cai, sincronizando os dados assim que a conectividade é restabelecida.
Este tutorial mostra como instalar o CouchDB em uma máquina Ubuntu Linux, usando o repositório oficial mantido pela Apache Software Foundation, configurar o acesso administrativo e validar a instalação criando o primeiro banco de dados via API REST.
Pré-requisitos
- Servidor ou máquina virtual com Ubuntu 20.04, 22.04 ou 24.04 LTS instalado.
- Acesso root ou usuário com privilégios sudo.
- Conexão com a internet para baixar pacotes dos repositórios.
- Pacotes básicos
curlegnupgdisponíveis (serão instalados caso ainda não existam). - Portas 5984 (API HTTP) e, opcionalmente, 4369 e 9100-9200 (comunicação de cluster Erlang) liberadas no firewall, caso o CouchDB seja acessado remotamente.
Passo a passo da instalação
1. Atualizar o sistema
Antes de qualquer instalação, é fundamental garantir que a lista de pacotes e os componentes do sistema estejam atualizados, evitando conflitos de dependências.
sudo apt update && sudo apt upgrade -y
2. Instalar dependências básicas
Instale as ferramentas necessárias para adicionar o repositório oficial com segurança, via chave GPG.
sudo apt install -y curl gnupg apt-transport-https software-properties-common lsb-release
3. Adicionar a chave GPG e o repositório oficial do CouchDB
A Apache Software Foundation mantém um repositório APT oficial para distribuições baseadas em Debian/Ubuntu. Importe a chave de assinatura e registre o repositório correspondente à sua versão do Ubuntu.
curl -fsSL https://couchdb.apache.org/repo/keys.asc | sudo gpg --dearmor -o /usr/share/keyrings/couchdb-archive-keyring.gpg
source /etc/os-release
echo "deb [signed-by=/usr/share/keyrings/couchdb-archive-keyring.gpg] https://apache.jfrog.io/artifactory/couchdb-deb/ ${VERSION_CODENAME} main" | sudo tee /etc/apt/sources.list.d/couchdb.list
Em seguida, atualize novamente o índice de pacotes para que o novo repositório seja reconhecido.
sudo apt update
4. Instalar o Apache CouchDB
Com o repositório configurado, a instalação é feita como qualquer outro pacote via APT.
sudo apt install -y couchdb
Durante a instalação, um assistente interativo (via debconf) será exibido, perguntando se a instalação será do tipo "standalone" ou "clustered", o endereço IP de binding e a senha do usuário administrador. Para a maioria dos casos de uso em integração industrial de pequeno e médio porte, a opção standalone é suficiente. Se preferir configurar manualmente depois, essas mesmas opções podem ser ajustadas diretamente no arquivo de configuração.
5. Configurar o arquivo local.ini
O arquivo principal de configuração do CouchDB fica em /opt/couchdb/etc/local.ini. Nele é possível definir o endereço de bind, a porta HTTP e outras diretivas de segurança e desempenho.
sudo nano /opt/couchdb/etc/local.ini
Localize (ou adicione) as seções abaixo para expor o serviço na rede interna e definir a porta padrão:
[chttpd]
port = 5984
bind_address = 0.0.0.0
[couchdb]
single_node = true
Salve o arquivo e reinicie o serviço para aplicar as alterações.
sudo systemctl restart couchdb
sudo systemctl enable couchdb
6. Criar o usuário administrador
Caso o usuário admin não tenha sido definido durante a instalação, é possível criá-lo manualmente editando a seção [admins] do local.ini:
sudo nano /opt/couchdb/etc/local.ini
[admins]
admin = SenhaForteAqui123
Ao salvar o arquivo, o CouchDB automaticamente converte essa senha em texto plano para um hash seguro (PBKDF2) na próxima leitura da configuração. Reinicie o serviço novamente:
sudo systemctl restart couchdb
7. Testar a instalação
Com o serviço em execução, valide se a API HTTP está respondendo corretamente:
curl http://127.0.0.1:5984/
Uma resposta bem-sucedida retorna um JSON semelhante a este, confirmando a versão instalada e o status "couchdb: Welcome":
{
"couchdb": "Welcome",
"version": "3.3.3",
"vendor": {
"name": "The Apache Software Foundation"
}
}
Para confirmar a autenticação do usuário administrador criado, execute:
curl http://admin:[email protected]:5984/_up
8. Criar o primeiro banco de dados via API REST
Todo o gerenciamento do CouchDB pode ser feito via requisições HTTP. Para criar um banco de dados chamado producao_sensores, por exemplo, basta executar um PUT autenticado:
curl -X PUT http://admin:[email protected]:5984/producao_sensores
A resposta esperada é:
{"ok":true}
Para confirmar que o banco foi criado e consultar seus metadados, use:
curl http://admin:[email protected]:5984/producao_sensores
A partir daqui, documentos JSON podem ser inseridos, consultados e atualizados diretamente via API REST, sem necessidade de nenhuma linguagem de consulta adicional.
Boas práticas e conclusão
- Nunca exponha a porta 5984 diretamente à internet; utilize um proxy reverso (Nginx ou Traefik) com TLS e restrição de IP.
- Desative o acesso anônimo em produção, garantindo que todas as bases exijam autenticação (
require_valid_user = truena seção[chttpd]). - Configure backups regulares dos diretórios de dados, geralmente localizados em
/opt/couchdb/data. - Monitore o uso de disco e memória, já que o modelo de armazenamento append-only do CouchDB exige compactação periódica das bases (
_compact). - Em cenários de integração industrial com múltiplas unidades fabris, avalie o uso de replicação contínua entre nós para manter os dados sincronizados mesmo com instabilidade de rede.
Com o Apache CouchDB instalado e configurado corretamente, sua infraestrutura ganha um banco de dados robusto, replicável e nativamente compatível com arquiteturas distribuídas — características especialmente valiosas em projetos de IIoT, MES e integração de chão de fábrica. A partir deste ponto, o próximo passo natural é explorar views com MapReduce, o uso do Mango Query para consultas mais expressivas e a configuração de réplicas entre plantas industriais.