Lawn Compose

Format

Compose file structure, value formats, and Compose Specification compatibility.
Custom templates are not yet supported in the app. For now, we're temporarily curating the catalog. Support for importing and sharing custom templates is coming soon.

Compose files define the services that make up your app. Each service specifies an image, and optionally environment variables, volumes, ports, health checks, and resource limits.

services:
  app:
    image: <image-url>
    environment:
      TZ: ${TIMEZONE:-UTC}
    ports:
      - "8080:80"
    volumes:
      - ./data:/app/data
    deploy:
      resources:
        limits:
          memory: 512M

Value Formats

Volume paths — Relative paths (e.g., ./data:/app/data) resolve against the instance's data/ directory. Absolute paths are used as-is.

Duration values10s, 2m, 1h, or a plain number (interpreted as seconds).

Memory values512M, 2G, 1024m, or a plain number (interpreted as MB).

Compose Specification Compatibility

Lawn aims to be compatible with the Compose Specification . The tables below show the current state. Unsupported fields are silently ignored — they won't cause errors, but they have no effect at runtime. We may add support for additional fields in the future.

Supported Fields

FieldDescription
services.<name>.imageContainer image with tag
services.<name>.commandOverride the default command
services.<name>.working_dirOverride the working directory
services.<name>.userRun as specific user (UID, UID:GID)
services.<name>.environmentEnvironment variables (mapping syntax only)
services.<name>.volumesVolume mounts (short syntax: host:container[:ro])
services.<name>.portsPort mappings (short syntax: host:container[/protocol])
services.<name>.depends_onService dependencies (list syntax only)
services.<name>.healthcheckHealth check (test, interval, timeout, retries, start_period)
services.<name>.deploy.resources.limitsResource constraints (cpus, memory)

Unsupported Fields

CategoryFields
Buildbuild, dockerfile, context
Networkingnetworks, network_mode, dns, extra_hosts, hostname
Named volumesTop-level volumes key, named volume references
Configs & secretsconfigs, secrets
Scalingscale, deploy.replicas
Restartrestart, deploy.restart_policy
Logginglogging, driver, options
Securitycap_add, cap_drop, privileged, security_opt, read_only
Processentrypoint, init, stop_signal, stop_grace_period
Otherlabels, stdin_open, tty, tmpfs, shm_size, env_file, profiles, links, ulimits, sysctls, group_add
Long syntaxLong-form volumes and ports