WaffleSyrup - Simple backup solution written by Go.

WaffleSyrup

Simple backup solution written by Go.

License MIT Golang 1.17 Build status, sorry for screen readers.

Usage

WaffleSyrup runs in the current working directory. It will create ./tmp directory to save tarballs which includes archived files. So you need to obtain proper permissions to cwd.

WaffleSyrup is a command line tool. Simply type wafflesyrup in the console for help. The basic commands are:

  • wafflesyrup start: Start backup.
  • wafflesyrup version: Displays the current running version of WaffleSyrup. Aliased as v.

Build from source

  • Install go(1.17) from https://go.dev
  • Download source or git clone https://github.com/qroffle/wafflesyrup
  • Change GOOS or GOARCH if you want to change OS or ARCH.
  • Execute ./build.sh on UNIX based OS, ./build.bat on windows.
  • Check the ./bin directory for generated binary.

Configuration

First, you need to create config.json which contains configuration data. You can simply start with renaming config.json.example to config.json.

Backups

config.json has one backups array, which contains some backup sets. Each backup item must contain name, directories, savepoints and can contain postscripts.

{
  "backups": [
    {
      "name": "example",
      "directories": [],
      "savepoints": [],
      "postscripts": []
    }
  ]
}

Directories

directories has array-typed value, that can contain some backup directory information. Each directory must contain path and can contain excluded array.

{
  "directories": [
    {
      "path": "/home/example/cute_waffle",
      "excluded": [
        "node_modules/",
        ".git"
      ]
    }
  ]
}

Savepoints

savepoints has array-typed value, that can contain some backup destination information. Each savepoint must contain driver, identity. Each driver should get another structures of identity. Show details at Supported Drivers

{
  "savepoints": [
    {
      "driver": "sftp",
      "identity": {}
    }
  ]
}

LMAO https://ubuntuforums.org/archive/index.php/t-825400.html

Postscripts

Currently unavailable.

Supported Drivers

WaffleSyrup supports two drivers.

sftp

sftp requires host, port, username, password fields at identity.

{
  "driver": "sftp",
  "identity": {
    "host": "127.0.0.1",
    "port": "22",
    "username": "bitchchecker",
    "password": "has_joined_#stopHipHop"
  }
}

gdrive

gdrive requires credentialFile, folderId fields at identity. Credential files can be obtained from https://console.cloud.google.com.

Gdrive requires oauth tokens.

WaffleSyrup will give you some authentication links, and ask you the token. After receives, WaffleSyrup create ./tokens/ directory and will save tokens into.

{
  "driver": "gdrive",
  "identity": {
    "credentialFile": "./credentials/client_secret_xxx.apps.googleusercontent.com.json",
    "folderId": ""
  }
}
Similar Resources

MongoBackup - This is container that takes backup of MongoDB

MongoBackup This is container that takes backup of MongoDB. It is ment to be ran

Feb 15, 2022

Lxmin - Backup and Restore LXC instances from MinIO

lxmin Backup and restore LXC instances from MinIO Usage NAME: lxmin - backup a

Jul 5, 2022

Github-backup application

Github-backup application This application clone your github repository with all commits, branch, tags etc. to your local disk Dependencies This App u

Jun 9, 2022

Go Hosting Solution for AWS, Google Could and Digital Ocean

Go Hosting Solution for AWS, Google Could and Digital Ocean

Furnace Intro Brief Explanation Here is a very short description of what Furnace does in a handy IKEA manual format. In More Depth AWS Cloud Formation

Jul 10, 2022

Prevent Kubernetes misconfigurations from ever making it (again 😤) to production! The CLI integration provides policy enforcement solution to run automatic checks for rule violations. Docs: https://hub.datree.io

Prevent Kubernetes misconfigurations from ever making it  (again 😤) to production! The CLI integration provides policy enforcement solution to run automatic checks for rule violations.  Docs: https://hub.datree.io

What is Datree? Datree helps to prevent Kubernetes misconfigurations from ever making it to production. The CLI integration can be used locally or in

Aug 4, 2022

An high performance and ops-free local storage solution for Kubernetes.

An high performance and ops-free local storage solution for Kubernetes.

Carina carina 是一个CSI插件,在Kubernetes集群中提供本地存储持久卷 项目状态:开发测试中 CSI Version: 1.3.0 Carina architecture 支持的环境 Kubernetes:1.20 1.19 1.18 Node OS:Linux Filesys

May 18, 2022

ControllerMesh is a solution that helps developers manage their controllers/operators better.

ControllerMesh is a solution that helps developers manage their controllers/operators better.

ControllerMesh ControllerMesh is a solution that helps developers manage their controllers/operators better. Key Features Canary update: the controlle

Jul 26, 2022

Dependency management solution for Hashicorp Terraform modules

TERRADEP This is the module dependency solution for implementing terraform's modules dependency. Using this, users can now manage dependencies both fr

Dec 21, 2021

StoneWork is a high-performance, all-(CNFs)-in-one network solution.

StoneWork, high-performance dataplane, modular control-plane solution StoneWork is used by PANTHEON.tech to integrate its CNFs on top of a single shar

Jul 19, 2022
Lightweight, single-binary Backup Repository client. Part of E2E Backup Architecture designed by RiotKit

Backup Maker Tiny backup client packed in a single binary. Interacts with a Backup Repository server to store files, uses GPG to secure your backups e

Apr 4, 2022
Simple SFTP backup tool for files.

BakTP Simple SFTP backup tool for files. config.example.json Contains an example how to backup a database. This application can be added to crontab -e

Dec 30, 2021
A simple program to automatically backup a database using git. Err handling by Sentry, Reporting by Betteruptime. Made with 🩸 , 😓 & 😭

backup What is this? A Simple program to automatically backup a database using git. Err handling by Sentry, Uses heartbeats by Betteruptime Made with

Mar 8, 2022
Simple backup tool for PostgreSQL

pg_back dumps databases from PostgreSQL Description pg_back is a dump tool for PostgreSQL. The goal is to dump all or some databases with globals at o

Jul 14, 2022
🛅 Backup your Kubernetes Stateful Applications

Stash Stash by AppsCode is a cloud-native data backup and recovery solution for Kubernetes workloads. If you are running production workloads in Kuber

Aug 11, 2022
Kubegres is a Kubernetes operator allowing to create a cluster of PostgreSql instances and manage databases replication, failover and backup.

Kubegres is a Kubernetes operator allowing to deploy a cluster of PostgreSql pods with data replication enabled out-of-the box. It brings simplicity w

Aug 11, 2022
Dgraph Backup and Restore (cloud). Read-only mirror.

dgbrx Dgraph Backup and Restore X dgbrx is a Go commandline tool which helps to do a backup, restore or clean on a Dgraph Cloud (aka slash / managed)

Oct 28, 2021
Tape backup software optimized for large WORM data and long-term recoverability

Mixtape Backup software for tape users with lots of WORM data. Draft design License This codebase is not open-source software (or free, or "libre") at

Apr 23, 2022
Kstone is an etcd management platform, providing cluster management, monitoring, backup, inspection, data migration, visual viewing of etcd data, and intelligent diagnosis.
Kstone is an etcd management platform, providing cluster management, monitoring, backup, inspection, data migration, visual viewing of etcd data, and intelligent diagnosis.

Kstone 中文 Kstone is an etcd management platform, providing cluster management, monitoring, backup, inspection, data migration, visual viewing of etcd

Aug 4, 2022
A library for writing backup programs in Golang

Barkup godoc.org/github.com/keighl/barkup Barkup is a library for backing things up. It provides tools for writing bare-bones backup programs in Go. T

Jul 26, 2022