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

cargo install tackler

It will make the tackler command globally available, if you’ve allowed Rust toolchain installation to modify your PATH. If not, the binary is located at CARGO_HOME/bin, that’s typically ~/.cargo/bin/tackler on MacOS and Linux, and C:\Users\<UserName>\.cargo\bin on Windows.

You can uninstall tackler by running cargo uninstall tackler.

Build from source

# Get the source code
git clone --recurse-submodules https://github.com/e257-fi/tackler-ng

cd tackler-ng

# Check the releases
git tag -l

# Select the latest release, e.g. v24.12.1
git checkout v24.12.1

# Build the tackler
cargo build --release --locked --bin tackler

# Check the version info
target/release/tackler --version

tackler 24.12.1 (v24.12.1 - 45f86471a16f414)

Minimal setup

Minimal initial installation and setup is described in Quickstart Guide.

Tackler could be used with minimal quickstart setup just fine, but to get most out of it (strict modes, git storage system, Audit trail functinality etc.), it must be configured properly. Below is recommended setup for production use.

Recommended Setup and layout

Recommended layout and setup (the "installation") 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.

Provide path to configuration with --config option.

tackler.toml

The tackler main onfiguration is file located under conf:

journal/conf/tackler.toml
[input]
storage = "fs"

[fs]
dir = "../txns"
ext = "txn"

...

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