Development documentation may include features that are not in the latest release. Read the Lawn 0.8.1 guide.
Validation
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.