Back to Apps
RudderStack Data Plane

Deploy RudderStack Data Plane on Your Own Server

Deploy RudderStack Data Plane, the open-source Customer Data Platform. This template includes the backend server, PostgreSQL database, data transformer, and metrics exporter.

πŸ—„οΈ DatabasesπŸ“ˆ Monitoring

Want to deploy RudderStack Data Plane on your server faster? Try Senate with one-command setup, automatic HTTPS and monitoring.

Get Started

What is RudderStack Data Plane?

**Deploy your self-hosted RudderStack Open Source instance on Senate.** This template will automatically set up the following services: - RudderStack Server (Backend): The core data processing engine. - PostgreSQL Database: Stores job metadata and other operational data. - RudderStack Transformer: Handles data transformations for selected destinations. - StatsD Metrics Exporter: For exposing application metrics. **Configuration Notes:** 1. **Workspace Token (Required):** You MUST provide your RudderStack Workspace Token. You can find this in your RudderStack control plane (e.g., app.rudderstack.com). 2. **PostgreSQL Password:** A strong password for the database will be auto-generated. You can override it if necessary. 3. **Image Versions:** Default versions are set to 'latest'. For production environments, it is highly recommended to specify stable, numerical version tags for both Rudder Server and Rudder Transformer. **Important Note on PostgreSQL `shm_size`:** The original Docker Compose for RudderStack specifies `shm_size: 128mb` for the PostgreSQL container. This YAML template for Senate does not directly set this Docker-specific option as `captainVersion: 4` templates typically focus on higher-level configurations. - For many use cases, the default Docker shared memory size (often 64MB) may be sufficient. - If you encounter performance issues or errors with the PostgreSQL service (`${app_name}-db`), especially under heavy load or with numerous connections, you might need to increase the `shm_size` available to Docker containers. This is generally configured at the Docker daemon level on your Senate worker node(s). Please consult your Docker and OS documentation for instructions on how to adjust this setting.

Learn more

Self-Host RudderStack Data Plane

Follow these steps to deploy on your own server.

1

Install Docker

Skip this step if Docker is already installed on your server.

curl -fsSL https://get.docker.com | sh
2

Configure

Customize the settings below. Defaults work for most cases.

General
3

Deploy

Copy the configuration and run it on your server.

services:
  rudder_stack-backend:
    image: rudderlabs/rudder-server:1.49.3
    environment:
      CONFIG_BACKEND_URL: https://api.rudderstack.com
      DEST_TRANSFORM_URL: http://rudder_stack-d-transformer:9090
      JOBS_DB_DB_NAME: rudder
      JOBS_DB_HOST: rudder_stack-db
      JOBS_DB_PASSWORD: cbba31abfbfad84bae133c5d
      JOBS_DB_PORT: "5432"
      JOBS_DB_USER: postgres
      RSERVER_GATEWAY_WEBHOOK_SOURCE_LIST_FOR_PARSING_PARAMS: Shopify
      STATSD_SERVER_URL: rudder_stack-metrics-exporter:9125
      WORKSPACE_TOKEN: ""
    depends_on:
      - rudder_stack-db
      - rudder_stack-metrics-exporter
      - rudder_stack-d-transformer
  rudder_stack-d-transformer:
    image: rudderstack/rudder-transformer:1.100.0
    environment:
      STATSD_SERVER_HOST: rudder_stack-metrics-exporter
      STATSD_SERVER_PORT: "9125"
    depends_on:
      - rudder_stack-metrics-exporter
  rudder_stack-db:
    image: postgres:15-alpine
    environment:
      POSTGRES_DB: rudder
      POSTGRES_PASSWORD: cbba31abfbfad84bae133c5d
      POSTGRES_USER: postgres
    volumes:
      - rudder_stack-db-data:/var/lib/postgresql/data
  rudder_stack-metrics-exporter:
    image: prom/statsd-exporter:v0.22.4
volumes:
  rudder_stack-db-data: {}

Then run:

docker compose up -d
4

Access

Once started, access your app at http://localhost:8080

Why Self-Host RudderStack Data Plane?

Full Data Ownership

Your data stays on your servers. No third-party access.

No Monthly Fees

Pay only for your server. No per-seat or usage charges.

Complete Control

Customize, backup, and scale on your own terms.

Privacy & Compliance

Meet GDPR, HIPAA, or internal security requirements.

Technical Details

Docker Image

rudderlabs/rudder-server:${app_version}

Official Docs

www.rudderstack.com

Want to go faster?

Try Senate! Senate handles Docker, HTTPS, updates, and monitoring for you. Deploy any of our 300+ apps with a single command.

Install on any Linux server:

sh -c "$(curl -sSL https://get.senate.sh)"