User-defined Playground

SilverStack WordPress Server Playground

Production-grade WordPress 7.1 on Ubuntu 24.04 - systemd-booted, Nginx FastCGI, PHP 8.3-FPM, MariaDB 10.11, Redis 7 Object Cache, WP-CLI, and Cloudflare-ready with zero manual setup.

Startup configuration
wordpress-server
SilverStack WordPress Server playground: Production-grade WordPress 7.1 on Ubuntu 24.04 - systemd-booted, Nginx FastCGI, PHP 8.3-FPM, MariaDB 10.11, Redis 7 Object Cache, WP-CLI, and Cloudflare-ready with zero manual setup.

Note

Port 80 Behavior: On first boot, the WordPress Web tab displays the initial WordPress configuration screen. Once setup or database import is completed, port 80 automatically serves the live frontend website. Administrative controls are accessed via /wp-admin.


Workflow 1: Build a New Site from Scratch

  1. Open Your Site: Click the WordPress Web tab at the top. Use the icon to open WordPress in a dedicated browser window.
  2. Setup: Enter your Site Title, Username, and Password, then click Install WordPress. The database connection, secret keys, and permissions are already configured.
  3. Manage Files Visually:
    • In the WordPress Admin sidebar, click WP File Manager to upload custom themes, child themes, and plugins with a drag-and-drop web interface.
    • You can also upload ZIP packages through Plugins → Add New or Appearance → Themes → Add New.
    • For direct code edits, use the IDE tab at the top to access VS Code in the browser.
  4. Tuned for Page Builders & WooCommerce:
    • Pre-configured with 512MB PHP RAM and 128MB max upload size to support Elementor, Divi, Astra, and WooCommerce without memory exhaustion errors or upload timeouts.
  5. Enable Redis Object Caching:
    • In WordPress Admin, navigate to Plugins, locate Redis Object Cache, and click Activate. Database queries are cached in memory with sub-millisecond latency.
  6. Publish on a Custom Domain:
    • Run sudo cloudflared service install <token> in the terminal to expose your site via Cloudflare Tunnel (https://blog.example.com) with automatic SSL.

Workflow 2: Migrate an Existing Site (from cPanel or Remote Host)

To move an existing WordPress website into this lab without rebuilding it from scratch, export the two core assets from your current host and import them here:

Step 1: Export from Current cPanel / Host

  1. Database: Open phpMyAdmin in cPanel → select your WordPress database → click the Export tab → select Quick export method (Format: SQL) → click Export to save database.sql.
  2. Files: Open File Manager in cPanel → navigate to public_html/ → select the wp-content folder → click Compress (.zip or .tar.gz) → click Download.

Step 2: Import into this Lab

  1. Import Database & Match Table Prefix: In the lab terminal, run:
    mariadb -u wp_user -pwp_secure_pass_2026 wordpress < /path/to/database.sql
    
    If the imported database uses a custom table prefix (such as wpw4_ from Softaculous/cPanel), match it in wp-config.php:
    # Check the imported table prefix:
    mariadb -u wp_user -pwp_secure_pass_2026 -e "USE wordpress; SHOW TABLES LIKE '%options';"
    
    # Update the prefix in wp-config.php (replace wpw4_ with your prefix):
    sudo sed -i "s/\$table_prefix = '.*';/\$table_prefix = 'wpw4_';/" /var/www/html/wp-config.php
    
  2. Restore Files: Upload your compressed wp-content.zip into the lab, inspect its layout, and extract it:
    # Inspect archive structure (check if paths start with wp-content/):
    unzip -l wp-content.zip | head -n 5
    
    # If paths start with wp-content/ (standard cPanel zip export):
    sudo unzip -o wp-content.zip -d /var/www/html/
    
    # If paths start directly with subfolders (plugins/, themes/):
    sudo unzip -o wp-content.zip -d /var/www/html/wp-content/
    
    # Restore web server ownership and standard permissions:
    sudo chown -R www-data:www-data /var/www/html/wp-content
    sudo find /var/www/html/wp-content -type d -exec chmod 775 {} +
    sudo find /var/www/html/wp-content -type f -exec chmod 664 {} +
    
  3. Flush Cache & Verify:
    redis-cli flushall && sudo systemctl restart php8.3-fpm
    
    Refresh the WordPress Web tab. Your existing themes, plugins, posts, pages, and media are immediately active and served by Nginx and MariaDB.

Technical Stack (For DevOps & Systems Engineers)

LayerDetail
OSUbuntu 24.04 LTS · systemd PID 1
Web ServerNginx 1.24 · FastCGI unix socket (/run/php/php8.3-fpm.sock)
PHP RuntimePHP 8.3-FPM · 512MB RAM · 128MB uploads · OPcache enabled (256MB)
DatabaseMariaDB 10.11 LTS · auto-provisioned at boot by lab-init · AIO compat fix
Cache EngineRedis 7 · pre-bundled redis-cache plugin for in-memory object caching
File Managerwp-file-manager pre-bundled for visual file management
CLI ToolWP-CLI v2.12.0 · full command-line site management
Tunnelcloudflared 2026.9.1 pre-installed for SSL public access

Boot Sequence & Architecture

systemd (PID 1)
  ├── mariadb.service      - SQL relational store (:3306)
  ├── redis-server.service - In-memory object cache (:6379)
  │     ↓
  ├── lab-init (oneshot)   - Runtime orchestrator
  │     ├── 1. Ephemeral SSH host keys (ssh-keygen -A)
  │     ├── 2. Runtime directories (/run/{php,mysqld,redis,nginx,sshd})
  │     ├── 3. Idempotently ensures MariaDB database ('wordpress') & user ('wp_user')
  │     ├── 4. Verifies pre-baked wp-config.php & object-cache.php drop-in
  │     └── 5. Enforces www-data:www-data ownership and 775/664 permissions
  │     ↓
  ├── php8.3-fpm.service   - FastCGI process manager (unix socket)
  └── nginx.service        - High-concurrency web server (:80)

Accessing WordPress

  • Inside the Lab: Click the WordPress Web preview tab or visit http://localhost:80.
    • The arrow on the tab opens WordPress in a separate browser window.
  • Public Domain: Run sudo cloudflared service install <token> with an HTTP route to localhost:80. WordPress automatically adapts to your custom domain without manual database updates.

Credentials

  • WordPress Admin: Configured during the 1-minute web install (or via wp core install).
  • Database (Internal): Pre-wired into wp-config.php:
    • Database: wordpress
    • User: wp_user
    • Password: wp_secure_pass_2026

Useful Shell Aliases (Terminal Tab)

  • wp-status : Check real-time health of Nginx, PHP-FPM, MariaDB, and Redis
  • wp-logs : Stream combined PHP-FPM and Nginx access/error logs
  • wp-restart : Cleanly restart all 4 web services in dependency order
  • wp : Execute WP-CLI commands safely as www-data (wp --path=/var/www/html)
  • db-cli : Open direct MariaDB interactive SQL prompt for wordpress
  • redis-cli-cmd : Open interactive Redis CLI prompt
  • cdwp : Fast navigation to /var/www/html

Resources · 4 vCPU / 10 GiB RAM / 100 GiB disk


Docs & Source

Every playground includes
Learn more about playgrounds
Start
Settings