Documentation
Complete reference for Simple VPS Provisioner.
Table of Contents
Installation & Setup
Core Features
- CMS Installation
- SSL/HTTPS Configuration
- Basic Authentication
- Multi-Domain Setup
- Git Deployment
- Database Management
- PHP Version Management
Command Reference
Advanced Topics
System Requirements
Supported Operating Systems
Debian:
- Debian 13 (Trixie) - Fully supported ✅
- Debian 12 (Bookworm) - Fully supported ✅
- Debian 11 (Bullseye) - Supported ✅
Ubuntu:
- Ubuntu 24.04 LTS (Noble) - Supported ✅
- Ubuntu 22.04 LTS (Jammy) - Fully supported ✅ (Most stable)
- Ubuntu 20.04 LTS (Focal) - Fully supported ✅
Required Access
- Root access (sudo privileges)
- SSH access to the VPS
- Port access: 22 (SSH), 80 (HTTP), 443 (HTTPS)
Installation Methods
Method 1: Quick Install (Recommended)
For most users, the quick install script is the easiest option:
curl -fsSL https://raw.githubusercontent.com/willjackson/simple-vps-provisioner/main/install-from-github.sh | sudo bash
Pros:
- ✅ Fastest installation
- ✅ Automatic checksum verification
- ✅ No Go compiler needed
- ✅ Gets latest stable release
Use when:
- First-time installation
- Production servers
- You want the stable release
Method 2: Manual Download
Download and verify manually:
# Set version (get latest from releases page)
VERSION="1.0.30"
# Download binary
wget https://github.com/willjackson/simple-vps-provisioner/releases/download/v${VERSION}/svp-linux-amd64
# Download checksums
wget https://github.com/willjackson/simple-vps-provisioner/releases/download/v${VERSION}/checksums.txt
# Verify
sha256sum --check --ignore-missing checksums.txt
# Install
chmod +x svp-linux-amd64
sudo mv svp-linux-amd64 /usr/local/bin/svp
# Verify
svp --version
Use when:
- You want to review the installer
- Air-gapped installations
- Corporate environments requiring manual verification
Method 3: Build from Source
For development or customization:
# Clone repository
git clone https://github.com/willjackson/simple-vps-provisioner.git
cd simple-vps-provisioner
# Build and install
sudo bash install.sh
Use when:
- Contributing to development
- Customizing the tool
- Testing unreleased features
First Time Setup
After installation, your first provisioning looks like this:
1. Prepare Your Domain
Configure DNS A record:
A example.com YOUR_SERVER_IP
Wait 5-30 minutes for DNS propagation.
2. Run Setup Command
sudo svp setup example.com \
--cms drupal \
--le-email admin@example.com
Note: SSL is enabled when you provide --le-email. Omit it to set up without SSL initially.
3. Wait for Completion
svp will automatically:
- ✅ Update system packages
- ✅ Install Nginx
- ✅ Install PHP-FPM
- ✅ Install MariaDB
- ✅ Create database and user
- ✅ Install CMS
- ✅ Obtain SSL certificate
- ✅ Configure firewall
4. Access Your Site
Visit https://example.com to see your site!
For Drupal, you’ll get a one-time login link:
Login to admin: https://example.com/user/reset/...
Environment Variables
svp respects these environment variables:
DEBUG
Enable debug output:
DEBUG=1 svp setup example.com --cms drupal
# or use the --debug flag:
svp setup example.com --cms drupal --debug
Shows detailed command execution and troubleshooting information.
Configuration Files
System-Wide Configuration
Location: /etc/svp/
/etc/svp/
├── php.conf # Current PHP version
└── sites/ # Per-site configurations
├── example.com.conf # Site config
└── example.com.db.txt # Database credentials
Per-Site Configuration
Site Config (/etc/svp/sites/example.com.conf):
# Site configuration for example.com
DOMAIN='example.com'
PHP_VERSION='8.3'
WEBROOT='/var/www/example.com/web'
CREATED='Mon Jan 15 10:30:00 UTC 2024'
SSL_EMAIL='admin@example.com' # If SSL enabled
Database Credentials (/etc/svp/sites/example.com.db.txt):
Database: drupal_example_com
Username: drupal_example_com
Password: [auto-generated secure password]
Host: localhost
Port: 3306
⚠️ Important: Keep database credential files secure with 600 permissions.
Next Topics
Explore detailed documentation for specific features:
- CMS Installation Guide - Drupal and WordPress specifics
- SSL/HTTPS Configuration - Let’s Encrypt setup
- Multi-Domain Setup - Multiple sites on one server
- Git Deployment - Deploy from repositories
- Database Management - Import, export, backup
- PHP Version Management - Update PHP versions
- Reprovisioning - Update existing sites
- Security Best Practices - Hardening and protection
- Troubleshooting - Common issues and solutions
| ← Back to Home | Examples → |