O Atomic-Server atua como um sistema de banco de dados em tempo real e um CMS headless de código aberto. Ele oferece recursos como editor de tabelas, busca de texto completo e SDKs para ecossistemas como JavaScript, React e Svelte. Este documento detalha os procedimentos técnicos para instalar, conifgurar e otimizar essa solução de gerenciamento de dados.
Principais Características do Sistema
- Alta Performance: Binário compacto (aproximadamente 8MB), sem dependências de runtime e latência de resposta inferior a 1ms.
- Modelagem de Dados Flexível: Criação de classes, propriedades e esqueemas através de um editor de ontologia integrado.
- Integração com IA: Suporte ao protocolo MCP, compatível com modelos via OpenRouter ou Ollama.
- Interface de Tabelas: Editor visual com suporte a atalhos de teclado e operações de copiar/colar.
- Edição Colaborativa: Editor de texto rico para colaboração em documentos em tempo real.
- Busca Avançada: Motor de busca com operadores diversos e tempo de resposta tipicamente abaixo de 3ms.
- Sincronização em Tempo Real: Comunicação de mutações de estado via WebSockets.
Métodos de Instalação
1. Contêiner Docker (Abordagem Recomendada)
A execução via contêiner é o método mais ágil para provisionar o ambiente.
docker run -d \
--name atomic_instance \
-p 8080:80 \
-p 8443:443 \
-v atomic_persistent_data:/atomic_db \
joepmeneer/atomic-server
Este comando realiza o pull da imagem, mapeia as portas HTTP/HTTPS para 8080 e 8443 respectivamente, cria um volume nomeado para persistência e inicia o processo em segundo plano.
2. Binários Pré-compilados
Baixe o executável específico para sua arquitetura de sistema operacional no repositório oficial e mova-o para o diretório de binários do sistema (ex: /usr/local/bin).
3. Instalação via Cargo (Ecossistema Rust)
Para ambientes com a toolchain Rust configurada:
# Instalação direta do registry
cargo install atomic-server --locked
# Verificação da instalação e opções
atomic-server --help
# Inicialização do processo
atomic-server
4. Compilação a Partir do Código-Fonte
Ideal para contribuidores ou necessidades de customização profunda. Requer o pnpm instalado.
# Clonagem do repositório
git clone https://github.com/joepmenmeer/atomic-server.git
cd atomic-server/server
# Execução em modo de desenvolvimento
cargo run
Caso falhem dependências nativas no Linux, instale os pacotes de compilação:
sudo apt-get update && sudo apt-get install -y build-essential pkg-config libssl-dev
Configuração Inicial e Parâmetros
Definição de Variáveis
O servidor aceita configurações via argumentos CLI, variáveis de ambiente ou arquivo .env. Para gerar um template de ambiente:
atomic-server generate-dotenv
Primeira Execução
- Observe os logs de inicialização para capturar o
Agent Subjecte aPrivate key, essenciais para autenticação de clientes. - Navegue até
http://localhost:9883/setupno navegador. - Provisione a conta administrativa inicial.
Ajustes de Rede e Segurança
# Definição de portas e interface
atomic-server --port 8080 --port-https 8443 --ip 0.0.0.0
# Configuração de domínio e HTTPS automático (Let's Encrypt)
atomic-server --domain app.dominio.com --https --email admin@dominio.com
# Modo de desenvolvimento (Staging do Let's Encrypt)
atomic-server --development --server-url https://staging.dominio.com
Estratégias de Deploy Avançado
Exposição via Túnel (Sem Port Forwarding)
Para expor o serviço localmente sem configurar roteamento de porta no roteador:
# Iniciar túnel
tunnelto start --port 9883 --subdomain meu-app-atomic --token SEU_TOKEN_AQUI
# Iniciar servidor apontando para o túnel
atomic-server --domain meu-app-atomic.tunnelto.dev --custom-server-url 'https://meu-app-atomic.tunnelto.dev' --initialize
Gerenciamento via Systemd (Linux)
Crie o arquivo /etc/systemd/system/atomic-db.service:
[Unit]
Description=Atomic Server Database
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=atomic_user
Group=atomic_group
ExecStart=/opt/atomic/bin/atomic-server
WorkingDirectory=/opt/atomic/data
EnvironmentFile=/opt/atomic/config/.env
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target
Comandos de controle do serviço:
sudo systemctl daemon-reload
sudo systemctl enable --now atomic-db
sudo journalctl -u atomic-db -f
Interação via Interface Gráfica (GUI)
Acesse http://localhost:9883. Na primeira vez, utilize a opção de aceitar como novo usuário e armazene a chave do agente de forma segura. A interface permite a criação de recursos estruturados (tabelas, pastas, documentos), upload de arquivos e execução de buscas textuais complexas.
Integração com Inteligência Artificial
O sistema possui um assistente de IA configurável. No painel de configurações, selecione o provedor (OpenRouter, Ollama), insira a chave de API correspondente e ative as ferramentas desejadas. Isso habilita preenchimento automático de tabelas, conversão de dados não estruturados e geração de conteúdo textual.
Diagnóstico e Solução de Problemas
Conflitos de Porta
# Identificar processo na porta 9883
sudo ss -tulpn | grep 9883
# Reatribuir porta
atomic-server --port 9090
Problemas de Permissão de Arquivo
# Verificar e corrigir permissões do diretório de configuração
sudo chown -R atomic_user:atomic_group /opt/atomic/data
chmod -R 750 /opt/atomic/data
Falha na Geração de Certificados
# Limpar cache de certificados e reinicializar
rm -rf /opt/atomic/data/certs/
atomic-server --https --initialize --domain app.dominio.com
Comandos Úteis de Diagnóstico
atomic-server show-config # Exibe a configuração ativa
atomic-server reset # APAGA TODOS OS DADOS (usar com extrema cautela)
Otimização de Performance
# Direcionar dados para disco de alta performance (NVMe/SSD)
atomic-server --data-dir /mnt/nvme/atomic_storage
# Reduzir verbosidade de logs para diminuir I/O
atomic-server --log-level error
# Habilitar modo público (ignora autenticação, útil para caches ou ambientes isolados)
atomic-server --public-mode