What's New in Elestio CI/CD: Zero-Downtime Deploys, Health Checks, and More

What's New in Elestio CI/CD: Zero-Downtime Deploys, Health Checks, and More

We've been working on making Elestio's CI/CD pipeline smoother, faster, and more reliable. Whether you're running a single service or managing multiple pipelines across projects, these updates make every deployment safer and more predictable. Here's what's new and what it means for you.

Zero-Downtime Deployments

The biggest upgrade: your app now stays online during the entire build process. The pipeline builds the new image first while your existing container keeps serving traffic, then swaps in the new version in seconds. Your users experience no interruption, even on longer builds.

This also means failed builds are completely safe. If something goes wrong during the build step, the currently running container keeps serving traffic as if nothing happened. Nothing changes until the new version is confirmed ready. You get a failure email with the full build log so you can diagnose and fix it on your own schedule.

Smarter Git Sync

Git sync is now more resilient. The pipeline uses a hard reset strategy instead of a simple pull, which means temporary files or build artifacts in the working directory won't block your deployments. Every sync starts clean.

SSH Deploy Keys

Pipelines now use automatically generated SSH deploy keys instead of relying on Personal Access Tokens in the remote URL. Each pipeline gets its own key, registered with GitHub or GitLab via their API. The key is used at deploy time then cleaned up, so there are no long-lived credentials sitting in your git config.

This means you don't need to worry about token expiration silently stopping your deployments. And if deploy key setup isn't possible for your repository (e.g., limited API scope), the system falls back to token-based auth gracefully. Either way, your pipeline keeps running.

Container Health Checks

After bringing up the new container, the pipeline now actively monitors its health status rather than assuming everything is fine. It polls every 5 seconds for up to 120 seconds, waiting for all containers to report healthy. If something doesn't come up properly, the deployment is marked as failed and you're notified immediately with the full logs. This catches issues like misconfigured environment variables or missing dependencies that would otherwise go unnoticed until a user reports a problem.

Deployed Commit Tracking

You can now see exactly which commit is running in production, right from the dashboard. The deployed commit SHA is captured during each build and stored alongside your pipeline data. This is especially useful when multiple team members push changes throughout the day and you need to know precisely which version is serving your users.

Failure Notifications

When a deployment fails, the project owner (and the user who triggered it, if different) automatically receives an email with the full build log attached. You'll know something needs attention before your users do. The log includes enough detail to diagnose most issues directly from your inbox, so you can push a fix and let the pipeline handle the rest.

CI/CD Disable Toggle

You can now pause CI/CD pipelines directly from the dashboard. This is useful during maintenance windows, database migrations, or any time you want to temporarily stop automated deployments without removing the pipeline itself.

Cleaner Container Management

The pipeline now handles container cleanup automatically between deployments. Orphaned containers from previous runs are removed before the new version comes up, so you never run into naming conflicts or leftover processes consuming resources. Every deployment starts from a clean, predictable state.

Troubleshooting

Container reports unhealthy after deploy: Check your Docker health check configuration. The pipeline waits up to 120 seconds for containers to become healthy. If your app needs more startup time, increase the healthcheck.start_period in your docker-compose.yml.

Authentication errors during git sync: Verify your deploy key is correctly registered on GitHub/GitLab. You can check this in your repository's deploy key settings. The pipeline will fall back to token auth if needed, so also confirm your token is still valid.

Ship with Confidence

All of these improvements are live now. If you're already using Elestio's CI/CD, you don't need to change anything on your end. Everything works automatically with your existing pipeline configuration.

If you haven't tried it yet, check out Elestio and set it up in minutes from your dashboard. Connect your GitHub or GitLab repo, and every push triggers an automated deployment with all these safeguards built in. Zero-downtime deploys, health checks, SSH keys, commit tracking, and failure alerts, all out of the box.

Thanks for reading. See you in the next one.