# Quick Start: Using Template as Base for All LXCs ## Step 1: Choose Your Base Template Run the template script to see available options: ```bash bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/addon/all-templates.sh)" ``` Or list available templates directly: ```bash pveam available | grep -E "debian|ubuntu|alpine" ``` ## Step 2: Download the Template (Once) For example, Debian 12: ```bash pveam download local debian-12-standard_12.2-1_amd64.tar.zst ``` This downloads the template to your local storage. You only need to do this once. ## Step 3: Set Template Variable Create or update your configuration file with: ```bash # In your deployment config file or .env export CONTAINER_OS_TEMPLATE="local:vztmpl/debian-12-standard_12.2-1_amd64.tar.zst" ``` ## Step 4: Deploy Multiple Containers Now you can deploy as many containers as needed from this single template: ```bash # Container 1 - Web Server pct create 100 "$CONTAINER_OS_TEMPLATE" \ --hostname web1 \ --memory 2048 \ --cores 2 \ --rootfs local-lvm:20 \ --net0 name=eth0,bridge=vmbr0,ip=dhcp \ --unprivileged 1 # Container 2 - Database pct create 101 "$CONTAINER_OS_TEMPLATE" \ --hostname db1 \ --memory 4096 \ --cores 4 \ --rootfs local-lvm:50 \ --net0 name=eth0,bridge=vmbr0,ip=dhcp \ --unprivileged 1 # Container 3 - App Server pct create 102 "$CONTAINER_OS_TEMPLATE" \ --hostname app1 \ --memory 2048 \ --cores 2 \ --rootfs local-lvm:30 \ --net0 name=eth0,bridge=vmbr0,ip=dhcp \ --unprivileged 1 ``` ## Step 5: Start Containers ```bash pct start 100 pct start 101 pct start 102 ``` ## Benefits ✅ **One template, unlimited containers** - Download once, deploy many times ✅ **Storage efficient** - Template is reused, only differences are stored ✅ **Consistent base** - All containers start from the same clean OS ✅ **Easy updates** - Update template, all new containers get updates ✅ **Fast deployment** - No need to download template for each container ## Your Current Setup Your deployment scripts already use this pattern! Check: - `smom-dbis-138-proxmox/scripts/deployment/deploy-services.sh` - `smom-dbis-138-proxmox/config/proxmox.conf.example` They use: `CONTAINER_OS_TEMPLATE="${CONTAINER_OS_TEMPLATE:-local:vztmpl/debian-12-standard_12.2-1_amd64.tar.zst}"` This means: - If `CONTAINER_OS_TEMPLATE` is set, use it - Otherwise, default to Debian 12 standard template ## Next Steps 1. **Set your template** in your config file 2. **Download it once**: `pveam download local debian-12-standard_12.2-1_amd64.tar.zst` 3. **Deploy containers** using your deployment scripts - they'll automatically use the template!