Self Hosting GrowthBook
GrowthBook consists of a NextJS front-end, an ExpressJS API, and a Python stats engine. Everything is bundled together in a single Docker Image.
In addition to the app itself, you will also need a MongoDB instance (or MongoDB compatible database) to store login credentials, cached experiment results, and metadata.
Don't want to install or host the app yourself? GrowthBook Cloud is a fully managed version that's free to get started.
Quick Start
You can use docker compose to get started quickly:
# docker-compose.yml
services:
mongo:
image: "mongo:latest"
environment:
- MONGO_INITDB_ROOT_USERNAME=root
- MONGO_INITDB_ROOT_PASSWORD=password
volumes:
- mongodata:/data/db
growthbook:
image: "growthbook/growthbook:latest"
ports:
- "3000:3000"
- "3100:3100"
depends_on:
- mongo
environment:
- MONGODB_URI=mongodb://root:password@mongo:27017/growthbook?authSource=admin
volumes:
- uploads:/usr/local/src/app/packages/back-end/uploads
volumes:
uploads:
mongodata:
Then, just run docker compose up -d
to start everything and view the app at http://localhost:3000
The use of the mongo image within the docker-compose.yml is meant to quickly get a dev or staging environment up and running. For production you may want to use a more scalable and stable solution (ie. AWS DocumentDB, Google Cloud MongoDB Atlas, Azure Cosmos DB for Mongo, etc.)
We also offer an official Helm chart for deploying GrowthBook on Kubernetes. See the Kubernetes Self-Hosting Guide for more details.
Production
We have a dedicated guide for Self-Hosting GrowthBook in Production that covers best practices for security, scaling, performance, and more.
Docker Tags
The latest
tag is updated with every commit to the main branch. We run this tag in GrowthBook Cloud, so it's generally safe for production, but may occasionally have minor bugs.
We periodically create stable release tags (e.g. 4.1.0
) if you prefer to have more control over updates. Check out the Releases page on GitHub for a list of releases with detailed release notes.
Lastly, if you need to reference the image for a specific git commit for any reason, you can use the git shorthash tag (e.g. git-41278e9
).