glesha Documentation

Glesha is a cross-platform archive and upload utility.

Table of Contents

Introduction

glesha is a cross-platform archive and upload CLI utility written in golang. glesha's primary purpose is to provide a simple and reliable method for backing up valuable data such as photos, videos and project files.

glesha simplifies backups by first packaging a directory into a .tar.gz archive. It then uses multipart uploading to reliably transfer even very large files to your configured storage backend. The initial release supports Amazon S3 and allows users to select from any available storage class, including S3 Glacier Deep Archive, to minimize long-term costs.

glesha operates directly with your own cloud provider accounts and is not a hosted service. This means you maintain full ownership and control of your data.

TL;DR - glesha archives the given file or directory into a .tar.gz file, stores encrypted metadata in SQLite and uploads to AWS S3(or other cloud storage providers soon ).

Installation

Glesha is distributed as a single standalone binary without external dependencies. It supports most architectures across Windows, macOS, and Linux. Windows support is experimental.

Configuration

Configuration file is a JSON file used for storing storage provider credentials and preferences. You could have different config.json files for different usecases.

Some parts of the configuration file can be overriden from CLI arguments. When you first run the program, a default config will be created for you at ~/.config/glesha/config.json, and you are supposed to modify this configuration to add credentials.

Here's a sample configuration -

Commands

These are common glesha subcommands used in various situations -

Examples

  • Create a targz archive and upload to s3-glacier, assuming aws_config.json contains the required credentials.

    glesha add -c ~/.config/glesha/aws_config.json ./dir_to_upload
  • Create a zip archive and upload to google_drive, assuming gd_config.json contains the required credentials.

    glesha add -c ~/.config/glesha/gd_config.json ./dir_to_upload

...More examples will be added later