Open source · MIT · Go

Backup files to S3
with tags.

tagbackup uploads, downloads, lists, and deletes files on any S3-compatible bucket — identified and filtered by simple human-readable tags. Now with a local web UI.

$ curl -sfL https://tagbackup.com/install.sh | shcopy
bash — tagbackup
New! · tagbackup serve

Manage your buckets from your browser.

Run tagbackup serveand get a local web UI for browsing, filtering by tag, uploading and deleting — without leaving your S3 workflow. It's live below. Try it.

Binds to 127.0.0.1 only — nothing is exposed to the network
127.0.0.1:8080

↑ A live, fully interactive instance — switch buckets, filter tags, sort, upload, delete.

What it does

Tag-based organisation

Tags are baked into the object key. Filter by tag, combine with AND / OR / NOT expressions — no external index needed.

Any S3-compatible store

AWS S3, Cloudflare R2, MinIO, Backblaze B2, and any provider that speaks the S3 API. One tool, every bucket.

No telemetry

All API calls go directly between tagbackup and your bucket. Nothing dials home. Credentials stay on your machine.

Scriptable

Non-interactive mode, JSON output, meaningful exit codes — designed to live comfortably inside cron jobs and shell scripts.

Flexible credentials

Static keys, AWS profiles, IAM roles, or environment variables. Credential resolution order is predictable and documented.

Atomic operations

Downloads write to a temp file and atomically rename on success. An interrupted download never leaves a half-written file.

The classic use case

Cron pushes it nightly. Your laptop pulls the latest whenever you need it.

1

Server dumps its database to dump.sql

2

tagbackup push uploads it tagged nightly,prod

3

delete --older-than=30d prunes old copies

4

Laptop runs pull --latest whenever needed

Quick start

Three commands to your first backup.

Add a bucket interactively, push a file with a tag, then list everything that matches. Credentials stay on your machine.

Read the docs →
$ tagbackup bucket add # interactive setup
$ tagbackup push dump.sql --bucket=dbbackup --tag=nightly,prod
  ✓ Uploaded 1776831788343-nightly,prod-dump.sql
$ tagbackup files --bucket=dbbackup --tag=nightly
  3 files · 9.4 MB

Download v0.0.9 for your platform

macOSLinuxWindowssingle binary · Go