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
Using Docker (Recommended)
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:
The config_folder is the only required configuration. ServFlow will use sensible defaults for everything else.
Port Configuration
ServFlow Pro runs two servers:
Server Default Port Purpose API Server 8080Handles incoming API requests Dashboard 3000Web 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:
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
Flag Description --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:
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.