💥❗ Cloud-ShareSync is in a pre-release state. ❗💥
Note: Documentation may change at any time and without any notice.
Description:
Cloud-ShareSync is an open source cloud storage backup and restore application.
The long term goal of this project is to build a backup application, akin to OneDrive, that extends the Files On Demand/Fuse functionality to new public cloud storage providers. Supporting platforms such as linux and MacOS is also a priority.
Cloud-ShareSync (v1.x) will have a much more limited scope. The application currently (v0.7.0-PreRelease) has two separate modes of operation; Backup and Restore.
Cloud-ShareSync runs on Windows*, Linux*, and MacOS*.
Documentation:
Project documentation can be found at docs.cloud-sharesync.com.
Getting Started:
Cloud-ShareSync runs on Windows, Linux, and MacOS. Additionally container images are also available.
Please refer to the How-To Articles before opening any issues.
Initial Setup:
Roadmap:
The project planning & development board is where the specifics of the roadmap can be found.
Cloud-ShareSync is currently in a pre-release state and will follow semantic versioning upon release.
Phase 01 - V0.7:
- Status : Nearing Completion.
- Goal : Establish initial backup and restore functionality.
- Features:
- Backup / Restore modes are specified by passing in arguments via the commandline.
- Ex:
Cloud-ShareSync.exe backup
- Ex:
Cloud-ShareSync.exe restore
- Ex:
- A config file controls the the remaining application settings.
- Console logging and rolling log files are enabled by default.
- OpenTelemetry trace logging is also available when enabled (currently partially enabled).
- Application data can be stored in a local Sqlite database.
- Application can run in either console or GUI mode.
- Files can be uploaded/downloaded to/from a BackBlaze B2 bucket.
- BackBlaze B2 bucket specified by user in config.
- When the backup mode is run repeatedly; Files that were uploaded to the bucket on prior runs will be skipped if they are unchanged.
- Files can be compressed before upload.
- You may also elect to have a unique password generated during the compression process to password protect compressed files.
- File compression has a dependency on 7-Zip.
- Files can be encrypted prior to upload.
- File encryption depends on ChaCha20Poly1305 platform support.
- Restore mode uses the database to restore all files that were uploaded to BackBlaze B2 by the the backup application.
- Restore mode will decompresses files after download if they were compressed during the upload process.
- Restore mode decrypts files after download if they were encrypted during the upload process.
- Backup / Restore modes are specified by passing in arguments via the commandline.
Phase 02 - v0.8:
- Status : Solidifying Acceptance Criteria.
- Goal : Add Azure Blob Storage, Postgres, and Selective Restore functionality
- Features:
- Add ability to upload/download files to/from Azure Blob Storage.
- Backup process can archive to both BackBlazeB2 and Azure Blob Storage simultaneously.
- Restore mode requires specifying which cloud provider to restore files from.
- Enable Postgres alternative DB functionality.
- Postgres OR Sqlite. Not both.
- Add selective restore GUI option.
- Selective restore GUI will present a table/spreadsheet like view of previously uploaded files.
- Allows the user to restore individual files from either configured cloud provider.
- Add ability to upload/download files to/from Azure Blob Storage.
Phase 03 - v0.9:
- Status : Developing Acceptance Criteria.
- Goal : Add "Sync" functionality & convert to background service.
- Features:
- Application needs to combine backup and restore modes into an always on "Sync" mode.
- Application should run as a background service.
- Application should (continue to) have an associated management GUI.
- Management GUI should primarily allow input of app settings.
- GUI should also contain the SelectiveRestore menu.
Phase 04 - Pre-1.0 Release:
- Status : Developing Acceptance Criteria.
- Goal : Focus on code quality and tests.
Beyond:
- Status : Developing Acceptance Criteria.
- Goal : Add additional cloud providers & Add Files On Demand/FUSE functionality.
- Features:
- Add ability to upload/download files to/from Aws S3.
- Add ability to upload/download files to/from Google Cloud Storage.
- Reference Docs:
Contributing:
Contributing is encouraged!
Please help keep the repository inclusive and fun! Abusive, rude, disrespectful or inappropriate behavior will not be tolerated.
Read the Code of Conduct for more details.
Disclaimers*
Cloud-ShareSync is not affiliated with Microsoft, BackBlaze, Google, or Amazon. All code is provided free of charge, as is, and with no warranty under an MIT license.