explaingit

doorlay/backups

Analysis updated 2026-07-20 · repo last pushed 2026-03-30

GoAudience · ops devopsComplexity · 4/5MaintainedSetup · hard

TLDR

A personal backup automation tool that copies Mac files to a server hourly, downloads cloud photos, and creates encrypted snapshots in Amazon S3 with phone notifications confirming each step.

Mindmap

mindmap
  root((repo))
    What it does
      Hourly Mac to server sync
      Downloads cloud photos
      Encrypted S3 snapshots
      Phone notifications
    Tech stack
      Go
      restic
      launchd
      systemd
    How it works
      Client on Mac
      Server on Linux
      Automated scheduling
      Amazon S3 storage
    Use cases
      Photographer file backups
      Redundant data protection
      Hands-off backup automation
    Audience
      Command line users
      Self-hosters
      Personal project shared publicly
    Limitations
      Mac client only
      Linux server only
      Hardcoded assumptions
      Not a turnkey product

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Automate hourly backups from a Mac to a home server with no manual effort.

USE CASE 2

Download and centralize photos from a cloud provider onto your own server.

USE CASE 3

Create encrypted point-in-time snapshots stored in Amazon S3 for disaster recovery.

USE CASE 4

Get phone notifications confirming each backup step succeeded or failed.

What is it built with?

GoresticEnteAmazon S3launchdsystemd

How does it compare?

doorlay/backups42wim/fabio42wim/go-xmpp
LanguageGoGoGo
Last pushed2026-03-302018-02-042020-01-24
MaintenanceMaintainedDormantDormant
Setup difficultyhardmoderatemoderate
Complexity4/53/53/5
Audienceops devopsops devopsdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1h+

Requires a Mac client, a Linux server, Amazon S3 account, Ente photo account, and the code has hardcoded assumptions about directory locations that will likely break for most users.

No license information is provided, so default copyright restrictions apply and you should contact the creator before using this code.

In plain English

Backups is a personal backup automation tool that keeps your important files safe across multiple locations. It copies files from your Mac to a server on an hourly basis, pulls your photos from a cloud provider down to that same server, creates encrypted snapshots stored in Amazon's cloud storage, and sends you phone notifications confirming whether each step succeeded or failed. The system has two parts that work together. A client program runs on your Mac, using a built-in file-syncing tool to copy your local files to the server every hour. A server program runs on your server, downloading your photos from a service called Ente and then using a tool called restic to bundle everything into encrypted, point-in-time snapshots stored in Amazon S3. Both sides are scheduled to run automatically, the Mac uses a built-in scheduler called launchd, and the server uses a similar system called systemd. This would appeal to someone who wants a hands-off, redundant backup setup and is comfortable with the command line. For example, a photographer who keeps working files on a Mac but wants hourly copies on a home server plus encrypted snapshots in the cloud. Or anyone who has lost data before and wants belt-and-suspenders protection with notifications confirming everything is working. The creator is upfront that this was built for their own specific setup and environment. The code assumes particular directory locations, a Mac as the client, and a Linux server as the backend. The README explicitly notes that other assumptions baked into the code will likely break for anyone trying to run it themselves, so this is more of a personal project shared publicly than a turnkey product.

Copy-paste prompts

Prompt 1
Help me understand the backups repo by doorlay. I want to adapt the client program to sync files from a Linux machine instead of a Mac using rsync and a cron job instead of launchd. Walk me through what changes are needed.
Prompt 2
I'm looking at the doorlay/backups repo. Explain how the server side uses restic to create encrypted snapshots in Amazon S3, and help me write a systemd service file and timer to run it on an hourly schedule.
Prompt 3
Using the doorlay/backups repo as a reference, help me build a similar backup notification system that sends me a push notification via a service like ntfy or Pushover whenever each backup step completes, including success or failure status.
Prompt 4
I want to replicate the architecture from doorlay/backups but replace Ente as the photo source with Google Photos. Help me write a Go program that downloads photos and passes them to the restic snapshot flow described in this repo.

Frequently asked questions

What is backups?

A personal backup automation tool that copies Mac files to a server hourly, downloads cloud photos, and creates encrypted snapshots in Amazon S3 with phone notifications confirming each step.

What language is backups written in?

Mainly Go. The stack also includes Go, restic, Ente.

Is backups actively maintained?

Maintained — commit in last 6 months (last push 2026-03-30).

What license does backups use?

No license information is provided, so default copyright restrictions apply and you should contact the creator before using this code.

How hard is backups to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is backups for?

Mainly ops devops.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.