- 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
104 lines
10 KiB
Markdown
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)
|