Folder layout
See the accompanying files on Github.
Main benefits
I'm documenting my own folder layout because it answers many problems for me:
Problem | Solutions |
---|---|
need to backup all files | Duplicati |
need to manage code projects | Git |
need to manage the configuration of my PC | make a specific project for this, called core |
need to organize all files |
|
need easy installation procedure & managing two PCs |
|
An important constraint is that Git is not meant to handle large files nor binary files. It would have been great though, especially for the portable softwares. A classic complement to Git is “Git LFS” but it does not work well with USB drives unfortunately.
General folder layout
I store all my files in C:/home/ in three sub-folders:
- core/
Git clone of the project with the configuration of my PC - static/
all my non-code files, backed up by Duplicati - work/
all my code projects
I chose to have two backup drives… but I'm thinking more and more about grouping everything on one. Here they are:
- the repositories drive R: to clone all my code projects
- the backup drive B: to backup the rest of my files
And here is how the layout appears for each drive:
C:
is the drive of the PC, R:
is the drive of the USB key storing the repositories and B:
the drive of the USB key storing the backup of the rest of files.
Folder | |
---|---|
C:/home/ | |
core/ | clone of the core project from R:/repositories/core/ |
duplicati/ | image of B:/home/duplicati/, scripts of backups and restores + the Duplicati database file |
static/ | sole folder backed up by Duplicati |
work/ | contains any Git clone from R:/repositories/work/ |
B:/ | |
backup/ | contains all the backed up files of the C:/home/static/ folder |
my_backup_is_here.txt | empty file to indicate to Duplicati where to store the backup files |
home/ | |
duplicati/ | image of C:/home/duplicati/, scripts of backups and restores + the Duplicati database file |
R:/ | |
repositories/ | |
core/ | Git repository of the core project |
work/ | contains all my Git repositories |
The duplicati folder
This folder is typically found on my backup drive.
When I install a new PC, I copy this folder on the fresh PC and I use either 1-restore-bin-folder.bat or 999-restore-all.bat. In both cases, I get back all the basic softwares I use, especially Git, Notepad++ and my terminal. I then use 2-clone-core.bat and I am done with this duplicati/ folder.
Of course, when I have not yet backed up my files, this folder was on my main PC and I used 999-backup.bat to make a backup and then a copy of the duplicati/ folder on my backup drive. Consult the README for more details.
The core project
This project is the very first one I clone when installing a PC since it has my installation scripts and notes. It then evolves occasionally but always for important matters like:
- changes to my Unix profile
- new program referenced in 0-review-installation.bat
- new passwords (I'm using the password manager KeePass and track its database with Git).
Therefore, this project is my first tab in Sourcetree so as to never miss to commit a change. Consult the README for more technical details.
Examples of content
Here are some real examples of what the static/ and the work/ folders actually contains. I hope it can give you a better idea of whether this layout fits your needs or not.
Folder | |
---|---|
static/ | |
bin/ | contains the portable softwares I use |
data/ | contains offline documentations or scanned documents |
personal/ | contains all the documents about my life (see next section). |
work/ | |
archives/ | |
fonts/ | holds all the fonts I use |
notepad++/ | holds the configuration of Notepad++ |
dcp/ | |
folder-layout/ | the repository that I shared on Github about this very folder layout |
site/ | the code of this very site |
external/ | contains cloned repositories that I am studying |
in-progress/ | |
notes/ | a repository about all kinds of notes |
testnow/ | the testnow project, unit testing for Typescript |
tmp/ | contains anything that does not fit in the other folders |
Examples of using the Johnny Decimal system
The Johnny Decimal system is very impressive and pretty neat. I made this section to provide an example, just like the previous section did. But also to tell you to really try it out, even if superficially.
I have not gone full depth on the system: I mainly have the areas (first digit, for folders at depth 0) and categories (second digit, for folders at depth 1). Sometimes, in some places, I have used the numbers “XX.YY”.
The system is already very valuable, as any new document I get has most certainly a target folder waiting for it. If not, I have the folder organization I need to create a new folder at the exact appropriate place. This was always my main hurdle: where to put the damn file?
Here is how I laid things out for me in my personal/ folder:
Folder | |
---|---|
10-19 Administration/ | |
11 Career/ | |
11.01 Curriculum Vitae/ | One of the rare instances where I use the numbers “XX.YY” |
12 Taxes/ | one folder per year (already escaped the system!) |
13 Public/ | various folders about official stuff that is not about taking my money |
14 Banks/ | One folder per bank. Ditched the numbers again… |
15 Insurances/ | Home, car & health, by their name (ditched the numbers again!) |
16 Rents/ | One folder per location, then by subject (contract, electricity, water, etc.) |
17 Travels/ | |
20-29 Freelance-201X/ | I tried freelancing but it did not work. |
30-39 Oeuvres/ | |
31 Music/ | |
32 Photos/ | |
33 eBlio/ | |
40-49 Investments/ | I tried stocks and cryptos on various platforms. It generated “some” documents… |
50-59 Prog-notes/ | I tend to collect a lot of links and technical papers. Needless to say, this folder is a huge mess. |
60-69 Freelance-202X/ | On my way to fail again, probably. |