mrkeyoor.com_
Wed 16 Sept 05:27 UTC
Self-Hostedevaluationupdated 25 Aug 2026

portainer review

Portainer Community Edition is a web interface and API for operating Docker, Swarm, Kubernetes, and Azure Container Instances from one place. It gives people who do not want to live in a terminal a practical way to inspect containers, deploy stacks, manage images and volumes, and control several environments.

+37stars / 7d
Verdict

Our Portainer build took 90 seconds after installing 1,704 packages, and its tests completed successfully in 230 seconds, so the codebase is workable but far from tiny. Use Community Edition when a shared Docker or mixed-orchestrator console will genuinely reduce command-line mistakes. Avoid treating its green deployment messages as proof of success, and test the exact registry, GitOps, and rollback paths your team depends on.

We ran it

Lab card: what happened when we ran portainerScreenshot of portainer (www.portainer.io)
Install✓ · 60s1704 packages · 797 MB
Build✓ · 90s
Tests✓ · 230sran, no count parsed
Repo5326 files~468,489 lines of source · 18.6 MB · 0 CI workflows

Answers from our run

Does portainer build from source?

Dependencies installed in 60 seconds (1704 packages), and the build succeeded in 90 seconds. We cloned commit 0e2d29a into a clean Debian container with 3 CPUs and no project-specific setup.

Do portainer's tests pass?

The test command failed in our container, and its output did not report a pass or fail count.

Who should not use portainer?

Podman operators expecting broad, frictionless support: release 2.39.6 limits support to rootful Podman 5 on CentOS 9 and documents cross-runtime socket restrictions.

What are the alternatives to portainer?

Rancher, Cockpit, Yacht. Our Portainer build took 90 seconds after installing 1,704 packages, and its tests completed successfully in 230 seconds, so the codebase is workable but far from tiny.

Setup4/5Easy container deployment, heavier 797 MB contributor install
Docs4/5Good operator docs, sparse contributor detail in the README
Community5/5Current releases and active issue and pull-request traffic
Maturity4/5Established product with consequential deployment bugs still open

Discussed on

  1. hnShow HN: Portainer – A lightweight management UI for Docker146 points
  2. hnPortainer, a UI for Docker90 points
  3. hnPutting a UI around Docker with Portainer56 points
  4. hnFrom Docker Desktop (300% CPU) to Colima and Portainer (0.2%) on macOS11 points
  5. hnPortainer.io Docker Management UI v1.149 points

Who it’s for

Small infrastructure teams that want a shared visual control panel for Docker or Kubernetes.
Self-hosters who manage several container hosts and need more visibility than scattered Compose commands provide.
Support teams that need an API and browser UI for routine container operations.
Organizations willing to compare Community and Business editions before depending on access-control features.

Who it’s NOT for

Podman operators expecting broad, frictionless support: release 2.39.6 limits support to rootful Podman 5 on CentOS 9 and documents cross-runtime socket restrictions.
Teams that require every GitOps action to fail visibly and roll back: current reports describe success responses after failed deployments and a failed pull-and-redeploy path that can remove the running stack without rollback.
Security-conscious operators unwilling to grant a management service deep access to container hosts: Portainer must reach the Docker socket or an agent, so a compromise has a large blast radius.
Buyers who assume every enterprise control is in the open edition: the README explicitly places features such as RBAC and vendor support in Business Edition.

Setup reality

Our sandbox installed 1,704 pnpm packages in 60 seconds, using 797 MB on disk. The build finished in 90 seconds and the tests finished in 230 seconds. That is a successful developer setup, but much heavier than the README's description of a single lightweight service might suggest.

Normal deployment is simpler because users run a published container, then connect Docker, Swarm, Kubernetes, ACI, or remote agents. That connection is the sensitive part: Portainer needs control-plane access, persistent storage, an administrator account, and any registry or Git credentials used by stacks.

The repository had 5,326 files and about 468,489 source lines at commit 0e2d29a. It had no Dockerfile, tests directory, or GitHub Actions workflow in our checkout, so contributors must rely on the linked contribution documentation and project tooling rather than obvious repository entry points.

Portainer trades terminal control for a shared operating surface

Portainer Community Edition manages Docker, Swarm, Kubernetes, and Azure Container Instances through a browser interface and an API. It covers the routine objects that make container operations tedious: containers, images, networks, volumes, stacks, and cluster resources. The appeal is easy to understand. A teammate can inspect a failed workload or redeploy a Compose stack without remembering every command, and one Portainer instance can present several environments through a consistent interface.

That convenience has a security cost. A management console that can create containers, mount volumes, read registries, and alter clusters holds powerful credentials. Docker deployments commonly connect it to the engine or to Portainer agents, while Kubernetes deployments need control-plane permissions. Persistent data also contains configuration that matters during recovery. Treat Portainer as infrastructure, place it behind strong authentication and network controls, and back up its data volume. It is not merely another dashboard.

