Senate

Deployments

Build, deploy, and manage application releases

Deployments

Deployments in Senate represent the process of building and releasing your application. Each deployment creates a new version of your service.

Deployment Sources

Senate supports multiple ways to deploy your application:

Docker Image

Pull a pre-built image from a registry:

nginx:latest
ghcr.io/your-org/your-app:v1.2.3
your-registry.com/app:latest

Best for: Production deployments with CI/CD pipelines that build images externally.

Dockerfile

Build from a Dockerfile:

  • Inline: Paste Dockerfile content directly in Senate
  • Git Repository: Build from a Dockerfile in your repo

Best for: Simple applications or when you want Senate to handle builds.

Git Repository

Clone and build from a Git repository:

OptionDescription
Repository URLHTTPS or SSH URL
BranchBranch to deploy (default: main)
Dockerfile PathPath to Dockerfile (default: ./Dockerfile)
AuthenticationSSH key or access token for private repos

Best for: Full GitOps workflow with automatic builds.

Compose (YAML)

For multi-container applications:

  • Inline YAML: Paste docker-compose.yml content
  • Git Repository: Use compose file from repo
  • Profile: Select specific compose profile
  • Override: Provide override YAML for customization

Deployment Process

When you click Deploy, Senate executes these steps:

1. Pull/Build     → Download image or build from source
2. Create         → Create new container(s)
3. Start          → Start the container(s)
4. Health Check   → Verify container is healthy (if configured)
5. Cleanup        → Remove old container(s)

Deployment progress

Deployment Strategies

Configure in the Advanced tab:

Recreate (Default)

  1. Stop old container
  2. Start new container

Pros: Simple, predictable Cons: Brief downtime during switch

Rolling Update

  1. Start new container
  2. Wait for health check
  3. Route traffic to new container
  4. Stop old container

Pros: Zero downtime Cons: Requires health checks, briefly runs two containers

Configure rolling update options:

OptionDescriptionDefault
Health Check TimeoutMax wait for healthy state60s
Connection Drain TimeoutTime to wait before closing connections5s
Rollout ServicesFor compose: which services to rollAll

Viewing Deployments

Deployment History

The Deployments tab shows all deployments:

  • Status indicator
  • Timestamp
  • Duration
  • Trigger source (manual, webhook, auto)
  • Git commit info (if applicable)

Click any deployment to view its logs.

Deployment history

Deployment Logs

View real-time or historical logs:

  • Build output
  • Pull progress
  • Container startup logs
  • Error messages

Automatic Deployments

Webhook Triggers

Each service has a unique webhook URL:

https://senate.example.com/api/services/<service-id>/deploy?token=<secret-token>

Configure in your CI/CD pipeline to trigger deployments on push. See CI/CD Integration for detailed setup instructions.

On this page