> ## Documentation Index
> Fetch the complete documentation index at: https://docs.servflow.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Installation

> Install ServFlow Pro on your system using your preferred method

ServFlow Pro is a visual backend engine for building and running APIs. This guide covers all available installation methods to get ServFlow Pro running on your system.

<Tip>
  Looking to set up a local development environment with tracing and debugging? See the [Local Environment Setup](/development) guide.
</Tip>

## Prerequisites

* A terminal or command-line interface
* One of the following: Docker, Homebrew, npm, or Go (depending on your installation method)

## Quick Start

The fastest way to get started:

```bash theme={null}
# Using Homebrew (macOS/Linux)
brew install Servflow/servflow/servflow-pro
servflow-pro start --config config.toml --dashboard

# Or using Docker
docker run -p 8080:8080 -p 3000:3000 servflow/servflow-pro
```

Access the dashboard at `http://localhost:3000`

## Installation Methods

### Homebrew (macOS / Linux)

The recommended installation method for macOS and Linux users:

```bash theme={null}
brew install Servflow/servflow/servflow-pro
```

After installation, verify it works:

```bash theme={null}
servflow-pro --version
```

### npm

Install globally using npm:

```bash theme={null}
npm install -g servflow-pro
```

After installation, verify it works:

```bash theme={null}
servflow-pro --version
```

### Docker

Pull the latest image from Docker Hub:

```bash theme={null}
docker pull servflow/servflow-pro:latest
```

Run with default configuration:

```bash theme={null}
docker run -p 8080:8080 -p 3000:3000 servflow/servflow-pro
```

Run with custom configuration and persistent storage:

```bash theme={null}
docker run -d \
  --name servflow-pro \
  -p 8080:8080 \
  -p 3000:3000 \
  -v $(pwd)/config.toml:/data/config.toml \
  -v $(pwd)/configs:/data/configs \
  -v $(pwd)/data:/data \
  servflow/servflow-pro
```

This command:

* Exposes port **8080** for the API server
* Exposes port **3000** for the dashboard
* Mounts your configuration file and data directories for persistence

### Binary Downloads

Download pre-built binaries from the [Releases](https://github.com/Servflow/servflow-pro/releases) page.

Available platforms:

* **Linux** (x86\_64, arm64)
* **macOS** (x86\_64, arm64)

```bash theme={null}
# Download and extract (example for Linux x86_64)
tar -xzf servflow-pro_Linux_x86_64.tar.gz

# Make executable
chmod +x servflow-pro

# Run
./servflow-pro start --config config.toml --dashboard
```

### From Source

Build from source using Go:

```bash theme={null}
# Clone the repository
git clone https://github.com/Servflow/servflow-pro.git
cd servflow-pro

# Build
go build -o servflow-pro

# Run
./servflow-pro start --config config.toml --dashboard
```

<Note>
  Building from source requires Go 1.21 or later.
</Note>

## Configuration

ServFlow Pro uses a TOML configuration file. Create a `config.toml` with the following setup:

```toml theme={null}
[server]
port = "8080"
config_folder = "./configs"
env = "production"

[dashboard]
port = "3000"
configs_folder = "./configs"
master_key = "your-secure-master-key"

[sqlite]
path = "./data/servflow.db"
```

<Warning>
  Never commit your `master_key` to version control. Use environment variables for sensitive values in production.
</Warning>

### Running Without SQLite

ServFlow can run without SQLite by omitting the `[sqlite]` section or leaving the path empty. In this mode, ServFlow uses file-based storage.

<Warning>
  Running without SQLite disables certain features:

  * **Secrets Management** — Encrypted storage for API keys and credentials
  * **OAuth Integrations** — OAuth provider configurations and token storage
  * **Metrics Storage** — Usage and performance metrics persistence
</Warning>

## Running ServFlow Pro

### Command Line Options

| Flag               | Description                                                              |
| ------------------ | ------------------------------------------------------------------------ |
| `--config, -c`     | Path to TOML configuration file (required)                               |
| `--dashboard`      | Start the web dashboard interface                                        |
| `--import-configs` | Import API configs from config folder to SQLite (requires `--dashboard`) |

### Dashboard Mode

Include the `--dashboard` flag to start the visual web interface:

```bash theme={null}
servflow-pro start --config config.toml --dashboard
```

This starts both the API server (port 8080) and the dashboard UI (port 3000). Use this mode for:

* Building and testing APIs visually
* Managing secrets and integrations through the UI
* Learning ServFlow with immediate visual feedback

### Headless Mode

Omit the `--dashboard` flag to run without the UI:

```bash theme={null}
servflow-pro start --config config.toml
```

This starts only the API server. Use this mode for:

* Production deployments
* CI/CD pipelines
* Containerized environments
* GitOps workflows

<Tip>
  Both modes read API configurations from the same `config_folder`. You can develop with the dashboard, then deploy the same YAML files in headless mode. See [Running Modes](/running-modes) for a detailed comparison.
</Tip>

## Next Steps

<CardGroup cols={2}>
  <Card title="Quickstart" icon="rocket" href="/quickstart">
    Build and deploy your first API with ServFlow.
  </Card>

  <Card title="Configuration Reference" icon="gear" href="/references/configuration">
    Explore all configuration options and environment variables.
  </Card>

  <Card title="Secrets Management" icon="key" href="/references/secrets">
    Learn how to manage secrets securely.
  </Card>

  <Card title="Local Development" icon="laptop-code" href="/development">
    Set up a local development environment with tracing.
  </Card>
</CardGroup>
