🟢 🔁 | Simple command-line helper for FUSE filesystems (sshfs, gocryptfs, etc.)
Find a file
2023-10-20 11:33:12 +02:00
_attic Initial import 2023-10-20 11:30:14 +02:00
src Initial import 2023-10-20 11:30:14 +02:00
.gitignore Initial import 2023-10-20 11:30:14 +02:00
Makefile Initial import 2023-10-20 11:30:14 +02:00
README.md Add README 2023-10-20 11:33:12 +02:00
shard.yml Initial import 2023-10-20 11:30:14 +02:00

GX-Vault Manager

GX-Vault Manager is a Crystal-lang script that helps in managing encrypted vaults using gocryptfs. The script offers a user-friendly interface for mounting and unmounting vaults, providing real-time status and handling errors gracefully.

Configuration

The script uses a YAML configuration file, typically stored at ~/.config/gx-vault.yml. This file contains details about the vaults, including their names and paths.

YAML File Format

The configuration file consists of an array of vaults, with each vault having a name and an encrypted path. Below is the structure of the YAML file:

vaults:
  - name: "vault1"
    encrypted_path: "/absolute/path/to/vault1"
  
  - name: "vault2"
    encrypted_path: "/absolute/path/to/vault2"
  
  # Add more vaults as needed

Fields Description

  • vaults: The root element containing an array of all defined vaults.

  • name: The unique name of the vault. This is used for display and selection purposes.

  • encrypted_path: The absolute path to the directory where the encrypted data is stored. This path is used by gocryptfs for mounting the vault.

Example

Here is a sample configuration with two vaults named "Personal" and "Work":

vaults:
  - name: "Personal"
    encrypted_path: "/home/user/encrypted/personal"
    
  - name: "Work"
    encrypted_path: "/home/user/encrypted/work"

Usage

Once the YAML configuration file is set up, run the script. It will read the configuration, and you can select a vault to mount or unmount using the fzf interactive selector. The status of each vault (whether it's open or closed) is displayed next to the vault's name.

Dependencies

  • gocryptfs
  • fzf
  • Crystal-lang
  • Other dependencies as per the Crystal-lang script

License

GPL-2