PHPackages                             thesaturn/c14-backup-tool - 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. thesaturn/c14-backup-tool

AbandonedArchivedProject

thesaturn/c14-backup-tool
=========================

Backup tool for cheap C14 storage provided by online.net. Support encryption, diff backups and backup rotation. Description about storage https://www.online.net/en/c14

1.1.1(8y ago)68MITPHP

Since Mar 29Pushed 6y ago1 watchersCompare

[ Source](https://github.com/TheSaturn/C14BackupTool)[ Packagist](https://packagist.org/packages/thesaturn/c14-backup-tool)[ RSS](/packages/thesaturn-c14-backup-tool/feed)WikiDiscussions master Synced 2mo ago

READMEChangelog (7)Dependencies (2)Versions (8)Used By (0)

C14 Backup Tool
===============

[](#c14-backup-tool)

Backup tool for cheap C14 storage provided by online.net. Support encryption, diff backups and backup rotation. Description and prices here: .

[Описание на русском](https://habrahabr.ru/post/325256/)

Inspired by BackInTime

Features
========

[](#features)

- Multi profile configuration
- Exclude folders and files
- Client-side encryption
- Backup rotations

Requirements
============

[](#requirements)

PHP &gt;= 5.6

rsync

encfs (+encfstools)

sshfs

ssh

ssh-keygen

### Optional dependence

[](#optional-dependence)

cron

composer

fabiang/xmpp

Installation
============

[](#installation)

Without xmpp logs and composer

```
git clone https://github.com/TheSaturn/C14BackupTool.git
cd C14BackupTool
cp config.example.php config.php

```

If you want get logs by xmpp:

```
composer create-project thesaturn/c14-backup-tool
cp config.example.php config.php

```

Terminology
===========

[](#terminology)

*C14* — Storage type

*Safe* — Name of archives group in C14

*Archive* — Contains your files

Configuring
===========

[](#configuring)

All possible options described in `config.example.php`. Below some tips

- `config.php` must return array with profiles `return [...]`
- Every profile has its name

```
return [
    'default' => [...],
    'books2' => [...],
    'books3' => [...],
    'books4' => [...],
];

```

- All paths must be absolute to avoid possible errors

Usage
=====

[](#usage)

Command line usage: `php /path/to/main.php profileName`

1. Register to [online.net](https://console.online.net/en/login)
2. Add your [debit/credit card](https://console.online.net/en/bill/list)
3. Generate ssh keys (if you don't have them) `ssh-keygen`
4. Edit config.php as you like
5. Test your configuration
6. Add backup tool to [cron](https://wiki.archlinux.org/index.php/cron)
7. Time to time look through archives in [safe lists](https://console.online.net/en/storage/c14/safe/list) to check size of archives

Notices
=======

[](#notices)

- Diff backups created only in one archive. So you can always delete any archive without corrupting others
- Storage API is a quite slow and not stable. That is why code try several times to do operations and have sleep() function to wait, while operations will be applied.
- Archive creates for 7 days, but tool make backups only for 6 days since archive created.
- Encfs config file also copied to archive. So you don't need to save it somewhere else.
- If all rotation options is to false, all backups will be saved.
- If encryption enabled, exclude working with only absolute paths, regex is not available

Not implemented yet
===================

[](#not-implemented-yet)

- Better config validation
- Dependencies checking
- Tests

Algorithm
=========

[](#algorithm)

1. Send a message about backup starting "Backup started for safe"
2. Find a safe with safe name (set up in config)
3. Find an archive in the safe to store backups
4. Create necessary folders
5. Mount encfs (encrypted view of the root FS)
6. Encrypt included and excluded file names (for rsync)
7. Mount the archive (sshfs)
8. Clean up backup\_temp folder (if last backup was unsuccessful)
9. Copy hard links from the last backup folder
10. Send the message "YAY! The real backuping is starting!"
11. rsync
12. rename backup\_temp to C14ABT/$date
13. Write date of successful backup to description of the archive
14. Send "Backup success."
15. Unmount sshfs and encfs

###  Health Score

29

—

LowBetter than 60% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity10

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity68

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 ~62 days

Recently: every ~93 days

Total

7

Last Release

2956d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/34cab29ee4087062e25c0849483d6b0791dba67d673cedca5ff3cf6bc78008c7?d=identicon)[thesaturn](/maintainers/thesaturn)

---

Top Contributors

[![SaturnTeam](https://avatars.githubusercontent.com/u/10252514?v=4)](https://github.com/SaturnTeam "SaturnTeam (2 commits)")

### Embed Badge

![Health badge](/badges/thesaturn-c14-backup-tool/health.svg)

```
[![Health](https://phpackages.com/badges/thesaturn-c14-backup-tool/health.svg)](https://phpackages.com/packages/thesaturn-c14-backup-tool)
```

PHPackages © 2026

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