Skip to content

About the Project

This is a work in progress and not currently published. Use at your own risk.

What QuickZip Is

QuickZip is a CLI utility I developed to solve a backup problem on my machines. I wanted a way to quickly backup up small sets of configuration files and data without deploying a massive, hard to maintain tool with too much front-end configuration. QuickZip uses a config.toml file to build tiny list of backups that are conducted when called (typically via cron).

Key Features

  • Create jobs with configuration file, including support for variables and defaults
  • Beautiful CLI
  • Backup Audits
  • Webhook Support
$ qz --help

Usage: qz [OPTIONS] COMMAND [ARGS]...

Options:
  --version
  --install-completion [bash|zsh|fish|powershell|pwsh]
                                  Install completion for the specified shell.
  --show-completion [bash|zsh|fish|powershell|pwsh]
                                  Show completion for the specified shell, to
                                  copy it or customize the installation.

  --help                          Show this message and exit.

Commands:
  audit   🧐 Performs ONLY the audits for configured jobs
  config  📄 displays the configuration file
  docs    💬 Opens quickZip documentation in browser
  jobs    🚧 Under construction...
  run     ✨ The main entrypoint for the application.

What QuickZip Isn't

QuickZip is NOT a replacement for a robust backup or imaging software. It's primary use case is to collect configuration files on system other similar types of files, zip them up, and stick them somewhere else on your file system.

Why not x???

I can't comment on every backup utility but I can mention the few that I looked at. Borg was a strong contender and I will likely use it for other things down the line, however I felt like there was too much upfront configuration before being able to use. Rsync / Rclone were both great options but I felt there were too confusing/robust for what I was trying to do. On top of that, I was looking for a few features that I hadn't seen.

  • Backup Audits: The ability to "audit" backups and specify how old the newest backup should be
  • Webhook Support: Send backup data to Home Assistant for notifications and dashboards.

Also, I just like building stuff. 👍

To Do's

  • Fix animated terminals for docs
  • Only run some jobs
  • Read config path from .env
  • CLI implementation
  • Auditor Commands
  • Update Documentation
  • Fix Default Config Generation
    • Unify Config Reference
    • Config Name
    • Home Directory
  • Job Configuration
    • Set default values
    • Use variables in config file
    • Add property for glob style matching
    • Pass list of files to zip in config file.
    • Git Repo Backup
    • Web Download Backup
  • Tests

    • Reading .toml file
    • Find/Replace Vars
    • Validate Input/Output
  • Encrypted Zip Files