Skip to content

Portainer vs Portwing

Portainer 2.39 is the mature fleet-management benchmark, with classic, Edge, and Async Edge agents plus Swarm and controller-driven updates. Portwing v0.9.19 is a narrower Drydock agent focused on signed requests, replay defense, Sockguard policy, agent-level audit, Prometheus, and MCP — in the free AGPL-3.0 build, without requiring a Business-tier upgrade. Portwing v0.9.x is a supported pre-v1 release; Portainer is production-mature. Reviewed August 29, 2026.

Portainer — ActivePortwing — Supported pre-v1

Feature Comparison

Here's how we compare on the features that matter most.

FeaturePortainerPortwing
Remote Docker API proxyYes (Agent)Yes
Connection modesClassic inbound; outbound Edge; Async EdgeStandard inbound; persistent outbound edge (Drydock v1.6.0-rc.11+)
Agent authenticationClaim key exchange; optional shared secret; Edge key and optional Business mTLSEd25519 per-request HTTP signatures; signed edge hello; token fallback in standard mode
Docker socket policyDocumented agent mounts Docker socket and host pathsRecommended Sockguard path-and-method policy
Structured auditController activity log in Business EditionAgent-level structured audit and cursor export in every build
Supply-chain evidenceNot publishedCosign signatures + archive/image CycloneDX SBOMs + SLSA provenance
Fleet agent upgrades and policiesYesNot shipped; belongs in Drydock plus packaging
Host file APIs and Swarm aggregationYesIntentional non-goals
Prometheus agent scrape endpointNot documentedYes
MCP server (read-only)Not documentedYes
Single lightweight binaryNo (~300 MB node image)Yes (~10 MB Go binary)
LicenseZlib agent; proprietary Business featuresAGPL-3.0

Key Differentiators

What we built that Portainer doesn't cover.

Portainer Leads Fleet Operations

Portainer's Edge and Async Edge products include mature fleet policies, edge stacks/jobs/configuration, and controller-managed agent updates. Portwing currently supports a persistent edge tunnel; Drydock owns future rollout policy.

Different Authentication Layers

Portainer uses an Agent claim process, optional AGENT_SECRET, Edge credentials, and optional Business mTLS. Portwing signs each standard-mode request and its edge hello with Ed25519, with explicit timestamp and nonce replay checks on HTTP.

Narrow Socket Boundary

Portainer's documented agent deployment mounts the Docker socket and host paths. Portwing's hardened path puts Sockguard in between and permits only configured HTTP methods and Docker API paths.

Audit at the Agent

Portainer's controller Activity log is a Business feature. Portwing emits structured authentication and Docker mediation records in every build; Drydock can add user-level context above them.

Host Access Is a Tradeoff

Portainer exposes file-browse APIs and Swarm-wide resource aggregation. Portwing intentionally avoids arbitrary host files and controls one Docker host to keep the privileged surface smaller.

Prometheus and Read-Only MCP

Portwing exposes an agent Prometheus endpoint and five read-only MCP inspection tools. Equivalent agent endpoints were not documented in the reviewed Portainer material.

Coming from Portainer Agent?

Inventory Edge Stacks, Jobs, Configurations, RBAC, Swarm, host browsing, and agent update policies before moving controllers. Map those responsibilities to Drydock, then deploy Portwing with Ed25519 keys and the narrowest Sockguard preset that permits the workflows you actually need.

Quick start
$ docker run -d \
  --name portwing \
  --read-only --cap-drop=ALL \
  --security-opt no-new-privileges:true \
  -v /var/run/docker.sock:/var/run/docker.sock:ro \
  -e TOKEN_HASH="$PORTWING_TOKEN_HASH" \
  -p 3000:3000 \
  ghcr.io/codeswhat/portwing:latest

Ready to try Portwing?

Security-first, AGPL-3.0, no SaaS required. Drop a secure foothold on any Docker host in minutes.