Portwing

Portainer vs Portwing

Portainer 2.45.3 offers classic and Edge agents, Business Edition Async Edge, and Swarm. Its built-in agent update/rollback is Business Edition beta for Edge Agents on Docker Standalone environments. Portwing v1.1.0 is a narrower Drydock agent focused on signed requests, replay defense, Sockguard policy, agent-level audit, Prometheus, and MCP in the MIT-licensed build. Choose the controller workflows and supported platforms that fit your deployment. Reviewed October 26, 2026.

PortainerPortwing: Stable release

Feature Comparison

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

Portainer vs Portwing: 11 features
FeaturePortainerPortwing
Remote Docker API proxyOn par: Yes (Agent)On par: Yes
Connection modesStronger: Classic inbound; outbound Edge; Async Edge (Business Edition)Weaker: Standard inbound; persistent outbound edge (Drydock v1.6.0-rc.11+)
Agent authenticationOn par: Non-FIPS controller public key and fixed-message signature headers; optional shared secret; Edge credentials and Business mTLSOn par: Ed25519 per-request HTTP signatures; signed edge hello; token fallback in standard mode
Docker socket policyWeaker: Documented agent mounts the Docker socket; host-root mount is optionalStronger: Recommended Sockguard path-and-method policy
Structured auditWeaker: Controller activity log in Business EditionStronger: Agent-level structured audit and cursor export in every build
Supply-chain evidenceWeaker: 2.45.3 controller archives have checksums; Agent images have SPDX SBOMs and SLSA v1 provenance; no Cosign signature found in checked discovery pathsStronger: Cosign signatures + archive/image CycloneDX SBOMs + SLSA provenance
Fleet agent upgrades and policiesStronger: Business Edition beta update/rollback for Edge Agents on Docker Standalone environmentsWeaker: Not shipped; belongs in Drydock plus packaging
Host file APIs and Swarm aggregationStronger: YesWeaker: Intentional non-goals
Prometheus agent scrape endpointOn par: Local Kubernetes Edge metrics; equivalent Docker mediation scrape not documentedOn par: Yes
Documented read-only MCP endpointWeaker: Not documented for the agent; separate unsupported controller MCP serverStronger: Yes
LicenseOn par: Zlib agent; proprietary Business featuresOn par: MIT

Comparison Details

Authentication, socket policy, telemetry, release evidence, and controller scope.

  • Portainer Fleet Operations

    Portainer offers Edge stacks, jobs and configuration, plus Business Edition Async Edge. Its built-in agent update/rollback feature is Business Edition beta for Edge Agents on Docker Standalone environments. Portwing provides a persistent edge tunnel; Drydock owns fleet rollout policy.

  • Different Authentication Layers

    Portainer's non-FIPS Agent verifies signature headers on requests, but the signed value is a fixed message or AGENT_SECRET. Portwing's configured Ed25519 path binds method, exact target, body hash, timestamp and nonce, and signs its edge hello. Portainer also offers Edge credentials and optional Business mTLS; these are different mechanisms, not an overall security ranking.

  • Narrow Socket Boundary

    Portainer's agent mounts the Docker socket, with optional host-root mounting for host management. 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 Docker mediation metrics and five read-only MCP inspection tools. Portainer has a localhost-only Prometheus endpoint populated for Kubernetes Edge. Equivalent Docker mediation scraping and an MCP endpoint were not documented in the reviewed material. Portainer's separate portainer/portainer-mcp server targets the controller API and is marked unsupported for production.

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:1.1.0

Needs TOKEN_HASH: an Argon2id hash from portwing hash-token. For per-client keys, run portwing keygen and set AUTHORIZED_KEYS instead.

Ready to try Portwing?

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