Skip to main content

Prerequisites

Hardware Requirements

ProfileRAMCPUDiskUse Case
Development4 GB2 cores20 GBLocal dev, testing
Small team8 GB4 cores50 GB1-10 users, low volume
Production16-32 GB8+ cores100+ GB SSD10-100+ users, high volume
RAM allocation

PostgreSQL with pgvector and the Celery worker are the most memory-intensive components. For production, allocate at least 4 GB to PostgreSQL and 2 GB per Celery worker concurrency slot.

Disk Considerations

  • PostgreSQL data grows with document count and embedding dimensions (1536-dim vectors at ~6 KB per chunk)
  • Uploaded files are stored in the cl-storage volume — plan for your expected document sizes (the default upload limit is 100 MB per file)
  • Redis memory usage is minimal (task queue only), typically under 100 MB

Software Requirements

SoftwareMinimum VersionNotes
Docker Engine24.0+Or Docker Desktop 4.20+
Docker Composev2.20+Included with Docker Desktop

Kubernetes (alternative)

SoftwareMinimum VersionNotes
Kubernetes1.28+Any distribution (EKS, AKS, GKE, k3s)
Helm3.12+For chart-based deployment
kubectlMatching cluster versionFor management

Without Containers

If running services directly on a host:

SoftwareVersion
Python3.12+
Node.js20 LTS+
PostgreSQL16+ with pgvector extension
Redis7+
Tesseract OCR5+ (with English language pack)

Network Requirements

Outbound (from your server)

DestinationPortPurposeRequired?
api.anthropic.com443 (HTTPS)Anthropic Claude APIIf using Anthropic
api.openai.com443 (HTTPS)OpenAI APIIf using OpenAI
Docker Hub / GHCR443 (HTTPS)Pull container imagesInitial setup and updates
At least one AI provider is required

Contract Lucidity requires at least one AI provider (Anthropic or OpenAI) to function. The document processing pipeline will not start without a configured provider. You can configure providers after first boot via Settings > AI Capabilities.

Inbound (to your server)

PortServiceAccess
443 (HTTPS)Reverse proxy / load balancerAll users
3000cl-frontend (if no reverse proxy)All users (development only)
Production deployments

Never expose ports 5432 (PostgreSQL), 6379 (Redis), or 8000 (backend API) to the public internet. These should only be accessible within the Docker network or private subnet.

AI Provider Account

You need an API key from at least one of:

ProviderSign-upModels Used
Anthropicconsole.anthropic.comClaude (Haiku, Sonnet, Opus) for analysis; no native embedding model — pair with OpenAI for embeddings
OpenAIplatform.openai.comGPT-5.4 nano/mini/full for analysis; text-embedding-3-small for embeddings

Contract Lucidity maps AI capabilities independently, so you can mix providers — for example, use Anthropic Claude for document analysis and OpenAI for embeddings.

AI Capabilities

The system uses five AI capability slots, each assignable to a specific provider and model:

CapabilityUsed For
extraction_classificationDocument type classification, metadata extraction
document_understandingClause extraction, structured data extraction, report generation
embeddingsVector embeddings for semantic search and playbook matching
reasoningComplex analysis tasks
generationContent generation (drafts, counter-proposals)

Domain and SSL

For production deployments:

  • A domain name (e.g., contractlucidity.yourcompany.com)
  • A valid SSL/TLS certificate (Let's Encrypt, corporate CA, or cloud-managed)
  • A reverse proxy (Nginx, Caddy, Traefik, or cloud load balancer) terminating TLS

Storage

EnvironmentRecommendation
DevelopmentLocal Docker volumes (default)
Small teamLocal disk or NAS mount
ProductionAzure Files, AWS EFS/S3, GCP Filestore, or NFS

The backend writes uploaded documents to /data/storage and configuration data to /data/config. Both paths are Docker volumes (cl-storage and cl-config) that must be backed up.