WP Transformer
Converts WordPress MySQL dumps into self-contained static HTML sites β no live WordPress installation required. Multi-tenant dashboard with human-in-the-loop pipeline.
Stack
- PHP 8.2+ β no framework, no Composer
- MySQL (ALL-INKL managed) or PostgreSQL (Strato VPS / transformer.crumbforest.io)
- Tailwind CSS v3 β pre-compiled, dark theme
- nginx + PHP-FPM (VPS) or FastCGI (ALL-INKL managed)
Architecture
SQL Dump (Upload or crawl)
β
βΌ
WPParser β pure-PHP tokenizer, no MySQL dependency
β
βΌ
wpt_posts β editable intermediate layer in DB
β
βΌ
StaticBuilder β index.html, per-post HTML, feed.json, .htaccess
β
βββ ZIP Download
βββ FTP Deploy β Customer subdomain / server
Multi-Tenant Pipeline
Each tenant goes through four steps β with human review at each:
- SQL Upload β WordPress UpdraftPlus / mysqldump export
- Parse β extracts posts/pages/categories, auto-detects DB prefix
- Build β generates static HTML with per-tenant branding
- Deploy β ZIP download or direct FTP push
Two-Server Setup
WPTransformer uses two distinct hosting environments with different roles:
βββββββββββββββββββββββββββββββββββββββ βββββββββββββββββββββββββββββββββββ
β Strato Root VPS β β ALL-INKL Managed Hosting β
β transformer.crumbforest.io β β wptransformer.org β
β β β β
β β The app runs here β β β Static output lands here β
β Admin dashboard β β Generated HTML sites β
β Pipeline engine β β Customer subdomains β
β PostgreSQL database β β MySQL (managed) β
β nginx + PHP-FPM β β FastCGI (managed) β
β Full root access β β FTP deploy, .htaccess β
βββββββββββββββββββββββββββββββββββββββ βββββββββββββββββββββββββββββββββββ
Strato VPS β App Deploy (primary)
./scripts/deploy_transformer.sh
Requires SSH access to root@87.106.12.97. Creates DB, sets up nginx vhost, syncs files.
config.local.php on server:
<?php
define('DB_TYPE', 'pgsql');
define('DB_HOST', 'localhost');
define('DB_NAME', 'wptransformer_db');
define('DB_USER', 'wptransformer');
define('DB_PASS', 'generated-by-deploy-script');
define('PASSWORD_PEPPER', 'generated-by-deploy-script');
define('MAIL_TYPE', 'file');
define('APP_ENV', 'production');
First deploy: run init_pg.sql to create schema. On updates: run migrate_103.php in browser (admin login required), then delete it.
ALL-INKL β Static Output Destination
The built static sites (ZIP or FTP deploy from StaticBuilder) land here.
wptransformer.org hosts the generated HTML β not the app itself.
FTP deploy target for finished tenant builds. No PHP pipeline runs here.
Pre-Deploy Health Check
bash wptransformer-doktor.sh [/var/www/app-dir]
Checks: system resources, PostgreSQL, nginx, PHP-FPM, SSL, app config. Run on target server before every deploy.
Security
.htaccessblocks.sql,.sh,.md,config.local.php(ALL-INKL managed)- nginx vhost blocks
classes/,templates/,logs/,scripts/directories tenants/blocked excepttenants/*/public/- CSRF tokens on all POST forms (
Csrf::verify()) - bcrypt password hashing (cost 12)
- Password reset via time-limited token (SHA-256 hashed, 1h TTL)
- Slug whitelist:
[^a-z0-9\-]stripped β no path traversal display_errors = 0in production
Version History
| Version | Date | Notes |
|---|---|---|
| 1.0.4 | 2026-05-22 | PostgreSQL support, deploy pipeline, password reset, tour-star tenant |
| 1.0.2 | 2026-05-20 | Logger, contact form v2, CSRF hardening |
| 1.0.1 | 2026-05-19 | Contact form, corporate theme |
| 1.0.0 | 2026-05-16 | Initial production release |
Repo
git remote: https://git.crumbforest.org/branko/wptransformeer-OZMv0.git