Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.slipway.sh/llms.txt

Use this file to discover all available pages before exploring further.

slipway.yaml lives at the root of your repo and tells slipway how to build and run your app in a preview environment. slipway spins one up on every push to your default branch and on every open PR; manual ephemeral runs use the same spec. The spec is intentionally narrow. slipway is a dev tool — every deployment is ephemeral. Don’t push production-grade hosting needs into this manifest; ship prod somewhere else.

Minimal example

slipway.yaml
version: 1

services:
  web:
    build:
      context: .
    ports:
      - { port: 3000, public: true }
    resources:
      cpu: "500m"
      memory: "512Mi"
    healthcheck:
      readiness: { http: { path: /healthz, port: 3000 } }
That’s a single service, built from a Dockerfile in the repo root, exposed at web-<deployment-id>.<your-apps-domain> on port 3000.

Top-level fields

FieldTypeRequiredSummary
versionintyesSpec version. Currently 1.
servicesmapyesNamed services. Keys are service names (lowercase, [a-z][a-z0-9-]{0,30}).
That’s it at the top level. Everything else lives inside services.<name>.

What’s in this section

Services

build, image, ports, resources — the shape of one container.

Environment & secrets

${secret.NAME} and ${var.NAME} substitution, scope precedence, the bare-${NAME} shorthand.

Healthchecks

Startup, readiness, and liveness probes — HTTP, TCP, exec, gRPC.

Examples

Worked examples for static sites, workers, and multi-service apps.

Stability

This spec is version: 1. New fields are additive and optional — your existing slipway.yaml will keep working. We will not remove or repurpose existing fields in v1; if a breaking change becomes necessary, it will land as version: 2 with both parsers maintained for a deprecation window.