Installation Manual
This is installation manual for tackler command line.
To use tackler cli you will need
-
Tackler command line binary
-
Valid configuration file (tackler.toml)
To build the tackler binary, you need to have Rust toolchain installed.
Build and install with Cargo
Easiest way to install tackler is to use the Rust package manager, Cargo.
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).
cargo install tackler
You can uninstall tackler by running cargo uninstall tackler
.
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.04.2
$ git checkout v25.04.2
# Build tackler, use --release flag!
$ cargo build --release --locked --bin tackler
# Check the version info
$ target/release/tackler --version
tackler 25.4.2 (v25.04.2 - 64a0214ad5e58ca)
Minimal setup
Minimal initial installation and setup is described in Quickstart Guide. In essense, it’s:
$ tackler new journal
$ tackler --config journal/conf/tackler.toml
Tackler could be used with the minimal quickstart setup just fine.
But to get the most out of it and for example use strict account data validating, Commodities Price Data, Git SCM data storage, Accounting Audit functionality, it must be configured properly.
Below is recommended setup for production use.
Recommended Setup and layout
You can create default journal setup with tackler new journal
command. This
will create a new journal setup with default configuration files and example
transactions, as laid out below:
Full setup would be:
.
├── 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
). It’s up to for each
system to decide which is the best way to shard
transaction data, or not to shard transactions at all.
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
Provide path to configuration with --config
option.
tackler.toml
The tackler main configuration is file located under conf:
[kernel.input]
storage = "fs"
fs = { path = "..", dir = "txns", suffix = "txn" }
git = { repo = "../.git", dir = "txns", suffix = "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).
See Configuration Example: fs or git how combine git based transaction storage with this setup.
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 reference configuration files for full details:
Git Storage Guide has information how to use integrated version control features with Tackler.
Git and filesystem based production setup is described in Configuration Example
Transaction Data Sharding has ideas for different storage schemes.