1
0
Files
dfi-docs/markdown/What-does-it-do.md
Aaron Fiore 845d826f29 Migrate (and update) docs from 'docker-finance' repo to 'dfi-docs' repo
- Moves all documentation to this repository
- Updates markdown to reflect latest impl
- Updates assets to reflect latest impl
  * Assets are also now more self-documenting
  * Adds utility script to create gif examples
2025-10-29 12:01:02 -07:00

104 lines
10 KiB
Markdown

[//]: # (docker-finance | modern accounting for the power-user)
[//]: # ()
[//]: # (Copyright [C] 2021-2025 Aaron Fiore [Founder, Evergreen Crypto LLC])
[//]: # ()
[//]: # (This program is free software: you can redistribute it and/or modify)
[//]: # (it under the terms of the GNU General Public License as published by)
[//]: # (the Free Software Foundation, either version 3 of the License, or)
[//]: # ([at your option] any later version.)
[//]: # ()
[//]: # (This program is distributed in the hope that it will be useful,)
[//]: # (but WITHOUT ANY WARRANTY; without even the implied warranty of)
[//]: # (MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the)
[//]: # (GNU General Public License for more details.)
[//]: # ()
[//]: # (You should have received a copy of the GNU General Public License)
[//]: # (along with this program. If not, see <https://www.gnu.org/licenses/>.)
# [<img src="../assets/branding/png/dfi.png" height=10% width=10%/>](https://gitea.com/EvergreenCrypto/docker-finance "docker-finance")
- **[What does it do?](#what-does-it-do)**
* [Highlights](#highlights)
* [Screenshots](#screenshots)
## What does it do?
docker-finance (`dfi`) is a translucent container system that gives you the power of a privacy-focused, highly uniform system of financial management.
Cryptocurrencies & blockchain metadata are unified with legacy finance to create a world of best-practice accounting in a highly flexible, time-tested environment.
Tax preparation; report generation; metadata management & analysis, and an entire suite of financial tools are easily at your disposal - entirely managed through `dfi`.
### Highlights
- Highly granular plaintext accounting
- [Blockchain explorers](What-is-supported.md#defi) & [cryptocurrency wallets](What-is-supported.md#wallets)
- [Cryptocurrency exchanges](What-is-supported.md#cefi) & [traditional finance](What-is-supported.md#tradfi)
- Metadata analysis with a [high-powered physics framework](#meta-w-root-c-analysis)
- [Interactive C++ interpreter](#root-cli-w-c-api) for complex use-cases
- Privacy-aware instances generate (and store) your analyses locally
- Procure & aggregate [remote data](#fetch) into [meaningful journals](#hledger-suite)
- Use remote APIs for accounts and market prices via clearnet or [Tor](https://www.torproject.org/)
- Manual transactions management (for accounts w/out remote API)
- Create detailed [financial reports](#reports) for all accounts & [prepare for taxes](#taxes)
- Cryptocurrency: income from interest & staking; spending & network fees
- Market trading activity across [all supported platforms](What-is-supported.md) (TradFi, CeFi & DeFi)
- Versatile & flexible accounting; private & secure bookkeeping
- Create [multi-profile environments](#image-finance) and custom rules for individual needs
- All processing is under your control within your instance (not a 3rd party)
- Developer-friendly eco-system
- A [dev-tools platform](#image-dev-tools) is available for [developers](How-do-I-contribute.md#development)
- A [plugins](How-do-I-contribute.md#plugins) framework allows for `dfi` extensibility
### Screenshots
#### Client (Host)
The *docker* in `docker-finance`; as seen from client (host's) perspective; with mostly client-side functionality.
##### *image: finance*
[<img src="../assets/examples/png/client_00.png" width="175px" height="175px" />](../assets/examples/png/client_00.png "") [<img src="../assets/examples/png/client_01.png" width="175px" height="175px" />](../assets/examples/png/client_01.png "") [<img src="../assets/examples/png/client_02.png" width="175px" height="175px" />](../assets/examples/png/client_02.png "") [<img src="../assets/examples/png/client_03.png" width="175px" height="175px" />](../assets/examples/png/client_03.png "") [<img src="../assets/examples/png/client_04.png" width="175px" height="175px" />](../assets/examples/png/client_04.png "")
[<img src="../assets/examples/png/client_05.png" width="175px" height="175px" />](../assets/examples/png/client_05.png "") [<img src="../assets/examples/png/client_06.png" width="175px" height="175px" />](../assets/examples/png/client_06.png "") [<img src="../assets/examples/png/client_07.png" width="175px" height="175px" />](../assets/examples/png/client_07.png "") [<img src="../assets/examples/png/client_08.png" width="175px" height="175px" />](../assets/examples/png/client_08.png "") [<img src="../assets/examples/png/client_09.png" width="175px" height="175px" />](../assets/examples/png/client_09.png "")
##### *image: dev-tools*
[<img src="../assets/examples/png/dev-tools_00.png" width="175px" height="175px" />](../assets/examples/png/dev-tools_00.png "") [<img src="../assets/examples/png/dev-tools_01.png" width="175px" height="175px" />](../assets/examples/png/dev-tools_01.png "") [<img src="../assets/examples/png/dev-tools_02.png" width="175px" height="175px" />](../assets/examples/png/dev-tools_02.png "") [<img src="../assets/examples/png/dev-tools_03.png" width="175px" height="175px" />](../assets/examples/png/dev-tools_03.png "") [<img src="../assets/examples/png/dev-tools_04.png" width="175px" height="175px" />](../assets/examples/png/dev-tools_04.png "")
[<img src="../assets/examples/png/dev-tools_05.png" width="175px" height="175px" />](../assets/examples/png/dev-tools_05.png "") [<img src="../assets/examples/png/dev-tools_06.png" width="175px" height="175px" />](../assets/examples/png/dev-tools_06.png "") [<img src="../assets/examples/png/dev-tools_07.png" width="175px" height="175px" />](../assets/examples/png/dev-tools_07.png "") [<img src="../assets/examples/png/dev-tools_08.png" width="175px" height="175px" />](../assets/examples/png/dev-tools_08.png "") [<img src="../assets/examples/png/dev-tools_09.png" width="175px" height="175px" />](../assets/examples/png/dev-tools_09.png "")
#### Container
The *finance* in `docker-finance`; as seen from within a running *finance* container; with various types of output.
##### *Fetch*
[<img src="../assets/examples/png/fetch_00.png" width="175px" height="175px" />](../assets/examples/png/fetch_00.png "") [<img src="../assets/examples/png/fetch_01.png" width="175px" height="175px" />](../assets/examples/png/fetch_01.png "") [<img src="../assets/examples/png/fetch_02.png" width="175px" height="175px" />](../assets/examples/png/fetch_02.png "") [<img src="../assets/examples/png/fetch_03.png" width="175px" height="175px" />](../assets/examples/png/fetch_03.png "") [<img src="../assets/examples/png/fetch_04.png" width="175px" height="175px" />](../assets/examples/png/fetch_04.png "")
##### *hledger-suite*
[<img src="../assets/examples/png/hledger-suite_00.png" width="175px" height="175px" />](../assets/examples/png/hledger-suite_00.png "") [<img src="../assets/examples/png/hledger-suite_01.png" width="175px" height="175px" />](../assets/examples/png/hledger-suite_01.png "") [<img src="../assets/examples/png/hledger-suite_02.png" width="175px" height="175px" />](../assets/examples/png/hledger-suite_02.png "") [<img src="../assets/examples/png/hledger-suite_03.png" width="175px" height="175px" />](../assets/examples/png/hledger-suite_03.png "") [<img src="../assets/examples/png/hledger-suite_04.png" width="175px" height="175px" />](../assets/examples/png/hledger-suite_04.png "")
[<img src="../assets/examples/png/hledger-suite_05.png" width="175px" height="175px" />](../assets/examples/png/hledger-suite_05.png "") [<img src="../assets/examples/png/hledger-suite_06.png" width="175px" height="175px" />](../assets/examples/png/hledger-suite_06.png "") [<img src="../assets/examples/png/hledger-suite_07.png" width="175px" height="175px" />](../assets/examples/png/hledger-suite_07.png "") [<img src="../assets/examples/png/hledger-suite_08.png" width="175px" height="175px" />](../assets/examples/png/hledger-suite_08.png "") [<img src="../assets/examples/png/hledger-suite_09.png" width="175px" height="175px" />](../assets/examples/png/hledger-suite_09.png "")
##### *Meta (w/ ROOT C++ analysis)*
[<img src="../assets/examples/png/meta_00.png" width="175px" height="175px" />](../assets/examples/png/meta_00.png "") [<img src="../assets/examples/png/meta_01.png" width="175px" height="175px" />](../assets/examples/png/meta_01.png "") [<img src="../assets/examples/png/meta_02.png" width="175px" height="175px" />](../assets/examples/png/meta_02.png "") [<img src="../assets/examples/png/meta_03.png" width="175px" height="175px" />](../assets/examples/png/meta_03.png "") [<img src="../assets/examples/png/meta_04.png" width="175px" height="175px" />](../assets/examples/png/meta_04.png "")
##### *ROOT (CLI w/ C++ API)*
[<img src="../assets/examples/png/root_00.png" width="175px" height="175px" />](../assets/examples/png/root_00.png "") [<img src="../assets/examples/png/root_01.png" width="175px" height="175px" />](../assets/examples/png/root_01.png "") [<img src="../assets/examples/png/root_02.png" width="175px" height="175px" />](../assets/examples/png/root_02.png "") [<img src="../assets/examples/png/root_03.png" width="175px" height="175px" />](../assets/examples/png/root_03.png "") [<img src="../assets/examples/png/root_04.png" width="175px" height="175px" />](../assets/examples/png/root_04.png "")
##### *Taxes*
[<img src="../assets/examples/png/taxes_00.png" width="175px" height="175px" />](../assets/examples/png/taxes_00.png "") [<img src="../assets/examples/png/taxes_01.png" width="175px" height="175px" />](../assets/examples/png/taxes_01.png "") [<img src="../assets/examples/png/taxes_02.png" width="175px" height="175px" />](../assets/examples/png/taxes_02.png "") [<img src="../assets/examples/png/taxes_03.png" width="175px" height="175px" />](../assets/examples/png/taxes_03.png "") [<img src="../assets/examples/png/taxes_04.png" width="175px" height="175px" />](../assets/examples/png/taxes_04.png "")
##### *Reports*
[<img src="../assets/examples/png/reports_00.png" width="175px" height="175px" />](../assets/examples/png/reports_00.png "") [<img src="../assets/examples/png/reports_01.png" width="175px" height="175px" />](../assets/examples/png/reports_01.png "") [<img src="../assets/examples/png/reports_02.png" width="175px" height="175px" />](../assets/examples/png/reports_02.png "") [<img src="../assets/examples/png/reports_03.png" width="175px" height="175px" />](../assets/examples/png/reports_03.png "") [<img src="../assets/examples/png/reports_04.png" width="175px" height="175px" />](../assets/examples/png/reports_04.png "")
[//]: # (vim: sw=2 sts=2 si ai et)