Skip to content
KeelContact sales

Hosting

The whole stack in the EU, part by part.

Agents, services, static sites and managed databases share one region, one egress policy, one trace and one bill. This page is the detail behind that sentence.

  • Agents

    On a schedule, on a webhook, or always on.

    Every model call and tool call is recorded by the gateway, so the step is there whether or not your code logged it.

    Turn checkpoints on and a run that failed halfway resumes from its last one instead of starting at step one. Every plan has a wall-clock ceiling the executor enforces and a reaper that fails orphaned runs, so a stuck agent never bills forever.

    keel run invoice-reconciler --follow

    Included in every plan

  • Services and APIs

    Always-on containers with public HTTPS.

    A new revision is rolled out one replica at a time, and a replica that fails its health check is replaced while the others keep serving.

    A Node, Python or Go API, a Telegram bot, a worker. Keel keeps it up, restarts a crashed replica with exponential backoff, and holds the whole service after five consecutive crashes instead of hammering it.

    keel deploy

    Agents and bots 49 EUR, app services 19 EUR per replica-month

  • Static sites

    Your frontend, served from Frankfurt on your own domain.

    Every deployment is immutable, so rolling back switches a pointer and the previous bytes come back exactly as they were.

    Upload a build directory and it is live in seconds. Hashed assets are served immutable, HTML is revalidated, text is compressed, and certificates are issued and renewed for you.

    keel sites deploy ./dist

    Included on Business and Enterprise

  • Databases

    Managed Postgres and Valkey, one command each.

    Neither has a public port. They answer only on the internal agent network, which is why database traffic never touches the egress gateway.

    Creating one writes the connection URL into your organization's secrets, and the next deploy injects it as an environment variable. Backups run nightly and a deleted store is kept for seven days before it is purged.

    keel db create main

    Postgres 19 EUR, Valkey 9 EUR per month

A second way to author an agent is being built. The Agent Builder will let you describe one in the dashboard instead of shipping a repository or an image, in the same region, behind the same allowlist, with the same trace. It is not available yet and it has no date; what it will do is on the home page.

What the three commands do

keel init, keel deploy, keel domains add.

The same three for an agent, an API or a site. What follows is what the platform does after you press enter.

  1. keel init

    Describe the app

    Pick a template or let Keel read the project. It writes a keel.yaml naming the app, its resources, its secrets and the hosts it may talk to.

  2. keel deploy

    Build and ship

    The image is built in Frankfurt, a revision is created, and the service answers on its platform hostname with egress locked to the allowlist. A project without a Dockerfile gets one generated for the build.

  3. keel domains add api.example.com

    Put it on your domain

    Create the TXT and CNAME records the command prints. The certificate is issued on the first request and renewed for you, and traffic moves over with no restart.

And this is a rollout, in order.

  1. The build runs in Frankfurt

    Your Dockerfile is used as it is. A project without one gets a multi-stage Dockerfile rendered from the runtime that was detected, and keel deploy --print-dockerfile shows you that file before anything is built.

  2. A revision freezes the whole shape

    The image, the CPU and memory, the egress hosts and the secrets the app may read are frozen together and never edited. Changing any of them creates the next revision, so the thing that ran last night is still on record exactly as it ran.

  3. One replica at a time

    For a service, one replica of the new revision starts first. Only once it reports ready is the old replica at that index drained and stopped, and only then does the next index start.

  4. Ready means answerable

    A replica counts as ready when its health check passes and, for a service with a hostname, its tunnel is connected, so the router never hands a request to a replica that cannot answer it yet.

  5. Draining takes up to 30 seconds

    A replica on its way out stops receiving new requests and is given up to thirty seconds to finish the ones in flight. If they finish sooner, it stops sooner.

  6. A bad revision does not take the service down

    A new replica that never becomes ready inside its window is stopped, the old replicas keep serving, and the rollout is not attempted again until you deploy a new revision or restart the service.

The numbers

Every limit, written down.

These are the ceilings the platform actually enforces, not guidance. A request that would cross one is refused with the limit named in the error.

  • Agents

    Starter
    3
    Business
    15
    Enterprise
    Unlimited
  • Runs included per month

    Starter
    5,000
    Business
    50,000
    Enterprise
    250,000
  • Run-minutes included per month

    Starter
    10,000
    Business
    150,000
    Enterprise
    750,000
  • Longest single run

    Starter
    15 minutes
    Business
    2 hours
    Enterprise
    24 hours
  • Runs at the same time

    Starter
    2
    Business
    10
    Enterprise
    50
  • Always-on services

    Starter
    None
    Business
    15
    Enterprise
    Unlimited
  • Replicas per service

    Starter
    1
    Business
    3
    Enterprise
    10
  • CPU and memory per run

    Starter
    0.5 vCPU, 1 GB
    Business
    2 vCPU, 8 GB
    Enterprise
    4 vCPU, 30 GB
  • Managed data stores

    Starter
    None
    Business
    10, 10 GB each
    Enterprise
    Unlimited, 50 GB each
  • Static sites

    Starter
    None
    Business
    10
    Enterprise
    Unlimited
  • Custom domains

    Starter
    None
    Business
    10
    Enterprise
    Unlimited
  • Persistent workspace per agent

    Starter
    1 GB
    Business
    5 GB
    Enterprise
    50 GB
  • Trace retention

    Starter
    7 days
    Business
    30 days
    Enterprise
    90 days

Container logs are searchable for seven days on every plan, and a site deployment may be up to 250 MB across 10,000 files, also on every plan. The prices that sit next to these limits are on the pricing section.

Against a generic host

Where it differs, and where it does not.

Deploys, logs and a hostname work the way you already expect. The four rows below are the parts a generic host leaves to you.

  • Residency

    Generic host
    A region picker. Logs, backups and support tooling often live elsewhere.
    Keel
    One region, eu-central-1, for compute, data, logs and traces. Enforced by policy, not by a checkbox.
  • Egress control

    Generic host
    Open internet by default. Outbound allowlists are an enterprise add-on or a firewall you run yourself.
    Keel
    Deny by default on every plan. Hosts are declared per app and enforced at the network layer.
  • Traces

    Generic host
    stdout and metrics. Model and tool calls need your own instrumentation.
    Keel
    Every model call and tool call is a step with its payload, for agents and services alike.
  • Pricing

    Generic host
    Per vCPU-second, per GB of egress, per seat, plus a premium for the compliance tier.
    Keel
    Agents and bots 49 EUR per replica-month, app services 19 EUR per replica-month, Postgres 19, Valkey 9, sites and custom domains included on Business and Enterprise. No egress fees.