Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Backup Manager Bundle Laravel Package

lhpalacio/backup-manager-bundle

Backup Manager Bundle simplifies creating, scheduling, and restoring database and file backups in Symfony/PHP applications. Configure backup sources and destinations, run backups from services or commands, and keep recovery workflows flexible and maintainable.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit — the framing is off by one framework. Despite being catalogued as a Laravel/PHP package, lhpalacio/backup-manager-bundle is a Symfony2 bundle. It wires the backup-manager PHP library into Symfony's DI container, registers itself in AppKernel, and exposes backup/restore/list via Symfony Console. There is no service provider, no facade, no Artisan command, no config/ publish stub — the three things a Laravel engineer would look for first. The reusable asset is the shape (scheduler → dumper → compressor → storage adapter → retention) and the adapter inventory (S3, Rackspace Cloud Files, Dropbox, FTP, SFTP), not the code. A TPM should treat this repo as a requirements checklist and a vendor-comparison baseline, not an install candidate.

Integration feasibility — low as-is; "moderate" only if you count a fork you will own forever. Making this work in Laravel means writing the wrapper layer yourself: service provider, config file, scheduled job, notification/event hook, and a compatibility pass on the underlying library. With 13 stars, 0 dependents, and an archived repo, that fork has exactly one maintainer — your team — and no upstream to rebase onto. The honest comparison set is spatie/laravel-backup (Laravel-native, actively maintained, queued, retention policies, notifications) or ~200 lines over the raw backup-manager library if you specifically need its adapters. Both are less total work than the fork.

Technical risk — high, and concentrated where it hurts most.

  • Platform EOL. Symfony2 went end-of-life in 2018; the bundle's constraints target PHP 5.x/early 7.x. Modern Laravel (9–12) requires PHP 8.x. This is not a "bump the version" problem; it is a "the dependency tree does not resolve" problem.
  • Backends that are dead or dying. The Dropbox adapter targets the retired v1 API (shut down 2017) — functionally dead code shipped as a feature. Rackspace Cloud Files is legacy and de-emphasized. S3 support will be pinned to an old AWS SDK with unpatched CVEs and stale TLS. Five advertised destinations, realistically one or two usable.
  • Credential exposure. Backup tooling holds the highest-value secrets in the stack (object-store keys, DB credentials, host keys) and writes full data dumps to local disk. An archived dependency in that position is a standing audit finding with no patch path.
  • Silent failure. The maintenance a backup tool needs most is keeping "did it run, and is it restorable?" honest. Archived repos do not get that.

Key questions before any spend:

  1. Are we actually on Symfony (which major?) or Laravel? The answer flips this from "port it" to "do not use it" — and the answer is almost certainly Laravel.
  2. Which of the five destinations do we genuinely need — one, or all five? (The five-adapter list is doing most of the persuasive work here; strip it to the one you need and the case collapses.)
  3. What is our compliance posture on an unmaintained dependency holding production credentials?
  4. Is restore verification in scope, or is this write-only backup?
  5. What are our RPO/RTO targets, and does an unverified cron-driven dump meet them?
  6. Is the requirement genuinely bespoke, or is it "back up to S3 on a schedule" — which is solved?

Verdict: do not adopt. Score 0.0625, archived, zero dependents is a correct signal, not a conservative one.

Integration Approach

Stack fit — two cases, one answer.

  • Laravel target (the stated context): does not fit; do not force it. Use spatie/laravel-backup for the standard case, or a thin service provider over the raw library if you need a specific adapter. Either is a smaller, safer build than re-hosting a Symfony2 bundle.
  • Symfony target: still not this repo. Use the underlying library directly or a maintained bundle. Symfony 5/6/7 has no compatible version of this one.

Migration path (if a legacy service already depends on it). Frame this as a decommissioning project, not an upgrade:

  1. Inventory in situ — which command names are wired into cron/supervisor, which adapter is live, where dumps land, who consumes them.
  2. Capture config as a spec — source DBs, destinations, retention, schedule, naming conventions.
  3. Parallel-run the replacement writing to a distinct bucket/prefix, so both paths operate without collision.
  4. Diff outputs — row counts, table checksums, dump sizes — across several cycles.
  5. Prove a restore end-to-end from the new path before any cutover.
  6. Cut over, rotate credentials, remove old cron entries.

Compatibility. Assume the replacement needs PHP 8.x, a current AWS SDK, and a different config shape (Laravel config array vs. Symfony parameters). Explicitly drop Dropbox and Rackspace rather than porting them — the APIs behind them are gone or going, and carrying them forward buys nothing but surface area.

Sequencing. Audit → build-vs-buy decision → parallel-run replacement → verified restore drill → cutover → credential rotation → decommission. Do not sequence "fork this repo as an interim step"; it adds permanent maintenance cost without reducing migration risk. The interim step should be "managed snapshots turned on," which is free and reversible.

Operational Impact

Maintenance. Zero upstream maintenance — archived means no fixes, including security fixes. Any adoption implies a permanent fork with a named owner, a review cadence, and a plan to re-fork on updated transitive dependencies. That is recurring engineering cost for table-stakes functionality.

Support. No vendor, no maintainer, no community. With 13 stars and 0 dependents, essentially no one has hit your bug and posted the fix. Incident response is entirely internal; a broken backup on a Friday night is an internal page with no escalation path. Add key-person risk: when the engineer who set it up leaves, the tribal knowledge leaves with them.

Scaling. The pattern is dump-to-local-temp-then-upload. Fine for small/mid databases, degrades predictably at volume: local disk must hold a full dump (disk pressure on app nodes), uploads are not incremental, compression/chunking is whatever the defaults are, and retention is usually filesystem-driven rather than policy-driven — so storage cost grows monotonically unless someone prunes. For multi-tenant or >100 GB databases, plan for snapshot/PITR instead.

Failure modes, ranked by likelihood × blast radius:

  • Silent non-execution — cron fires, command exits 0 or the schedule is quietly disabled, backups stop, nobody notices until a restore is needed. Highest risk by far. Mitigate with external freshness monitoring (heartbeat / dead-man's-switch), never the tool's own logs.
  • Credential expiry — stale SDKs handle token refresh poorly; keys expire, the upload fails after the dump is written, leaving orphaned files and no backup.
  • Retired provider APIs — Dropbox v1 is already dead; the adapter fails at runtime, potentially mid-upload.
  • Runtime upgrades — a base-image or PHP minor bump breaks the dependency tree during an unrelated change window.
  • Disk exhaustion — the local temp dump fills the volume and takes the app node down with it.

Ramp-up. Low to use, high to own. A competent engineer can read the config and reproduce the behaviour in an afternoon; that is precisely why the package is a poor reason to take on a fork. The ramp-up cost that matters is the second-order work the bundle does not do — restore verification, retention enforcement, encryption at rest, alerting on failed runs — which lands on your team regardless of which tool you pick. Budget for that in the estimate, not for the bundle.

Bottom line for the decision log: read it for requirement inspiration and adapter coverage; adopt nothing. The question is not "is this package good?" but "is backup tooling a place we accept unmaintained dependencies?" — and it is the single worst place in the stack to accept one.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
skyraptor/chatter
edlugz/sasapay
abbasudo/artisan-route
mirvan/ippanel
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource