LXC/VM template build scripts + docs (Devuan Excalibur LXC, cloud-init VM)
Find a file
2026-07-08 18:33:40 +00:00
docs fix: ultrareview findings — publisher version/latest, probe race, doc nits 2026-06-17 21:36:49 +00:00
reports report: first-stage cloud-image build done (Devuan+Debian boot-verified) 2026-06-17 00:09:52 +00:00
research feat(firstboot): etckeeper deploy-fix + shared first-boot identity finaliser (v1.5.8 / qemu 0.1.1) 2026-06-21 15:47:10 +00:00
src revert(vm): scrap systemd-resolved (worse) — VM resolv.conf back to static Quad9. Keep less + interfaces.d. Refs #46 2026-07-08 18:33:36 +00:00
.gitignore fix(ubuntu-lxc): APT::Sandbox::User root at build (the real fix — _apt sandbox can't open /dev/null in nested-unpriv-LXC; gpgv was never missing). Refs #46 2026-07-08 16:42:27 +00:00
CLAUDE.md feat(templates): add Ubuntu 24.04 Noble ECS01 target (LXC + VM) 2026-07-08 14:50:07 +00:00
README.md Initial import: template-building scripts + docs 2026-06-16 12:54:24 +00:00

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).