42aad8a117de0827dac49bc6baa105019391b514
For DHCP setups DNS is delivered with the lease, but with a static IP the container inherits /etc/resolv.conf from the PVE host - which is often unreachable from the container's VLAN. Changes: - New NAMESERVER prompt (only shown for static IPs, defaults to gateway) - pct create now passes --nameserver when set - Network wait loop tests L3 and DNS separately so failures point at the actual cause (no route to gateway vs. bad DNS server) - Refactored pct create args into an array for cleaner conditional flags
luki-net / proxmox-scripts
Community-script-style installers for LXC services in my Proxmox VE homelab. Each script creates an unprivileged Debian 12 LXC and installs one specific app, with sensible defaults and interactive prompts.
Inspired by community-scripts/ProxmoxVE, but minimal, self-hosted and tailored to my stack.
Available scripts
| App | Description | One-liner |
|---|---|---|
| devpi | Private PyPI cache / mirror — saves time on CUDA/torch rebuilds | bash -c "$(curl -fsSL https://gitea.luki-net.org/luki-net/proxmox-scripts/raw/branch/main/ct/devpi.sh)" |
Usage
Run any one-liner on a Proxmox VE host as root (Web UI → Node → Shell works fine). You'll be prompted for CTID, hostname, disk, RAM, CPU, bridge, storage and IP. Defaults are sane.
Non-interactive override via env vars:
CTID=200 HOSTNAME=devpi DISK_SIZE=30 RAM=4096 CORES=4 IPCFG=dhcp \
bash -c "$(curl -fsSL https://gitea.luki-net.org/luki-net/proxmox-scripts/raw/branch/main/ct/devpi.sh)"
All defaults (DEFAULT_HOSTNAME, DEFAULT_DISK, …) are settable per-call via env vars as well.
Repo layout
.
├── ct/ # Host-side scripts, one per app
├── install/ # In-container installers, one per app
├── lib/
│ ├── build.func # Shared host-side helpers (prompts, LXC create, bootstrap)
│ └── install.func # Shared in-container helpers (apt, systemd, users, http-wait)
├── docs/
│ └── adding-a-script.md
├── README.md
└── LICENSE
Adding a new script
See docs/adding-a-script.md. Two files per app, both source the shared libs via curl.
License
MIT
Languages
Shell
100%