Install a complete LEMP stack with optimized settings:
# Download and run the installerwget -qO weby qrok.es/wy && sudo bash weby# Wait for installation to complete# Follow the prompts to configure your setup
# Create WordPress sitesudo site example.com -wp# Site is created with:# - Automatic SSL via Let's Encrypt# - WordPress latest version# - MySQL database and user# - NGINX optimized configuration
Deploy WordPress with full caching and optimization:
# Create WordPress site with FastCGI cachesudo site example.com -wp -cache# Enable Redis object cachesudo site example.com -redis=on# Enable HTTP/3 for better performancesudo site example.com -http3=on
Expected Result: Dramatically faster page loads and better Google PageSpeed scores.
# Create subdomain multisitesudo site example.com -wp -multisite=subdomain# Now you can create:# - site1.example.com# - site2.example.com# - site3.example.com
# Install WordPress in a subfoldersudo site example.com -wp=/blog# Your WordPress will be at:# https://example.com/blog# Main site can be different content typesudo site example.com -html
Host multiple sites with different configurations:
# WordPress marketing sitesudo site marketing.example.com -wp -cache# Static HTML landing pagesudo site landing.example.com -html# PHP applicationsudo site app.example.com -php# Node.js API (reverse proxy)sudo site api.example.com -proxy=http://localhost:3000
# Main sitesudo site example.com -wp# Park additional domainssudo site example.net -parked=example.comsudo site example.org -parked=example.com# All domains serve the same content
# Start your Node.js app on port 3000# Then create reverse proxysudo site app.example.com -proxy=http://localhost:3000# With SSLsudo site app.example.com -proxy=http://localhost:3000 -ssl=on# With cachingsudo site app.example.com -proxy=http://localhost:3000 -proxy-cache
# Build your React/Vue appnpm run build# For development serversudo site react-app.com -proxy=http://localhost:5173# For production (serve built files)sudo site react-app.com -html# Then copy build files to /var/www/react-app.com/htdocs/
# Main sitesudo site example.com -html# API endpointsudo site example.com -proxy=http://localhost:3000 -path=/api# Admin panelsudo site example.com -proxy=http://localhost:8080 -path=/admin# WordPress blogsudo site example.com -wp=/blog
# SSL is automatic for new sitessudo site example.com -wp# Enable SSL for existing sitesudo site example.com -ssl=on# Wildcard SSL certificatesudo site example.com -ssl=wildcard# Staging certificate (for testing)sudo site example.com -ssl=staging
# Add authenticationsudo httpauth example.com -add# You'll be prompted for username and password# Perfect for staging sites or admin areas# Remove authenticationsudo httpauth example.com -delete
# Create database and usersudo db -create# Create with specific namesudo db -create=mydb,myuser,mypassword# Delete databasesudo db -delete=mydb# Import databasesudo db -import=mydb,/path/to/backup.sql# Export databasesudo db -export=mydb,/path/to/backup.sql
# During site creationsudo site example.com -wp \ -external-db=[dbuser,dbpass,dbhost:3306]# Example with AWS RDSsudo site example.com -wp \ -external-db=[admin,SecurePass123,mydb.abc123.us-east-1.rds.amazonaws.com:3306]
# List available backupssudo backup -list# Restore sitesudo restore example.com# Restore from specific backupsudo restore example.com -backup=example.com-2024-01-15.tar.gz
# On source server - create full backupsudo backup -all# Copy backup to new serverscp /var/webinoly/backups/* user@newserver:/tmp/# On new server - install Webinoly firstwget -qO weby qrok.es/wy && sudo bash weby# Restore all sitessudo restore -all
# Check Webinoly statussudo webinoly -info# Check NGINX statussudo service nginx status# Check PHP-FPM statussudo service php8.4-fpm status# Check MySQL statussudo service mysql status
# Create custom configurationsudo nano /etc/nginx/apps.d/example.com-custom.conf# Include in site config# Add to /etc/nginx/sites-available/example.com:# include apps.d/example.com-custom.conf;# Test configurationsudo nginx -t# Reload NGINXsudo service nginx reload
# Add custom headerssudo nano /etc/nginx/apps.d/example.com-headers.conf# Example content:add_header X-Custom-Header "My Value" always;add_header Access-Control-Allow-Origin "*" always;# Include in site config and reloadsudo service nginx reload
# On development serversudo backup dev-site.com# Transfer backupscp /var/webinoly/backups/dev-site.com* user@production:/tmp/# On production serversudo restore prod-site.com -backup=/tmp/dev-site.com-*.tar.gz# Update wp-config.php with production settingssudo nano /var/www/prod-site.com/wp-config.php
# Create staging subdomainsudo site staging.example.com -wp# Clone production sitesudo backup example.comsudo restore staging.example.com -backup=example.com-*.tar.gz# Add HTTP authentication to stagingsudo httpauth staging.example.com -add# Prevent search engines from indexing# Add to staging site header.php or use plugin
# Old serversudo backup --all# New server - install Webinolywget -qO weby qrok.es/wy && sudo bash weby# Transfer backupsrsync -avz /var/webinoly/backups/ user@newserver:/tmp/backups/# New server - restoresudo restore --all# Update DNS records# Point domains to new server IP# Test sites work correctly# Decommission old server