ข้ามไปยังเนื้อหา

รัน GrowthBook ด้วย Docker

วิธีที่เร็วที่สุดในการรัน GrowthBook บนเครื่องของคุณคือใช้ Docker Compose สแตก Compose ด้านล่างนี้จะเริ่ม GrowthBook และ MongoDB ขึ้นมาพร้อมกัน — ไม่ต้องเชื่อมต่อ database เองเลย

  1. บันทึก compose.yaml ที่แสดงในกล่องด้านบนไว้ที่ root ของโปรเจกต์คุณ ไฟล์นี้นิยาม service สองตัว — mongo และ growthbook — และ named volume หนึ่งตัวสำหรับเก็บไฟล์ที่อัปโหลด

  2. เริ่ม GrowthBook แบบทำงานเบื้องหลัง โดยรัน:

Terminal window
docker compose up -d

flag -d (detached mode) จะคืนการควบคุมกลับมาที่ terminal ของคุณทันที โดยทั้งสอง container จะเริ่มทำงานอยู่เบื้องหลัง

  1. เปิด browser ไปที่ http://localhost:3000 — นี่คือ GrowthBook web UI ที่คุณใช้สร้าง feature flags, รัน experiments และจัดการบัญชีของคุณ

  2. SDK ของคุณจะสื่อสารกับ http://localhost:3100 — นี่คือ endpoint ของ GrowthBook SDK API แอปของคุณจะดึง payload ของ feature flag จาก URL นี้ ไม่ใช่จาก port 3000

  3. หยุดและตรวจสอบสแตก เมื่อคุณทำเสร็จแล้ว:

Terminal window
# Stop all containers (data is preserved in the uploads volume)
docker compose down
# Tail live logs for the growthbook container only
docker compose logs -f growthbook
services:
mongo:
image: mongo:latest
environment:
- MONGO_INITDB_ROOT_USERNAME=root
- MONGO_INITDB_ROOT_PASSWORD=password
growthbook:
image: growthbook/growthbook:latest
ports: ["3000:3000", "3100:3100"]
depends_on: [mongo]
environment:
- MONGO_URL=mongodb://root:password@mongo:27017/
volumes: ["uploads:/usr/local/src/app/packages/back-end/uploads"]
volumes:
uploads:
PortServiceจุดประสงค์
3000GrowthBook web appAdmin UI — สร้าง flags, experiments, metrics
3100GrowthBook SDK APIแอปของคุณดึง feature flags จากที่นี่
27017MongoDB (ภายใน)ไม่ได้ expose ออกสู่ host; ใช้โดย container ของ GrowthBook เท่านั้น

GrowthBook เก็บ configuration ของตัวเองทั้งหมดไว้ใน MongoDB — นิยามของ feature flag, config ของ experiment, metrics และการตั้งค่าของทีม MongoDB ไม่ได้ เก็บ analytics event data หรือ user data warehouse ของคุณ raw events ของคุณจะยังคงอยู่ที่เดิม (Snowflake, BigQuery, Redshift ฯลฯ)

# Start GrowthBook and MongoDB in the background
docker compose up -d

# Stop all containers (data is preserved)
docker compose down

# Tail live logs for the growthbook container
docker compose logs -f growthbook
ตัวเลือกBenefitCost
Self-host ด้วย Docker Composeควบคุมได้เต็มที่ ไม่มีค่าใช้จ่ายต้องจัดการ ops เอง (backup, upgrade, uptime)
GrowthBook Cloudไม่ต้องดูแล infrastructureเสียการควบคุมข้อมูลบางส่วนและอาจมีค่าใช้จ่าย
  • รัน GrowthBook โดยไม่ persist MongoDB volume ทำให้ data หายตอน restart container
  • ไม่ตั้ง environment variable สำคัญ (เช่น MONGODB_URI, JWT_SECRET) ให้ปลอดภัยสำหรับ production
  • ลืม backup database ก่อน upgrade version

💡 ตัวอย่างจากของจริง

ทีม startup ขนาดเล็กมักเริ่มด้วย self-host Docker Compose เพื่อประหยัดค่าใช้จ่ายก่อนย้ายไป managed hosting เมื่อทีมโตขึ้น

Port ไหนให้บริการ GrowthBook web UI?
SDK ใช้ port ไหนในการดึง feature flags?
คำสั่งไหนที่เริ่ม GrowthBook แบบทำงานเบื้องหลัง?
GrowthBook เก็บอะไรไว้ใน MongoDB?