Skip to content

sudodevdante/bvault

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


bvault.dev

A secure, CLI-first backup vault for developers.

bvault is a CLI utility engineered to streamline remote backup workflows. It provides a robust abstraction layer over rsync and cron, replacing ad-hoc shell scripts with a simple, alias-based system for managing connections. This allows developers and administrators to securely transfer, snapshot, and automate backups with ease and reliability.

The core workflow is centered on memorable aliases that define a link between a local path and a remote SSH target. Once configured via a single command, operations like push, pull, and snapshot can be executed without needing to re-enter paths or credentials, enabling both powerful interactive use and dependable automation.


Getting Started

  1. Clone the Repository

    git clone https://github.com/dante-repo/bvault.git
    cd bvault
  2. Run the Installer The script will install dependencies and create a symbolic link to make bvault available system-wide.

    ./install.sh

    You may need to restart your terminal for the command to be available.

  3. Create & Push a Backup

    # Create a connection alias linking a local path to a remote one
    bvault connect ~/dev/project my-backup user@server.com:/backups/project
    
    # Push your first backup
    bvault push my-backup

Command Reference

Connection Management

Command Description
bvault connect <local_path> <alias> <remote_path> Create a new connection alias.
bvault init <alias> <remote_path> Create a connection from the current directory.
bvault list [--status] List all connections, optionally checking live status.
bvault status <alias> Check the health of a specific connection.
bvault remove <alias> Delete a connection alias.

Core Operations

Command Description
bvault push <alias> Push files from local to remote.
bvault pull <alias> Pull files from remote to local. Overwrites local files.

Snapshots & History

Command Description
bvault snapshot <alias> Create a point-in-time snapshot of a remote backup.
bvault clean <alias> --older-than <age> Delete remote snapshots older than an age (e.g., 30d).

Automation (Cron)

Command Description
bvault cron add <alias> '<schedule>' <command...> Schedule a bvault command. Ex: ... cron add d-push '@daily' push my-bk
bvault cron list List all scheduled cron jobs.
bvault cron remove <alias> Remove a scheduled cron job.

System

Command Description
bvault update Update bvault to the latest version from git.
bvault --version Show the current installed version.

Configuration

bvault stores all connection data in ~/.config/bvault/config.json. Manual editing is not required.

License

This project is licensed under the MIT License.

About

Bvault is a sleek CLI tool for streamlined remote backups. Define a simple alias to link a local path to a remote target, then use intuitive commands like push, pull, and snapshot to sync files, automate cron jobs, and manage backups—securely and effortlessly.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors