# Linux Setup Guide

This guide will help you set up the Application SDK on Linux (Ubuntu/Debian based systems).

## Prerequisites

Before starting, ensure you have:
  - Terminal access
  - Sudo privileges (for installing software)
  - Internet connection

## Setup Steps

### 1. Install System Dependencies

First, install essential build dependencies:

```bash
sudo apt-get update
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev \
liblzma-dev
```

### 2. Install uv 0.7.3 and Python

uv manages both Python environments and dependencies:

```bash
# Install UV
curl -LsSf https://astral.sh/uv/0.7.3/install.sh | sh

# Install Python 3.11.10
uv venv --python 3.11.10

# activate the venv
source .venv/bin/activate

# Verify installation
python --version # Should show Python 3.11.10
```

### 3. That's it — Dapr and Temporal are auto-managed

You do **not** need to install the Dapr or Temporal CLIs. When you run an app
locally via `run_dev_combined()` (see the [Getting Started Guide](../guides/getting-started.md)),
the SDK auto-downloads and manages both the Dapr runtime (`daprd`) and an
in-process Temporal server for you — nothing is required on your machine beyond
Python and uv.

> [!NOTE]
> Prefer to run against an external Dapr sidecar and Temporal server to mirror
> production? You only need the [Temporal CLI](https://docs.temporal.io/cli#install) —
> not the Dapr CLI; the SDK fetches the pinned `daprd` runtime for you and you run
> it directly. Then follow the optional external-infrastructure section of the
> Getting Started guide.

> [!NOTE]
> Your development environment is now ready! Head over to our [Getting Started Guide](../guides/getting-started.md) to learn how to:
> - Install project dependencies
> - Run example applications

For common setup issues, please see our [Troubleshooting Guide](https://github.com/atlanhq/application-sdk/blob/main/docs/setup/troubleshooting.md).