รัน GrowthBook ด้วย Docker
วิธีที่เร็วที่สุดในการรัน GrowthBook บนเครื่องของคุณคือใช้ Docker Compose สแตก Compose ด้านล่างนี้จะเริ่ม GrowthBook และ MongoDB ขึ้นมาพร้อมกัน — ไม่ต้องเชื่อมต่อ database เองเลย
ขั้นตอนทีละขั้น
หัวข้อที่มีชื่อว่า “ขั้นตอนทีละขั้น”-
บันทึก compose.yaml ที่แสดงในกล่องด้านบนไว้ที่ root ของโปรเจกต์คุณ ไฟล์นี้นิยาม service สองตัว —
mongoและgrowthbook— และ named volume หนึ่งตัวสำหรับเก็บไฟล์ที่อัปโหลด -
เริ่ม GrowthBook แบบทำงานเบื้องหลัง โดยรัน:
docker compose up -dflag -d (detached mode) จะคืนการควบคุมกลับมาที่ terminal ของคุณทันที โดยทั้งสอง container จะเริ่มทำงานอยู่เบื้องหลัง
-
เปิด browser ไปที่
http://localhost:3000— นี่คือ GrowthBook web UI ที่คุณใช้สร้าง feature flags, รัน experiments และจัดการบัญชีของคุณ -
SDK ของคุณจะสื่อสารกับ
http://localhost:3100— นี่คือ endpoint ของ GrowthBook SDK API แอปของคุณจะดึง payload ของ feature flag จาก URL นี้ ไม่ใช่จาก port 3000 -
หยุดและตรวจสอบสแตก เมื่อคุณทำเสร็จแล้ว:
# Stop all containers (data is preserved in the uploads volume)docker compose down
# Tail live logs for the growthbook container onlydocker compose logs -f growthbookcompose.yaml ฉบับเต็มสำหรับอ้างอิง
หัวข้อที่มีชื่อว่า “compose.yaml ฉบับเต็มสำหรับอ้างอิง”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:ตารางอ้างอิง Port
หัวข้อที่มีชื่อว่า “ตารางอ้างอิง Port”| Port | Service | จุดประสงค์ |
|---|---|---|
| 3000 | GrowthBook web app | Admin UI — สร้าง flags, experiments, metrics |
| 3100 | GrowthBook SDK API | แอปของคุณดึง feature flags จากที่นี่ |
| 27017 | MongoDB (ภายใน) | ไม่ได้ expose ออกสู่ host; ใช้โดย container ของ GrowthBook เท่านั้น |
เกี่ยวกับ MongoDB
หัวข้อที่มีชื่อว่า “เกี่ยวกับ MongoDB”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ข้อแลกเปลี่ยน
หัวข้อที่มีชื่อว่า “ข้อแลกเปลี่ยน”| ตัวเลือก | Benefit | Cost |
|---|---|---|
| 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 เมื่อทีมโตขึ้น