PHPackages                             chronon/pawsback - 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. chronon/pawsback

AbandonedArchivedProject

chronon/pawsback
================

A PHP backup solution using S3

1.0.2(8y ago)215[3 PRs](https://github.com/chronon/pawsback/pulls)MITPHPPHP &gt;=7.0.0

Since May 6Pushed 3y ago1 watchersCompare

[ Source](https://github.com/chronon/pawsback)[ Packagist](https://packagist.org/packages/chronon/pawsback)[ RSS](/packages/chronon-pawsback/feed)WikiDiscussions dev Synced 3d ago

READMEChangelog (3)Dependencies (3)Versions (8)Used By (0)

[![CircleCI](https://camo.githubusercontent.com/0b0161c3c412427873ed0a3cf06afc256e61c84122d51cac3a5c342c2138e10e/68747470733a2f2f636972636c6563692e636f6d2f67682f6368726f6e6f6e2f706177736261636b2e7376673f7374796c653d736869656c6426636972636c652d746f6b656e3d31333361356231313562396338666338613563343534633165303531613630613061663762663863)](https://circleci.com/gh/chronon/pawsback)

PawsBack
========

[](#pawsback)

- **`P` as in PHP** since that's what it's written in.
- **`aws` as in Amazon Web Services S3** since that is where it backs things up to.
- **`Back` as in backup** since that is what it does.

`PawsBack` is a PHP CLI tool which allows you to configure multiple backup sources in a configuration file and sync them to S3. The AWS PHP SDK is used for bucket checking and creation, but not for uploading since it offers no intelligent syncing (everything is uploaded every time). `PawsBack` generates commands for the [aws cli tool](https://aws.amazon.com/cli/) which does have an intelligent sync mode, allowing you to upload only changed files and delete ones that no longer exist.

Requirements
------------

[](#requirements)

- PHP - developed and tested with v7.0.x but should work on v5.6 as well ([see test build](https://circleci.com/gh/chronon/pawsback/44) with PHP v5.6.22 and PHPUnit v5.7.19). To install with PHP 5.6 change the `require` version in `composer.json`, and optionally set the PHPUnit version to `^5.0` to run tests.
- The [aws cli tool](https://aws.amazon.com/cli/), which requires Python. The [bundled installer](http://docs.aws.amazon.com/cli/latest/userguide/awscli-install-bundle.html) is very simple to install.

Installation
------------

[](#installation)

To install globally into `~/.composer/vendor/bin`:

```
composer global require chronon/pawsback

```

You can then symlink `~/.composer/vendor/bin` to an existing directory in your `PATH` (such as `~/bin`) or add the directory to your `PATH`.

Configuration
-------------

[](#configuration)

A sample configuration file can be found at `tests/test_app/test.json` and is similar to the one below.

#### `provider:S3`

[](#providers3)

- required `bucket`: the bucket to backup to
- optional `region`: S3 region, default is `"us-east-1"`
- optional `profile`: aws cli tool profile, default is `"default"`
- optional `delete`: whether to delete S3 files if removed from source, default is `true`
- optional `options`: any additional aws cli tool options to add globally, default is `""`

#### `backups:sources`

[](#backupssources)

- required `name`: the directory on S3 that will be be created and store the data for this source
- required `root`: an absolute path to the backup root directory
- required `dirs`: and array of directories as key and backup optional options as values

The [S3 command documentation](http://docs.aws.amazon.com/cli/latest/userguide/using-s3-commands.html) has lots of useful examples explaining `--exclude`, `--include`, etc. An example is in the sample configuration file below, where in the `prefixed` subdirectory only files that start with `baz_` would be backed up.

#### `PawsBack` sample configuration file:

[](#pawsback-sample-configuration-file)

```
{
    "provider": {
        "S3": {
            "bucket": "chronon-pawsback-test-1"
        }
    },
    "backups": {
        "sources": [
            {
                "name": "foo.com",
                "root": "/home/ubuntu/pawsback/tests/test_app/foo.com/",
                "dirs": {
                    "shared/img": "",
                    "shared/files": ""
                }
            },
            {
                "name": "bar.com",
                "root": "/home/ubuntu/pawsback/tests/test_app/bar.com/",
                "dirs": {
                    "shared/files": "",
                    "prefixed": "--exclude '*' --include 'baz_*'"
                }
            }
        ]
    }
}
```

Usage
-----

[](#usage)

The single entry point is `bin/pawsback`, which can be run with the `-h` options for help:

```
pawsback help:

  -p    The full path to the backup config file
  -v    Verbose output, can be used with dry run
  -d    Dry run, display what would happen without action
  -g    Generate mode, display a list of commands without validating anything
  -h    This help message

```

**NOTES:**

- The `-d` option for dry run **will check and create a bucket** if it doesn't exist as it's using the aws cli tool's dry run mode. To just see the commands that will run without checking/creating a bucket or verifying backup paths, use the `-g` mode to generate a list of commands.
- All options can be used together.

AWS CLI Configuration
---------------------

[](#aws-cli-configuration)

Once installed the `aws` cli tool can be configured by running `aws configure`, or by creating the simple configuration files `config` and `credentials` in `~/.aws`. If multiple profiles are needed, configure the profiles in the `aws` configuration (see [named profiles](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)) and use the named profile in your `provider:S3:profile` configuration.

Tests
-----

[](#tests)

Tests (PHP Codesniffer and PHPUnit) can be run with `bin/run-tests`. Code coverage is **100%**, and any pull requests **must** include applicable tests.

Reference:
----------

[](#reference)

- [https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html](http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)
-
-

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity63

Established project with proven stability

 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

Every ~74 days

Total

3

Last Release

3147d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/bb1a91ef5fd56cf4aa087c38991f66371bfa857fffdc597f8aeb17ed605f2226?d=identicon)[chronon](/maintainers/chronon)

---

Top Contributors

[![chronon](https://avatars.githubusercontent.com/u/57735?v=4)](https://github.com/chronon "chronon (39 commits)")

---

Tags

backupphps3

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/chronon-pawsback/health.svg)

```
[![Health](https://phpackages.com/badges/chronon-pawsback/health.svg)](https://phpackages.com/packages/chronon-pawsback)
```

###  Alternatives

[league/flysystem-aws-s3-v3

AWS S3 filesystem adapter for Flysystem.

1.6k263.6M790](/packages/league-flysystem-aws-s3-v3)[aws/aws-sdk-php-laravel

A simple Laravel 9/10/11/12/13 service provider for including the AWS SDK for PHP.

1.7k35.6M75](/packages/aws-aws-sdk-php-laravel)[humanmade/s3-uploads

WordPress plugin to store uploads on S3

2.1k2.4M9](/packages/humanmade-s3-uploads)[bref/laravel-bridge

An advanced Laravel integration for Bref, including Octane support.

3384.1M11](/packages/bref-laravel-bridge)[magento/magento2-functional-testing-framework

Magento2 Functional Testing Framework

15511.5M30](/packages/magento-magento2-functional-testing-framework)[laravel-notification-channels/aws-sns

Amazon Simple Notification Service (AWS SNS) notification channel for Laravel.

541.1M2](/packages/laravel-notification-channels-aws-sns)

PHPackages © 2026

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