Skip to main content

Documentation Index

Fetch the complete documentation index at: https://help.the-meridian.ai/llms.txt

Use this file to discover all available pages before exploring further.

Every change you ship to an environment goes through a deployment. Meridian tracks the full lifecycle of each deployment — from the moment you trigger it to the instant it’s live (or failed) — and keeps a complete history so you can roll back to any previous successful version with a single API call. You can trigger deployments manually from a commit SHA or branch, or automate them so every push ships automatically.

Deployment lifecycle

A deployment moves through a series of statuses from trigger to completion. Understanding these states helps you monitor progress and diagnose failures.
StatusDescription
pendingThe deployment has been queued and is waiting for a build runner to pick it up.
buildingMeridian is installing dependencies and building your app from source.
deployingThe build succeeded and Meridian is rolling out the new version to the environment.
successThe deployment completed and your new version is live.
failedThe build or deploy step encountered an error. Check build_logs_url or deployment_logs_url for details.
cancelledThe deployment was cancelled before it completed.
rolled_backThe environment was restored to a previous deployment. This status appears on the deployment that was replaced, not the rollback target.
pending → building → deploying → success
                               ↘ failed
                               ↘ cancelled
                  (rollback) → rolled_back

Triggering a deployment

From the dashboard

1

Navigate to the environment

In Hosting, select the environment you want to deploy to.
2

Click Deploy

Click Deploy in the environment header. A deployment form appears.
3

Specify the source

Enter the Git branch, commit_sha, or a version tag. You can also provide a commit_message for your records.
4

Confirm

Click Trigger deployment. The deployment appears at the top of the deployment history list with status pending.

Via the API

Send a POST request to create a new deployment:
POST /apps/:app_uuid/environments/:env_uuid/deploys
{
  "branch": "main",
  "commit_sha": "a1b2c3d4e5f6...",
  "commit_message": "feat: add subscription billing flow",
  "version": "v1.4.2"
}
All fields in CreateDeploymentRequest are optional. At minimum, provide either a branch or commit_sha so Meridian knows what to build. The response wraps the created deployment:
{
  "deployment": {
    "uuid": "dep_abc123",
    "env_uuid": "env_xyz789",
    "status": "pending",
    "branch": "main",
    "commit_sha": "a1b2c3d4e5f6...",
    "commit_message": "feat: add subscription billing flow",
    "version": "v1.4.2",
    "created_at": "2026-05-05T10:00:00Z"
  }
}
You can also deploy directly via the environment:
POST /environments/:env_uuid/deploys

Auto-deploy configuration

Meridian can automatically trigger a deployment every time you push to a specific branch. Configure this using two fields on your App object:
FieldTypeDescription
auto_deploy_targetstringThe environment name or UUID that receives auto-deployments
auto_deploy_branchstringThe branch that triggers auto-deploy when pushed
When both fields are set, any push to auto_deploy_branch triggers a new deployment to the auto_deploy_target environment automatically — no manual step required. You can also enable auto-deploy per-environment using the auto_deploy and branch fields on a CreateEnvironmentRequest or UpdateEnvironmentRequest. The environment-level setting gives you fine-grained control when you want different branches to auto-deploy to different environments (for example, mainproduction, developstaging).
Connect your GitHub repository first before enabling auto-deploy. Meridian uses the git_provider, repo_owner, and repo_name fields on your app to resolve incoming push events to the correct deployment target.

GitHub integration

Meridian reads the following fields from your App to connect deployments to your repository:
FieldTypeDescription
git_providerstringThe VCS provider (e.g., "github")
repo_ownerstringGitHub user or organization that owns the repository
repo_namestringRepository name
github_installation_idstringThe GitHub App installation ID that granted Meridian access
If repo_owner or repo_name are missing from your app, go to Settings → GitHub to connect your repository before triggering deployments.

Monitoring deployments

Build and deployment logs

Once a deployment is running, two log URLs become available on the Deployment object:
FieldDescription
build_logs_urlStreaming URL for build-phase output (dependency install, compile, bundle)
deployment_logs_urlStreaming URL for deploy-phase output (container startup, health checks)
Fetch either URL to tail live logs during the deployment, or review them after the fact to diagnose failures.
GET /deploys/:deployment_uuid
{
  "uuid": "dep_abc123",
  "env_uuid": "env_xyz789",
  "status": "building",
  "build_logs_url": "https://logs.meridian.app/builds/dep_abc123",
  "deployment_logs_url": "https://logs.meridian.app/deploys/dep_abc123",
  "commit_sha": "a1b2c3d4e5f6...",
  "branch": "main"
}

Listing deployment history

To retrieve the full deployment history for an environment:
GET /environments/:env_uuid/deploys
This returns an array of Deployment objects sorted by creation time, newest first.

Rolling back a deployment

If a release introduces a regression, roll back to any previous successful deployment:
POST /deploys/:deployment_uuid/rollback
No request body is required. Meridian redeploys the specified version to the environment immediately. The rollback creates a new Deployment record with a fresh uuid, while the deployment that was live before the rollback transitions to status rolled_back.
1

Find the deployment to restore

In Hosting, open the environment and scroll through the deployment history. Locate the last known-good deployment.
2

Trigger the rollback

Click Roll back to this version next to the target deployment, or call POST /deploys/:deployment_uuid/rollback with the UUID of that deployment.
3

Verify

Watch the new deployment move through pending → deploying → success. Once it reaches success, your previous version is live again.
Rolling back does not restore database state. If your deployment included a database migration, rolling back the app code will not reverse the migration. Test rollback procedures in staging before relying on them in production.

Deployment fields reference

FieldTypeDescription
uuidstringUnique identifier for the deployment
env_uuidstringThe environment this deployment belongs to
app_uuidstring (optional)The app this deployment belongs to
statusDeploymentStatusCurrent status (see status table above)
versionstring (optional)Version tag (e.g., "v1.4.2")
commit_shastring (optional)Full Git commit SHA
commit_messagestring (optional)Commit message for reference
branchstring (optional)Git branch the deployment was built from
build_logs_urlstring (optional)URL to build-phase logs
deployment_logs_urlstring (optional)URL to deploy-phase logs
deployed_atstring (optional)ISO 8601 timestamp when the deployment went live
created_atstring (optional)ISO 8601 creation timestamp
updated_atstring (optional)ISO 8601 last-updated timestamp

Next steps

Last modified on May 5, 2026