ChristianLempa /boilerplates

Create reusable templates and turn them into configurable workloads for homelabs and self-hosted infrastructure. Free and Open-Source.

★ 7,997⑂ 1,821👁 98▤ 16
PythonCreated 2021-06-11getboilerplates.app/
7,997
stars
+0+0+13
1,821
forks
98
watchers
–
prs
–
issues
16
releases
–
discussions

README

!Welcome

Create reusable templates and turn them into configurable workloads for homelabs and self-hosted infrastructure. Free and Open-Source.

 How it works

Create reusable templates for infrastructure expertise like Docker, Kubernetes, Terraform, Ansible, static files, Python, and more. Use the built-in Jinja2-like templating syntax with  variables,  blocks, and  comments to keep configuration modular and conditional. Sync with Git in both directions or manage everything locally. Render templates, configure variables through a guided wizard, and wire up secrets. Copy them to remote servers and environments or any local directory.

✨ Explore 100+ template presets for homelabs and self-hosted infrastructure: https://github.com/ChristianLempa/boilerplates-library

 Boilerplates CLI

The Boilerplates CLI is the main interface for working with template libraries locally. It lets you discover available templates, inspect their metadata and variables, validate them, and generate ready-to-use files.

It combines template-defined variables and defaults, guided interactive prompts, CLI variable overrides, and git-backed template libraries into one workflow. In practice, that means you can keep reusable boilerplates in a repository and turn them into concrete, environment-specific configurations with a single command.

⚠️ Boilerplates 0.2.0 introduced the new template format. Legacy template.yaml / template.yml manifests and .j2 template files are no longer supported.

ℹ️ New templates must use template.json, keep renderable content under files/, and use the custom Jinja2-like delimiters , , and  instead of default Jinja2 syntax.

 Template kinds

Use a dedicated kind when the template's primary output matches that technology. Use python for Python-oriented project scaffolds, automation helpers, packages, and service/tooling skeletons. Use bash for Bash-oriented scripts, bootstrap flows, maintenance tasks, and automation snippets. Keep Python or Bash files inside another kind, such as compose or terraform, when they are only supporting files for that primary infrastructure template.

Initial python and bash validation is intentionally minimal: the CLI validates template syntax, declared variables, rendering, and generic semantic checks where applicable. Language-specific validation such as Python compilation, shell syntax checks, formatting, or test execution can be added as follow-up work once template conventions are established.

 Installation

 Automated installer script

Install the Boilerplates CLI using the automated installer:

bash
 Install latest version
curl -fsSL https://raw.githubusercontent.com/christianlempa/boilerplates/main/scripts/install.sh | bash

 Install specific version
curl -fsSL https://raw.githubusercontent.com/christianlempa/boilerplates/main/scripts/install.sh | bash -s -- --version v1.2.3


The installer uses pipx to create an isolated environment for the CLI tool. Once installed, the boilerplates command will be available 

Snapshot: 2026-11-04T14:00:00Z · Data license Apache-2.0 · JSON