PHPackages                             nelsonkopliku/backup-manager - 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. nelsonkopliku/backup-manager

ActiveLibrary

nelsonkopliku/backup-manager
============================

A framework agnostic database backup manager with user-definable procedures and support for S3, Dropbox, FTP, SFTP, and more with drivers for popular frameworks.

1.1.1(10y ago)120MITPHPPHP &gt;=5.5.9

Since Apr 16Pushed 9y ago1 watchersCompare

[ Source](https://github.com/nelsonkopliku/backup-manager)[ Packagist](https://packagist.org/packages/nelsonkopliku/backup-manager)[ RSS](/packages/nelsonkopliku-backup-manager/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (11)Versions (33)Used By (0)

Database Backup Manager 1.0
===========================

[](#database-backup-manager-10)

[![Latest Stable Version](https://camo.githubusercontent.com/934da0e6b21f018efe1dcd6ee8ba8e22ec76bd59476e787750d6a8468662d237/68747470733a2f2f706f7365722e707567782e6f72672f6261636b75702d6d616e616765722f6261636b75702d6d616e616765722f76657273696f6e2e706e67)](https://packagist.org/packages/backup-manager/backup-manager)[![License](https://camo.githubusercontent.com/c8ea84e6818752bce434bc50a9f9df04c40304c634f71f798080c9cfe61b8e32/68747470733a2f2f706f7365722e707567782e6f72672f6261636b75702d6d616e616765722f6261636b75702d6d616e616765722f6c6963656e73652e706e67)](https://packagist.org/packages/backup-manager/backup-manager)[![Build Status](https://camo.githubusercontent.com/d32347d2bf6f3373d28627f95151ce3103c27d23672d866557621533447b0aaf/68747470733a2f2f7472617669732d63692e6f72672f6261636b75702d6d616e616765722f6261636b75702d6d616e616765722e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/backup-manager/backup-manager)[![Coverage Status](https://camo.githubusercontent.com/80586bc0cefa3b795c485dde8a97b0e6c8aa3b9b1e470fb6a56e48f06f0025b8/68747470733a2f2f636f766572616c6c732e696f2f7265706f732f6261636b75702d6d616e616765722f6261636b75702d6d616e616765722f62616467652e7376673f6272616e63683d6d617374657226736572766963653d676974687562)](https://coveralls.io/github/backup-manager/backup-manager?branch=master)[![Total Downloads](https://camo.githubusercontent.com/9222bd3aeacdeb9232126644c01f399b5e7e460ca29a6ca2316b4c6e3e042327/68747470733a2f2f706f7365722e707567782e6f72672f6261636b75702d6d616e616765722f6261636b75702d6d616e616765722f646f776e6c6f6164732e706e67)](https://packagist.org/packages/backup-manager/backup-manager)

This package provides a framework-agnostic database backup manager for dumping to and restoring databases from S3, Dropbox, FTP, SFTP, and Rackspace Cloud.

[Watch a video tour](https://www.youtube.com/watch?v=vWXy0R8OavM) showing the Laravel driver in action to give you an idea what is possible.

- supports `MySQL` and `PostgreSQL`
- compress with `Gzip`
- framework-agnostic
- dead simple configuration
- [Laravel Driver](http://github.com/backup-manager/laravel)
- [Symfony Driver](http://github.com/backup-manager/symfony)

### Table of Contents

[](#table-of-contents)

- [Stability Notice](#stability-notice)
- [Quick and Dirty](#quick-and-dirty)
- [Requirements](#requirements)
- [Installation](#installation)
- [Usage](#usage)
- [Contribution Guidelines](#contribution-guidelines)
- [Maintainers](#maintainers)
- [License](#license)

### Stability Notice

[](#stability-notice)

It's stable enough, you'll need to understand permissions.

This package is actively being developed and we would like to get feedback to improve it. [Please feel free to submit feedback.](https://github.com/backup-manager/backup-manager/issues/new)

### Quick and Dirty

[](#quick-and-dirty)

**Configure your databases.**

```
// config/database.php
'development' => [
    'type' => 'mysql',
    'host' => 'localhost',
    'port' => '3306',
    'user' => 'root',
    'pass' => 'password',
    'database' => 'test',
],
'production' => [
    'type' => 'postgresql',
    'host' => 'localhost',
    'port' => '5432',
    'user' => 'postgres',
    'pass' => 'password',
    'database' => 'test',
],
```

**Configure your filesystems.**

```
// config/storage.php
'local' => [
    'type' => 'Local',
    'root' => '/path/to/working/directory',
],
's3' => [
    'type' => 'AwsS3',
    'key'    => '',
    'secret' => '',
    'region' => 'us-east-1',
    'version' => 'latest',
    'bucket' => '',
    'root'   => '',
],
'gcs' => [
    'type' => 'Gcs',
    'key'    => '',
    'secret' => '',
    'version' => 'latest',
    'bucket' => '',
    'root'   => '',
],
'rackspace' => [
    'type' => 'Rackspace',
    'username' => '',
    'key' => '',
    'container' => '',
    'zone' => '',
    'root' => '',
],
'dropbox' => [
    'type' => 'Dropbox',
    'key' => '',
    'secret' => '',
    'app' => '',
    'root' => '',
],
'ftp' => [
    'type' => 'Ftp',
    'host' => '',
    'username' => '',
    'password' => '',
    'root' => '',
    'port' => 21,
    'passive' => true,
    'ssl' => true,
    'timeout' => 30,
],
'sftp' => [
    'type' => 'Sftp',
    'host' => '',
    'username' => '',
    'password' => '',
    'root' => '',
    'port' => 21,
    'timeout' => 10,
    'privateKey' => '',
],
```

**Backup to / restore from any configured database.**

Backup the development database to `Amazon S3`. The S3 backup path will be `test/backup.sql.gz` in the end, when `gzip` is done with it.

```
$manager = require 'bootstrap.php';
$manager->makeBackup()->run('development', 's3', 'test/backup.sql', 'gzip');
```

**Backup to / restore from any configured filesystem.**

Restore the database file `test/backup.sql.gz` from `Amazon S3` to the `development` database.

```
$manager = require 'bootstrap.php';
$manager->makeRestore()->run('s3', 'test/backup.sql.gz', 'development', 'gzip');
```

> This package does not allow you to backup from one database type and restore to another. A MySQL dump is not compatible with PostgreSQL.

### Requirements

[](#requirements)

- PHP 5.5
- MySQL support requires `mysqldump` and `mysql` command-line binaries
- PostgreSQL support requires `pg_dump` and `psql` command-line binaries
- Gzip support requires `gzip` and `gunzip` command-line binaries

### Installation

[](#installation)

**Composer**

Run the following to include this via Composer

```
composer require backup-manager/backup-manager
```

Then, you'll need to select the appropriate packages for the adapters that you want to use.

```
# to support s3 or google cs
composer require league/flysystem-aws-s3-v3

# to support dropbox
composer require league/flysystem-dropbox

# to support rackspace
composer require league/flysystem-rackspace

# to support sftp
composer require league/flysystem-sftp
```

### Usage

[](#usage)

Once installed, the package must be bootstrapped (initial configuration) before it can be used.

We've provided a native PHP example [here](https://github.com/backup-manager/backup-manager/tree/master/examples).

The required bootstrapping can [be found in the example here](https://github.com/backup-manager/backup-manager/blob/master/examples/standalone/bootstrap.php).

### Contribution Guidelines

[](#contribution-guidelines)

We recommend using the vagrant configuration supplied with this package for development and contribution. Simply install VirtualBox, Vagrant, and Ansible then run `vagrant up` in the root folder. A virtualmachine specifically designed for development of the package will be built and launched for you.

When contributing please consider the following guidelines:

- please conform to the code style of the project, it's essentially PSR-2 with a few differences.
    1. The NOT operator when next to parenthesis should be surrounded by a single space. `if ( ! is_null(...)) {`.
    2. Interfaces should NOT be suffixed with `Interface`, Traits should NOT be suffixed with `Trait`.
- All methods and classes must contain docblocks.
- Ensure that you submit tests that have minimal 100% coverage.
- When planning a pull-request to add new functionality, it may be wise to [submit a proposal](https://github.com/backup-manager/backup-manager/issues/new) to ensure compatibility with the project's goals.

### Maintainers

[](#maintainers)

This package is maintained by [Shawn McCool](http://shawnmc.cool), [Mitchell van Wijngaarden](http://blog.mitchellvanw.io), and you!

### License

[](#license)

This package is licensed under the [MIT license](https://github.com/backup-manager/backup-manager/blob/master/LICENSE).

###  Health Score

31

—

LowBetter than 68% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community18

Small or concentrated contributor base

Maturity69

Established project with proven stability

 Bus Factor1

Top contributor holds 77.9% 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

Every ~22 days

Total

30

Last Release

3743d ago

Major Versions

0.3.10 → 1.0.02015-06-16

1.1.1 → 2.0.x-dev2016-02-08

PHP version history (3 changes)0.1PHP &gt;=5.4.0

1.0.8PHP &gt;=5.5.9

2.0.x-devPHP &gt;=5.6

### Community

Maintainers

![](https://www.gravatar.com/avatar/510722bbe761ef79715758d0485ec689228c4d4a3aaafce894c24a2bc9cb0fac?d=identicon)[nelsonkopliku](/maintainers/nelsonkopliku)

---

Top Contributors

[![mitchellvanw](https://avatars.githubusercontent.com/u/3061428?v=4)](https://github.com/mitchellvanw "mitchellvanw (116 commits)")[![GrahamCampbell](https://avatars.githubusercontent.com/u/2829600?v=4)](https://github.com/GrahamCampbell "GrahamCampbell (6 commits)")[![bcalik](https://avatars.githubusercontent.com/u/9222368?v=4)](https://github.com/bcalik "bcalik (4 commits)")[![driesvints](https://avatars.githubusercontent.com/u/594614?v=4)](https://github.com/driesvints "driesvints (3 commits)")[![benbridts](https://avatars.githubusercontent.com/u/1301221?v=4)](https://github.com/benbridts "benbridts (2 commits)")[![nelsonkopliku](https://avatars.githubusercontent.com/u/8167114?v=4)](https://github.com/nelsonkopliku "nelsonkopliku (2 commits)")[![chromeorfirefox](https://avatars.githubusercontent.com/u/10752650?v=4)](https://github.com/chromeorfirefox "chromeorfirefox (2 commits)")[![Shotman](https://avatars.githubusercontent.com/u/6579166?v=4)](https://github.com/Shotman "Shotman (2 commits)")[![WyriHaximus](https://avatars.githubusercontent.com/u/147145?v=4)](https://github.com/WyriHaximus "WyriHaximus (2 commits)")[![rdohms](https://avatars.githubusercontent.com/u/94331?v=4)](https://github.com/rdohms "rdohms (1 commits)")[![jk](https://avatars.githubusercontent.com/u/40043?v=4)](https://github.com/jk "jk (1 commits)")[![bberlijn](https://avatars.githubusercontent.com/u/9305845?v=4)](https://github.com/bberlijn "bberlijn (1 commits)")[![cmfcmf](https://avatars.githubusercontent.com/u/2145092?v=4)](https://github.com/cmfcmf "cmfcmf (1 commits)")[![deefour](https://avatars.githubusercontent.com/u/14762?v=4)](https://github.com/deefour "deefour (1 commits)")[![antonioribeiro](https://avatars.githubusercontent.com/u/3182864?v=4)](https://github.com/antonioribeiro "antonioribeiro (1 commits)")[![Mikulas](https://avatars.githubusercontent.com/u/192200?v=4)](https://github.com/Mikulas "Mikulas (1 commits)")[![Nyholm](https://avatars.githubusercontent.com/u/1275206?v=4)](https://github.com/Nyholm "Nyholm (1 commits)")[![obokaman-com](https://avatars.githubusercontent.com/u/346009?v=4)](https://github.com/obokaman-com "obokaman-com (1 commits)")[![pborreli](https://avatars.githubusercontent.com/u/77759?v=4)](https://github.com/pborreli "pborreli (1 commits)")

### Embed Badge

![Health badge](/badges/nelsonkopliku-backup-manager/health.svg)

```
[![Health](https://phpackages.com/badges/nelsonkopliku-backup-manager/health.svg)](https://phpackages.com/packages/nelsonkopliku-backup-manager)
```

###  Alternatives

[laravel/framework

The Laravel Framework.

34.6k509.9M16.9k](/packages/laravel-framework)[shopware/platform

The Shopware e-commerce core

3.3k1.5M3](/packages/shopware-platform)[magento/community-edition

Magento 2 (Open Source)

12.1k52.1k10](/packages/magento-community-edition)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.3M151](/packages/sulu-sulu)[laravel/vapor-cli

The Laravel Vapor CLI

31310.7M8](/packages/laravel-vapor-cli)[wheelpros/fitment-platform-api

Magento 2 (Open Source)

12.1k1.2k](/packages/wheelpros-fitment-platform-api)

PHPackages © 2026

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