The all-in-one post-installation utility for XCP-NG Virtual Machines.
Effortlessly configure Docker Hosts, UniFi Controllers, Xen Orchestra, or simply install Guest Tools.
Includes automated security patching, self-updating capabilities, and persistent user preferences.
Features • Quick Start • Menu Options • Configuration • Credits
git clone https://github.com/Narehood/VM-Setup
cd VM-Setup
bash install.sh| Feature | Description |
|---|---|
| XCP-NG Tools | Automatically detects OS and installs correct guest utilities |
| Docker Prep | Full Docker Engine installation + user group configuration |
| App Installers | One-click install for UniFi Controller, Xen Orchestra, and Pterodactyl |
| Security | Enable automated unattended security upgrades |
| Maintenance | System update helper and self-updating menu |
| LinUtil | Integrated launcher for Chris Titus's Linux Utility |
| Persistent Settings | User preferences stored locally and respected on each run |
The script provides an interactive dashboard with the following modules:
| Module | Description |
|---|---|
| Server Initial Config | Hostname, Guest Tools, Basic Utilities |
| Application Installers | WordPress, XO, UniFi, Cloudflare Tunnels |
| Docker Host Preparation | Engine setup & permissions |
| Auto Security Patches | Configure cron/systemd timers for updates |
| Run System Updates | Smart wrapper for apt/dnf/pacman/apk |
| Update This Menu | Pulls latest changes from GitHub |
| Launch LinUtil | External utility integration |
| Switch Branch | Change to dev/testing branches |
| Settings | Manage user preferences and behavior |
The menu supports persistent user settings stored in settings.conf. Access settings by selecting s from the main menu.
| Setting | Default | Description |
|---|---|---|
| Auto Update Check | true |
Automatically check for menu updates on startup |
| Confirm Updates on Startup | false |
Prompt before applying updates (if Auto Update Check is enabled) |
Settings are managed through the interactive settings menu:
- Launch the menu:
bash install.sh - Press
sor select Settings from the main menu - Toggle any setting with the corresponding number
- Changes are saved automatically to
settings.conf
For advanced users, you can directly edit settings.conf:
# settings.conf
AUTO_UPDATE_CHECK="true"
CONFIRM_UPDATES_ON_STARTUP="false"Note: The settings.conf file is protected with restrictive permissions (600) for security.
This project utilizes and wraps several excellent community scripts:
| Project | Author |
|---|---|
| UniFi Controller | GlennR |
| Xen Orchestra | Ronivay |
| LinUtil | Chris Titus Tech |
Licensed under the MIT License.
You are free to use and modify this script as you wish.
Bug reports are welcome, but fixes are not guaranteed.