Skip to content

Roll Back a Deploy

When to Use This Guide

Use this guide to return production to a previous, working version after a bad release.


Quick Command

Run the Rollback workflow and enter an earlier version, such as v1.1.0.


Step 1: Create a rollback workflow

A manual workflow that deploys a version you choose:

name: Rollback

on:
  workflow_dispatch:
    inputs:
      version:
        description: "Version tag to deploy"
        required: true

jobs:
  rollback:
    runs-on: ubuntu-latest
    environment: production
    steps:
      - name: Deploy a specific version
        uses: appleboy/ssh-action@v1
        with:
          host: ${{ secrets.SSH_HOST }}
          username: ${{ secrets.SSH_USER }}
          key: ${{ secrets.SSH_PRIVATE_KEY }}
          script: |
            docker pull ghcr.io/${{ github.repository }}:${{ inputs.version }}
            docker rm -f snapshot || true
            docker run -d --name snapshot -p 80:5000 ghcr.io/${{ github.repository }}:${{ inputs.version }}

Step 2: Run it

In the Actions tab, open Rollback, click Run workflow, and enter a known-good version. The server returns to that version in seconds.

Rolling back works because you publish versioned images. Going back is just deploying an earlier tag.


Common Issues

"manifest unknown"

That version was never published. Roll back only to a tag that exists in the registry.