Hello wonderful PTA community!
Announcing the first beta release of docker-finance
: powered by hledger, hledger-flow and more.
From the “Overview”:
docker-finance
empowers you with a privacy-focused, highly uniform system of financial management - but with a modern twist.
Cryptocurrencies and blockchain metadata are unified with your legacy finances to create a world of best-practice accounting in a highly flexible, time-tested environment.
You can find highlights, screenshots and more in the link above.
In terms of accounting, docker-finance
strives to find the fine line between personal preference and best-practice; aiming to unify the two into an ideal setting. And, as with any beta release, your eyes are needed and greatly appreciated!
Bounties are available to those who are interested as well as the option to be paid in a cryptocurrency of your choice (high cap/very liquid). If interested, please reach out through the contact section of the README.
Thank you, and a big thanks to Simon and the team for this new forum (very grateful for the decentralization)!
1 Like
NEW PRE-RELEASE:
v1.0.0-beta.2 - 2024-07-30
Features and fixes are detailed in the CHANGELOG.
NEW PRE-RELEASE:
v1.0.0-beta.3 - 2024-08-20
Features and fixes are detailed in the CHANGELOG.
TL;DR features for v1.0.0-beta.2 include:
- New
build
options
- New
version
command
- Custom Dockerfile support
- Allows you to customize your instance without upstream interference
hledger --conf
support
- Add support for multiple crypto aggregator-APIs (for fetching prices)
- Add more
price
and hledger-flow
account support
- Add Coinbase SIWC API (V2) compliance
And more, as detailed in CHANGELOG.
1 Like
TL;DR features for v1.0.0-beta.3 include:
- Add bash completion
- Tab your way through client/container commands
- Add plugins support
- New
plugins
command
- documentation, example plugins
- proxychains-ng / Tor plugin
- timewarrior to hledger timeclock plugin
- New
times
command
And more, as detailed in CHANGELOG.
Tor plugin example:
# Bring up docker-finance container
username@host ~ $ dfi 'archlinux/${USER}:default' up
...
# Hop back onto client (host) in another terminal and start the Tor plugin
username@host ~ $ dfi 'archlinux/${USER}:default' plugins repo/tor.bash start
[INFO] docker-finance_tor: container started
[INFO] docker-finance_tor: container IP '172.31.1.3'
[WARN] docker-finance_tor: waiting for Tor installation
[INFO] docker-finance_tor: Tor installation ready
[INFO] docker-finance_tor: updating /etc/tor/torrc
[INFO] docker-finance_tor: restarting Tor with updated /etc/tor/torrc
[INFO] docker-finance_archlinux_username_default: updating /etc/proxychains.conf
[WARN] docker-finance_archlinux_username_default: testing connection (bootstrapping ~15s)
Congratulations. This browser is configured to use Tor.
185.220.101.159
# Jump back into the container, fetch over Tor
username@docker-finance:e02570ea4507 ~ $ dfi testprofile/testuser fetch account=metamask chain=ethereum,polygon tor=on
...
# Import
username@docker-finance:e02570ea4507 ~ $ dfi testprofile/testuser import
...
# Show account balance
username@docker-finance:e02570ea4507 ~ $ dfi testprofile/testuser hledger bal assets:metamask liabilities:metamask cur:"ETH|MATIC"
0.005730979499673140 ETH assets:metamask:laptop:wallet-1:ethereum:ETH
0.537249894761092900 MATIC assets:metamask:laptop:wallet-2:polygon:MATIC
0.001014479083600833 ETH assets:metamask:phone:wallet-1:ethereum:ETH
--------------------
0.006745458583273973 ETH
0.537249894761092900 MATIC
# Show account balance (USD value)
username@docker-finance:e02570ea4507 ~ $ dfi testprofile/testuser hledger bal assets:metamask liabilities:metamask cur:"ETH|MATIC" --value=now
15.11306846 assets:metamask:laptop:wallet-1:ethereum:ETH
0.23096778 assets:metamask:laptop:wallet-2:polygon:MATIC
2.67526552 assets:metamask:phone:wallet-1:ethereum:ETH
--------------------
18.01930176
timewarrior to timeclock plugin example:
# Bring up docker-finance container
username@host ~ $ dfi 'archlinux/${USER}:default' up
...
# Track some time with Alice
username@docker-finance:c790b537bb8b ~ $ dfi clients/alice times start desc="Call with Alice" comment="Discussion on business strategy" tag:type=consulting
...
username@docker-finance:c790b537bb8b ~ $ dfi clients/alice times stop
...
# Then track some time with Bob
username@docker-finance:c790b537bb8b ~ $ dfi clients/bob times start desc="Generate reports" comment="CeFi full reports only" tag:type=bookkeeping
...
username@docker-finance:c790b537bb8b ~ $ dfi clients/bob times stop
...
# Looks like Alice needs more time
username@docker-finance:c790b537bb8b ~ $ dfi clients/alice times start desc="Send email to Alice" comment="Returning her questions on strategy" tag:type=consulting
...
username@docker-finance:c790b537bb8b ~ $ dfi clients/alice times stop
...
# Let's get a summary of just Alice
username@docker-finance:c790b537bb8b ~ $ dfi clients/alice times summary
Wk Date Day Tags Start End Time Total
W34 2024-08-20 Tue comment=Discussion on business strategy, desc=Call with Alice, 19:09:13 19:11:31 0:02:18
profile=clients/alice, tag:type=consulting
comment=Returning her questions on strategy, desc=Send email to Alice, 19:14:01 19:15:32 0:01:31 0:03:49
profile=clients/alice, tag:type=consulting
0:03:49
# Then convert Alice's time to hledger's timeclock format
username@docker-finance:c790b537bb8b ~ $ dfi clients/alice plugins repo/timew_to_timeclock.bash | tee t.timeclock
i 2024-08-21 02:09:13 clients/alice Call with Alice ; Discussion on business strategy, id:6, type:consulting
o 2024-08-21 02:11:31
i 2024-08-21 02:14:01 clients/alice Send email to Alice ; Returning her questions on strategy, id:2, type:consulting
o 2024-08-21 02:15:32
# Print timeclock with hledger
username@docker-finance:c790b537bb8b ~ $ hledger -f t.timeclock print
2024-08-21 * Call with Alice ; Discussion on business strategy, id:6, type:consulting
(clients/alice) 0.04h
2024-08-21 * Send email to Alice ; Returning her questions on strategy, id:2, type:consulting
(clients/alice) 0.03h