Self-hosted PaaS for agencies: managing many client servers

What agencies should look for in a self-hosted deployment platform when every client has its own server and access needs.

Agencies have a deployment problem most product teams do not: dozens of small apps, each belonging to a different client, often on the client’s own server or cloud account. A self-hosted PaaS can turn that into one dashboard. It can also turn into a permissions mess. Here is what to check.

One control plane, many servers

You want to connect each client’s server to a single control plane, rather than install a separate dashboard on every box. Check:

  • How servers are attached (SSH key, agent, or both)
  • Whether servers can sit in different providers and regions
  • What happens to running apps if the control plane is down. They should keep serving.

Client isolation

This is the part that matters most.

  • Each client should be a separate project or workspace
  • Developers should see only the clients they work on
  • A client’s own developer may need access to their project and nothing else
  • Secrets for one client must never be visible from another project

If a platform only has a single admin role, you will end up sharing credentials, which is exactly what you were trying to avoid.

Audit trail

When a client asks “who changed the production database password in March”, you need an answer. Look for audit logs that record actor, project, action and time, and that cannot be edited by regular users.

Handover

Clients leave. Make sure you can:

  • Transfer a project, or export its configuration
  • Remove the agency’s access from the client’s server cleanly
  • Leave the client with documentation of what runs where

Pricing shape

Per seat pricing punishes agencies with many developers touching many projects. Per server pricing punishes agencies with many small servers. Per project pricing, or self hosting for free, often fits better. Do the math with your real numbers.

Backups per client

Each client’s databases should back up to storage the client controls, or at least to a separate bucket per client.

Templates

Agencies rebuild the same stacks repeatedly: WordPress, a Next.js frontend with an API, a Laravel app. Templates or a marketplace save hours per project.

Comparing options

Dokploy, Coolify and Peon all deploy Docker apps to your own servers. They differ in team model, audit logging and pricing. For the agency case, focus on isolation and audit features first, then on deployment features, which are similar across tools.

A feature by feature breakdown for one of these comparisons is on the Peon vs Dokploy page.

Disclosure: I work on Peon.


Write a comment