8 Commits

Author SHA1 Message Date
fd11c552e1 markdown: update Caveats & Oddities headers (for links) 2026-02-24 15:31:14 -08:00
59ec09c1a0 Merge pull request #10 into master
1505ed7 markdown: Installation: update repo prep/clone (Aaron Fiore)
2026-02-19 12:53:45 -08:00
1505ed7c3a markdown: Installation: update repo prep/clone 2026-02-19 12:51:28 -08:00
155279eacf Merge pull request #9 into master
eca6faa markdown: update default paths (environment, bind-mounts) (Aaron Fiore)
2026-02-18 14:58:39 -08:00
eca6faab35 markdown: update default paths (environment, bind-mounts)
Aligns closer to latest implementation.
2026-02-18 14:56:58 -08:00
dfa2185ed1 Merge pull request #8 into master
ef0c8a5 markdown: update repo domain to gitea.evergreencrypto.co (Aaron Fiore)
661c089 README: update repo domain to gitea.evergreencrypto.co (Aaron Fiore)
2026-02-10 16:39:33 -08:00
ef0c8a598d markdown: update repo domain to gitea.evergreencrypto.co 2026-02-10 15:56:08 -08:00
661c0892cb README: update repo domain to gitea.evergreencrypto.co 2026-02-10 15:56:00 -08:00
8 changed files with 47 additions and 55 deletions

View File

