Skip to main content
praisonai-deploy turns an agents.yaml file into a running service — a local API server, a Docker image, or a cloud deployment on AWS, Azure, GCP, Fly, Railway, Render, or any registered plugin provider.

Install

praisonai-deploy is a tier-2 package (C14, publish slot #8). It drives host CLIs — docker, aws, az, and gcloud — directly. No boto3, Azure, or Google Cloud SDKs are required.

Quick Start

1

Pick a deployment type

Every deployment is one of three types.
2

Deploy

3

Check status


Which Type?

Choose a deployment type based on where the agent runs. PraisonAI ships six providers out of the box (aws, azure, gcp, fly, railway, render). You can add your own by publishing a package that registers under the praisonai.deploy.providers entry-point group — see Custom cloud providers.

User Flow

A full deploy goes from validation to teardown.

What’s New

praisonai-deploy extracts deployment into a standalone tier-2 package. Existing from praisonai.deploy import ... imports keep working through backward-compatible shims. See Migration.
Fixes bundled in this release:
  • /chat message forwarding now correctly forwards the user message.
  • Docker builds use the correct build context, environment variables, and ports, and replace existing containers on rebuild.
  • Foreground API deploys block until the process exits.
  • The CLI docker shortcut merges the YAML deploy: section into invocation flags.
  • MCP deploy.status accepts an explicit config_path argument.
  • praisonai deploy api (foreground and --background) now spawns the Flask server with the same Python interpreter as the CLI (sys.executable), so it works on Windows and any multi-Python / venv setup. The previous bare python invocation could resolve to a different interpreter and fail with ModuleNotFoundError: No module named 'flask'.
  • The generated Flask API server subprocess now inherits the parent environment (e.g. OPENAI_API_KEY), so the auto-generated /chat endpoint reaches the agent runtime without extra wiring.
  • Docker deploys now honor an optional sibling deploy.api block — set api.auth_enabled: false to expose the generated /chat endpoint unauthenticated. Previously the block was silently dropped and the container defaulted to auth-on (PR #3609).
  • Generated Docker containers now run Gunicorn with --timeout 120 --graceful-timeout 30. Cold-start /chat calls (agent import + first model round-trip) used to exceed Gunicorn’s 30 s default and get SIGKILL’d mid-request; the new defaults tolerate the cold-start latency and shut workers down cleanly on restart (PR #3630).

Best Practices

praisonai deploy doctor --all checks that docker, aws, az, and gcloud are installed and authenticated before you spend time on a failed deploy.
Use from praisonai_deploy import Deploy in new code. The legacy praisonai.deploy path still resolves but is only kept for compatibility.
Use env_vars references and provider secret stores rather than committing tokens into the YAML file.
As of PraisonAI PR #3608 the server is spawned with the same interpreter as the CLI, so this error should no longer occur on any supported install. If you still see it, verify that pip install "praisonai-deploy[api]" ran against the same Python you’re running praisonai with — python -c "import sys, flask; print(sys.executable, flask.__version__)" should print the interpreter path the deploy CLI uses.

Quick Start

Minimal agents.yaml for each deployment type

Python API

The Deploy class and result models

CLI Reference

Every praisonai deploy subcommand

Config Reference

All DeployConfig fields and defaults

Custom Providers

Register your own cloud target