- Shell 100%
| docs | ||
| reports | ||
| research | ||
| src | ||
| .gitignore | ||
| CLAUDE.md | ||
| README.md | ||
Create-Templates
LXC/VM template-building material for the ECS mail-server stack: scripts and docs that produce reusable Proxmox VE templates (Devuan 6 "Excalibur" LXC, and a planned Devuan cloud-init VM image).
This repo was extracted from ECS-Infrastructure/stalwart-deploy
on 2026-06-16 to separate template building (build once, on a PVE
node) from container provisioning (which stays in stalwart-deploy,
under src/provision/create-*.sh).
Contents
src/
build-devuan-template.sh # builds Devuan/Debian LXC rootfs tarballs on a PVE host
build-all-templates.sh # concurrency wrapper around build-devuan-template.sh
test-devuan-template.sh # in-container smoke test for a freshly-provisioned template
research/
devuan-lxc/creating-devuan-excalibur-lxc-template.md # the design/how-to doc
docs/
proposal-devuan-cloud-init-vm.md # proposal: Devuan cloud-init VM-image builder
Usage
build-devuan-template.sh runs on a PVE host as root and writes
tarballs to /var/lib/vz/template/cache/:
bash src/build-devuan-template.sh # build all targets
bash src/build-devuan-template.sh devuan-ecs01
bash src/build-all-templates.sh # safe-concurrency build of all targets
build-all-templates.sh invokes build-devuan-template.sh from the
same src/ directory; the build scripts are self-contained (they do
not source any shared library).
test-devuan-template.sh is pushed into a freshly-provisioned
container and run there:
pct push <CTID> src/test-devuan-template.sh /root/test.sh
pct exec <CTID> -- sh /root/test.sh
Relationship to stalwart-deploy
- This repo (Create-Templates): builds the templates the cluster provisions from.
stalwart-deploy: provisions containers from those templates (src/provision/create-*.sh), plus architecture/research docs and Ansible-adjacent material.
Coordination constant
build-devuan-template.sh's TEMPLATE_VERSION must stay in sync with
_TPL_VERSION and the DEVUAN_TEMPLATE / DEBIAN_TEMPLATE tarball
names in stalwart-deploy's src/provision/config.env. When the
template version is bumped here, update config.env in stalwart-deploy
in the same operational cycle (rebuild + re-provision).