Lawn Compose

Format

Compose file structure, value formats, and Compose Specification compatibility.
The catalog is community-driven. Want to add an app? Open a PR on GitHub. Support for custom catalogs from other sources 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.

lawn-compose/v1.0.0.yaml
services:
  app:
    image: example/app:1.0.0
    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. Support for additional fields may be added 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, dns_search, extra_hosts, hostname, domainname
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
Conditional depends_ondepends_on with condition and restart keys (use plain list syntax instead)
Long syntaxLong-form volumes and ports