Scaffold a Deployment Project

One-command starter projects for Fly.io, Railway, Render, Docker Compose

Scaffold a ready-to-edit deployment project — provider config plus agents.yaml — with one command.

Diagram

deploy create

💻 –template name

🔀 Which target?

🐳 docker-compose

☁️ fly / railway / render

Quick Start

  1. Scaffold a project

    Pick a template and drop its files into the current directory.

    bash
    praisonai deploy create --template fly
  2. Edit and deploy

    Adjust the generated config, then deploy with the matching command.

    bash
    praisonai deploy fly

How It Works

create copies the named template’s files into your target directory, refusing to clobber existing files unless you pass --force.

Diagram
Target dirdeploy createUserTarget dirdeploy createUseralt[File exists and no –force][Clear]–template fly –dir .Check for conflictsRefuse (use –force or empty dir)Write fly.toml + agents.yamlNext steps

Choosing a Template

Match the template to where you want to run.

Diagram

Where do I deploy?

Local, with a database

Bare Docker API

A cloud PaaS

docker-compose

docker-api

fly

railway

render


Templates

Five templates ship today.

--templateFiles shippedPurpose
docker-apiagents.yamlBare Docker API scaffold.
docker-composeagents.yamlFor the deploy compose stack (API + Postgres).
flyfly.toml + agents.yamlFly.io — pins the image, internal_port=8005, PRAISONAI_API_AUTH=enabled, HTTP /health check.
railwayrailway.json + agents.yamlRailway — healthcheckPath: /health, restartPolicyType: ON_FAILURE.
renderrender.yaml + agents.yamlRender — runtime: image, healthCheckPath: /health, requires OPENAI_API_KEY (sync: false), sets PRAISONAI_API_AUTH=enabled.

Command Options

FlagDefaultDescription
--template / -t(required)Starter template name.
--dir / -d.Target directory (created if missing).
--forceFalseOverwrite conflicting files instead of refusing.
--jsonFalseMachine-readable output.

The starters directory can be overridden with PRAISONAI_STARTERS_ROOT.


Best Practices

Scaffold into an empty directory

Without --force, create refuses to overwrite an existing agents.yaml — protecting hand-edited files. Use a fresh directory, or pass --force when you intend to replace.

Chain create with the deploy command

The fastest path to a running deployment is a one-liner:

bash
praisonai deploy create --template fly && praisonai deploy fly
Pin the image tag in the generated config

Starters use latest. Swap in a released tag before deploying to production.


Related