A modular shell-based automation suite to deploy self-hosted WordPress sites inside LXC containers on Proxmox, with reverse proxy, HTTPS via Certbot, and dependency provisioning.
- Create and configure unprivileged LXC containers
- Install OS packages and PHP extensions
- Deploy WordPress via
wp-cli - Configure Nginx reverse proxy with automatic Let's Encrypt SSL
- Fully automated or interactive execution modes
- Proxmox VE host with:
- LXC templates downloaded
- Linux bridge (
vmbr0or equivalent)
- SSH key-based access to reverse proxy VM
- Nginx and Certbot installed on reverse proxy
pct,openssl, andwp-cliavailable on host
bash apply-templates.shEdit each generated *.conf file in config/ as needed.
bash provision-wordpress.sh --lxc-name wp1 --ip-suffix 101 --domain wp.example.comOr run without arguments to use interactive mode.
bash create-lxc.shPrompts for name and IP suffix, provisions container using config/lxc.conf.
bash install-deps.shInstalls packages defined in config/packages.conf inside a chosen CTID.
bash wordpress.shUses config/wordpress.conf and wp-cli to auto-install and configure WordPress.
bash configure-rproxy.shCreates Nginx config, deploys to remote VM, and requests SSL via Certbot.
logs/deployed-containers.csv: CTID, lxc-name, IP, root passwordlogs/deployed-wordpress.csv: CTID, domain, DB credentials, admin login
- SSH access to the reverse proxy must be key-based (no password prompts)
- Generated passwords are secure and stored in logs — protect
logs/accordingly
MIT License (optional — update as appropriate)