Installation Manual
To use tackler cli you will need
-
Tackler binary
-
Journal configuration
-
Some transaction data
This can be done in few these two steps:
cargo install --locked tackler
tackler a new journal
tackler --config journal/conf/tackler.toml
That’s it, you are all done! Tackler is now ready to be used.
Minimal setup
The minimal journal configuration created in the previous setup can be used just fine, and it’s best way to create and start a new journal.
$ tackler new journal
$ tackler --config journal/conf/tackler.toml
Feel free to add, modify or
delete transaction files under the journal/txns
directory. Tackler will pick
up automatically all files ending as .txn
under that directory.
To use some of the more advanced features of tackler (strict journal validation, Commodity Price Data, Git SCM Storage, Accounting Auditing), the default configuration should be tailored more.
Minimal setup with Git SCM Storage
The minimal setup can be used as it is with Git SCM backed. See Git SCM Primer how to do that.
Recommended Setup and layout
Create default journal setup with tackler new journal
command. That
will create a new journal setup with default configuration files and example
transactions, as laid out below:
journal
├── conf
│ ├── tackler.toml
│ ├── accounts.toml
│ ├── commodities.toml
│ └── tags.toml
└── txns
├── price.db
├── welcome.txn
└── journal.txn
Journal structure
Tackler supports automatic Transaction Data Sharding for journal, and it’s recommended way to structure and store transaction data.
Benefits of this are easy management of journal (the files are smaller, risk of editing conflicts is smaller), more logical structure inside the journal and data is easier to dice for reporting without Transaction Filters.
.
├── bin
│ └── tackler
└── journal
├── conf
│ ├── tackler.toml
│ ├── accounts.toml
│ ├── commodities.toml
│ └── tags.toml
└── txns
├── ...
├── 2020
│ ├── ...
│ └── 12
│ ├── journal-1.txn
│ └── journal-2.txn
└── 2021
└── 01
├── journal-1.txn
└── journal-2.txn
This setup uses year/month based sharding for transactions (the directory
structure under txns
).
The Production Setup has more information about how to extend this with external data (readmes, documentation, etc.) for the journal.
Configuration Settings for Recommended Layout
The default minimal setup creates a configuration, which can be used with both storage backends, see Filesystem Storage Guide and Git SCM Storage Guide for full documentation.
See Git SCM Primer how to initialize Git SCM storage.
tackler.toml
The key settings is kernel.input
in the tackler.toml
[kernel.input]
storage = "fs"
fs = { path = "..", dir = "txns", ext = "txn" }
git = { repo = "../.git", dir = "txns", ext = "txn", ref = "main" }
...
[transaction]
accounts = { path = "accounts.toml" }
commodities = { path = "commodities.toml" }
tags = { path = "tags.toml" }
This setup makes it possible to separate journal setup and data, and store relevant configuration next to transaction data (and possibly under version control).
accounts.toml
If there is missing or mistyped account, that will cause an error and tackler will stop processing journal. See accounts.toml for full documentation of Chart of Accounts and commodity listing.
commodities.toml
If there is missing or mistyped commodities, that will cause an error and tackler will stop processing journal. See commodities.toml for full documentation of Chart of Accounts and commodity listing.
tags.toml
If there is missing or mistyped tag, that will cause an error and tackler will stop processing journal. See tags.toml for full documentation of Chart of Tags.
Next steps
See tackler.toml, accounts.toml, commodities.toml and tags.toml for full configuration options. |
- Tackler Journal
-
General information about the journal
- Filesystem Storage Guide
-
How to store journal on the filesystem
- Git SCM Storage Guide
-
How to use Git SCM Storage
- Tackler Examples
-
Examples and inspiration how to use Tackler in real life use cases.
How to Build and Install Tackler with Cargo
To build the tackler binary, you need to have
Rust toolchain installed. Rust
toolchain is available for Windows, Linux and MacOS on multiple different
hardware platforms. The toolchain installation is fully automated by
rustup
tool.
Easiest way to install tackler is to use the Rust package manager, Cargo.
cargo install --locked tackler
If you run the following command, it will download the source code, build the
binary and install it in your system under CARGO_HOME/bin
(typically
~/.cargo/bin
on MacOS and Linux, and C:\Users\<UserName>\.cargo\bin
on
Windows).
You can uninstall tackler by running cargo uninstall tackler
.
Development version with Cargo
You can also install the latest development version directly with cargo
cargo install --locked \
--git https://github.com/tackler-ng/tackler tackler
Tackler main
branch should build and pass
CI/CD pipeline
all the time.
Build from source
If you want to build the tackler from source, you can do so by cloning the repository and building it with Cargo. It will take care of all dependencies and build the binary for you.
Make sure to use --release flag to build the release version of the binary.
|
# Get the source code
$ git clone --recurse-submodules https://github.com/tackler-ng/tackler
$ cd tackler
# List available releases
$ git tag -l
# Select the latest release, e.g. v25.05.1
$ git checkout v25.05.1
# Build tackler, use --release flag for releases!
$ cargo build --release --locked --bin tackler
# Check the version info
$ target/release/tackler --version
tackler 25.5.1 (v25.05.1 - 86d86b5c0e947b8)
Development with Just
Tackler has justfile
which contains most common actions needed for
development workflow. You can find just here: https://github.com/casey/just