mirror of
https://github.com/Portabase/agent.git
synced 2026-10-10 23:15:04 +00:00
5d87fb2d7d8118279f0f653392353dda43d044fe
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.
Portabase Agent (Rust)
Portabase Agent is use with Portabase Server. This service is for backup/restore db instances. Portabase Server
Website • Documentation • Demo • Installation • Report Bug • Request Feature
Installation
You have 4 ways to install Portabase Agent:
- Automated CLI (recommended) - details
- Docker Compose setup - details
- Kubernetes with Helm details
- Development setup - details
Ensure Docker is installed on your machine before getting started.
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 |
🥇 Gold Sponsors
|
Become a gold sponsor |
🥈 Silver Sponsors
|
Become a silver sponsor |
🤝 Community Sponsors
|
Become a community sponsor |
License
Distributed under the Apache License. See LICENSE.txt for more information.
Description
Agent for the Portabase Server. Database backup & restore tool for PostgreSQL, MsSQL, MySQL/MariaDB, MongoDB, SQLite, Redis, Valkey, Firebird and Docker Volume.
backupdatabase-managementdevopsdockerfirebird-databasefirebirdsqlmariadbmongodbmssql-databasemysqlpostgresqlredisrestorationrestorerustsqlite-databasesqlite3tokio-rsvalkey
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%