This small project was born out of a necessity. When you work on a series of laptops, PCs and smartphones it will become difficult to manage your documents and pictures. Recently, I started a project of reorganizing and indexing a Terabyte disk of decades of photos and documents. Some are shadowed in different devices. I decided to use a new Document & Picture directory hiearchy in the backup and ALL devices I use, then it becomes easier to find stuff.
The first version used a YAML file that defined the structure. Recently I decided to add tag support so that if I had a new document or picture I could ask this utility where it would suggest me to store it based on a series of tags.
Once you decide on a structure, you copy the sample JSON file and modify it to suit your
needs. After that simply use the -create switch and in a second everything is created!
No need to manually create a hiearchy and then do the same elsewhere (or copy a ZIP).
This software and all software in my GitHub repositories is provided AS-IS. You acknowledge that the use of some features of this software, may lead to data loss. You can see the LICENSE file in this repository.
- Works for
DocumentsandPicturesfolders, but you decide how to name them. - Sample
tree_sample_docs.jsonfile with Document hierarchy. available in your config folder - Sample
tree_sample_pics.jsonfile with Pictures hierarchy. available in your config folder - You can merge both JSON trees (Docs & Pics) into a single file!
- Create entire structure in click
- List your Tag Cloud
- Update the metadata folder files after you update the source JSON file
- Query your structure with a list of tags, it will suggest you which folders to use.
- You can flag a folder as encrypted if you plan to store there sensitive or encrypted data.
| Show your support | |
|---|---|
![]() |
visit Lord of Scripts™ on AllMyLinks.com |
![]() |
buy Lord of Scripts™ a Capuccino on BuyMeACoffee.com |
Read the LICENSE for more details.
- GO Language v1.23 or higher
While I lack an up-to-date computer, I work with several computing devices: my day-to-day laptop, an old backup laptop, my former PC hard disks, a Raspberry Pi and my Android phone.
Organizing a terabyte of data with only directories and filenames isn't enough. At a point I realized it was better to use the exact same directory tree structure on all devices, no more guessing where things are.
But, at the same time I needed directory metadata such as Tags and Filename Templates. Some directories needed to have documents organized with a pre-defined filename template, just as modern digital camera images get named.
When in doubt I also wanted the ability to query my file system with questions like:
- Which Document/Picture directories would you suggest me for
legal, certificatedocuments? - Which directories have been marked as having encrypted/sensitive files?
You get the idea. I loved SQL since the first time I started using databases. I
wanted to query my file "vault" in a similar way, but with a simplified syntax
that was intuitive.
- A Reproduceable Directory Structure for your Documens, Pictures and others that you can deploy on all your devices.
- The logical directory hieararchy is maintained in a JSON file, where it is annotated with metadata such as Tags, Templates and whether it is supposed to be *Encrypted.
- Tag & (filename) Template metadata could be inherited.
To install the govault and qvault executables in your system:
go get github.com/lordofscripts/govault@latest
On Windows you have the govault.exe and qvault.exe executable files.
These are some command-line flags you should familiarize yourself with
in order to use govault and qvault safely. I repeat, I am NOT liable
for any data loss! Also familiarize yourself with the configuration files
that you are expected to customize to suit your Document/Image/Other Repository.
-json FILE_PATHyour JSON file path. For using built-in configuration (which you can customize) you can useFILE_PATHset asapp:picsorapp:docsto point to the config files you edited.-overwriteoverwrite existing folder metadata oncreatesubcommand. Does not apply toupdatesubcommand.-perm "PERM_VALUE"folder permissions, defaults to0755orrwxr-xr-x-root DIRECTORYroot directory for folder creation, defaults to.(current) which would typically be your HOME directory. The root nodes of your JSON files are relative to THIS path.
Read the manual, there is plenty of info here and the source code is documented in the Pkg Info.
There are two applications delivered with GoVault. You can learn how to use them reading their documentation separately:
Copyright ©2025-2026 Lord of Scripts™

