Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
d2c26e2674
|
@@ -23,6 +23,7 @@
|
||||
* [Flow Layout](#flow-layout)
|
||||
* [Plugins](#plugins)
|
||||
* [Caveats & Oddities](#caveats--oddities)
|
||||
* [FAQ](#faq)
|
||||
|
||||
## How do I use it?
|
||||
|
||||
@@ -350,4 +351,49 @@ docker-finance relies on `Amount unit` within the file for the actual symbol/cur
|
||||
- For blockchain-related transactions, you can easily add cost-basis of a gift received (`GIFTIN`) by TXID in your custom rules
|
||||
- Example: despite Electrum providing `fiat_value`, you'll need to manually enter in your custom rules the correct `GIFT` value (if divergent)
|
||||
|
||||
### FAQ
|
||||
|
||||
> Q. Are there two versions of the `dfi` script? Or a single script that gathers all functionality under various subcommands?
|
||||
|
||||
The `dfi` command has different functionality depending on its [context](#mostly-unified-cli). The client-side (host) command only operates client-side (but can also operate *on* a container) while the container-side `dfi` command only operates within the container.
|
||||
|
||||
This pairing is part of that "translucent" quality of the system where the "same" command behaves differently, depending on the context. It allows for a fluid transition between the dual worlds of the docker-finance system. A good visual example of how the two can work together can be seen in this [demo](#plugins-bitcoin).
|
||||
|
||||
> Q. Is this dual world of docker images essential to docker-finance? Could it work with just 1 docker image, or 0 images?
|
||||
|
||||
The "dual world" aspect only describes the client (host) and container system. Currently, there are 2 `finance` images ([only 1 is actively maintained (`archlinux`)](https://gitea.evergreencrypto.co/EvergreenCrypto/docker-finance/issues/239)) and 1 optional `dev-tools` (developer) image.
|
||||
|
||||
The client (host) is *not* an image: these terms only describe the supported host (currently Linux). You can run `dfi` on an Ubuntu host, a Debian host, an Arch Linux host etc. When you see `archlinux` in the documentation, that only describes what the `finance` image is based (*not* what the client (host) is).
|
||||
|
||||
As for 0 image, well that would defeat the purpose! :) I think the world ran fine before Docker but the benefits of Docker, at least in this case, far outweigh the cost of the overhead.
|
||||
|
||||
> Q. What's the essential need for docker here? Is it just a packaging/distribution choice?
|
||||
|
||||
`dfi` is an all-in-one accounting system; a privacy-aware, security-aware, modern-finance-aware accounting system; a system of operating within an operating system; a financial framework for power-users.
|
||||
|
||||
But why does `dfi` exist? Perhaps it's easier to ask the following:
|
||||
|
||||
1. How can I manage my own accounting locally without the need for a 3rd party but with the features provided by 3rd parties?
|
||||
2. How can I use [hledger](https://hledger.org/) to account for transactions fetched by [ccxt](https://github.com/ccxt/ccxt/) then generate privacy-aware tax reports for a [cost-basis calculator](https://bitcoin.tax/) while performing local analysis using [root](https://root.cern/) and simultaneously track the [time](https://taskwarrior.org/) it takes to complete all of this then bill a client with a [custom billing invoice/email plugin](#plugins); all with a single command issued from the commandline to a single locally administered system?
|
||||
3. How can the previous question be applied to multiple client profiles who's accounting must be technologically, mathematically, financially and ethically separated; while also enjoying the benefits of the all-in-one system?
|
||||
4. How can the previous question's execution be generic enough and templated enough to work for all other `dfi` project end-users without every end-user needing to maintain their own dependencies, their own locations for all relevant data or even their own functional needs (e.g., "I don't need `root` but I need to `fetch` my data and use `hledger`") but also simultaneously allow them the flexibility to do so (should they choose)?
|
||||
5. How does one provide a baseline accounting system and [workflow](How-do-I-use-it.md#user-content-flow-layout) for users to work with that also allows them the freedom and flexibility of Docker, while also allowing the API contracts required by the aforementioned dependencies to communicate with each other across multiple languages and environments, in order to produce useful data aggregation, bookkeeping and analysis?
|
||||
6. How does one stay in line with the spirit of file-based accounting for all of the aforementioned while also avoiding a traditional DBMS and the language/UI overhead that's usually involved?
|
||||
7. How does one manage the dependencies and upstream requirements of these many different languages and environments without putting that burden on an end-user other than them running a single `update` command?
|
||||
8. How does one do all of this without compiling any code? Or rather; no compiling outside of a JIT compiler or interpreter outside of a commonly used native Linux shell?
|
||||
9. How are all of the aforementioned dependencies contained within a single system, without needing to manage packages across multiple Linux distributions?
|
||||
10. How does one do all of this with only 2 runtime dependencies for the end-user? Meaning, end-users only need to concern themselves with having `bash` and `docker` installed on their client (host) in order to run?
|
||||
|
||||
I believe `dfi` answers all of these questions; satifies all of these requirements and more.
|
||||
|
||||
> Q. Why not just provide some Dockerfiles and compose files and be done with it?
|
||||
|
||||
The docker-finance system is not that simple, but that simplicity is offered to end-users. You can work with your own custom Dockerfile and docker-compose.yml while still working within the system: simply run the client-side `dfi` command with `edit type=build,compose`.
|
||||
|
||||
This style of extensibility allows you to add or remove what you need without needing to submit a pull request (or if your need is entirely personal/unique and shouldn't be applied to other `dfi` end-users).
|
||||
|
||||
> Q. Can I use my own custom container-side `dfi` implementation?
|
||||
|
||||
Yes! Simply edit your client-side (host) environment with `edit type=env` and update `DOCKER_FINANCE_CONTAINER_CMD` to point to your own command.
|
||||
|
||||
[//]: # (vim: sw=2 sts=2 si ai et)
|
||||
|
||||
Reference in New Issue
Block a user