page:guides:fastapi:build and start

Configure build and start for FastAPI

Summary

Configure build and start for a FastAPI app on Ample. Start uvicorn from a small run.py that reads PORT; pass --start "python3 run.py" because Python start commands are not inferred. Ample detects the runtime, installs dependencies, runs the build when present and starts the app on the python-3.12 template behind a public HTTPS URL.

Prerequisites

Workflow Steps

  1. Make the start command bind correctly
    Start uvicorn from a small run.py that reads PORT; pass --start "python3 run.py" because Python start commands are not inferred.

  2. Deploy
    Run the existing synchronous deploy once from the project directory and read the result. Exit 0 is live, 1 is failed, 2 is blocked on a required preflight action. Re-running with no change is a content-addressed no-op.

    ample deploy . --name  --public --format json --start "python3 run.py"
    
  3. Verify
    Fetch the live URL and run the success checks below. On failure read the build log, then the runtime log, fix the cause and deploy again; do not blind-retry.

    ample logs  --kind build
    

Limitations

Cost Estimate

Success Checks

Examples

Evidence Summary

Next Actions