Railway

Deploy GrowthBook | Open Source LaunchDarkly Alternative on Railway

Self Host GrowthBook: Feature Flags, A/B Testing & Analytics

Deploy GrowthBook | Open Source LaunchDarkly Alternative on Railway

Just deployed

/usr/local/src/app/packages/back-end/uploads

MongoDB

mongo:8.0

Just deployed

/data/db

GrowthBook logo

Deploy and Host GrowthBook

GrowthBook is an open-source feature flagging, A/B testing, and product analytics platform — the self-hosted alternative to LaunchDarkly and Statsig used by teams who want full data control and warehouse-native experimentation without per-seat pricing surprises.

Deploy GrowthBook on Railway with this template and you get the full stack pre-wired.

The app bundles a NextJS front-end, an ExpressJS API, and a Python stats engine into a single Docker image. This template handles the multi-service orchestration so you can self-host GrowthBook on Railway in minutes, not hours.


⚠️IMP: Railway-Specific Setup: Two Domains for One Service

GrowthBook exposes two ports from a single container: port 3000 (the UI) and port 3100 (the API). Railway allows multiple public domains per service, but the UI only shows a single "Generate Domain" button — clicking it once disables the button before a second domain can be generated.

The workaround: click "Generate Domain" multiple times in rapid succession before the UI disables the button. This is a UI guard only — the Railway platform fully supports multiple domains per service (and it can also be done via the Railway API). GrowthBook Multiple domains on railway

Once you have two domains:

  1. Set one domain's port to 3000 → copy the URL → paste as APP_ORIGIN in the env variable of GrowthBook
  2. Set the other domain's port to 3100 → copy the URL → paste as API_HOST
  3. Redeploy GrowthBook to pick up the updated variables GrowthBook Updated variables

Both domains must share the same root domain for auth cookies to work. Railway's *.up.railway.app subdomains satisfy this automatically.


Getting Started with GrowthBook on Railway

Once the template is deployed and both domains are configured, open your APP_ORIGIN URL in a browser. GrowthBook will prompt you to create your first admin account — fill in your name, email, and password to complete registration.

From there, connect a data source (BigQuery, Snowflake, Postgres, Redshift, and others are supported), define your metrics using SQL, and create your first feature flag or experiment. The GrowthBook SDK (available for React, Node, Python, Go, iOS, Android, and 20+ others) connects to your API_HOST URL for flag evaluation.

GrowthBook dashboard screenshot


About Hosting GrowthBook

GrowthBook is a warehouse-native experimentation platform. Unlike tools that store your event data on their servers, GrowthBook queries your existing data warehouse directly — your data stays where it already lives. It was built for teams that run serious experiments and want statistical rigour (CUPED, Sequential testing, Bayesian analysis, Bandits, SRM checks) without building an in-house platform.

Key features:

  • Feature flags with advanced targeting, gradual rollouts, and percentage-based splits
  • A/B testing with a world-class stats engine — CUPED, Sequential, Bayesian, Bandit support
  • Warehouse-native: queries BigQuery, Snowflake, Redshift, Databricks, Postgres, and more
  • 24+ SDKs — React, Node, Python, Go, iOS, Android, PHP, Ruby, and more
  • Visual editor for no-code experiment setup
  • OpenFeature-compatible for vendor-neutral flag evaluation

Why Deploy GrowthBook on Railway

One-click deploy with zero Docker or volume config to write yourself. Railway handles:

  • Private networking between GrowthBook and MongoDB out of the box
  • Auto-generated secrets for JWT_SECRET and ENCRYPTION_KEY on first deploy
  • Persistent volumes for both MongoDB data and GrowthBook uploads
  • Managed TLS and custom domain support
  • Vertical scaling if your experiment workload grows

Common Use Cases

  • Replacing LaunchDarkly or Statsig — teams migrating off expensive per-seat or per-MAU SaaS pricing to a self-hosted stack with no flag evaluation fees
  • Warehouse-native experimentation — data science teams who already have Snowflake or BigQuery and want to run A/B tests against their existing event tables without copying data to a third-party platform
  • Progressive feature rollouts — engineering teams doing canary releases, percentage rollouts, and kill-switch flags across web, mobile, and backend services simultaneously
  • B2B SaaS experimentation — teams using hash-based bucketing on company_id to ensure all users within a tenant see the same flag state during a rollout

