Templates control the scripts that set up runners on new instances. GARM ships with built-in system templates for GitHub and Gitea on both Linux and Windows. You can create custom templates to modify the bootstrap process.
# All templates
garm-cli template list
# Filter by forge type and OS
garm-cli template list --forge-type github --os-type linuxgarm-cli template show <TEMPLATE_NAME_OR_ID>Write your template script to a file, then create it in GARM:
garm-cli template create \
--name my-custom-template \
--description "Custom runner setup with extra packages" \
--forge-type github \
--os-type linux \
--path /path/to/my-template.shStart from a built-in template and modify it:
# Copy the system template to a new name
garm-cli template copy system-github-linux my-custom-template
# Edit the template in the built-in TUI editor
garm-cli template edit my-custom-templateYou can also download a template to a file for inspection:
garm-cli template download my-custom-template --path /tmp/my-template.shSpecify the template when creating or updating a pool:
# At creation
garm-cli pool add \
--runner-install-template my-custom-template \
--repo <REPO_ID> \
--provider-name lxd_local \
--image ubuntu:22.04 \
--flavor default \
--tags ubuntu
# Or update an existing pool
garm-cli pool update <POOL_ID> --runner-install-template my-custom-templateIf you've modified a system template and want to restore the defaults:
garm-cli template restoreImportant
You cannot delete a template that is in use by a pool or scale set.
garm-cli template delete <TEMPLATE_NAME_OR_ID>