Quick Start
Get up and running with Endee Vector Database in minutes. This guide will walk you through setting up Endee locally and connecting your first application.
Prerequisites
Before you begin, ensure you have:
- Docker 20.10 or later
- Docker Compose v2
- At least 2GB of available RAM
- Port 8080 available on your machine
To verify Docker is installed:
docker --version
docker compose versionGetting Started
Choose your preferred method to get Endee running locally:
Docker Compose (Recommended)
Option 1: Docker Compose (Recommended)
The fastest way to get started is using Docker Compose.
Create Project Directory
mkdir endee && cd endeeCreate docker-compose.yml
Create a file named docker-compose.yml with the following content:
services:
endee:
image: endeeio/endee-server:latest
container_name: endee-server
ports:
- "8080:8080"
ulimits:
nofile: 100000
logging:
driver: "json-file"
options:
max-size: "200m"
max-file: "5"
environment:
NDD_NUM_THREADS: 0 # Automatic thread detection
NDD_AUTH_TOKEN: "" # Authentication token (optional)
volumes:
- endee-data:/data
restart: unless-stopped
volumes:
endee-data:Start Endee
docker compose up -dVerify the Server is Running
docker psYou should see a container named endee-server.
Access the Dashboard
Once the server is running, access the Endee Dashboard at:
The dashboard allows you to:
- Create and manage indexes
- View index statistics and metrics
- Monitor query performance
By default, you can connect without authentication for development purposes.
Connect Your Application
Install the Python SDK
pip install endeeCreate and Query an Index
from endee import Endee, Precision
# Connect to local Endee server
client = Endee()
# Create an index
client.create_index(
name="my_index",
dimension=384,
space_type="cosine",
precision=Precision.INT8D
)
# Get the index
index = client.get_index(name="my_index")
# Add vectors
index.upsert([
{
"id": "doc1",
"vector": [...],
"meta": {"title": "First Document"}
}
])
# Query
results = index.query(vector=[...], top_k=5)Custom Domain & Port: If your Endee server runs on a different port, configure the base URL:
client = Endee()
client.set_base_url('http://0.0.0.0:8081/api/v1')Direct API Access
Refer to http://localhost:8080/tutorials for API references.
Managing the Service
Docker Compose Commands
# Stop the service
docker compose down
# Stop and remove data
docker compose down -v
# View logs
docker logs -f endee-server
# Upgrade to latest
docker compose pull
docker compose up -dConfiguration
| Variable | Description | Default |
|---|---|---|
NDD_NUM_THREADS | Number of threads (0 = auto) | 0 |
NDD_DATA_DIR | Data storage directory | /data |
NDD_AUTH_TOKEN | Authentication token | "" |
Authentication Required: If you set NDD_AUTH_TOKEN, you must:
- Enter the same token in the dashboard to access it
- Pass the same token when initializing the Python client:
Endee("<your-token>")
All API requests will fail without the matching token. See Authentication for details.
Data Persistence
Your index data is stored in the Docker volume endee-data (or NDD_DATA_DIR for source builds). This ensures data persists across restarts.
To back up your data:
# Create a backup
docker run --rm \
-v endee-data:/data \
-v $(pwd):/backup \
alpine tar czf /backup/endee-backup.tar.gz /data
# Restore from backup
docker run --rm \
-v endee-data:/data \
-v $(pwd):/backup \
alpine tar xzf /backup/endee-backup.tar.gz -C /Next Steps
- Python SDK Quickstart — Complete Python SDK guide
- Concepts — Learn about indexes and parameters