Server control planeEarly access

Run a fleet without running Kubernetes.

One binary on one machine. Add nodes over SSH, point it at Git, and every stack becomes a service with rolling updates, readiness checks and one-click rollback.

  • Free for one node
  • Installs Docker for you
  • From $20 a month
panel.example.com
The Portiger dashboard: processor, memory and disk gauges for the machine, counts for stacks, containers, jobs and domains, and cards for Sentinel and the system components.
AdoptionEarly access

It adopts what is already on the machine.

A server that has run for two years already has a proxy in front of it and, often, a pool someone enabled once. Portiger detects both and takes them over instead of asking you to tear them down.

  • Detects and adopts Traefik
  • Imports the routes you already wrote
  • Adopts an existing pool
panel.example.com
The System components page, listing the Docker engine, the workload pool, publishing through Traefik, the mail stack, Sentinel and the Assistant link, each with its version and whether it is running.
AssistantEarly access

Say what you want. Approve the plan. It deploys.

The Assistant reads your installation, plans the stack with a security review, and deploys only what you approved, into the one stack you named.

  • Max plan
panel.example.com
The Assistant page: earlier conversations listed beside an answer explaining namespaces, and a box asking how something works or describing an application to install.
Early access

Not released yet.

Portiger is in early access. The plans and the prices are settled; the product is not finished, so none of it is on sale. Leave an address and we will write once, when it is ready to install.

One email, about this product. No newsletter, and the address is not passed to anyone.

How it works

Three steps, and the third node costs nothing extra in effort.

Portiger is one binary and one database. A node you add over SSH runs the same binary and joins the same pool.

  1. 01

    Install

    One command. curl | sh fetches the binary and portiger install <licence key> installs Docker, starts the workload pool and opens the panel. The first screen is a setup wizard.

    $curl -fsSL get.portiger.com | sh -s -- <licence key>

    portiger install <licence key>

  2. 02

    Add nodes over SSH

    Give the panel SSH access to a machine once. It installs Portiger there and joins it to the pool. Nodes talk to each other on three ports inside your network; the only thing that leaves your network is the licence check.

    panel.example.com
    The Nodes page: the machine the panel runs on with its processor, memory and disk in use, one joined node below it, and a card for adding another.
  3. 03

    Point it at a repository

    Connect GitHub, GitLab, Gitea or Bitbucket. Your provider's runner checks out, tests and builds the image; Portiger checks the compose file and portiger.yaml, then deploys, keeping the previous version ready for a one-click rollback.

    panel.example.com
    A pipeline run: checkout done, tests running and build pending on the runner, then the compose check, the portiger.yaml check and the deploy waiting on Portiger, with the earlier runs listed below.
Workloads

A stack is a service. It does not need restarting.

Every stack you create runs as a service in the workload pool: replicas come back on their own, updates roll one replica at a time, and two probes tell the difference between alive and ready.

Health

Is the app still alive? If not, replace the replica.

Readiness

Is it ready for visitors? Until it passes, no traffic and the stack shows Progressing.

Rollback

The last versions stay warm; going back is one click.

panel.example.com
A stack deployed from Git: its scale, deploy time and running service on the left, request, error-rate, response-time, processor and memory readings on the right, with request and resource graphs under them.
Features

The unglamorous half of running servers, done once.

Every plan is self-hosted and all of this runs on your own machines. Which parts are switched on depends on the plan, and the pricing page spells out exactly which.

Stacks as services

Every stack runs in the workload pool: replicas come back on their own and updates roll one at a time.

Learn more

Health and readiness

Two probes: alive or replace the replica; ready or no traffic yet.

Learn more

Namespaces

Staging and production kept apart, with their own secrets, configs and placement.

Learn more

Jobs and cron jobs

Exec or container jobs with their output and exit code kept.

Learn more

Domains and DNS

A domain is one object: DNS points the name here, Web says which stack answers.

Learn more

Web rules and certificates

Redirects, rate limits, basic auth, headers and CORS on the domain; certificates renew themselves.

Learn more

Pipelines

Your runner tests and builds; Portiger checks and deploys, with a gate when you want to approve first.

Learn more

Mail server

Mailboxes, forwarders and lists on your own domain, DNS records written for you.

Learn more

Secrets and Sentinel

A vault with global and per-stack scope; thirteen host checks with one fix each.

Learn more

Nodes and placement

Add a node over SSH; copies fixed or automatic; pinned or left to the pool.

Learn more

Monitoring and alerts

Metrics per stack and container, a history of changes, alerts where your team reads them.

Learn more

Assistant

Describe an application, approve the plan, it deploys into the one stack you named.

Learn more
Adoption

It does not ask you to start from an empty machine.

Most tools of this kind assume a fresh server. Real servers are not fresh: there is a proxy in front, certificates that already work, and sometimes a workload pool someone turned on two years ago. Portiger detects each of those and takes them over.

  • Finds an existing Traefik, adopts it, and imports the routers and certificates it is already serving
  • Installs one itself if there is none
  • Detects a workload pool and adopts one that is already active
  • Hands any of it back: adoption is reversible, and uninstalling leaves what it found
Shape

The interface is inside the binary, not a second thing to deploy.

One process, and the same binary on every node. The web interface is compiled into it, so there is no separate frontend to serve, no Node runtime on the box and no version skew between panel and API. State lives in a single SQLite database, and portiger update replaces the binary with a snapshot taken first.

  • One .deb, installed by one command
  • Panel, pool and mail server in one process
  • State in one SQLite file, backed up with everything else
  • Upgrading is one command
Security

It checks the machine, too.

Sentinel reads the host it runs on: SSH settings, Docker exposure, listening ports, pending updates and more, thirteen checks in all. It uses no scanner and no vulnerability database; it looks at what is actually configured and tells you the one change that fixes each finding. Personal runs four basic checks; Team and Max run all of them on a schedule and notify you.

panel.example.com
The Sentinel page: findings counted by severity, then a list naming each one, such as a port answering from the internet, SSH still accepting passwords and no firewall running, with the check that found it.
Not yet

What it cannot do today, said here rather than found later.

Portiger is in early access and the gaps below are real. They are listed because finding them after paying is worse than reading them now.

  • One control plane. There is no high-availability panel; if the main node is down, the panel is down while the stacks keep running.
  • Three nodes at most. The pool stops at three, even on Max.
  • Debian and Ubuntu only. The installer ships a .deb; there is no rpm and no Windows.
  • The Assistant needs Portiger's own service. It is linked with a token and does not run offline.
  • An external project is watched, not managed, until you bring it into the pool.
Contact

Questions before you install? Ask.

One address per kind of question, answered by the people who build it.

Plans

The free edition is not a trial, and does not expire.

Community runs one node for one operator and keeps working forever. What the paid editions add is the mail server, scaling, and — at the top — three nodes behaving as one.

Community

Free

One node, one operator. Unlimited stacks and domains; no scheduled jobs.

Personal

$20/month

Adds the mail server on your own domain, scheduled jobs, and right-sizing that tunes CPU and memory while things run.

Team

$49/month

Five people. Replicas, build pipelines, roles, single sign-on, audit trail and private registries.

Max

$149/month

Twenty-five people. Three nodes as one pool, an mTLS mesh, scheduled backups and the Assistant.