Three deployment options: Databricks CLI (simplest), Asset Bundles (multi-environment), or MCP tools (programmatic).
Cookbook deployment guide: https://apps-cookbook.dev/docs/deploy
Best for: quick deployments, single environment.
command:
- "python" # Adjust per framework — see table below
- "app.py"
env:
- name: DATABRICKS_WAREHOUSE_ID
valueFrom: sql-warehouse
- name: USE_MOCK_BACKEND
value: "false"| Framework | Command |
|---|---|
| Dash | ["python", "app.py"] |
| Streamlit | ["streamlit", "run", "app.py"] |
| Gradio | ["python", "app.py"] |
| Flask | ["gunicorn", "app:app", "-w", "4", "-b", "0.0.0.0:8000"] |
| FastAPI | ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "8000"] |
| Reflex | ["reflex", "run", "--env", "prod"] |
# Create the app
databricks apps create <app-name>
# Upload source code
databricks workspace mkdirs /Workspace/Users/<user>/apps/<app-name>
databricks workspace import-dir . /Workspace/Users/<user>/apps/<app-name>
# Deploy
databricks apps deploy <app-name> \
--source-code-path /Workspace/Users/<user>/apps/<app-name>
# Add resources via UI (SQL warehouse, Lakebase, etc.)
# Check status and URL
databricks apps get <app-name>databricks workspace delete /Workspace/Users/<user>/apps/<app-name> --recursive
databricks workspace import-dir . /Workspace/Users/<user>/apps/<app-name>
databricks apps deploy <app-name> \
--source-code-path /Workspace/Users/<user>/apps/<app-name>Best for: multi-environment deployments (dev/staging/prod), version-controlled infrastructure.
Recommended workflow: deploy via CLI first to validate, then generate bundle config.
databricks bundle generate app \
--existing-app-name <app-name> \
--key <resource_key>This creates:
resources/<key>.app.yml— app resource definitionsrc/app/— app source files includingapp.yaml
# Validate
databricks bundle validate -t dev
# Deploy
databricks bundle deploy -t dev
# Start the app (required after deployment)
databricks bundle run <resource_key> -t dev
# Production
databricks bundle deploy -t prod
databricks bundle run <resource_key> -t prodKey difference from other resources: environment variables go in src/app/app.yaml, not databricks.yml.
For complete DABs guidance, use the databricks-bundles skill.
For programmatic app lifecycle management, see 6-mcp-approach.md.
databricks apps logs <app-name>Key patterns in logs:
[SYSTEM]— deployment status, file updates, dependency installation[APP]— application output, framework messagesDeployment successful— app deployed correctlyApp started successfully— app is runningError:— check stack traces
- Access app URL (from
databricks apps get <app-name>) - Check all pages load correctly
- Verify data connectivity (look for backend initialization messages in logs)
- Test user authorization flow if enabled
- Set
CAN USEfor approved users/groups - Set
CAN MANAGEonly for trusted developers - Verify service principal has required resource permissions