DB Web Deploy self-updates
A WordPress plugin for deploying web apps into Wordpress websites without special permissions or ftp access
by Davide Bertolino · github.com/dadebertolino/db-web-deploy · website
Install
The author publishes release zips, so WP-CLI can install straight from GitHub:
wp plugin install https://github.com/dadebertolino/db-web-deploy/releases/download/v1.1.0/db-web-deploy.zipShips its own WordPress updater (built-in updater), so new versions show up under Dashboard → Updates.
Readme
DB Web Deploy
Deploy and manage static web apps directly from the WordPress admin panel.
Upload a ZIP with your app's build (React, Vue, plain HTML — anything with an index.html), pick a slug, and the plugin handles the rest. No FTP, no SSH, no hosting panels.
Version: 1.1.0
Author: Davide Bertolino
License: GPL v2 or later
Requires: WordPress 5.0+ | PHP 7.4+
Features
📦 Multi-app management
Manage as many web apps as you need, each with its own slug and URL.
- Create apps with custom name and slug
- Auto-generated slug from app name (handles accented characters)
- Reserved WordPress slugs are protected (
wp-admin,wp-content, etc.) - Overview list with status, URL, and last deploy date
🎯 One-click deploy
Drag your build ZIP into the upload area and click Deploy. The plugin automatically finds the index.html even inside subfolders like dist/.
- Drag & drop ZIP upload
- Automatic
index.htmldetection (searches up to 2 levels deep) - Previous deployment is replaced automatically
- Supports files up to 100MB
🌐 Cross-server compatibility
Works on Apache, Nginx, IIS, and everything in between.
- Generates
.htaccessfor Apache (access rules, cache headers, SPA routing) - Generates
web.configfor IIS (static content, URL rewrite) - Generates
index.phpfallback for servers that don't serveindex.htmlby default - Forces correct file permissions (755 for directories, 644 for files)
- Uses WP uploads directory for temp files (avoids Windows/IIS permission issues)
📊 Deploy status & info
For each app you get: URL, last deploy date, who deployed it, file count, and total size.
🛡️ Safe management
- Remove files without losing the app configuration
- Full deletion with confirmation prompt
- Nonce verification and capability checks on every action
- File type and size validation
🔄 Auto-updates
The plugin updates itself directly from the WordPress Plugins panel via GitHub Releases.
Installation
- Download the ZIP from the latest GitHub Release
- In WordPress: Plugins → Add New → Upload Plugin
- Select the ZIP and click Install Now
- Activate the plugin
- Go to Tools → Web Deploy
First use
- On the Web Deploy page, enter your app's name and a slug (e.g.
misotest) - Click Add
- Open the app's page and upload your build ZIP
- Your app is live at
yoursite.com/slug/
How it works
The plugin extracts the ZIP contents into the WordPress root, in a folder matching the slug you chose:
yoursite.com/
├── wp-admin/
├── wp-content/
├── misotest/ ← Your web app
│ ├── index.html
│ ├── index.php ← Auto-generated fallback
│ ├── .htaccess ← Auto-generated (Apache)
│ ├── web.config ← Auto-generated (IIS)
│ ├── assets/
│ └── ...
└── index.php
The ZIP can contain the index.html at the root level or in a subfolder (e.g. dist/). The plugin searches automatically up to 2 levels deep.
Generated files
On each deploy, the plugin creates three server configuration files:
| File | Server | Purpose |
|---|---|---|
.htaccess |
Apache | Access rules, cache headers, SPA routing |
web.config |
IIS | Static content types, URL rewrite, default document |
index.php |
Any | Fallback that serves index.html when the server doesn't do it natively |
Admin panel
The plugin adds a "Web Deploy" entry under Tools in the WordPress admin menu.
App list — overview of all web apps with status (Online / Not deployed), URLs, and quick links.
App detail — full status, ZIP upload with drag & drop, update, file removal, app deletion.
File structure
db-web-deploy/
├── db-web-deploy.php # Main plugin file
├── inc/
│ └── class-updater.php # GitHub auto-updater
├── assets/
│ └── css/
│ ├── db-admin-ui.css # Shared admin design system
│ └── admin.css # Plugin-specific styles
├── README.md
└── LICENSE
Technical notes
- Storage: files are extracted to
ABSPATH/{slug}/ - Configuration: stored in
wp_optionsunder keydbwd_apps - Temp directory: uses
wp-content/uploads/(not system temp — avoids Windows permission issues) - Permissions: directories are set to 755, files to 644 during deploy
- Security: nonce verification,
manage_optionscapability check, input sanitization, file type and size validation - Limits: max 100MB per ZIP, only
.zipfiles accepted - Dependencies: none — works on any hosting with PHP
ZipArchive - Design system: uses shared
db-admin-ui.cssacross all DB plugins
Changelog
v1.1.0 — April 2026
- 🌐 Full English admin UI
- 🛡️ Auto-generates
.htaccess(Apache),web.config(IIS), andindex.phpfallback on each deploy - 🔧 Forced file permissions: 755 for directories, 644 for files
- 🪟 Fixed temp directory on Windows/IIS (uses WP uploads instead of system temp)
- 🐛 Added try/catch to prevent fatal errors on permission-restricted environments
- 📝 English README
v1.0.0 — April 2026
- 🎉 Initial release
- Multi-app management with custom name and slug
- ZIP upload with drag & drop
- Automatic
index.htmldetection in subfolders - Deploy status with full info (date, user, files, size)
- File removal and app deletion with confirmation
- WordPress reserved slug protection
- Auto-generated slug from app name
- GitHub auto-updater
- Shared
db-admin-uidesign system
License
GPL v2 or later. You are free to use, modify, and distribute this plugin.
Author
Davide Bertolino — www.davidebertolino.it — info@davidebertolino.it
🚫 No registration. No reminders. No tricks.
Download, install, use. No accounts, no popups, no "upgrade to Pro", no telemetry. The code is yours, the license is GPL v2, all features are included. That's it.
Read the full README on GitHub →
Releases
| Tag | Published | Asset | Downloads |
|---|---|---|---|
| v1.1.0 | Apr 14, 2026 | db-web-deploy.zip | 1 |