# RudderStack Open Source


The open source version of RudderStack is a standalone system dependent only on a database (**PostgreSQL**). It consists of 2 major components: **data plane** and **control plane**:

- The [data plane](https://github.com/rudderlabs/rudder-server) is RudderStack's core engine for processing and routing the events. It is written in Go.
- The [control plane](https://app.rudderstack.com/signup?type=opensource) offers an intuitive UI to help you instrument and manage your connections.

{{< image src="images/get-started/rudderstack-architecture-new.webp" alt="RudderStack Architecture" >}}

For more information, see [RudderStack architecture]({{< ref "get-started/rudderstack-open-source/rudderstack-architecture.md" >}}).

## Setup overview

Installing and setting up open-source RudderStack involves the following steps:

1. [Data plane setup]({{< ref "get-started/rudderstack-open-source/data-plane-setup/_index.md" >}}): Set up the RudderStack data plane(backend) to track, process, and route your events.
2. [Control plane setup]({{< ref "get-started/rudderstack-open-source/control-plane-lite.md" >}}): Set up the RudderStack control plane(frontend) to manage your sources, destinations, and connections between them.
3. [Verify installation]({{< ref "get-started/rudderstack-open-source/sending-test-events.md" >}}): Verify your RudderStack installation by sending test events.

{{< warning >}}
RudderStack **recommends** using the latest `rudder-server` and `rudder-transformer` versions to avoid any breaking changes to your pipelines.

See the [Server-Transformer Compatibility]({{< ref "get-started/rudderstack-open-source/server-transformer-compatibility/" >}}) guide for more information.
{{< /warning >}}

## Troubleshooting

See [FAQ]({{< ref "get-started/rudderstack-open-source/faq.md" >}}) for quick solutions to some common problems you might encounter while setting up and using RudderStack.
