dillard ab3f0ea948 Phase 0: repository on files_external storages without a mount (spike D)
ExternalStorageFactory builds storages with files_external's own
backends and auth mechanisms from an unsaved StorageConfig (as its
ConfigAdapter does), and StorageBackend adapts any IStorage to IBackend
(writeStream, seekable range reads, temp name + rename except on S3).
IBackend::put() now owns and always closes the stream, because
files_external's S3 writeStream closes it.

Spike D (NC34): S3 (SeaweedFS) and SFTP: 120 MiB backup ~6s, unchanged
run uploads nothing, restore bit-identical, no files_external mount
created, no temp files (max 12 KiB in /tmp). Works with files_external
disabled when its classes are loaded. Backup peak memory 85-89 MiB on
these targets (to investigate).
2026-10-01 18:33:15 +02:00

NG Backup

Encrypted, incremental backups of Nextcloud with restore from the web interface. Works without shell access: no external programs, no extra PHP extensions beyond sodium.

Status: phase 0 (prototype). Not usable yet. See PLAN.md for the design.

License: AGPL-3.0-or-later.

S
Description
No description provided
Readme AGPL-3.0 8.2 MiB
1.1.0 Latest
2026-11-09 17:44:26 +01:00
Languages
PHP 84.9%
Shell 9.7%
Vue 5%
JavaScript 0.4%