Product
Install in 15 minutes
Docker Compose on any Linux server. No Kubernetes, no Helm charts, no cloud marketplace lock-in.
Requirements#
| Component | Requirement |
|---|---|
| OS | Any Linux with Docker (Ubuntu 22.04+ recommended) |
| Docker | Docker Engine 24+ and Docker Compose v2 |
| RAM | 4 GB minimum, 8 GB recommended |
| Disk | 20 GB (grows with indexed documents and embeddings) |
| Network | Outbound HTTPS to data source APIs + LLM provider + license server |
| LLM API key | OpenAI, Azure OpenAI, Anthropic, or local Ollama instance |
Quick-start (5 steps)#
1. Pull the images
docker pull ghcr.io/quantumitpartners/ai-enterprise-search-api:latest
docker pull ghcr.io/quantumitpartners/ai-enterprise-search-worker:latest
docker pull ghcr.io/quantumitpartners/ai-enterprise-search-frontend:latest2. Create data directories
mkdir -p /opt/aisearch/data/postgres /opt/aisearch/config /opt/aisearch/logs3. Download the compose file
curl -o docker-compose.yml <installer-url-provided-after-purchase>4. Configure environment
cp .env.template .env
# Edit .env: set DB_PASSWORD, REDIS_PASSWORD, JWT_SECRET_KEY,
# ENCRYPTION_MASTER_KEY, LICENSE_SERVER_URL5. Start
docker compose up -dTip
On first start, the setup wizard opens at your configured URL. Create your admin account and upload the license file we send after purchase. Then configure your LLM provider under Settings → AI Assistant.
What's in the box#
Docker Compose brings up 7 containers:
- ✓FastAPI (async Python API server)
- ✓Celery worker (crawling, indexing, embedding)
- ✓Celery Beat (scheduled tasks — delta sync, alerts)
- ✓PostgreSQL 16 + pgvector (documents, embeddings, ACLs)
- ✓Redis (cache, task queue, rate limiting)
- ✓Nginx (reverse proxy, SSL termination)
- ✓Next.js frontend (React 18 + Tailwind)
All data persists under /opt/aisearch/ via bind mounts. You can back up, restore, and migrate by copying that directory.
Scale deployment#
For larger installations, AES supports an enterprise overlay that splits the single worker into dedicated containers for independent scaling:
- ✓Crawl worker — dedicated to data source crawling
- ✓Index worker — dedicated to text extraction + embedding
- ✓Default worker — handles alerts, notifications, and other tasks
When to scale
The single-worker setup handles most deployments. Consider the scale overlay when you're indexing 100K+ documents across many data sources and want crawling and indexing to run independently without blocking each other.
SSL / HTTPS#
Option A: Reverse proxy (recommended)
Place AES behind your existing reverse proxy (nginx, Traefik, Caddy). The included nginx container can terminate SSL with your own certificates.
Option B: Internal only
For internal-only deployments, run on HTTP behind your corporate VPN or network firewall. Configure
ALLOWED_HOSTS in your .env file.Updates#
docker compose pull
docker compose up -dMigrations run automatically on container start via Alembic. Your data under/opt/aisearch/ is never touched by updates.
Note
Never run
docker compose down -v in production — the -v flag deletes all volumes including your PostgreSQL data, embeddings, and license binding.Ready to install?
Request installer access and we'll send you the Docker pull credentials and your license file within one business day.