Dependencies for GrowthBook

  • GrowthBookgrowthbook/growthbook:latest (Docker Hub · GitHub)
  • MongoDBmongo:latest (Docker Hub) — stores feature flags, experiment metadata, user credentials, and cached results

Environment Variables Reference

VariableDescriptionRequired
APP_ORIGINPublic URL for port 3000 (UI). Set after generating Railway domain.
API_HOSTPublic URL for port 3100 (API). Set after generating Railway domain.

Deployment Dependencies


GrowthBook vs LaunchDarkly vs Unleash

GrowthBookLaunchDarklyUnleash
Open source✅ MIT core❌ Proprietary✅ Open source
Self-hostable❌ SaaS only
A/B testing / stats engine✅ Built-in (CUPED, Sequential, Bayesian)✅ Add-on❌ Pro/Enterprise only
Warehouse-native queries
Pricing (cloud)Free up to 3 seats, $20/seat/month ProFrom $10/seat/monthFree self-host, $75/seat/month Enterprise
Flag evaluationLocal SDK (offline-capable)Streaming (network-dependent)Local SDK

GrowthBook is the strongest choice when experimentation and warehouse-native data integration are primary requirements. LaunchDarkly wins for large enterprises needing streaming updates and deep enterprise workflow integrations. Unleash leads for teams that want pure feature flag management with strong role-based access controls.


Minimum Hardware Requirements for GrowthBook

ResourceMinimumRecommended
CPU1 vCPU2 vCPU
RAM1 GB2–4 GB
Storage (MongoDB volume)5 GB20+ GB
Storage (uploads volume)1 GB5 GB
Node.js20.x (bundled)20.x

GrowthBook's Python stats engine runs in-process and adds memory overhead during experiment analysis — allow headroom if running large experiments. MongoDB will grow with experiment result cache size.


Self-Hosting GrowthBook

To self-host GrowthBook outside Railway, use the official Docker Compose setup:

# 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
      - JWT_SECRET=your-random-secret
      - ENCRYPTION_KEY=your-random-key
      - NODE_ENV=production
      - APP_ORIGIN=http://localhost:3000
      - API_HOST=http://localhost:3100
    volumes:
      - uploads:/usr/local/src/app/packages/back-end/uploads

volumes:
  uploads:
  mongodata:
docker compose up -d
# UI available at http://localhost:3000
# API available at http://localhost:3100

Is GrowthBook Free?

GrowthBook is open-source (MIT license for the core) and free to self-host with unlimited seats. On Railway, you pay only for the infrastructure (compute + storage) — there are no GrowthBook licensing fees for the self-hosted version.

GrowthBook Cloud is also free for up to 3 users, then $20/seat/month for the Pro plan (which adds flag scheduling, advanced permissions, and the visual editor). An Enterprise plan adds SSO, audit logs, and higher request limits — pricing on request. Self-hosted Enterprise features can be unlocked with a LICENSE_KEY.


FAQ

What is GrowthBook? GrowthBook is an open-source platform for feature flagging, A/B testing, and product experimentation. It lets engineering and product teams release features safely, run controlled experiments, and measure impact using their existing data warehouse — without sending event data to a third-party SaaS.

Why does this template include MongoDB? GrowthBook requires MongoDB (or a MongoDB-compatible database like AWS DocumentDB or MongoDB Atlas) to store feature flag definitions, experiment metadata, user accounts, and cached results. Without it, GrowthBook cannot start.

Why do I need to configure two Railway domains? GrowthBook exposes two separate ports from one container: the UI (3000) and API (3100). Both must be publicly reachable, and APP_ORIGIN/API_HOST must be set correctly for auth cookies and SDK connections to work. See the setup note at the top of this page for the workaround.

Does GrowthBook support my data warehouse? GrowthBook supports BigQuery, Snowflake, Redshift, Databricks, Postgres, MySQL, ClickHouse, Athena, PrestoDB, Mixpanel, and Google Analytics as data sources.


Template Content

MongoDB

mongo:8.0

More templates in this category

View Template
Bugsink
Self-hosted Error Tracking. Sentry-SDK compatible

zǝʇɹoɔ oɓıɹpoɹ
View Template
SubTrackr
Self-hosted Subscription Tracker

amnesia
View Template
NEW
Dashy — Open Source Homer & Homarr Alternative on Railway
Self Host Dashy. Open Source Start Page with Widgets & Themes

Heimdall