@@ -18,7 +18,7 @@
<div align="center">
[<img src="assets/branding/png/docker-finance.png" height=75% width=75% align="center" />](https://gitea.com/EvergreenCrypto/docker-finance "docker-finance")
[<img src="assets/branding/png/docker-finance.png" height=75% width=75% align="center" />](https://gitea.evergreencrypto.co/EvergreenCrypto/docker-finance "docker-finance")
</div>

View File

@@ -16,7 +16,7 @@
[//]: # (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")
# [<img src="../assets/branding/png/dfi.png" height=10% width=10% />](https://gitea.evergreencrypto.co/EvergreenCrypto/docker-finance "docker-finance")
- **[How do I connect?](#how-do-i-connect)**
* [`#docker-finance:matrix.org`](#docker-financematrixorg)

View File

@@ -16,7 +16,7 @@
[//]: # (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")
# [<img src="../assets/branding/png/dfi.png" height=10% width=10%/>](https://gitea.evergreencrypto.co/EvergreenCrypto/docker-finance "docker-finance")
- **[How do I contribute?](#how-do-i-contribute)**
* [Donate](#donate)
@@ -34,7 +34,7 @@ Your input while using docker-finance is [valuable and appreciated](How-do-I-con
#### Dependencies
If you like docker-finance, please consider donating to the [wonderful projects](https://gitea.com/EvergreenCrypto/docker-finance/src/branch/master/client/docker-finance.yaml) that it relies upon.
If you like docker-finance, please consider donating to the [wonderful projects](https://gitea.evergreencrypto.co/EvergreenCrypto/docker-finance/src/branch/master/client/docker-finance.yaml) that it relies upon.
### Development
@@ -47,7 +47,7 @@ When developing with the [`finance` image](What-does-it-do.md#image-finance), yo
* Developer mockup CSVs can be found in the `mockup` directories within the hledger-flow section of the docker-finance repository
* Developer mockup CSVs will *intentionally* have multiple years within in a `1-in/year` directory in order to test for year parsing
When developing non-code documentation, please work with the [dfi-docs](https://gitea.com/EvergreenCrypto/dfi-docs) repository.
When developing non-code documentation, please work with the [dfi-docs](https://gitea.evergreencrypto.co/EvergreenCrypto/dfi-docs) repository.
#### Plugins
@@ -64,7 +64,7 @@ Upon client `gen`, a client-side directory layout is generated. This layout cons
**WARNING: don't change the parent client-side directory layout** (although, you can add subdirectories):
- e.g., `${DOCKER_FINANCE_CLIENT_PLUGINS}/container/finance/my_experimental_plugins/{file1.ext,file2.ext}`
This client-side "custom" layout somewhat mirrors the repository's plugins layout (see [`client/plugins`](https://gitea.com/EvergreenCrypto/docker-finance/src/branch/master/client/plugins) and [`container/plugins`](https://gitea.com/EvergreenCrypto/docker-finance/src/branch/master/container/plugins)).
This client-side "custom" layout somewhat mirrors the repository's plugins layout (see [`client/plugins`](https://gitea.evergreencrypto.co/EvergreenCrypto/docker-finance/src/branch/master/client/plugins) and [`container/plugins`](https://gitea.evergreencrypto.co/EvergreenCrypto/docker-finance/src/branch/master/container/plugins)).
For more information, see the example plugins and help usage of each module, e.g.; `plugins help` or `help()`.
@@ -84,7 +84,7 @@ Before sending a pull request:
- [PHP](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/master/doc/ruleSets/PSR12.rst)
4. If you can, please document the code in Doxygen style where applicable and run `doxygen gen` to see your code documentation.
Any non-code documentation should go into the [dfi-docs](https://gitea.com/EvergreenCrypto/dfi-docs) repository.
Any non-code documentation should go into the [dfi-docs](https://gitea.evergreencrypto.co/EvergreenCrypto/dfi-docs) repository.
#### CI using self hosted `gitea` with `act_runner`

View File

@@ -16,7 +16,7 @@
[//]: # (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")
# [<img src="../assets/branding/png/dfi.png" height=10% width=10%/>](https://gitea.evergreencrypto.co/EvergreenCrypto/docker-finance "docker-finance")
- **[How do I get started?](#how-do-i-get-started)**
* [Installation](#installation)
@@ -53,25 +53,17 @@ docker-finance *should* work out-of-the-box on any modern Linux system. For exam
- A terminal multiplexer like [tmux](https://github.com/tmux/tmux/wiki) or [screen](https://www.gnu.org/software/screen/)
- A terminal file manager like [mc](https://midnight-commander.org/) (Midnight Commander)
3. Prepare your repository:
3. Prepare your base path and repository:
Before proceeding, change your directory to a *persistent* path that you'll likely keep; as your client (host) shell environment will be aliased/sourced to the path you choose.
- Before proceeding, change your directory to a *persistent base path* that you intend to keep; as this will be the default base path for all data going forward
* The absolute path of your current working directory + `./docker-finance` will be the default base path to house all data
* If you'd like, you *can* change the base path later during [Client Generation](#client-generation)
```bash
# NOTE: you can change the domain to `gitea.com`, as this repository is also mirrored there
if hash git &>/dev/null; then
if [ -d docker-finance ]; then
if pushd docker-finance &>/dev/null; then
if ! git pull --tags; then
echo "FATAL: docker-finance repo not pulled" >&2
fi
popd 1>/dev/null
else
echo "FATAL: docker-finance repo not found" >&2
fi
else
if ! git clone https://gitea.com/EvergreenCrypto/docker-finance; then
if ! git clone --depth=1 https://gitea.evergreencrypto.co/EvergreenCrypto/docker-finance docker-finance/repo -b v1.2.0; then
echo "FATAL: docker-finance repo not cloned" >&2
fi
fi
else
echo "FATAL: git not found" >&2
@@ -80,7 +72,7 @@ docker-finance *should* work out-of-the-box on any modern Linux system. For exam
4. Verify your repository (recommended):
```bash
if pushd docker-finance/ 1>/dev/null; then
if pushd docker-finance/repo 1>/dev/null; then
gpg --keyserver hkp://keyserver.ubuntu.com --recv-key 518A22F85BEFD32BCC99C48603F90C4F35E0213E \
&& git verify-commit $(git log -n1 --pretty=format:"%H") \
&& echo -e "\nSUCCESS: now confirm matching key = 518A22F85BEFD32BCC99C48603F90C4F35E0213E" \
@@ -91,10 +83,10 @@ docker-finance *should* work out-of-the-box on any modern Linux system. For exam
5. Prepare your client (host) shell environment:
Install convenience aliases and command completion to your shell environment (see [install.bash](https://gitea.com/EvergreenCrypto/docker-finance/src/branch/master/client/install.bash) for details):
Install convenience aliases and command completion to your shell environment (see [install.bash](https://gitea.evergreencrypto.co/EvergreenCrypto/docker-finance/src/branch/master/client/install.bash) for details):
```bash
./docker-finance/client/install.bash && source ~/.bashrc
./docker-finance/repo/client/install.bash && source ~/.bashrc
```
> - The `dfi` alias of `docker-finance` is the recommended alias to use for for all client/container operations
> - After your first image is built (step 7), you can use commandline completion for all `dfi` images and commands
@@ -221,7 +213,7 @@ The client (host) configuration file:
- client/container configurations can be stored on shared NFS/CIFS or related network storage (with applicable user permissions)
- allows for customizable locations of *all* container data on any mountable filesystem (as a replacement for Docker Volumes)
- consists solely of variables in the format `DOCKER_FINANCE_VARIABLE=value` and is used by both Docker and docker-finance
- default template variables can be found in [gen.bash](https://gitea.com/EvergreenCrypto/docker-finance/src/branch/master/client/docker-finance.d/client/env/gen.bash), as described below
- default template variables can be found in [gen.bash](https://gitea.evergreencrypto.co/EvergreenCrypto/docker-finance/src/branch/master/client/conf.d/client/env/gen.bash), as described below
After `gen` is complete, you can edit this file with the client (host) command: `edit type=env` (see [Client (Host) Command Format](How-do-I-use-it.md#client-host-command-format)).
@@ -230,14 +222,14 @@ After `gen` is complete, you can edit this file with the client (host) command:
Client (host) configuration path. Parent directory for client configuration files.
- Example: `DOCKER_FINANCE_CLIENT_CONF=/home/${USER}/.config/docker-finance.d`
- Example: `DOCKER_FINANCE_CLIENT_CONF=/home/${USER}/docker-finance/conf.d`
> DOCKER_FINANCE_CLIENT_FLOW
Client (host) finance-flow path. Parent directory for all profiles and end-user data.
Client (host) workflow path. Parent directory for all profiles and end-user data.
- Example: `DOCKER_FINANCE_CLIENT_FLOW=/net/nfs4/finance-flow`
- Example: `DOCKER_FINANCE_CLIENT_FLOW=/net/nfs4/docker-finance/flow`
> DOCKER_FINANCE_CLIENT_REPO
@@ -246,7 +238,7 @@ Client (host) path for the docker-finance code repository (from the host's persp
This parent directory is where the `client` and `container` directories are located.
- Example: `DOCKER_FINANCE_CLIENT_REPO=/net/nfs4/git/docker-finance`
- Example: `DOCKER_FINANCE_CLIENT_REPO=/net/nfs4/git/docker-finance/repo`
> DOCKER_FINANCE_CLIENT_SHARED
@@ -255,7 +247,7 @@ Client (host) path for the client/container shared directory.
The bind-mount is used exclusively for non-essential file sharing (custom scripts or any file you wish).
- Example: `DOCKER_FINANCE_CLIENT_SHARED=/mnt/share.d`
- Example: `DOCKER_FINANCE_CLIENT_SHARED=/mnt/docker-finance/share.d`
> DOCKER_FINANCE_CLIENT_PLUGINS
@@ -264,7 +256,7 @@ Client (host) path for the client/container shared *custom* plugins.
The bind-mount is used exclusively for user-added plugins not in the repository.
- Example: `DOCKER_FINANCE_CLIENT_PLUGINS=/home/${USER}/Development/dfi_custom-plugins`
- Example: `DOCKER_FINANCE_CLIENT_PLUGINS=/home/${USER}/Development/docker-finance/custom-plugins`
> DOCKER_FINANCE_CONTAINER_CMD
@@ -280,7 +272,7 @@ Default: `finance.bash` (internally aliased to `finance` and `dfi`)
The container's configuration path (bind-mounted to client's (host's) configuration path).
- Example: `DOCKER_FINANCE_CONTAINER_CONF=/home/${USER}/.config/docker-finance.d`
- Example: `DOCKER_FINANCE_CONTAINER_CONF=/home/${USER}/docker-finance/conf.d`
> DOCKER_FINANCE_CONTAINER_EDITOR
@@ -292,11 +284,11 @@ The container's default text editor.
> DOCKER_FINANCE_CONTAINER_FLOW
The container's finance-flow path from the container's perspective.
The container's workflow path from the container's perspective.
This path is bind-mounted to the client's (host's) finance-flow path.
This path is bind-mounted to the client's (host's) flow path.
- Example: `DOCKER_FINANCE_CONTAINER_FLOW=/home/${USER}/finance-flow`
- Example: `DOCKER_FINANCE_CONTAINER_FLOW=/home/${USER}/docker-finance/flow`
> DOCKER_FINANCE_CONTAINER_REPO
@@ -305,14 +297,14 @@ The container's docker-finance code repository path (as viewed from the containe
This path is bind-mounted to the client's (host's) `docker-finance/container` path.
- Example: `DOCKER_FINANCE_CONTAINER_REPO=/home/${USER}/docker-finance`
- Example: `DOCKER_FINANCE_CONTAINER_REPO=/home/${USER}/docker-finance/repo`
> DOCKER_FINANCE_CONTAINER_SHARED
The container's `share.d` path, bind-mounted to client's (host's) `share.d` path.
- Example: `DOCKER_FINANCE_CONTAINER_FLOW=/home/${USER}/share.d`
- Example: `DOCKER_FINANCE_CONTAINER_FLOW=/home/${USER}/docker-finance/share.d`
> DOCKER_FINANCE_CONTAINER_PLUGINS
@@ -321,7 +313,7 @@ The client's custom plugin path (as viewed from the container).
This path is bind-mounted to the client's (host's) `${DOCKER_FINANCE_CLIENT_PLUGINS}/container` path.
- Example: `DOCKER_FINANCE_CONTAINER_PLUGINS=/home/${USER}/plugins`
- Example: `DOCKER_FINANCE_CONTAINER_PLUGINS=/home/${USER}/docker-finance/plugins`
> DOCKER_FINANCE_CPUS
@@ -393,7 +385,7 @@ The client (host) custom Dockerfile:
- allows you to append any Dockerfile command to a generated build
- is located in the `${DOCKER_FINANCE_CLIENT_CONF}/client/Dockerfiles/` directory
- format consists of `username@hostname` where `username` is your host username and `hostname` is your machine's hostname
- default generated templates can be found [here](https://gitea.com/EvergreenCrypto/docker-finance/src/branch/master/client/docker-finance.d/client/Dockerfiles)
- default generated templates can be found [here](https://gitea.evergreencrypto.co/EvergreenCrypto/docker-finance/src/branch/master/client/conf.d/client/Dockerfiles)
After `gen` is complete, you can edit this file with the client (host) command: `edit type=build` (see [Client (Host) Command Format](How-do-I-use-it.md#client-host-command-format)).
@@ -409,7 +401,7 @@ The client/container shell script (Superscript) is a bind-mounted (by directory)
See the in-file comments for further documentation:
- [superscript.bash.in](https://gitea.com/EvergreenCrypto/docker-finance/src/branch/master/client/docker-finance.d/container/shell/superscript.bash.in)
- [superscript.bash.in](https://gitea.evergreencrypto.co/EvergreenCrypto/docker-finance/src/branch/master/client/conf.d/container/shell/superscript.bash.in)
After `gen` is complete, you can edit this file with the client (host) command: `edit type=shell` (see [Client (Host) Command Format](How-do-I-use-it.md#client-host-command-format)).
@@ -427,7 +419,7 @@ By default, this file will contain user aliases for all container commands. Thes
See the in-file comments for further documentation:
- [subscript.bash.in](https://gitea.com/EvergreenCrypto/docker-finance/src/branch/master/client/docker-finance.d/container/shell/subscript.bash.in)
- [subscript.bash.in](https://gitea.evergreencrypto.co/EvergreenCrypto/docker-finance/src/branch/master/client/conf.d/container/shell/subscript.bash.in)
After `gen` is complete, from within the container, you can edit this file with: `dfi profile/subprofile edit type=shell` (see [Container Command Format](How-do-I-use-it.md#container-command-format)).
@@ -437,7 +429,7 @@ The source of all remote API fetching configurations (exchanges, blockchains, ma
See the in-file comments for further documentation:
- [fetch.yaml.in](https://gitea.com/EvergreenCrypto/docker-finance/src/branch/master/client/docker-finance.d/container/fetch/fetch.yaml.in)
- [fetch.yaml.in](https://gitea.evergreencrypto.co/EvergreenCrypto/docker-finance/src/branch/master/client/conf.d/container/fetch/fetch.yaml.in)
After `gen` is complete, from within the container, you can edit this file with: `dfi profile/subprofile edit type=fetch` (see [Container Command Format](How-do-I-use-it.md#container-command-format)).
@@ -447,7 +439,7 @@ The source of all custom metadata information (typically used to store cryptocur
See the in-file comments for further documentation:
- [meta.csv.in](https://gitea.com/EvergreenCrypto/docker-finance/src/branch/master/client/docker-finance.d/container/meta/meta.csv.in)
- [meta.csv.in](https://gitea.evergreencrypto.co/EvergreenCrypto/docker-finance/src/branch/master/client/conf.d/container/meta/meta.csv.in)
After `gen` is complete, from within the container, you can edit this file with: `dfi profile/subprofile edit type=meta` (see [Container Command Format](How-do-I-use-it.md#container-command-format)).

View File

@@ -1,7 +1,7 @@
[//]: # (docker-finance | modern accounting for the power-user)
[//]: # ()
[//]: # (Copyright [C] 2021-2025 Aaron Fiore [Founder, Evergreen Crypto LLC])
[//]: # (Copyright [C] 2021-2026 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)
@@ -16,7 +16,7 @@
[//]: # (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")
# [<img src="../assets/branding/png/dfi.png" height=10% width=10%/>](https://gitea.evergreencrypto.co/EvergreenCrypto/docker-finance "docker-finance")
- **[How do I use it?](#how-do-i-use-it)**
* [Mostly-Unified CLI](#mostly-unified-cli)
@@ -141,7 +141,7 @@ Peeking inside `${DOCKER_FINANCE_CONTAINER_FLOW}/profiles/profile/subprofile`, y
- `all-years.journal` and `directives.journal`
- These top-level journals are generated by `hledger-flow`. Ignore these and use the container `edit` command for all journal editing.
- `docker-finance.d`
- `conf.d`
- Location of all docker-finance configuration files (see `edit help` for details).
- `import`
@@ -169,15 +169,15 @@ See the container `times help` command for details.
### Caveats & Oddities
#### Flow Layout
#### Caveats & Oddities: Flow
Your `finance-flow` directory will contain a symlink called `src` which links to code that processes your data. **Do not delete this symlink**.
Your `flow` directory will contain a symlink called `src` which links to code that processes your data. **Do not delete this symlink**.
##### *Prices*
##### Caveats & Oddities: Flow: Prices
Before you try to infer market prices, be sure to fetch prices *before* you do your first import (or first import of the year). If you do not fetch, the prices journal will **not** be included within the import and, if you have a previous year of prices, **you will unwittingly infer against that previous year instead of your expected year!**
##### *Accounts: Trezor*
##### Caveats & Oddities: Flow: Accounts: Trezor
In the "Trezor Suite" app, change your wallet name to your subaccount(s). For example, to delineate between your Trezor One from several Trezor T devices, and to delineate between their separate wallets *within* every device, follow these steps:
@@ -194,7 +194,7 @@ docker-finance relies on `Amount unit` within the file for the actual symbol/cur
1. This allows you to maintain device continuity by reusing wallet names for different currencies.
2. This allows you to export, in the future, to the correct file from the associated hardware wallet because each hardware wallet exports its own unique CSV.
#### Taxes
##### Caveats & Oddities: Flow: Taxes
- If you have a wallets designated for `SPEND`ing/`GIFT`ing or `INCOME`, you can use custom rules to mark all outgoing/incoming transactions as such (ex., using tags `taxed_as:SPEND`/`taxed_as:GIFT`/`taxed_as:INCOME`/etc.). See implementation for details.
- **WARNING**: *all* `GIFTIN` cost-basis must be manually entered from the corresponding `GIFT` results/calculations (as gifted from another).

View File

@@ -16,7 +16,7 @@
[//]: # (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")
# [<img src="../assets/branding/png/dfi.png" height=10% width=10%/>](https://gitea.evergreencrypto.co/EvergreenCrypto/docker-finance "docker-finance")
- **[What does it do?](#what-does-it-do)**
* [Highlights](#highlights)

View File

@@ -16,7 +16,7 @@
[//]: # (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")
# [<img src="../assets/branding/png/dfi.png" height=10% width=10%/>](https://gitea.evergreencrypto.co/EvergreenCrypto/docker-finance "docker-finance")
- **[What is supported?](#what-is-supported)**
* [CeFi (centralized custodians)](#cefi)

View File

@@ -16,7 +16,7 @@
[//]: # (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")
# [<img src="../assets/branding/png/dfi.png" height=10% width=10%/>](https://gitea.evergreencrypto.co/EvergreenCrypto/docker-finance "docker-finance")
- **[Where is the legalese?](#where-is-the-legalese)**
* [License and Disclaimer](#license-and-disclaimer)