Git Product home page Git Product logo

calens's Introduction

Documentation Build Status Go Report Card

Introduction

restic is a backup program that is fast, efficient and secure. It supports the three major operating systems (Linux, macOS, Windows) and a few smaller ones (FreeBSD, OpenBSD).

For detailed usage and installation instructions check out the documentation.

You can ask questions in our Discourse forum.

Quick start

Once you've installed restic, start off with creating a repository for your backups:

$ restic init --repo /tmp/backup
enter password for new backend:
enter password again:
created restic backend 085b3c76b9 at /tmp/backup
Please note that knowledge of your password is required to access the repository.
Losing your password means that your data is irrecoverably lost.

and add some data:

$ restic --repo /tmp/backup backup ~/work
enter password for repository:
scan [/home/user/work]
scanned 764 directories, 1816 files in 0:00
[0:29] 100.00%  54.732 MiB/s  1.582 GiB / 1.582 GiB  2580 / 2580 items  0 errors  ETA 0:00
duration: 0:29, 54.47MiB/s
snapshot 40dc1520 saved

Next you can either use restic restore to restore files or use restic mount to mount the repository via fuse and browse the files from previous snapshots.

For more options check out the online documentation.

Backends

Saving a backup on the same machine is nice but not a real backup strategy. Therefore, restic supports the following backends for storing backups natively:

Design Principles

Restic is a program that does backups right and was designed with the following principles in mind:

  • Easy: Doing backups should be a frictionless process, otherwise you might be tempted to skip it. Restic should be easy to configure and use, so that, in the event of a data loss, you can just restore it. Likewise, restoring data should not be complicated.

  • Fast: Backing up your data with restic should only be limited by your network or hard disk bandwidth so that you can backup your files every day. Nobody does backups if it takes too much time. Restoring backups should only transfer data that is needed for the files that are to be restored, so that this process is also fast.

  • Verifiable: Much more important than backup is restore, so restic enables you to easily verify that all data can be restored.

  • Secure: Restic uses cryptography to guarantee confidentiality and integrity of your data. The location the backup data is stored is assumed not to be a trusted environment (e.g. a shared space where others like system administrators are able to access your backups). Restic is built to secure your data against such attackers.

  • Efficient: With the growth of data, additional snapshots should only take the storage of the actual increment. Even more, duplicate data should be de-duplicated before it is actually written to the storage back end to save precious backup space.

Reproducible Builds

The binaries released with each restic version starting at 0.6.1 are reproducible, which means that you can reproduce a byte identical version from the source code for that release. Instructions on how to do that are contained in the builder repository.

News

You can follow the restic project on Mastodon @resticbackup or subscribe to the project blog.

License

Restic is licensed under BSD 2-Clause License. You can find the complete text in LICENSE.

Sponsorship

Backend integration tests for Google Cloud Storage and Microsoft Azure Blob Storage are sponsored by AppsCode!

Sponsored by AppsCode

calens's People

Contributors

ae-govau avatar fd0 avatar jtagcat avatar micbar avatar michaeleischer avatar mmattel avatar rawtaz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

calens's Issues

Arithmetic functions in the go template

Description

Hi @fd0

Thank you for this nice generator. It helps a lot! We just started to use the tool for our Github repos.

In the past, we were creating github compare links like
https://github.com/org/repo/compare/v1.0.0...v1.0.1

In the current implementation, we cannot use arithmetic functions in the go template on the index to get the version from the next / previous loop.

Possible Solution

Sprig would give you a lot of generic template fuctions. A benefit for the Calens project could specially be the Version compare functions http://masterminds.github.io/sprig/semver.html

Would you consider adding sprig as a dependency?

I would be happy to test!

Definition of Entry Types

Calens uses

var EntryTypePriority = map[string]int{
	"Security":    1,
	"Bugfix":      2,
	"Change":      3,
	"Enhancement": 4,
}

That is a decent choice in my opinion. Nevertheless https://keepachangelog.com/en/1.0.0/#how
has a slightly different list of "Added", "Changed", "Deprecated", "Removed", "Fixed", and "Security"

I'd like to point users to an "authorative" source how to write good changelogs. keepachangelog.com is a prominent one -- do you recommend alternatives?

More improvements

Hi, I would like to work on some more improvements:

  • switch to urfave/cli to easily work with multiple config sources; I'm mostly interested in setting options as env vars
  • add CI for
    • test automation
    • publish pre-build binaries with GH release
    • publish a Docker image
  • documentation

I completely understand if you want to leave the base as it is, but I wanted to ask you for your opinion instead of just hacking around in a fork :)

Use calens with gitea

I would like to use calens with Gitea instead of GitHub. Gitea is using the same URL schema as GitHub for issues and for pull requests it is /pulls/<number> instead of pull/<number>. What do you think about adding a cli flag to set a custom server URL instead of the hard coded github.com and support Gitea servers too?

How to add changelog entry without issue or PR

When there is no corresponding issue or PR for the changes you've made and want to add a changelog entry for, what's the proper way to do so (as you cannot name it (issue|pull)-(number))? What should the file be named, can it be named anything?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.