cluetec / lifeboat Goto Github PK
View Code? Open in Web Editor NEWBackup solution to create backups from any kind of source system to any kind of storage system
Home Page: https://cluetec.de
License: Apache License 2.0
Backup solution to create backups from any kind of source system to any kind of storage system
Home Page: https://cluetec.de
License: Apache License 2.0
If the user wants to backup a folder from the filesystem, we should provide him the possibility to exclude certain files.
A good practice would be a list of regex paths which should be ignored.
We could also think of a .lifeboatignore
file. This file wouldn't make sense in terms of backing up the files of another application, but e.g. if a user wants to backup his local PC it would be a great feature.
Think also directly how a back of an directory to e.g. S3 could look like. I guess we maybe need to adjust our interfaces.
We need a way to provide the destination resource metadata/contextual data from the source resource.
filesystem -> filesystem backup where the target file should be named just like the source file suffixed with a user specified string f.e. timestamp.
Instead of running the io.Copy
directly in the backup
command we introduce a new struct (f.e. called BackupProcessor
) which takes in the reader and writer for the io.Copy
function and in addition to that arbitrary metadata (maybe a map[string]any
or we even can decide on a fixed set of possible metadata for each destination type?) and populates the writer with that metadata before running the io.Copy
We aim to provide support for various resource types (such as sources and destinations), each requiring distinct configurations. Nevertheless, we strive to keep the setup process effortless. Therefore, our proposal is to specify the resource type and the associated configuration at the same level.
For example, the configuration should look something like the following:
source:
type: filesystem
path: /take-my-backup-from-here
destination:
type: filesystem
path: /store-the-backup-here
The type
field indicates the resource type (e.g. filesystem
, http
, postgresql
, mongodb
, hashicorp vault
, ...). Everything else will be the configuration of the respective resource.
For:
When adding support for new systems, I also test the negative paths: for example, what happens if the HashiCorp Vault token doesn't have the required permissions or isn't valid at all.
During these tests, due to my oversight in changing the path, I often get an error message saying that the target file already exists.
This brings up the question of whether the destination file should be deleted if the backup process fails. In my opinion, there is no reason to keep it, but I am open to other suggestions.
Homebrew supports both macOS and Linux (https://docs.brew.sh/Homebrew-on-Linux), and therefore would be a very good first step towards distributing binaries.
Reference:
Especially for testing purposes it and as far as #19 isn't implemented it would be nice to have the possibility to enable the overwriting of existing backups.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.