open-source-ideas / ideas

💡 Looking for inspiration for your next open source project? Or perhaps you've got a brilliant idea you can't wait to share with others? Open Source Ideas is a community built specifically for this! 👋
6.52k stars 222 forks source link

"Forever" Github Storage 🌐💾 #310

Open fire17 opened 2 years ago

fire17 commented 2 years ago

Project description

The fact that all of our code projects are safely hosted on git should not be taken for granted. But what if I want the same benifites for all my other (important or common) files. This project aims to create an easy way to set up a multi git repo sync to your computer(s).

Have a main folder that is watched and auto syncs subfolders as git repos. Creating new folders in this main directory should open a new repo with that name, file changes should be auto committed every few minutes or manually when chosen, as simple backups or important bookmarks. Every verified device could use it's own branch , and can be easily set as main branch while renaming previous main as mainBackupDatetime. In the main directory folder there could be two folders - public and private - opening a folder in each of them should mark the repo public/private automatically respectively

If we can achieve this will minimal recurring setup, then we can have sort of open source synced filesystem cloud drive. Making easy to transfer between computers, publishing pubic projects, and keeping important files safe "forever".

Could add an option to autoencrypt data before uploading for those who love for extra security - there will be a mirror of the main folder, but encrypted, and it is the one that will be synced on GitHub

Option to have easy migration from GitHub to another git platform

Relevant Technology

Git GitHub api Python for cross platform file watchdog rsync ?

Guessing that there are some well tested platforms that utiles git sync, need to understand how to wrap one up nicely, allowing easy setup, simple structure as described, and easy control options such as saving a labeled (not autobackup) commit for a project/entire main directory of repos, and changing repo settings.

Complexity and required time

I'm guessing the hardest parts are:

  1. Getting plugged in correctly to the github api and setting ups credentials automatically, allowing simple signin per user to their account in a way that is secure and also allows managing (at least some) repos
  2. Making a robust protocol for filewatching, branch coping, and git commiting based on the principles mentioned prior

Complexity

Required time (ETA)

Categories

kusabana commented 2 years ago

To quote GitHub wiki

Git is not designed to serve as a backup tool.

This can quickly make GitHub take action (and I don't doubt they will if it becomes widespread enough)

We recommend repositories remain small, ideally less than 1 GB, and less than 5 GB is strongly recommended. Smaller repositories are faster to clone and easier to work with and maintain. If your repository excessively impacts our infrastructure, you might receive an email from GitHub Support asking you to take corrective action.

fire17 commented 2 years ago

Thank you for the info :) I'm aware that the platform is not originally suted as an optional storage solution, but as I see it 1-5 gb per repo is a lot to play with

This is not meant to backup media or large files, it's like a pocket, like google drive. It has its capacity and limitations but if it's dead simple to use it could be quite handy