No Description

xcad c7e46f7762 test 3 weeks ago
.github 0f6f2cdd24 chore(deps): update actions/checkout action to v6 (#1592) 3 months ago
.wiki a6050e5601 Fix defaults set command syntax in documentation (#1597) 3 months ago
cli 6fbf587c9e Merge branch 'main' into copilot/enhance-customize-settings-logic 1 month ago
library c7e46f7762 test 3 weeks ago
scripts 1f19c0350a Add Python 3.10+ version check and documentation 1 month ago
tests 7cf643d078 testing units 3 months ago
.editorconfig 9990395193 chore(config): align code formatting with PEP 8 standards 5 months ago
.gitignore 7cf643d078 testing units 3 months ago
.yamllint 94f642aa04 fix: resolve yamllint issues 5 months ago
AGENTS.md f856aef030 Release v0.1.0 (#1562) 3 months ago
CHANGELOG.md 8d0d045a10 Add tests and update CHANGELOG for Python 3.10+ requirement 1 month ago
CONTRIBUTING.md f856aef030 Release v0.1.0 (#1562) 3 months ago
LICENSE 7e7cbc3d4a Initial commit 4 years ago
MANIFEST.in 8161c9f7c8 fix(packaging): include JSON schema files in package distribution 3 months ago
README.md 1f19c0350a Add Python 3.10+ version check and documentation 1 month ago
SECURITY.md 52a4363e45 fixed typo 2 years ago
WARP.md 34f49752b2 added link 6 months ago
flake.lock a4f53cf9aa feat: add flake for nix install (#1405) 5 months ago
flake.nix c6feed2f1e fix(nix): add email-validator dependency to flake (#1573) 3 months ago
pyproject.toml 1f19c0350a Add Python 3.10+ version check and documentation 1 month ago
renovate.json 567caa587e chore(config): migrate config renovate.json 2 months ago
requirements.txt 7e13a4d815 chore(deps): update dependency typer to v0.23.1 1 month ago

README.md

Christian's Boilerplates

Welcome

Hey, there!

I'm Christian, and I'm passionate about creating educational tech content for IT Pros and Homelab nerds.

What are Boilerplates?

Boilerplates is a curated collection of production-ready templates for your homelab and infrastructure projects. Stop copying configurations from random GitHub repos or starting from scratch every time you spin up a new service!

Boilerplates CLI

The Boilerplates CLI tool gives you instant access to battle-tested templates for Docker, Terraform, Ansible, Kubernetes, and more.

Each template includes sensible defaults, best practices, and common configuration patterns—so you can focus on customizing for your environment.

Key Features:

  • 🚀 Quick Setup - Generate complete project structures in seconds
  • 🔧 Fully Customizable - Interactive prompts or non-interactive mode with variable overrides
  • 💾 Smart Defaults - Save your preferred values and reuse across projects

Note: Technologies evolve rapidly. While I actively maintain these templates, always review generated configurations before deploying to production.

Requirements

  • Python 3.10 or higher is required
  • Git
  • pipx (automatically installed by the installer script)

Note for RHEL/AlmaLinux/Rocky Linux 9 users: These distributions ship with Python 3.9 by default. You need to install Python 3.11 or later:

> sudo dnf install python3.11
> pipx reinstall --python python3.11 boilerplates
> ```

### 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 in your terminal.

#### Nixos

If you are using nix flakes

bash

Run without installing

nix run github:christianlempa/boilerplates -- --help

Install to your profile

nix profile install github:christianlempa/boilerplates

Or directly in your flake

{ inputs.boilerplates.url = "github:christianlempa/boilerplates";

outputs = { self, nixpkgs, boilerplates }: {

# Use boilerplates.packages.${system}.default

}; }

Use in a temporary shell

nix shell github:christianlempa/boilerplates


### Quick Start

bash

Explore

boilerplates --help

Update Repository Library

boilerplates repo update

List all available templates for a docker compose

boilerplates compose list

Show details about a specific template

boilerplates compose show nginx

Generate a template (interactive mode)

boilerplates compose generate authentik

Generate with custom output directory

boilerplates compose generate nginx my-nginx-server

Non-interactive mode with variable overrides

boilerplates compose generate traefik my-proxy \ --var service_name=traefik \ --var traefik_enabled=true \ --var traefik_host=proxy.example.com \ --no-interactive


### Managing Defaults

Save time by setting default values for variables you use frequently:

bash

Set a default value

boilerplates compose defaults set container_timezone="America/New_York" boilerplates compose defaults set restart_policy="unless-stopped"


### Template Libraries

Boilerplates uses git-based libraries to manage templates. You can add custom repositories:

bash

List configured libraries

boilerplates repo list

Update all libraries

boilerplates repo update

Add a custom library

boilerplates repo add my-templates https://github.com/user/templates \ --directory library \ --branch main

Remove a library

boilerplates repo remove my-templates ```

Documentation

For comprehensive documentation, advanced usage, and template development guides, check out the Wiki (coming soon).

If you're looking for detailed tutorials on specific tools and technologies, visit my YouTube Channel.

Contribution

If you’d like to contribute to this project, reach out to me on social media or Discord, or create a pull request for the necessary changes.

Other Resources

  • Dotfiles - My personal configuration files on macOS
  • Cheat-Sheets - Command Reference for various tools and technologies

Support me

Creating high-quality videos and valuable resources that are accessible to everyone, free of charge, is a huge challenge. With your contribution, I can dedicate more time and effort into the creation process, which ultimately enhances the quality of the content. So, all your support, by becoming a member, truly makes a significant impact on what I do. And you’ll also get some cool benefits and perks in return, as a recognition of your support.

Remember, supporting me is entirely optional. Your choice to become a member or not won't change your access to my videos and resources. You are also welcome to reach out to me on Discord, if you have any questions or feedback.

https://www.patreon.com/christianlempa


Legacy Templates (v1)

Looking for templates from my older videos? The original boilerplates collection is still available in the backup/boilerplates-v1 branch. These templates haven't been migrated to the new CLI tool yet, but you can still access and use them directly from that branch.