Field guide
Introduction
Learn how to create app templates for 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.
This section covers how to create app templates for Lawn. The built-in templates live in the getlawn/templates repository on GitHub. You can also keep templates in a public Git repository or local folder and add them as a custom catalog.
Looking to use Lawn rather than build templates? Head to the Get Started guide instead.
What is a template?
A template is a self-contained package that tells Lawn how to install and run an application. It contains everything needed to go from "click install" to a running app — no manual setup required.
Every template includes:
- A manifest that describes the app — its name, category, description, and how to reach its web UI
- One or more compose files that define the containers, environment variables, volumes, and ports
- A localization file that provides all user-facing strings — display names, descriptions, option labels, and notice content
- An icon displayed in the catalog and on the installed instance
- Optional init files copied into the container before it starts, for default configuration
Compose files are compatible with the Compose Specification, extended with x-lawn keys for Lawn-specific features like health checks, config options, and notices.
Continue reading