__ ___ _ _
\ \ / / | (_) | |
\ \ /\ / /| | ___ ___ _ _ __ | |
\ \/ \/ / | |/ _ \/ __| | | '_ \| |
\ /\ / | | __/ (__| |_| |_) | |
\/ \/ |_|\___|\___|_(_) .__/|_|
| |
|_|
Streamline your server administration with an elegant, interactive CLI interface
🎯 Features • ⚡ Quick Start • 📖 Documentation • 🤝 Contributing • 🌐 Website
| Colorful, centered menus with ASCII art that make server management enjoyable | Built with TypeScript for performance and type safety | Follows security best practices with confirmation prompts |
| Compile to standalone binary - no Node.js required on target | Menu-driven interface - no commands to memorize | Battle-tested on real Ubuntu servers |
VPS Configuration is a comprehensive, production-ready CLI tool that transforms complex Ubuntu VPS management into simple menu selections. Whether you're a seasoned sysadmin or just getting started, this tool provides a consistent, user-friendly interface for all your server administration needs.
Built with modern TypeScript and designed specifically for Ubuntu servers, it handles everything from user management and system updates to firewall configuration and programming language installations - all through an elegant, interactive interface.
# One command to rule them all
npm run devMain Menu
╭────────────────────────────────────────────────╮
│ │
│ ◆ VPS Configuration │
│ CLI Tool: configuration • automation │
│ │
├────────────────────────────────────────────────┤
│ 1. Users (add, remove, password) │
│ 2. System Update (update & upgrade) │
│ 3. Programming (Node, Python, PHP, etc.) │
│ 4. Packages (install/uninstall) │
│ 5. Configuration (SSH, UFW firewall) │
│ │
│ 0. Exit │
╰────────────────────────────────────────────────╯
- 🎯 User-Friendly: Interactive menus with clear descriptions - no commands to memorize
- ⚡ Lightning Fast: Built with TypeScript for optimal performance
- 🔒 Secure: Follows security best practices
- 📦 Portable: Compile to standalone binary
- 🎨 Beautiful: Colorful, centered UI with ASCII art
- List all system users with details (UID, shell)
- Create new users with home directories
- Set passwords during user creation
- Change user passwords (root privileges)
- Remove users with optional home directory deletion
- One-click system update (
apt update) - Automatic package upgrade (
apt upgrade -y) - Reboot notification when required
- Real-time progress display
- Node.js - NVM & Node.js installation
- Python - Python & pip setup
- PHP - PHP & Composer installation
- Go - Go language setup
- Rust - Rust & Cargo installation
- Java - OpenJDK installation
- Docker - Docker Engine setup
- Manage packages via
config.yml - Add/remove packages from config
- Bulk install from configuration
- Smart uninstall (shows only installed packages)
- Pre-configured with essential tools
- Change SSH port
- Disable root login
- View current SSH settings
- Automatic service restart
- Enable/disable firewall
- Allow/deny specific ports
- View firewall status and rules
- Interactive port management
No Node.js required! Just download and run:
# Download from releases page
wget https://github.com/wleci/vps-configuration/releases/download/v1.0.0/vps-configuration-linux-x64
# Make it executable
chmod +x vps-configuration-linux-x64
# Run it
sudo ./vps-configuration-linux-x64💡 Tip: Check Releases page for the latest version
- Ubuntu 20.04 or newer
- Node.js 18+ and npm
- sudo privileges
# Clone the repository
git clone https://github.com/wleci/vps-configuration.git
cd vps-configuration
# Install dependencies
npm install
# Run in development mode
npm run dev# Compile TypeScript
npm run build
# Run compiled version
npm start# Build Linux x64 binary
npm run build:pkg
# Binary will be created at: build/vps-configuration-linuxnpm run dev# After building
npm start
# Or run the binary directly
./build/vps-configuration-linuxEdit config.yml to customize package list:
packages:
- htop
- curl
- wget
- git
- vim
- nginx
# Add your packages herevps-configuration/
├── src/
│ ├── cli/
│ │ ├── logger/ # Logging utilities
│ │ └── menu/ # Main menu system
│ ├── scripts/
│ │ ├── users.ts # User management
│ │ ├── system.ts # System updates
│ │ ├── programming.ts # Language installers
│ │ ├── packages.ts # Package manager
│ │ └── configuration.ts # SSH & Firewall
│ ├── utils/
│ │ └── cli-style.ts # Colors & styling
│ ├── types/
│ │ └── config.ts # TypeScript types
│ ├── config/
│ │ └── index.ts # App configuration
│ └── index.ts # Entry point
├── config.yml # Package configuration
├── tsconfig.json # TypeScript config
└── package.json # Dependencies
| Technology | Purpose |
|---|---|
| TypeScript | Type-safe development |
| Node.js | Runtime environment |
| tsx | TypeScript execution |
| @yao-pkg/pkg | Binary compilation |
| js-yaml | YAML parsing |
| signale | Beautiful logging |
| dotenv | Environment variables |
- Use number keys to select options
- Press 0 to go back or exit
- Follow on-screen prompts for input
sudo privileges for:
- User management
- System updates
- Package installation
- SSH configuration
- Firewall management
Always review changes before confirming operations.
The config.yml file stores your preferred packages:
packages:
- package-name-1
- package-name-2Use the Package Manager menu to:
- View current list
- Add new packages
- Remove packages
- Install all at once
- Uninstall installed packages
Contributions are welcome! Please feel free to submit a Pull Request.
# Fork and clone the repo
git clone https://github.com/wleci/vps-configuration.git
# Create a feature branch
git checkout -b feature/amazing-feature
# Make your changes and commit
git commit -m "Add amazing feature"
# Push to your fork
git push origin feature/amazing-feature
# Open a Pull RequestThis project is licensed under the ISC License.
- Built with ❤️ for the Ubuntu community
- Inspired by the need for simple VPS management
- Thanks to all contributors and users
- Special thanks to the open-source community