Installation
Platform support
Section titled “Platform support”The prebuilt binaries have been tested on:
| Platform | Tested on |
|---|---|
| macOS | macOS Tahoe (26.x), Apple Silicon |
| Linux | Debian 13 (Trixie), x86_64 |
| Windows | Windows 11 Home |
The Linux AppImage should also work on similarly modern Debian/Ubuntu derivatives that ship WebKit2GTK 4.1 (Ubuntu 22.04+, Linux Mint 21+, Pop!_OS 22.04+, recent Fedora). Older releases such as Debian 12 (Bookworm), Ubuntu 20.04, and RHEL 8 ship older system libraries and won’t run the prebuilt AppImage.
If the prebuilt binary doesn’t run on your system, build Finzytrack yourself from source. This is much less involved than it sounds — the Build Instructions page walks through every step. The process takes 10–15 minutes once your build prerequisites are installed, and the result is a binary tailored to your system’s library versions.
Download
Section titled “Download”Download the latest release for your platform:
| Platform | Direct download |
|---|---|
| macOS | Finzytrack-macOS.zip |
| Linux | Finzytrack-x86_64.AppImage |
| Windows | Finzytrack-windows.zip |
The links above always resolve to the most recent stable release. To browse historical releases, change logs, or pre-release builds, visit the GitHub Releases page.
The macOS build is for Apple Silicon (M-series) only. Intel Macs are not supported by the prebuilt binary — build from source if you’re on Intel.
Install
Section titled “Install”- Download
Finzytrack-macOS.zip. - Extract the zip — this produces
Finzytrack.app. - Drag
Finzytrack.appto your Applications folder. - Open Finzytrack — see First launch on macOS below for the one-time security step.
First launch on macOS
Section titled “First launch on macOS”Finzytrack is not signed with an Apple Developer certificate yet (this will change in a future release). On macOS Sequoia (15) and Tahoe (26), Apple’s Gatekeeper blocks unsigned apps downloaded from the internet and shows the dialog “could not verify Finzytrack is free of malware…” with only Move to Trash and Done as options. The right-click → Open workaround that worked on older macOS no longer exists.
You only need to do this once, when you first launch the app after downloading it.
Recommended: Terminal (one command).
Open the Terminal app, type the following with a trailing space:
xattr -dr com.apple.quarantineThen drag Finzytrack.app from Finder into the Terminal window — the full path is pasted in automatically. Press Return. Then launch the app normally from Finder.
The command strips Apple’s “downloaded from the internet” marker. After this, the app launches without any warning.
Alternative: System Settings (GUI).
- Try to launch the app — the security dialog appears. Click Done.
- Open System Settings → Privacy & Security.
- Scroll down to the Security section.
- You’ll see a line referencing the blocked Finzytrack app with an Open Anyway button. Click it.
- Confirm with your password / Touch ID.
- Launch the app from Finder again — it’ll open this time.
Uninstall
Section titled “Uninstall”- Quit Finzytrack if it is running.
- Delete
Finzytrack.appfrom your Applications folder. - Delete your user data:
~/Library/Application Support/Finzytrack/
Install
Section titled “Install”- Download
Finzytrack-x86_64.AppImage. - Make it executable:
chmod +x Finzytrack-x86_64.AppImage- Run it:
./Finzytrack-x86_64.AppImageThe AppImage is a single self-contained file — no installation step is needed. You can move it anywhere you like (e.g., ~/Applications/).
Required runtime packages
Section titled “Required runtime packages”The AppImage doesn’t bundle GTK, WebKit, or any other system libraries — it relies on the user’s distro to supply them. The two packages you need are:
libwebkit2gtk-4.1— the WebKit rendering engine used to display the UIlibfuse2— required by AppImage itself to mount as a runtime filesystem
Use whichever line matches your distro:
| Distro | Install command |
|---|---|
| Debian 13 / Ubuntu 24.04+ | sudo apt install libwebkit2gtk-4.1-0 libfuse2t64 |
| Debian 12 / Ubuntu 22.04 | sudo apt install libwebkit2gtk-4.1-0 libfuse2 |
| Fedora 36+ | sudo dnf install webkit2gtk4.1 fuse-libs |
| Arch / Manjaro | sudo pacman -S webkit2gtk-4.1 fuse2 |
| openSUSE Tumbleweed | sudo zypper install libwebkit2gtk-4_1-0 libfuse2 |
The package manager will pull in everything else (GLib, GTK, Pango, Cairo, X11, font/icon libraries…) as transitive dependencies, so you don’t need to list them yourself.
If the AppImage fails to start with cannot open shared object file: libwebkit2gtk-4.1.so.0, install the package above. The launcher also prints a friendly install hint when it detects WebKit is missing.
On Debian 13, the FUSE package is named libfuse2t64 rather than libfuse2 — part of Debian 13’s time_t 64-bit transition. Older distros still use the libfuse2 name.
To integrate Finzytrack with your desktop environment (application menu, file manager, etc.), you can use AppImageLauncher.
Running without a graphical session
Section titled “Running without a graphical session”On a server install with no X or Wayland, pass --headless to start the backend only:
./Finzytrack-x86_64.AppImage --headlessThe app is then reachable from any browser at http://127.0.0.1:8001.
Uninstall
Section titled “Uninstall”- Quit Finzytrack if it is running.
- Delete the AppImage file.
- Delete your user data:
~/.local/share/Finzytrack/
If you used AppImageLauncher, also remove the desktop entry from ~/.local/share/applications/.
Windows
Section titled “Windows”Install
Section titled “Install”- Download
Finzytrack-windows.zip. - Extract the zip — this produces a
Finzytrackfolder. - Open the folder and double-click
Finzytrack.exe.
There is no installer. The app runs directly from the extracted folder. You can move the folder anywhere and create a shortcut to Finzytrack.exe on your Desktop or pin it to the Start Menu.
Windows Defender SmartScreen may show a warning because the executable is not signed with a Windows code signing certificate. Click More info and then Run anyway.
A small console window opens alongside the main application window. This is intentional in current builds: it shows diagnostic output while Finzytrack starts up, so if something goes wrong you can copy the text from it and share it when reporting an issue. Closing the console window also closes the app — close the main Finzytrack window instead. Later releases will hide it.
If the app fails to start with a ”.NET” error
Section titled “If the app fails to start with a ”.NET” error”Windows tags every file extracted from a downloaded zip as untrusted (“Mark of the Web”), and this can prevent the bundled .NET assemblies from loading. The launcher tries to clear this marker on startup, but if you see an error mentioning Python.Runtime.Loader.Initialize or clr_loader, you can clear the markers manually. Open PowerShell, navigate to the extracted folder, and run:
Get-ChildItem -Recurse . | Unblock-FileThen start Finzytrack.exe again.
Uninstall
Section titled “Uninstall”- Quit Finzytrack if it is running.
- Delete the
Finzytrackfolder. - Delete your user data:
%LOCALAPPDATA%\Finzytrack\
User data
Section titled “User data”On first launch, Finzytrack creates a data directory and seeds it with default configuration. All user data (configuration, ledger, database) is stored here:
| Platform | Path |
|---|---|
| macOS | ~/Library/Application Support/Finzytrack/ |
| Linux | ~/.local/share/Finzytrack/ |
| Windows | %LOCALAPPDATA%\Finzytrack\ |
Uninstalling the app does not remove this directory. Delete it manually if you want to remove all data.
Command-line options
Section titled “Command-line options”The Finzytrack launcher accepts the following options:
| Option | Description | Default |
|---|---|---|
--headless | Run without a GUI window (server only) | off |
--host HOST | Backend server host | 127.0.0.1 |
--port PORT | Backend server port | 8001 |
--config PATH | Path to config file | config/config.yaml |
--ledger-file PATH | Path to Beancount ledger file | from config |
--log-level LEVEL | Logging level | INFO |
--debug | Enable debug mode | off |
The backend always serves the frontend on its HTTP port, so you can access Finzytrack from a browser at http://127.0.0.1:8001 whether or not the native window is open.
Building from source
Section titled “Building from source”If you want to build Finzytrack from source or create builds for other platforms, see the Build Instructions page.
Advanced: Self-hosting on a server
Section titled “Advanced: Self-hosting on a server”Finzytrack is designed as a local desktop app, but it can be self-hosted on a VPS or home server so that you can access it from multiple devices. This is not an officially supported configuration — you are entirely responsible for securing it.
On your server, clone the repository and install dependencies:
git clone https://github.com/sagarbehere/finzytrack.gitcd finzytrack
python -m venv venvsource venv/bin/activatepip install -r backend/requirements.txt
cd frontendnpm installnpm run buildcd ..Start the backend, serving the built frontend:
cd backendpython -m app.main --static-dir ../frontend/dist --host 0.0.0.0This starts Finzytrack on port 8001, accessible from the network.
If you prefer, you can also use a packaged desktop binary with --headless --host 0.0.0.0 instead of running from source.
Securing access
Section titled “Securing access”Do not expose Finzytrack directly to the internet without authentication. There are two common approaches:
Option A: Reverse proxy with authentication. Place a reverse proxy like Caddy or nginx in front of Finzytrack. The reverse proxy should handle HTTPS (Caddy does this automatically via Let’s Encrypt) and authentication (HTTP basic auth, OAuth, or another authentication layer). A minimal Caddy example:
finzytrack.example.com { basicauth * { your_username $2a$14$hashed_password_here } reverse_proxy localhost:8001}Option B: VPN or private network. Use a VPN such as Tailscale or WireGuard to make your server reachable only from your own devices. With this approach, Finzytrack never needs to be exposed to the public internet, and you can skip the reverse proxy and authentication entirely. This is the simpler and more secure option if you only need access from your own devices.
Keeping it running
Section titled “Keeping it running”Use a process manager like systemd or supervisord to keep Finzytrack running and restart it after crashes or reboots. A basic systemd unit file (update /path/to/finzytrack to match where you cloned the repository):
[Unit]Description=FinzytrackAfter=network.target
[Service]Type=simpleUser=finzytrackWorkingDirectory=/path/to/finzytrack/backendExecStart=/path/to/finzytrack/venv/bin/python -m app.main --static-dir /path/to/finzytrack/frontend/dist --host 127.0.0.1Restart=on-failure
[Install]WantedBy=multi-user.targetUpdating
Section titled “Updating”To update a self-hosted instance, pull the latest changes, reinstall dependencies, rebuild the frontend, and restart the service:
cd finzytrackgit pullsource venv/bin/activatepip install -r backend/requirements.txtcd frontend && npm install && npm run build && cd ..# Restart the service (if using systemd)sudo systemctl restart finzytrack