Skip to content

DarkgreyDevelopment/Cloud-ShareSync

Repository files navigation

Cloud-ShareSync Banner

GitHub latest release official release
Releases CodeQL Documentation


💥❗ 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
    • 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.
    • 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.

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.

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:


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.

  • ToDo: Finish writing contribution guides.

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.