PaperclipAI - Instalação e Configuração em Docker para Produção
21 de abril de 2026
Tutorial completo para implantar o PaperclipAI em ambiente de produção usando Docker, configurar banco de dados PostgreSQL, cache Redis e criar o usuário administrador inicial de forma segura.
O que você vai aprender na instalação do PaperclipAI com Docker
Pré-requisitos para instalar PaperclipAI com Docker
Ferramentas necessárias para configurar PaperclipAI
Passo a passo para instalar PaperclipAI com Docker em produção
Passo 1: Preparar o ambiente e o arquivo docker-compose.yml
Crie um diretório dedicado para o projeto (ex:paperclip-prod) e, dentro dele, um arquivo chamado docker-compose.yml. Este arquivo define os três serviços necessários: a aplicação PaperclipAI, o banco de dados PostgreSQL e o cache Redis. A configuração abaixo já inclui as definições de volumes e rede recomendadas.version: '3.8'
services:
postgres:
image: postgres:16-alpine
container_name: paperclip-postgres
restart: unless-stopped
environment:
POSTGRES_USER: paperclip
POSTGRES_PASSWORD: seu_senha_forte_aqui
POSTGRES_DB: paperclip
volumes:
- postgres_data:/var/lib/postgresql/data
networks:
- paperclip-net
redis:
image: redis:7-alpine
container_name: paperclip-redis
restart: unless-stopped
command: redis-server --appendonly yes
volumes:
- redis_data:/data
networks:
- paperclip-net
paperclip:
image: ghcr.io/paperclipai/paperclip:latest
container_name: paperclip-app
restart: unless-stopped
depends_on:
- postgres
- redis
environment:
# CONFIGURAÇÕES CRÍTICAS:
PAPERCLIP_DEPLOYMENT_MODE: authenticated
DATABASE_URL: postgresql://paperclip:seu_senha_forte_aqui@postgres:5432/paperclip
REDIS_URL: redis://redis:6379
# (Configurações adicionais, como NODE_ENV, podem ser adicionadas aqui)
ports:
- "3000:3000"
volumes:
# REGRA DE OURO: Mapeie APENAS para /paperclip/
- paperclip_data:/paperclip
networks:
- paperclip-net
volumes:
postgres_data:
redis_data:
paperclip_data:
networks:
paperclip-net:
driver: bridge
Passo 2: Configurar variáveis de ambiente e iniciar os containers
Primeiro, edite o arquivodocker-compose.yml e substitua seu_senha_forte_aqui por uma senha segura e complexa para o PostgreSQL. A variável PAPERCLIP_DEPLOYMENT_MODE=authenticated já está definida, garantindo que o acesso à aplicação exija autenticação. Agora, inicie os containers em segundo plano:docker compose up -d
Espere alguns instantes e verifique se todos os serviços estão saudáveis com:
docker compose ps
A saída deve mostrar os três containers com status Up.
Passo 3: Bootstrapping - Criar o primeiro usuário administrador (CEO)
Como a aplicação está em modoauthenticated e não possui tela de registro público, é necessário criar o primeiro usuário via linha de comando. Execute o comando de bootstrap dentro do container da aplicação. Note o uso de gosu node, essencial para executar como o usuário não-root correto.docker exec -it paperclip-app gosu node pnpm paperclipai auth bootstrap-ceo
Este comando gerará um link de convite único no terminal. Copie este URL completo. A saída será semelhante a:
✅ Convite de CEO criado com sucesso. 👉 Utilize o seguinte link para finalizar o cadastro: http://localhost:3000/auth/accept-invite?token=eyJhbGciOiJ...

Passo 4: Acessar a interface e completar a configuração
Passo 5: Bloqueio de segurança pós-instalação
Para evitar que novos usuários se cadastrem sem um convite explícito (após você ter criado sua equipe), é altamente recomendável desabilitar o cadastro aberto. Adicione a seguinte variável de ambiente ao serviçopaperclip no seu docker-compose.yml: paperclip:
...
environment:
PAPERCLIP_DEPLOYMENT_MODE: authenticated
DATABASE_URL: ...
REDIS_URL: ...
PAPERCLIP_AUTH_DISABLE_SIGN_UP: "true" # Adicione esta linha
...
Em seguida, aplique a alteração reiniciando o container da aplicação:
docker compose up -d --force-recreate paperclip
A partir de agora, apenas usuários com links de convite gerados por um administrador (via interface ou comando) poderão se cadastrar.
Dicas e variações para configurar PaperclipAI com Docker
postgres_data, redis_data, paperclip_data) são essenciais. Sem eles, todos os dados (conversas, configurações, vetores) serão perdidos ao remover os containers. Faça backup regular desses volumes./paperclip, nunca force o uso do usuário root no container. A aplicação foi projetada para rodar como node. Verifique se o comando gosu node foi usado em qualquer execução interativa, como feito no Passo 3.paperclip no docker-compose.yml (ex: "8080:3000")."3000:3000" e conectar o container do proxy à rede paperclip-net.