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.
Feature Comparison
Here's how we compare on the features that matter most.
| Feature | Portainer | Portwing |
|---|---|---|
| Remote Docker API proxy | Yes (Agent) | Yes |
| Connection modes | Classic inbound; outbound Edge; Async Edge | Standard inbound; persistent outbound edge (Drydock v1.6.0-rc.11+) |
| Agent authentication | Claim key exchange; optional shared secret; Edge key and optional Business mTLS | Ed25519 per-request HTTP signatures; signed edge hello; token fallback in standard mode |
| Docker socket policy | Documented agent mounts Docker socket and host paths | Recommended Sockguard path-and-method policy |
| Structured audit | Controller activity log in Business Edition | Agent-level structured audit and cursor export in every build |
| Supply-chain evidence | Not published | Cosign signatures + archive/image CycloneDX SBOMs + SLSA provenance |
| Fleet agent upgrades and policies | Yes | Not shipped; belongs in Drydock plus packaging |
| Host file APIs and Swarm aggregation | Yes | Intentional non-goals |
| Prometheus agent scrape endpoint | Not documented | Yes |
| MCP server (read-only) | Not documented | Yes |
| Single lightweight binary | No (~300 MB node image) | Yes (~10 MB Go binary) |
| License | Zlib agent; proprietary Business features | AGPL-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.
$ 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:latestReady to try Portwing?
Security-first, AGPL-3.0, no SaaS required. Drop a secure foothold on any Docker host in minutes.