Create GitHub App
Create a new app linked to a GitHub repository for automatic deployments.
Authorizations
Service Account Token authentication. To authenticate API requests:
-
Create a Service Account Token:
- Go to the Cerebrium Dashboard and open the API Keys page
- Click Create Service Account, name it (e.g., "GitHub Actions CI/CD"), choose an expiry date, and click Create
- Copy the token generated for the desired service account
-
Use the Token: Include the service account token in the Authorization header of API requests:
Authorization: Bearer <your-service-account-token> -
Best Practices:
- Create separate service accounts for different environments (dev, staging, prod)
- Store tokens securely as secrets in consuming applications or workflows
- Set appropriate expiry dates and rotate tokens regularly
- Never commit tokens to source control
For CI/CD integration examples, see the CI/CD documentation.
Path Parameters
Body
Version of the client initiating the deployment.
GitHub repository to deploy from, in owner/repo format.
The name of the app. 3-30 lowercase alphanumeric characters and dashes.
Base Docker image for the app. Default: debian:bookworm-slim.
Verbatim contents of the cerebrium.toml configuration file.
Compute type(s) for the app, in priority order. A single value or a list of up to 5. Valid values: ADA_L4, ADA_L40, AMPERE_A10, AMPERE_A100_40GB, AMPERE_A100_80GB, HOPPER_H100, HOPPER_H200, BLACKWELL_B200, BLACKWELL_RTX6000, CPU, INF2, TRN1, TURING_T4. Default: CPU.
Compute tier for the app. Valid values: interruptible, protected.
Container runtime version. Valid values: v1, v2.
Cooldown period in seconds before an idle replica scales down. Range: 0-3600. Default: 10.
Number of CPU cores to allocate. Range: 0.25-192. Default: 2.
Maximum time in seconds to wait for a deployment to initialize. Range: 60-830. Default: 600.
Disable authentication on the app endpoint. Default: false.
Credentials for pulling the base image from a private Docker registry.
Path to a Dockerfile to build the app from.
Command to start a custom runtime app, as a list of strings.
Interval in seconds between autoscaling evaluations. Range: 6-300.
Automatically deploy new commits pushed to the configured branch.
Git branch to deploy. Default: main.
Path within the repository containing the app.
Number of GPUs to allocate. Range: 0-16. Default: 0.
HTTP endpoint used to check that a custom runtime app is healthy.
Load balancing algorithm. Valid values: round-robin, first-available, min-connections, random-choice-2.
Log level for the deployment. Valid values: INFO, DEBUG, INTERNAL, ERROR. Default: INFO.
Maximum number of replicas. Range: 1-2000. Default: 1.
Memory allocation in GB. Range: 0.05-1984. Default: 4.
Minimum number of replicas. Range: 0-2000. Default: 0.
Whether the upload contains only files changed since the previous deployment.
Port the app listens on. Range: 0-65535. Default: 8000.
Cloud provider to deploy to. Valid values: aws, crusoe, nebius. Defaults to an automatically selected provider.
Python version to use. Default: 3.10.
HTTP endpoint used to check that a custom runtime app is ready to receive traffic.
Region to deploy to. Defaults to an automatically selected region.
Maximum concurrent requests per replica. Defaults to 100 for CPU apps and 1 for GPU apps.
Grace period in seconds for in-flight requests when a replica stops. Range: 16-43200. Default: 900.
Duration in seconds over which to roll out a new version. Range: 0-21600.
App runtime. Valid values: cortex, custom. Default: cortex.
Number of extra replicas to keep available beyond current demand. Must be >= 0.
Metric used for autoscaling. Valid values: cpu_utilization, memory_utilization, requests_per_second, concurrency_utilization. Default: concurrency_utilization.
Target value for the scaling metric. Must be > 0. Default: 100.
Use uv for Python package installation.
Response
Details of the created GitHub-linked app and its first build.
Unique identifier of the created app.
URL of the app in the dashboard.
ID of the build created for this deployment.
URL of the build in the dashboard.
Base URL for invoking the app.
Access token for streaming build logs.
URL for retrieving build logs.
ID of the project the app belongs to.
Current status of the build.