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).

Install tackler with Cargo
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:

Minimal setup
$ 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.

Provide path to configuration with --config option.

tackler.toml

The tackler main configuration is file located under conf:

journal/conf/tackler.toml
[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.