Charles Gauthereau 5d87fb2d7d feat(files): files sources with Archive, Snapshots and Sync methods
Back up and restore plain directories, alongside the database sources.

Files source and Archive (P0)
- `files` type: absolute path (not /), options.exclude and
  options.one_file_system; walk + tar.gz with symlinks kept as links,
  special files skipped, unreadable entries fail the run.
- Mirror restore: archive validated first, then everything not excluded
  is wiped (mount points and special files kept) and the archive is
  extracted, retrying without metadata on filesystems refusing chown/chmod.
- Windows-safe platform helpers; helm extraVolumes/extraVolumeMounts.

Universal rclone mapper (P1)
- rclone_target(storage) for s3, blob, gcs, drive, rclone and sftp; sftp
  goes through it; rclone obscure reads the password from stdin.

Snapshots, restic (P2)
- restic in the image; repository per source and channel, password
  derived from the master key (HKDF); stable host, bs:<row> tags,
  translated excludes; exit 3 fails and forgets the snapshot.
- Mirror restore with `restic restore --delete`; restore payload carries
  the encrypted channel; snapshot ids must be full ids.
- Engine in the ping and in scheduled task metadata.

One locked method per source (spec A)
- databases.json declares options.method (archive, snapshot, sync),
  reported in the ping for local sources only.
- Sync: rclone sync per channel onto <folder>/sync/<id>/current, refuses
  an empty source, reports transferred/deleted counters.

Local channel (spec B)
- Snapshots and Sync reach the dashboard's local storage through its
  append-only restic REST server and its WebDAV server.

Security
- Strict rclone config validation: one section, no duplicate keys, no
  command, credential or host-file keys, no quoted values, valid backend
  type, blocked backends.
- Scheduled task metadata (decrypted storages) is no longer logged.
2026-10-04 10:09:56 +02:00
2026-09-29 14:41:17 +02:00
2026-09-22 13:24:54 +02:00
2026-09-22 13:45:49 +02:00
2026-03-05 11:19:47 +01:00
2026-09-10 22:55:47 +02:00
2026-09-17 10:47:32 +02:00
2026-03-08 20:58:19 +01:00
2026-09-26 16:30:44 +00:00
2026-07-02 21:51:17 +02:00
2026-05-11 22:04:36 +02:00
2026-09-17 10:47:32 +02:00
2026-03-27 22:24:59 +01:00
2026-09-17 11:20:16 +02:00
2026-03-16 12:16:03 +01:00
2026-07-24 18:29:04 +02:00
2026-09-23 09:06:48 +02:00
2026-09-29 14:40:12 +02:00


Logo

Portabase Agent (Rust)

Portabase Agent is use with Portabase Server. This service is for backup/restore db instances. Portabase Server

License: Apache Docker Pulls Helm Chart Platform Support Portabase

PostgreSQL MySQL SQLite Redis MariaDB MongoDB Valkey Firebird

Self Hosted Open Source

Rust Tokio Redis Docker

Website • Documentation • Demo • Installation • Report Bug • Request Feature

Installation

You have 4 ways to install Portabase Agent:

Ensure Docker is installed on your machine before getting started.

Contributors

Contributors

Become a Sponsor

🙏 Thank you to the incredible sponsors for supporting this project! Your contributions help keep Portabase running and growing. If you'd like to join and become a sponsor, please visit the sponsorship page and be part of something great! 🚀

💎 Platinum Sponsors

Become a platinum sponsor
Become a platinum sponsor

🥇 Gold Sponsors

Become a gold sponsor
Become a gold sponsor

🥈 Silver Sponsors

Become a silver sponsor
Become a silver sponsor

🤝 Community Sponsors

Become a community sponsor
Become a community sponsor

License

Distributed under the Apache License. See LICENSE.txt for more information.

S
Description
Agent for the Portabase Server. Database backup & restore tool for PostgreSQL, MsSQL, MySQL/MariaDB, MongoDB, SQLite, Redis, Valkey, Firebird and Docker Volume.
Readme Apache-2.0 Cite this repository 211 MiB
Languages
Rust 96.6%
Shell 1.5%
Dockerfile 1.2%
Just 0.6%
TSQL 0.1%