Skip to main content
ServFlow Pro is a visual backend engine for building and running APIs. This guide walks you through setting up ServFlow Pro on your local machine for development. By the end, you’ll have a fully functional local environment ready to build and test APIs.
ServFlow Pro runs in two modes: Dashboard Mode (with --dashboard) for visual development, and Headless Mode (without --dashboard) for running YAML configurations directly. This guide focuses on Dashboard Mode for local development. See Running Modes to learn more.

Prerequisites

  • Docker (recommended) or a downloaded ServFlow Pro binary
  • A terminal or command-line interface

Download Options

Pull the official ServFlow Pro Docker image:
docker pull servflow/servflow-pro

Using the Binary

Download pre-built binaries from the Releases page. Available platforms:
  • Linux (x86_64, arm64)
  • macOS (x86_64, arm64)
# Download and extract (example for Linux x86_64)
tar -xzf servflow-pro_Linux_x86_64.tar.gz

# Make executable
chmod +x servflow-pro

Configuration Setup

ServFlow Pro uses a TOML configuration file. Create a config.toml file in your working directory:
[server]
port = "8080"
config_folder = "./configs"
env = "development"

[dashboard]
port = "3000"
configs_folder = "./configs"
master_key = "your-local-dev-master-key"
Next, create the configs directory where your API configurations will be stored:
mkdir configs
The config_folder is the only required configuration. ServFlow will use sensible defaults for everything else.

Port Configuration

ServFlow Pro runs two servers:
ServerDefault PortPurpose
API Server8080Handles incoming API requests
Dashboard3000Web UI for building and managing APIs

Customizing Ports

You can change ports in your config.toml:
[server]
port = "9000"

[dashboard]
port = "4000"
Or use environment variables:
export SERVFLOW_SERVER_PORT=9000
export SERVFLOW_DASHBOARD_PORT=4000
Environment variables take precedence over values in the TOML file.

Master Key for Secrets

The master_key is used to encrypt secrets stored in the dashboard, such as API keys and credentials.
[dashboard]
master_key = "your-secure-master-key"
Or set it via environment variable:
export SERVFLOW_DASHBOARD_MASTER_KEY=your-secure-master-key
Security Best Practices:
  • Use a strong, unique key (at least 32 characters recommended)
  • Never commit your master key to version control
  • Use environment variables in production environments
  • If you change the master key, previously encrypted secrets cannot be decrypted
If no master key is set, secrets management will be disabled in the dashboard.

Optional: SQLite Storage

SQLite provides persistent storage for additional features. When configured, it enables:
  • Secrets Management — Encrypted storage for API keys and credentials
  • OAuth Integrations — OAuth provider configurations and token storage
  • Metrics Storage — Usage and performance metrics persistence
To enable SQLite, add the following to your config.toml:
[sqlite]
path = "./data/servflow.db"
Make sure to create the data directory:
mkdir data
If SQLite is not configured, ServFlow falls back to file-based storage. This is fine for basic local development but limits available features.

Optional: Tracing with OpenTelemetry

ServFlow Pro supports distributed tracing via OpenTelemetry, which helps you debug and monitor API workflows.

Setting Up a Local Collector

You can run Jaeger locally as a tracing collector:
docker run -d --name jaeger \
  -p 16686:16686 \
  -p 4318:4318 \
  jaegertracing/all-in-one:latest
This starts Jaeger with:
  • Port 16686 — Jaeger UI for viewing traces
  • Port 4318 — OTLP HTTP collector endpoint

Configuring Tracing

Add the tracing configuration to your config.toml:
[tracing]
enabled = true
service_name = "servflow-local"
collector_endpoint = "http://localhost:4318"
Or use environment variables:
export SERVFLOW_TRACING_ENABLED=true
export SERVFLOW_TRACING_SERVICE_NAME=servflow-local
export SERVFLOW_TRACING_COLLECTOR_ENDPOINT=http://localhost:4318
Once configured, you can view traces at http://localhost:16686.

Running ServFlow Pro

With Docker

docker run -d \
  --name servflow-pro \
  -p 8080:8080 \
  -p 3000:3000 \
  -v $(pwd)/config.toml:/app/config.toml \
  -v $(pwd)/data:/app/data \
  -v $(pwd)/configs:/app/configs \
  servflow/servflow-pro start --config /app/config.toml --dashboard

With the Binary

./servflow-pro start --config config.toml --dashboard

Command Line Options

FlagDescription
--config, -cPath to TOML configuration file (required)
--dashboardStart the web dashboard interface
--import-configsImport API configs from config folder to SQLite (requires --dashboard)

Verifying Your Setup

Test the API Server

curl http://localhost:8080/health
You should receive a response indicating the server is running.

Access the Dashboard

Open your browser and navigate to:
http://localhost:3000
You should see the ServFlow builder interface ready for creating APIs.
You’re all set! Your local ServFlow Pro environment is configured and running.

Next Steps

Create Your First API

Follow the quickstart guide to build a Hello World API in under 5 minutes.

Configuration Reference

Explore all configuration options and environment variables.