Self-hosting Promptfoo
Promptfoo provides a basic Docker image that allows you to host a server that stores evals. This guide covers various deployment methods.
Self-hosting enables you to:
- Share evals to a private instance
- Run evals in your CI/CD pipeline and aggregate results
- Keep sensitive data off your local machine
Enterprise Customers
If you are an enterprise customer, please do not install this version. Contact us instead for credentials for the enterprise image.
The self-hosted app is an Express server serving the web UI and API.
warning
Self-hosting is not recommended for production use cases.
- Uses a local SQLite database that requires manual persistence management and cannot be shared across replicas
- Built for individual or experimental usage
- No multi-team support or role-based access control.
- No support for horizontal scalability. Evaluation jobs live in each server's memory and multiple pods cannot share the SQLite database, so running more than one replica (for example in Kubernetes) will lead to "Job not found" errors.
- No built-in authentication or SSO capabilities
For production deployments requiring horizontal scaling, shared databases, or multi-team support, see our Enterprise platform.
Method 1: Using Pre-built Docker Images (Recommended Start)
Get started quickly using a pre-built image.
1. Pull the Image
Pull the latest image or pin to a specific version (e.g., 0.109.1):
# Pull latest
docker pull ghcr.io/promptfoo/promptfoo:latest
# Or pull a specific version
# docker pull ghcr.io/promptfoo/promptfoo:0.109.1
# You can verify image authenticity with: