Skip to content

Sites & Services (PaaS)

The PaaS layer is the everyday experience: add a domain and a repo, and podmaker handles the database, TLS and deploys.

Sites

A site is a deployable app. Add it from a public or private Git repo (SSH key or token). On creation:

  • A database container is provisioned and its credentials are injected into the app’s environment.
  • Caddy obtains and renews a Let’s Encrypt certificate automatically per domain.
  • Each site runs isolated on its own network — one crash never touches another.

Deploy on the panel button or a webhook. You also get:

  • Maintenance mode — flip a 503 page in front of the site instantly.
  • Live logs — stream container logs in real time over SSE.
  • Backup / restore — snapshot the volume + database dump and restore it.

Services

A service is shared infrastructure — MySQL, PostgreSQL, Redis, RabbitMQ, or a custom image. Provision it once and attach it to as many sites as you need; attachment provisions per-site database/role/ACL/vhost and injects connection details into the site’s env.

Terminal window
# attach a shared service to a site (panel or CLI)
pdctl apply -f service.yml # kind: Service
pdctl apply -f site.yml # kind: Site, with an attachment

Registries

A registry holds private container-registry credentials (host, username, password), used by services and sites that pull private images.

Declarative export / import

The whole live state — sites, services, registries — round-trips through the declarative podmaker.sh/v1alpha spec, so you can version-control and replay it. See the deploy YAML reference for the full manifest schema.

→ Marketing overview: Sites & Services