88 lines
2.5 KiB
Markdown
88 lines
2.5 KiB
Markdown
# 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
|
|
|
|
- **gocryptfs**: Ensure you have `gocryptfs` installed on your system before using GX-Vault Manager.
|
|
|
|
## 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.
|
|
|
|
## Dependencies
|
|
|
|
- gocryptfs
|
|
- fzf
|
|
- Crystal-lang
|
|
- Additional Crystal-lang script dependencies
|
|
|
|
## 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. <https://code.apps.glenux.net/glenux/qasim>
|
|
- **Sirikali**: A Qt/C++ GUI front end to cryfs,gocryptfs,securefs,ecryptfs and encfs. <https://mhogomchungu.github.io/sirikali/>
|
|
|
|
## License
|
|
|
|
GNU GPL-2
|