PHPackages                             cakebackuppro/cake-backup-pro - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [File &amp; Storage](/categories/file-storage)
4. /
5. cakebackuppro/cake-backup-pro

ActiveCakephp-plugin[File &amp; Storage](/categories/file-storage)

cakebackuppro/cake-backup-pro
=============================

CakePHP backup and restore plugin for Backblaze B2 with one-click full restore and component-level control.

v1.0.0(4mo ago)00MITPHPPHP &gt;=8.1CI failing

Since Feb 19Pushed 4mo agoCompare

[ Source](https://github.com/AY-Studio/CakeBackupPro)[ Packagist](https://packagist.org/packages/cakebackuppro/cake-backup-pro)[ RSS](/packages/cakebackuppro-cake-backup-pro/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (2)Versions (2)Used By (0)

CakeBackupPro
=============

[](#cakebackuppro)

CakePHP backup/restore plugin for Backblaze B2 with:

- one-click full restore
- component-level backup/restore
- URL rewrite on restore (source -&gt; target domain)
- safe file rollover (`old-*`) before replacement
- post-restore health checks

Version Map
-----------

[](#version-map)

BranchCakePHPPHPPlugin Status`main``^5.0``>=8.1`Active`1.x``^4.5``>=8.1`Legacy/Maintenance1. Quick Install
----------------

[](#1-quick-install)

```
composer require cakebackuppro/cake-backup-pro
```

In `src/Application.php`:

```
$this->addPlugin('CakeBackupPro', ['routes' => true]);
```

Run plugin migrations:

```
bin/cake migrations migrate -p CakeBackupPro
```

Open:

- `/admin/backups`

2. Backblaze Requirements (What You Must Have)
----------------------------------------------

[](#2-backblaze-requirements-what-you-must-have)

Before plugin setup, you need all 4:

1. Backblaze B2 account
2. A B2 bucket (already created)
3. An Application Key ID
4. An Application Key (secret value)

If any of these are missing, backups will fail.

### 2.1 Create bucket in Backblaze

[](#21-create-bucket-in-backblaze)

In Backblaze B2:

1. `Buckets` -&gt; `Create a Bucket`
2. Choose a unique bucket name, for example: `my-company-backups`
3. Keep the bucket private

### 2.2 Create application key in Backblaze

[](#22-create-application-key-in-backblaze)

In Backblaze B2:

1. `App Keys` -&gt; `Add a New Application Key`
2. Recommended: restrict the key to this backup bucket
3. Required capabilities:

- list buckets
- list files
- read files
- write files
- delete files

4. Save both values:

- `keyID`
- `applicationKey` (shown once)

3. What To Enter In `/admin/backups`
------------------------------------

[](#3-what-to-enter-in-adminbackups)

Use this exact mapping:

- `Backblaze Key ID` -&gt; your B2 `keyID`
- `Backblaze Application Key` -&gt; your B2 `applicationKey`
- `Backup Path (bucket/prefix)` -&gt; `bucket-name/folder-prefix`

Examples:

- `my-company-backups/warranty-live`
- `my-company-backups/sites/site-a`

Important:

- First part must be a real bucket name.
- Second part is a folder prefix inside that bucket.
- Do not include `b2://`, `https://`, or full URLs.

Set also:

- region (default `us-west-004` unless your account uses another)
- retention days
- schedule frequency/time

Then click:

- `Validate Connection`

4. First Successful Backup (10-Minute Checklist)
------------------------------------------------

[](#4-first-successful-backup-10-minute-checklist)

1. Complete config in `/admin/backups`
2. Click `Validate Connection`
3. Run `DB` backup
4. Confirm `logs/backup-manager.log` shows upload success
5. Run `Full` backup
6. Confirm files appear in Backblaze under:

- `YYYYMMDD-HHMMSS/YYYYMMDD-HHMMSS-...`

If this works, your setup is correct.

5. Required Server Binaries
---------------------------

[](#5-required-server-binaries)

- `bash`
- `curl`
- `php`
- `mysqldump`
- `mysql`
- `tar`
- `gzip`

Optional:

- `composer` (used if post-restore composer is enabled)

6. Backup Layout In Backblaze
-----------------------------

[](#6-backup-layout-in-backblaze)

Each backup set is isolated in its own folder:

- `YYYYMMDD-HHMMSS/YYYYMMDD-HHMMSS-db.sql.gz`
- `YYYYMMDD-HHMMSS/YYYYMMDD-HHMMSS-.tar.gz`
- `YYYYMMDD-HHMMSS/YYYYMMDD-HHMMSS-meta.json`

Example:

- `20260219-091237/20260219-091237-env_files.tar.gz`

7. Backup Types
---------------

[](#7-backup-types)

- `full`: DB + selected file components
- `db`: DB only
- `files`: selected file components only

8. One-Click Full Restore
-------------------------

[](#8-one-click-full-restore)

One-click restore from admin:

- restores DB + core components
- rewrites URLs to current environment URL
- runs migrations
- clears cache
- runs health checks
- can include env files if selected

9. CLI Script (Optional)
------------------------

[](#9-cli-script-optional)

Script path:

- `plugins/CakeBackupPro/scripts/backup-manager.sh`

Examples:

```
./plugins/CakeBackupPro/scripts/backup-manager.sh backup full --prune
./plugins/CakeBackupPro/scripts/backup-manager.sh list-sets
./plugins/CakeBackupPro/scripts/backup-manager.sh restore-full latest
```

10. Logs
--------

[](#10-logs)

- backup log: `logs/backup-manager.log`
- restore log: `logs/backup-restore.log`
- staging: `tmp/backups`

11. Most Common Setup Errors
----------------------------

[](#11-most-common-setup-errors)

### `Validation failed` or cannot list snapshots

[](#validation-failed-or-cannot-list-snapshots)

Usually one of:

- wrong Key ID
- wrong Application Key
- wrong `bucket/prefix` format
- key does not have required capabilities
- key restricted to a different bucket

### `mysqldump: Access denied`

[](#mysqldump-access-denied)

- check DB credentials in app env/config
- use `DB_*_FALLBACKS` if host varies between environments

### `/admin/backups` missing

[](#adminbackups-missing)

- confirm plugin load:

```
$this->addPlugin('CakeBackupPro', ['routes' => true]);
```

12. Security Notes
------------------

[](#12-security-notes)

- never commit real keys/passwords
- lock env files (`chmod 600`)
- treat backup archives as sensitive
- test restore in non-production first

13. Visual Setup Guide (Replaceable Screenshots)
------------------------------------------------

[](#13-visual-setup-guide-replaceable-screenshots)

These images are placeholders shipped with the plugin so new users always have a visual path. Replace them with real screenshots from your Backblaze and admin UI when publishing docs.

### 13.1 Backblaze: Create App Key

[](#131-backblaze-create-app-key)

[![Backblaze App Key Placeholder](docs/images/backblaze-app-key-placeholder.svg)](docs/images/backblaze-app-key-placeholder.svg)

Callouts:

1. Open `Backblaze B2 -> App Keys -> Add a New Application Key`
2. Set key name (example: `cake-backup-pro`)
3. Restrict to your backup bucket
4. Enable capabilities: list/read/write/delete files + list buckets
5. Save both values: `keyID` and `applicationKey`

### 13.2 Backblaze: Create Bucket

[](#132-backblaze-create-bucket)

[![Backblaze Bucket Placeholder](docs/images/backblaze-bucket-placeholder.svg)](docs/images/backblaze-bucket-placeholder.svg)

Callouts:

1. Open `Backblaze B2 -> Buckets -> Create a Bucket`
2. Choose unique name (example: `my-company-backups`)
3. Keep bucket private
4. Copy bucket name for plugin `Backup Path`

### 13.3 CakeBackupPro: Admin Form Mapping

[](#133-cakebackuppro-admin-form-mapping)

[![CakeBackupPro Admin Placeholder](docs/images/cakebackuppro-admin-placeholder.svg)](docs/images/cakebackuppro-admin-placeholder.svg)

Callouts:

1. `Backblaze Key ID` = Backblaze `keyID`
2. `Backblaze Application Key` = Backblaze `applicationKey`
3. `Backup Path` = `bucket-name/prefix`
4. Set schedule/time/retention
5. Click `Validate Connection`
6. Run `DB` backup, then `Full` backup

###  Health Score

33

—

LowBetter than 72% of packages

Maintenance75

Regular maintenance activity

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity43

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

134d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/4b4362509678f9d5153d19de3a93a5048685a4c4f22ba41abe15a38079ace700?d=identicon)[robertannett](/maintainers/robertannett)

---

Top Contributors

[![robertannett](https://avatars.githubusercontent.com/u/502449?v=4)](https://github.com/robertannett "robertannett (5 commits)")

---

Tags

backupcakephprestoreb2backblaze

### Embed Badge

![Health badge](/badges/cakebackuppro-cake-backup-pro/health.svg)

```
[![Health](https://phpackages.com/badges/cakebackuppro-cake-backup-pro/health.svg)](https://phpackages.com/packages/cakebackuppro-cake-backup-pro)
```

###  Alternatives

[gliterd/backblaze-b2

PHP SDK for working with backblaze B2 cloud storage.

83278.7k8](/packages/gliterd-backblaze-b2)[cwhite92/b2-sdk-php

A SDK for working with B2 cloud storage.

74154.8k2](/packages/cwhite92-b2-sdk-php)[dereuromark/cakephp-setup

A CakePHP plugin containing lots of useful management tools

36199.6k2](/packages/dereuromark-cakephp-setup)[obregonco/backblaze-b2

An SDK for working with B2 cloud storage.

2734.3k](/packages/obregonco-backblaze-b2)[bringyourownideas/laravel-backblaze

Backblaze B2 Cloud Storage for Laravel 5. Original by Paul Olthof (@hpolthof) continued by @bringyourownideas

1238.5k](/packages/bringyourownideas-laravel-backblaze)[dereuromark/cakephp-file-storage

This plugin is giving you the possibility to store files in virtually any kind of storage backend. This plugin is wrapping the Gaufrette library (https://github.com/KnpLabs/Gaufrette) library in a CakePHP fashion and provides a simple way to use the storage adapters through the StorageManager class.

106.1k](/packages/dereuromark-cakephp-file-storage)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
