Skip to content

Installs general packages. Some scripts are designed with XCP-NG in mind (XCP-NG guest tools being installed if choose), but most of this will work with any Linux installation virtualized or not.

License

Notifications You must be signed in to change notification settings

Narehood/VM-Setup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🖥️ Generic Linux System/XCP-NG VM-Setup

License Last Commit Bash

Stars Forks Issues

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.

FeaturesQuick StartMenu OptionsConfigurationCredits


🐧 Supported Distributions

Ubuntu Debian Alpine Arch Fedora RHEL SUSE Pop OS Gentoo

⚡ Quick Start

git clone https://github.com/Narehood/VM-Setup
cd VM-Setup
bash install.sh

🚀 Features

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

📋 Menu Options

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

⚙️ Configuration

The menu supports persistent user settings stored in settings.conf. Access settings by selecting s from the main menu.

Available Settings

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)

Managing Settings

Settings are managed through the interactive settings menu:

  1. Launch the menu: bash install.sh
  2. Press s or select Settings from the main menu
  3. Toggle any setting with the corresponding number
  4. Changes are saved automatically to settings.conf

Manual Configuration

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.


🤝 Credits & Acknowledgements

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.

About

Installs general packages. Some scripts are designed with XCP-NG in mind (XCP-NG guest tools being installed if choose), but most of this will work with any Linux installation virtualized or not.

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •  

Languages