Descripción
Backupino packs your entire WordPress site — files and database — into a single archive plus a self-contained installer.php script that rebuilds the site on an empty server without WordPress being pre-installed.
Designed specifically for real shared hosting environments with strict execution limits, Backupino ensures that your backup and migration operations run smoothly without timeouts or memory crashes.
Key Features
- Resumable Chunk-Based Engine: Backups are processed in small, restartable slices (scan, files, database, finalize). If execution hits a timeout or server hiccup, it automatically resumes from the last successful checkpoint.
- Pure SQL Database Dumper: Dumps tables with keyset pagination directly through WordPress database APIs. No
mysqldump,exec(), or shell access required. - Standalone Installer (
installer.php): Ultra-lightweight (~72 KB) installer generated dynamically. Extracts archives, streams SQL dumps, replaces URLs, and builds a freshwp-config.phpwith unique security salts. - Deep URL Search & Replace: Smart migration engine that accurately deserializes PHP structures (including nested arrays and objects) and rewrites JSON-encoded strings without corruption.
- Permanent Latest-Backup Link: A secure, non-expiring URL that points directly to the newest backup. Protected by WordPress administrator authentication (
manage_options) or a dedicated secret access key (?backupino_key=...). - Telegram & Bale Notifications: Instant alerts sent to your personal bot upon backup completion. Includes backup scope, formatted size, completion date, and direct download link. Equipped with an automatic 3-attempt retry queue.
- Automated Monthly Backup: Built-in scheduling triggered on the first day of each month. Native Jalali calendar calculation for Persian sites (
fa_IR) and Gregorian for other locales. - Automatic Retention Management: Retains the latest backup packages (default: 3) and automatically prunes older archives to conserve disk space.
- 100% Offline-First Architecture: Zero external scripts, zero CDNs, and zero third-party fonts. All assets are served locally from your server.
- Latin Digit Normalization: All numbers in timestamps, sizes, and interfaces use standard Latin digits (
0-9) across all languages. - WP-CLI Support: Full command-line interface for sysadmins (
wp backupino create,wp backupino jobs,wp backupino status).
Free vs Pro
The free plugin provides complete backup, migration, and clone capabilities with no arbitrary file size or database restrictions. Restoring or migrating an existing backup is 100% free forever.
The optional Pro add-on (distributed separately) adds advanced enterprise features such as cloud storage destinations (S3, Google Drive, ArvanCloud, etc.), in-place rollback restore, multisite network support, and incremental backups.
External Services
This plugin can optionally connect to external third-party services to deliver backup notification alerts to the site administrator:
- Telegram Bot API
* Service: Telegram Messenger (https://api.telegram.org)
* Purpose: Dispatches backup completion notifications and download links to your personal Telegram chat or channel.
* Data Transmitted: Site domain name, backup scope (files/database), formatted archive size, completion timestamp, and permanent download link. On migration restoration, sends new site URL and admin dashboard login URL.
* When Sent: Data is transmitted ONLY when the site administrator explicitly enables notifications in Backupino Settings, selects “Telegram”, and inputs their personal bot token and chat ID (or when triggering a test alert or completing restoration in the standalone installer). If notification service is set to “None” (default), no requests are sent.
* Terms of Service: Telegram Terms of Service
* Privacy Policy: Telegram Privacy Policy
- Bale Bot API
* Service: Bale Messenger (https://tapi.bale.ai)
* Purpose: Dispatches backup completion notifications and download links to your personal Bale chat or channel.
* Data Transmitted: Site domain name, backup scope (files/database), formatted archive size, completion timestamp, and permanent download link. On migration restoration, sends new site URL and admin dashboard login URL.
* When Sent: Data is transmitted ONLY when the site administrator explicitly enables notifications in Backupino Settings, selects “Bale”, and inputs their personal bot token and chat ID (or when triggering a test alert or completing restoration in the standalone installer). If notification service is set to “None” (default), no requests are sent.
* Terms of Service: Bale Terms of Service
* Privacy Policy: Bale Privacy Policy
Instalación
From WordPress Admin
- Navigate to Plugins -> Add New in your WordPress dashboard.
- Search for
Backupino. - Click Install Now, then Activate.
- Open the Backupino menu and click Create Backup.
Manual Installation
- Download the plugin archive and extract it.
- Upload the
backupino/folder to your/wp-content/plugins/directory. - Activate Backupino from the Plugins screen in WordPress.
Preguntas frecuentes
-
Does the target server require WordPress to be installed for restore?
-
No. Upload your backup archive along with
installer.phpinto an empty web directory and openinstaller.phpin your browser. The installer unpacks files, imports your database, and sets up WordPress cleanly. -
Where are backup packages stored?
-
Packages are stored locally in
/wp-content/backupino/packages/(outside of the public uploads directory for enhanced security and isolation). The directory is secured with.htaccess,web.config, and emptyindex.phpguards to prevent direct public file browsing and execution. -
Does the permanent download link ever expire?
-
No. The permanent link (
?backupino_download=latest) never expires and always resolves to the most recent backup archive. For security, requests are protected by WordPress administrator authentication (manage_optionscapability) or by providing the secret download access key generated in settings (?backupino_key=...). -
Is there any file size or database limit in the free version?
-
No. There are no artificial limits on package size or database rows. Backupino is designed to handle sites of any size through chunked, resumable processing.
-
What happens if a backup process is interrupted?
-
Backupino tracks its state per slice in the database. If a backup process is interrupted by a server timeout or network drop, opening the dashboard or triggering the next cron tick immediately resumes the process from the exact point of interruption.
-
Does Backupino support the Persian / Jalali calendar?
-
Yes. If your WordPress site language is set to Persian (
fa_IR), Backupino automatically formats dates using the Jalali calendar and schedules monthly backups on the 1st day of the solar month. All numbers strictly use Latin digits (0-9). -
Can I run backups from the command line?
-
Yes. Backupino includes built-in WP-CLI commands:
*wp backupino create— start a new backup job.
*wp backupino jobs— view active and historical jobs.
*wp backupino status— inspect the current running job. -
Are third-party notifications required?
-
No. Notifications are completely optional and disabled by default. If you do not configure Telegram or Bale credentials, Backupino operates strictly locally without sending any outbound external requests.
Reseñas
No hay reseñas para este plugin.
Colaboradores y desarrolladores
Este software es de código abierto. Las siguientes personas han contribuido a este plugin.
Colaboradores“Backupino” ha sido traducido a 1 idioma local. Gracias a los traductores por sus contribuciones.
Traduce “Backupino” a tu idioma.
¿Interesado en el desarrollo?
Revisa el código, echa un vistazo al repositorio SVN o suscríbete al registro de desarrollo por RSS.
Registro de cambios
1.0.5
- Localization: Bundled 100% complete Persian (fa_IR) translations (.po and .mo) for instant out-of-the-box native experience.
- Assets: Added crisp static PNG fallbacks (icon-128×128.png and icon-256×256.png) and removed SVG animations per WordPress.org guidelines.
- Packaging: Added .distignore and updated .gitattributes to ensure clean, non-leaking distribution packages in WordPress.org SVN.
- Automation: Hardened GitHub Actions release deployment workflow with SVN asset synchronization and concurrency locking.
1.0.4
- Compliance: Removed unconsented public attribution text and credit links from public download landing page to comply with WordPress.org guidelines.
- Compliance: Removed error_reporting and ini_set production calls, replacing them with output buffering cleanup in standalone installer.
- Compliance: Eliminated raw cURL usage in standalone installer; post-restore notifications are safely enqueued and dispatched via native WordPress HTTP API (wp_remote_post).
- Security: Eliminated all procedural mysqli_* database calls; standalone installer now relies exclusively on PDO with parameterized prepared statements.
- Reliability: Quarantined server configuration files (.htaccess, .user.ini, php.ini) safely during extraction to prevent overwriting existing destination host configurations.
- Compatibility: Added case-insensitive table prefix healing to automatically resolve mixed-case table prefixes and user roles/capabilities when migrating between Windows and Linux environments.
1.0.3
- Security: Implemented
ConfigWriter::redact_secrets()to strip credentials and salts fromwp-config.phpduring package build, injecting cleanbackupino-wp-config.tpltemplate and generating fresh cryptographic salts on restore. - Security: Replaced persistent physical installer PHP files in uploads storage with dynamic streaming download via
Fs::stream_string_download(). - Compliance: Streamlined default settings options and unified scheduling to standard monthly execution with extensible storage driver filters.
- Compliance: Externalized all inline CSS and JS assets into dedicated static cacheable files for both the public download landing page and the standalone installer.
- Compliance: Removed bundled
.po/.motranslation files to rely exclusively on WordPress.org official language packs (translate.wordpress.org). - Hardening: Added cryptographic
hash_equals()download token comparison, strict table prefix regex validation (/^[a-zA-Z0-9_]+$/), URL validation, and eliminated internal path disclosures. - Hardening: Standardized all text files to Unix line endings (
LF) with.gitattributesto eliminateInternal.LineEndings.Mixedwarnings. - Fix: Fixed undefined variable
$backupino_settingsintemplates/settings.phpcausing a fatal error on the options page. - Fix: Prevented native form GET submission in Step 2 of the standalone installer and resolved button ID mismatch (
back-to-step1) to ensure uninterrupted progression to extraction.
1.0.2
- Feature: Added
backupino_design_tokensandbackupino_download_page_stylesextension hooks for public download landing page customization. - Consistency: Unified standalone installer fallback locale to
en_USacross all extraction and notification stages. - Hardening: Fully normalized line endings to LF across all plugin files to prevent mixed line ending warnings.
1.0.1
- Security: Standalone installer now rejects direct execution inside
wp-content/with HTTP 403 Forbidden to protect Nginx servers against unauthorized calls. - Security: Package filenames now include a 12-character random cryptographic suffix preventing URL enumeration or guessing on Nginx setups.
- Security: Removed static
installer.phppersistence from package storage; installer is safely served dynamically with clean download headers. - Fix: Replaced invalid
Fs::mkdir()call withFs::ensure_dir()in JobRunner to eliminate fatal error on clean WordPress environments. - Fix: Properly release and clean lock file on unexpected stage errors or job failures.
- Fix: Background cron scheduler now reliably identifies manual jobs via
$job->option('type')avoiding concurrent runner collisions. - Quality: 100% passed all 5 categories of the official WordPress Plugin Check (PCP).
1.0.0
- Initial public release.
- Resumable backup engine supporting files and pure SQL database dumps.
- Standalone installer (
installer.php) with deep JSON & serialized search and replace. - Permanent latest-backup download link with administrator authentication gate.
- Telegram Bot API and Bale Bot API notification channels with automated retry queue.
- Monthly automated backup scheduling (Jalali calendar for
fa_IR, Gregorian for other locales). - Retention management system with default 3-package threshold.
- Full internationalization (
backupino.potand Persianfa_IRcatalog) with logical CSS for RTL/LTR. - Latin digit normalization (
0-9) across all interfaces and dates. - Strict security hardening: zero dangerous functions, Zip-Slip prevention, and capability-checked REST API endpoints.
- 100% offline-first architecture with zero external CDN dependencies.
- WP-CLI command integration.