Update README.md

This commit is contained in:
Glenn Y. Rolland 2023-10-24 09:59:31 +00:00
parent e061f6601d
commit 241ffb40dc

View file

@ -1,15 +1,17 @@
# GX-Vault Manager # Minimalist Fuse Manager (MFM)
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. MFM is a Crystal-lang CLI tailored to simplify the management of encrypted vaults using multiple FUSE filesystems such as sshfs, gocryptfs, httpdirfs, and more. It provides a user-friendly interface, enabling users to smoothly mount and unmount filesystems, obtain filesystem status, and handle errors adeptly.
## Prerequisites & dependencies ## Prerequisites & Dependencies
Ensure you have the following tools installed on your system before running GX-Vault: Before using MFM, ensure the following tools are installed on your system:
- **gocryptfs**: <https://github.com/rfjakob/gocryptfs> - **gocryptfs**: <https://github.com/rfjakob/gocryptfs>
- **sshfs**: <https://github.com/libfuse/sshfs>
- **httpdirfs**: <https://github.com/fangfufu/httpdirfs>
- **fzf**: <https://github.com/junegunn/fzf> - **fzf**: <https://github.com/junegunn/fzf>
If you want to build from source, you'll also need: To build from source, you'll also require:
- **crystal-lang** : <https://crystal-lang.org/> - **crystal-lang** : <https://crystal-lang.org/>
@ -19,60 +21,68 @@ If you want to build from source, you'll also need:
1. Clone or download the source code. 1. Clone or download the source code.
2. Navigate to the source directory. 2. Navigate to the source directory.
3. Run `shards install` to fetch dependencies. 3. Execute `shards install` to obtain dependencies.
4. Build using `shards build`. 4. Compile using `shards build`.
5. The compiled binary is located in the `bin` directory. 5. Find the compiled binary in the `bin` directory.
### 2. Binary Download ### 2. Binary Download
Alternatively, download a pre-compiled binary version of GX-Vault Manager. You can also fetch a pre-compiled binary version of MFM.
## Configuration ## Configuration
The script relies on a YAML configuration file, commonly found at `~/.config/gx-vault.yml`, which details vault names and paths. The script harnesses a YAML configuration file, typically located at `~/.config/mfm.yml`, which outlines vault names and paths.
### YAML File Format ### YAML File Format
```yaml ```yaml
vaults: fsmap:
- name: "vault1" - type: "gocryptfs"
encrypted_path: "/absolute/path/to/vault1" name: "Work - SSH Keys"
encrypted_path: "/home/user/.ssh/keyring.work"
- type: "sshfs"
name: "Personal - Media Server"
remote_user: "user"
remote_host: "mediaserver.local"
remote_path: "/mnt/largedisk/music"
remote_port: 22
# Add more vaults as required # Incorporate more vaults as necessary
``` ```
## Command Line Options ## Command Line Options
``` ```
Usage: gx-vault [options] Usage: mfm [options]
Global options: Global options:
-c, --config FILE Set configuration file -c, --config FILE Define configuration file
-h, --help Show this help -h, --help Showcase this help
Commands: Commands:
create Create a new vault create Instantiate a new vault
delete Remove an existing vault delete Erase an existing vault
edit Modify the configuration edit Adjust the configuration
``` ```
## Usage ## Usage
Post YAML configuration, run the script. Use `fzf` to select a vault to mount or unmount. After setting up the YAML, activate the script. Employ `fzf` to pick a vault to mount or unmount.
## Contribution Guidelines ## Contribution Guidelines
To contribute to GX-Vault Manager: To contribute to MFM:
1. **Fork the Repository**: Start by forking the GX-Vault Manager repo. 1. **Fork the Repository**: Begin by forking the MFM repository.
2. **Create a Feature Branch**: Features or fixes should be isolated in their own branches. 2. **Create a Feature Branch**: Every feature or fix should reside in distinct branches.
3. **Commit Changes**: Commit with descriptive messages. 3. **Commit Changes**: Commit with expressive messages.
4. **Run Tests**: Ensure no broken functionality. 4. **Run Tests**: Confirm no functional disruptions.
5. **Push to Your Fork**: Upload changes to your GitHub fork. 5. **Push to Your Fork**: Transfer changes to your GitHub fork.
6. **Submit a Pull Request**: Initiate a pull request to the main repo, detailing your changes. 6. **Submit a Pull Request**: Commence a pull request to the main repo, elaborating on your changes.
7. **Review**: Await maintainer feedback and respond accordingly. 7. **Review**: Anticipate feedback from maintainers and react suitably.
By contributing, you agree to our code of conduct and GPL-2 license terms. Contributors are bound by our code of conduct and the terms of the GPL-2 license.
## Authors and Contributors ## Authors and Contributors
@ -80,8 +90,8 @@ By contributing, you agree to our code of conduct and GPL-2 license terms.
## Inspired By ## Inspired By
- **Qasim**: A user-friendly FUSE manager. <https://code.apps.glenux.net/glenux/qasim> - **Qasim**: A user-convenient 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/> - **Sirikali**: A Qt/C++ GUI front end for various FUSE filesystems like cryfs, gocryptfs, securefs, ecryptfs, and encfs. <https://mhogomchungu.github.io/sirikali/>
## License ## License