3 ms·
I use git-annex: https://git-annex.branchable.com/ https://git-annex.branchable.com/ Repositories are synced (via essentially `git push` and `git pull`) betwee
by dpifke 4y ago
I use git-annex: https://git-annex.branchable.com/ https://git-annex.branchable.com/
Repositories are synced (via essentially `git push` and `git pull`) between my laptop and desktop and home server, plus encrypted offline backups on two removable drives which take turns alternating between my safe deposit box and a desk drawer. (All my machines are currently Linux, but nothing has changed between now and when my desktop was Windows/WSL2.) The one time (in ~15 years) I had some corruption (dying laptop SSD), the Git history proved invaluable in figuring out which copies were intact and which had synced the corrupted files.
Files are organized in the repository roughly by topic, e.g. "/Finances/MyBank/Statements/", with the date as part of the file naming convention, e.g. "2022-07-20 MyBank Statement.pdf". This lets me sort by date despite Git not preserving mtime on checkout. Renaming/moving a file is just a metadata update in Git, and Emacs dired mode (https://stackoverflow.com/questions/15881776/emacs-dired-rename-many-files https://stackoverflow.com/questions/15881776/emacs-dired-ren...) is my friend for bulk renames.
I use the same system, but different Git repositories/git-annex remotes, for work and personal. For company books, I use beancount (https://beancount.io/ https://beancount.io/), with the ledgers for each account (e.g. "MyBank.beancount") in the same repository. Tags make linking transactions and documents easy. For example, invoices get added as:
2022-07-01 * "SomeCo, Ltd." "Security Deposit" ^invoice-someco-1234
Liabilities:AP:SomeCo
Assets:Prepaid:Deposits:SomeCo 700.00 USD
2022-07-10 document Liabilities:AP:SomeCo "2022-07-10 SomeCo Invoice.pdf" ^invoice-someco-1234
After the invoice gets paid and the bank statement is reconciled, the checking ledger gets entries that look like:
2022-07-11 * "SomeCo, Ltd." "ACH Payment" ^invoice-someco-1234 ^statement-checking-2022-07-20
Accounts:MyBank:Checking
Liabilities:AP:SomeCo 700.00 USD
2022-07-20 document Accounts:MyBank:Checking "2022-07-20 MyBank Statement.pdf" ^statement-checking-2022-07-20
(This renders links in the web interface for jumping between transaction legs and supporting documents.)
The running theme is Git + plain text, which lets me leverage familiar tools.
- dpifke 4y agoCorrection: https://beancount.github.io/docs/index.html https://beancount.github.io/docs/index.html, not https://beancount.io https://beancount.io, the latter is a hosted solution I have no experience with.