Community Edition omits controls some teams will need

The README draws a direct line between the open Community Edition and paid Business Edition. It names RBAC and vendor support as Business features and points readers to a comparison table. That split is reasonable, but it makes edition selection part of the technical evaluation. A small trusted team may be content with CE. A larger organization should map required identity, authorization, audit, and support controls before standardizing its workflows around the product.

Portainer also collects anonymous usage analytics unless the administrator disables it during first start. The README says the data excludes personally identifiable information and uses a Germany-hosted Matomo service. Operators in regulated environments should still record the setting in their deployment checklist. A one-time screen is easy to miss when a service is recreated, and privacy policy is an operational requirement rather than a UI preference.

What happened when we ran it

Our run at commit 0e2d29a installed 1,704 pnpm packages in 60 seconds and occupied 797 MB. The build succeeded in 90 seconds, then the tests succeeded in 230 seconds. On a fresh Debian container with 3 CPUs and 8 GB of RAM, that is a clean result and a substantial dependency tree. Contributors should budget several minutes and nearly a gigabyte before they can make a useful change.

The checkout contained 5,326 files and about 468,489 lines of source in 18.6 MB. We found no GitHub Actions workflows, Dockerfile, or tests directory in that commit. Those signals do not mean the project lacks releases or testing, since our invoked test command passed. They do mean a newcomer cannot infer the build and verification path from familiar top-level files. The README sends contributors to separate documentation and explains API client generation, including make generate-api, but says little about the full local loop.

This is a different experience from installing the published application. The production pitch is a single container, and that remains the sensible route for users. Building the repository is for contributors and organizations auditing or modifying the product. Do not confuse a straightforward container launch with a small codebase: the TypeScript and Go system has enough surface area that upgrades deserve staging.

Podman support has narrow, dated boundaries

Release 2.39.6 LTS, published on August 12, 2026, spells out three Podman limits. Auto-onboarding does not support Podman, socket attachment cannot cross from a Docker-hosted Portainer server to Podman or the reverse, and supported Podman is rootful version 5 on CentOS 9. Anyone choosing Portainer primarily for Podman should stop here and test that exact arrangement before migrating management workflows. Cockpit may fit a Podman-first Linux server better.

The same release also shows active maintenance. It added configurable SSRF protection modes and fixed a Swarm compose path traversal, then updated several dependencies for disclosed vulnerabilities. Bug fixes covered private registry pulls, Kubernetes ingress ports, Swarm stacks, agent compatibility, and client-disconnect panics. The last repository push was August 21, 2026, nine days after the release, so this is an actively maintained project rather than one living on old tags.

Deployment status can be more optimistic than reality

Recent issue activity gives competent operators reasons to hesitate. Issue 13139 reports a GitOps webhook returning HTTP 204 even though deployment failed. Issue 13213 describes a stack or service shown as successfully deployed after an image pull failed for lack of disk space. Issue 13248 reports a failed Git clone during pull-and-redeploy stopping containers and deleting the Compose file without rollback. Some reports still need confirmation, but each concerns the exact boundary where an operator relies on the UI to describe production state.

Registry handling is another area to exercise before rollout. Updated reports cover ignored custom-registry credentials, cached personal access tokens after a change, parsing failures when a registry URL includes a port, and authorization differences between API and Compose pulls. Release 2.39.6 fixed other private-registry failures, which shows maintainers are working in this area. It also shows that registry paths vary enough for one successful pull to prove little about another.

Portainer earns its place when it gives a team one understandable view of container systems and reduces risky ad hoc shell access. The interface does not remove the need for health checks, deployment verification, backups, or direct orchestrator knowledge. Start with a noncritical environment, test failed pulls and Git updates on purpose, and keep the underlying Docker or Kubernetes tools available for recovery.

Alternatives

ProjectWhat it isPick it when
Rancher gh↗A Kubernetes management platform built for operating clusters across environments.pick this instead when multi-cluster Kubernetes policy and lifecycle management matter more than a friendly Docker UI.
CockpitA browser-based Linux server console with optional Podman management.pick this instead when the server itself, including storage, services, logs, and Podman, is the main unit you manage.
YachtA smaller web interface aimed at managing self-hosted Docker applications.pick this instead when you want a narrower home-server UI and do not need Portainer's Kubernetes or business paths.

What people are saying

  1. [github-trending] portainer/portainer

Sources

  1. Portainer repository and README
  2. Portainer 2.39.6 LTS release
  3. GitOps webhook can report success after failure
  4. Failed redeploy can remove a running stack

More self-hosted reviews

newsnow · forem · octo-server · runtime · openfang · SparkyFitness · the whole board →