---
title: "Features | Coswarm"
description: "Everything in the Coswarm panel: deployments, domains and the edge, databases, observability, a marketplace of 65 apps and automation, on Docker Swarm, on your own servers."
canonical_url: "https://coswarm.dev/features"
meta:
  "og:description": "Everything in the Coswarm panel: deployments, domains and the edge, databases, observability, a marketplace of 65 apps and automation, on Docker Swarm, on your own servers."
  "og:image": "https://coswarm.dev/og.png"
  "og:image:height": "630"
  "og:image:width": "1200"
  "og:title": "Features · Coswarm"
  "twitter:image": "https://coswarm.dev/og.png"
---

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

Features

# Everything a platform does, in one panel.

Coswarm is a web panel over Docker Swarm. It does the work a hosted platform would do, on servers that stay yours.

[Deployments<h3>**Ship an image. Swarm rolls it out.**</h3>Deploy from any registry, a Compose file or the marketplace. Replicas move to the new version one at a time, and every change is kept with who made it.**shop**shop:1.5.0Updating · 1 of 2shop.1shop:1.5.0running42 sshop.2shop:1.5.0starting3 sshop.2shop:1.4.2stops next6 d**History**deployshop:1.4.2 → 1.5.0nowenvSTRIPE\_MODE changed2 dscale1 → 2 replicas6 d](https://coswarm.dev/features/deployments)

[Domains & edge<h3>**Domains with HTTPS, guarded at the edge.**</h3>Coswarm’s own proxy routes every host to its service, gets certificates from Let’s Encrypt and filters traffic with Coraza and the OWASP Core Rule Set. shop.acme.dev → shop · Let’s Encrypt · 74 dWAFHTTPS redirect api.acme.dev → api · Let’s Encrypt · 61 dWAFgRPC admin.acme.dev → backoffice · Uploaded · 12 dIP allowlistBasic auth grafana.acme.dev → grafana · Let’s Encrypt · 88 dIP allowlist](https://coswarm.dev/features/networking)

[Databases<h3>**Your databases, in the browser.**</h3>Connect to PostgreSQL, MySQL and Redis running beside your apps in one click, then query them, edit them and keep an eye on their keys.select id, email, status, total  
from orders order by id desc limit 50;

| **id** | **email** | **status** | **total** |
| --- | --- | --- | --- |
| 1042 | ada@acme.dev | paid | € 129.00 |
| 1041 | bora@acme.dev | paid | € 54.90 |
| 1040 | cem@acme.dev | refunded | € 18.00 |
| 1039 | deniz@acme.dev | paid | € 240.00 | 4 of 18,240 rows · 12 ms](https://coswarm.dev/features/databases)

[Observability<h3>**Know what broke before anyone asks.**</h3>Live logs, incidents, traffic and findings the server spots on its own, with an Explain button wherever something went wrong. checkout error, warn1 hlive14:05:12infoGET /api/cart 200 18ms14:05:13infoGET /api/products?page=2 200 31ms14:05:15warnstripe: webhook retry 2/5 for evt\_3Pq…14:05:16errorPOST /api/checkout 502 upstream connect error Explain14:05:16infoGET /healthz 200 1ms14:05:18errorcheckout: dial tcp 10.0.1.14:8080: connection refused](https://coswarm.dev/features/observability)

[Marketplace<h3>**65 self-hosted apps, one click each.**</h3>Databases, analytics, developer tools, chat, media and more, as templates that set up the service, its volumes and its secrets on your own servers.**PostgreSQL**Database**Grafana**Monitoring**n8n**Automation**Gitea**DevOps**Nextcloud**Files**Ghost**CMS**Redis**Database**Plausible**Analytics**Uptime Kuma**Monitoring](https://coswarm.dev/features/marketplace)

[Automation<h3>**Deploys that run themselves.**</h3>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..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](https://coswarm.dev/features/ci-cd)

And the rest

## Every page of the panel.

What else is a click away in the sidebar.

**Workloads**

**Apps**

Swarm services with every setting, logs, a terminal, files and history.

**Compose**

Paste a compose file, get a stack; unsupported keys are listed.

**Bulk updates**

Many services to a new image or tag, rolled out together.

**Containers**

Standalone containers: create, logs, stats, inspect, exec, networks.

**Swarm Sync**

Adopt services made outside Coswarm; reconcile drifted records.

**Projects**

Group services by project, projects by workspace.

**Platform**

**Domains**

Every host with its certificate, firewall and access rules.

**Images**

Who uses each image, cleaning up the rest, and Docker Hub search.

**Volumes**

What uses each volume, what sits idle.

**Secrets**

Swarm secrets, set once, never shown again, mounted from the panel.

**Networks**

Overlay networks, what is attached, and the ones Docker made.

**Registries**

Credentials for Docker Hub, GitHub, ECR, GitLab, Quay and more, with a login test.

**Database tool**

PostgreSQL, MySQL and Redis in the browser.

**Proxy logs**

Every request through the edge, searchable.

**Health checks**

HTTP probes with thresholds and latency, Coswarm’s own services included.

**On the server**

**Console**

A root shell on the host, in the browser; every session logged.

**File manager**

The host’s files: browse, upload, edit, download.

**Administration**

**Users & roles**

Custom roles with create, read, update and delete on each area.

**Approvals**

Four-eyes review for the areas you choose.

**Activity**

The audit log: who did what, from where, by day.

**Notifications**

Slack, Discord and Mattermost webhooks for the events you pick.

**Settings**

Panel domain, mail, integrations, Cosmo, node join tokens and one-click updates.

**Command menu**

Find any page, app or project from the keyboard.

Architecture

## Three services and Swarm.

Coswarm runs as ordinary Swarm services next to your apps, on an encrypted overlay network. Nothing to learn underneath: if Swarm runs it, Coswarm can show it.

- Written in Go; the panel is a Vue app it serves.
- More servers join as managers or workers with the tokens in Settings.
- Releases are images on Docker Hub; the panel updates itself.

The internet · HTTPS

overlay network “cloud” · encrypted

coswarm

The panel and its API

:3000, behind the proxy

coswarm-proxy

The edge: routing, HTTPS, WAF

:80 · :443

coswarm-db

PostgreSQL for the panel’s own data

internal

shop

your app

api

your app

postgres

your app

manager-1

worker-1

worker-2

Docker Swarm nodes

## 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#webpage","url":"https://coswarm.dev/features","name":"Features","description":"Everything in the Coswarm panel: deployments, domains and the edge, databases, observability, a marketplace of 65 apps and automation, on Docker Swarm, on your own servers.","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"}]}]}
```

```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#webpage","@type":"WebPage","description":"Everything in the Coswarm panel: deployments, domains and the edge, databases, observability, a marketplace of 65 apps and automation, on Docker Swarm, on your own servers.","name":"Features","url":"https://coswarm.dev/features","isPartOf":{"@id":"https://coswarm.dev/#website"},"potentialAction":[{"@type":"ReadAction","target":["https://coswarm.dev/features"]}]}]}
```

## Sitemap

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