# GX-Vault Manager GX-Vault Manager is a Crystal-lang script designed to simplify the management of encrypted vaults using `gocryptfs`. With its user-friendly interface, users can seamlessly mount and unmount vaults, get real-time vault status, and handle errors gracefully. ## Prerequisites & dependencies Ensure you have the following tools installed on your system before running GX-Vault: - **gocryptfs**: - **fzf**: If you want to build from source, you'll also need: - **crystal-lang** : ## Installation ### 1. From Source 1. Clone or download the source code. 2. Navigate to the source directory. 3. Run `shards install` to fetch dependencies. 4. Build using `shards build`. 5. The compiled binary is located in the `bin` directory. ### 2. Binary Download Alternatively, download a pre-compiled binary version of GX-Vault Manager. ## Configuration The script relies on a YAML configuration file, commonly found at `~/.config/gx-vault.yml`, which details vault names and paths. ### YAML File Format ```yaml vaults: - name: "vault1" encrypted_path: "/absolute/path/to/vault1" # Add more vaults as required ``` ## Command Line Options ``` Usage: gx-vault [options] Global options: -c, --config FILE Set configuration file -h, --help Show this help Commands: create Create a new vault delete Remove an existing vault edit Modify the configuration ``` ## Usage Post YAML configuration, run the script. Use `fzf` to select a vault to mount or unmount. ## Contribution Guidelines To contribute to GX-Vault Manager: 1. **Fork the Repository**: Start by forking the GX-Vault Manager repo. 2. **Create a Feature Branch**: Features or fixes should be isolated in their own branches. 3. **Commit Changes**: Commit with descriptive messages. 4. **Run Tests**: Ensure no broken functionality. 5. **Push to Your Fork**: Upload changes to your GitHub fork. 6. **Submit a Pull Request**: Initiate a pull request to the main repo, detailing your changes. 7. **Review**: Await maintainer feedback and respond accordingly. By contributing, you agree to our code of conduct and GPL-2 license terms. ## Authors and Contributors - Glenn Y. Rolland - *Initial Work* ## Inspired By - **Qasim**: A user-friendly FUSE manager. - **Sirikali**: A Qt/C++ GUI front end to cryfs,gocryptfs,securefs,ecryptfs and encfs. ## License GNU GPL-2