---
title: "Automation | Coswarm"
description: "A deploy token per app for your CI, a GitHub Action that uses it, updates rolled out in bulk, and Cosmo checking for newer images on any registry."
canonical_url: "https://coswarm.dev/features/ci-cd"
meta:
  "og:description": "A deploy token per app for your CI, a GitHub Action that uses it, updates rolled out in bulk, and Cosmo checking for newer images on any registry."
  "og:image": "https://coswarm.dev/og.png"
  "og:image:height": "630"
  "og:image:width": "1200"
  "og:title": "Automation · Coswarm"
  "twitter:image": "https://coswarm.dev/og.png"
---

> Index of every page on this site: [llms.txt](https://coswarm.dev/llms.txt)

Automation

# Deploys that run themselves.

A deploy token per app for your CI, a GitHub Action that uses it, updates rolled out in bulk, and Cosmo checking for newer images on any registry.

[Install Coswarm](https://coswarm.dev/#install) [Everything in the panel](https://coswarm.dev/features)

github.com/acme/shop/actions

.github/workflows/deploy.yml

```
- name: Coswarm Deploy
  uses: kintsdev/coswarm-deploy@v1.0.8
  with:
    base-url: https://panel.acme.dev
    token: ${{ secrets.COSWARM_TOKEN }}
    image: ghcr.io/acme/shop:${{ github.ref_name }}
    github-token: ${{ github.token }}
```

shop rolled out· 2 of 2 replicas · 41 s

## **A token that does one thing**

Each app can have a deploy token that redeploys it with a new image, and nothing else. Rotate or revoke it from the app.

## **A GitHub Action, copied in a click**

The app page writes the workflow step for you with kintsdev/coswarm-deploy. Push a tag, and the new image rolls out.

## **Bulk updates**

Move many services to a new image or tag and roll them out together.

## **Swarm Sync**

Services created outside Coswarm are found every two minutes and can be adopted, and records that drifted from Swarm reconciled.

In detail

## What you get

### **Keeping up to date**

- Cosmo checks what your apps run against Docker Hub and any OCI registry: GitHub, Quay, Harbor and others.
- A deploy, a redeploy, a start or a stop can post to Slack, Discord or Mattermost.

### **Coswarm itself**

- The panel tells you when a new version is out, with its changelog, and updates its own services in one click.

With Cosmo

Ask Cosmo which apps run an old image, what a newer tag changes, or to keep a watch that tells you when something needs attention.

[How Cosmo works](https://coswarm.dev/cosmo)

- “Which of our images have newer versions?”
- “Deploy the latest tag of api”
- “Check for updates every Monday and tell us in Slack”

More of the panel

[**Deployments** Ship an image. Swarm rolls it out.](https://coswarm.dev/features/deployments) [**Domains & edge** Domains with HTTPS, guarded at the edge.](https://coswarm.dev/features/networking) [**Databases** Your databases, in the browser.](https://coswarm.dev/features/databases) [**Observability** Know what broke before anyone asks.](https://coswarm.dev/features/observability) [**Marketplace** 65 self-hosted apps, one click each.](https://coswarm.dev/features/marketplace)

## Your servers are waiting.

One command, a minute or so, and the panel is on your domain. Free, and yours to keep.

$`curl -fsSL https://coswarm.dev/install.sh | bash`

[See the panel](https://coswarm.dev/features) [ Meet Cosmo](https://coswarm.dev/cosmo)

```json
{"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://coswarm.dev/features/ci-cd#webpage","url":"https://coswarm.dev/features/ci-cd","name":"Automation","description":"A deploy token per app for your CI, a GitHub Action that uses it, updates rolled out in bulk, and Cosmo checking for newer images on any registry.","isPartOf":{"@id":"https://coswarm.dev/#website"}},{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://coswarm.dev/"},{"@type":"ListItem","position":2,"name":"Features","item":"https://coswarm.dev/features"},{"@type":"ListItem","position":3,"name":"Automation","item":"https://coswarm.dev/features/ci-cd"}]}]}
```

```json
{"@context":"https://schema.org","@graph":[{"@id":"https://coswarm.dev/#website","@type":"WebSite","description":"Coswarm turns your Linux servers into a Docker Swarm platform: deploys, domains with automatic HTTPS, databases and logs in one panel, free to self-host. Cosmo, its assistant, reads the cluster and proposes changes you approve.","name":"Coswarm","url":"https://coswarm.dev/"},{"@id":"https://coswarm.dev/features/ci-cd#webpage","@type":"WebPage","description":"A deploy token per app for your CI, a GitHub Action that uses it, updates rolled out in bulk, and Cosmo checking for newer images on any registry.","name":"Automation","url":"https://coswarm.dev/features/ci-cd","isPartOf":{"@id":"https://coswarm.dev/#website"},"potentialAction":[{"@type":"ReadAction","target":["https://coswarm.dev/features/ci-cd"]}]}]}
```

## Sitemap

See the full [sitemap](https://coswarm.dev/sitemap.md) for all pages.
