Running the Chroma Server
Using the CLI
The simplest way to run a Chroma server is using the built-in CLI command:http://localhost:8000 with default settings.
Configuration Options
Chroma server behavior can be customized using environment variables. Key configuration options fromchromadb/config.py:
Server Settings
Memory and Cache Settings
Running with Docker Compose
For production deployments, Docker Compose is recommended:docker-compose.yml and run:
Custom Build with Docker
You can also build from source:Connecting Clients to the Server
Python Client
With SSL/TLS
Custom Headers
Connection Pool Settings
Client API Configuration
The following settings control client behavior:Verifying the Deployment
Health Check
Version Check
Production Considerations
Security
- Enable authentication - See the Authentication guide
- Use SSL/TLS - Always use HTTPS in production
- Disable reset - Set
ALLOW_RESET=FALSE - Configure CORS - Restrict allowed origins
Performance
- Adjust thread pool size -
CHROMA_SERVER_THREAD_POOL_SIZEbased on workload - Enable caching -
CHROMA_SEGMENT_CACHE_POLICY=LRUwith appropriate memory limits - Persistence - Always enable
IS_PERSISTENT=TRUEfor production
Monitoring
File Descriptors
For high-load servers, increase the file descriptor limit:Troubleshooting
Connection Refused
Ensure the server is running and the host/port are correct:SSL Verification Failures
For self-signed certificates:Port Already in Use
Change the port in both server and client configuration:Migration from Embedded Mode
If you’re migrating from embedded Chroma to client-server:- Export your data from embedded client
- Start the Chroma server
- Import data to the server
- Update client code to use
HttpClientinstead ofClient