DevelopmentUnreleased

This topic is not available in this guide. You're viewing its overview.

Development documentation may include features that are not in the latest release. Read the Lawn 0.8.1 guide.

Lawn Compose

Validation

Check your Compose file before testing the app in Lawn.
The built-in catalog is community-driven. Want to contribute an app? Open a PR on GitHub. You can also add custom catalogs from public Git repositories or local folders in Lawn Settings.

Check Compose syntax

Run this from the template directory:

docker compose -f lawn-compose/compose.yaml config

Use a recent Docker Compose release. The !override tag requires 2.24.4 or later.

Supply sample variable values

Supply sample values for variables your template normally gets from Lawn. Include defaults from x-lawn.config, generated secrets, and any TIMEZONE, UID, or GID values it uses.

For the complete example, pass disposable values:

env POSTGRES_PASSWORD=compose-check-password \
    SECRET_KEY=compose-check-secret \
    ADMIN_PASSWORD=compose-check-admin \
    TIMEZONE=UTC UID=1000 GID=1000 \
    docker compose -f lawn-compose/compose.yaml config

Adapt the variable names and values to your template. Compose uses standard substitution syntax, including ${VAR:-default} and ${VAR:?message}.

Read the rendered configuration and resolve any missing-variable warnings. An unset ${VAR} can become an empty string even when the command exits with status 0.

Test in Lawn

Docker checks Compose syntax and service configuration. It ignores x-* fields, so even a malformed x-lawn.config can pass.

Review the manifest, Lawn extensions, and localization. Then test the app in Lawn to check its settings, use the app, and verify that its data survives a restart.