The Windows download is in preparation and not yet public. This guide describes the portable build as it is documented for release. Request early access to be told when it ships.
What you need
A Windows 10 or 11 computer on x64, and Microsoft Edge, which the app window uses.
You do not need administrator rights, Node.js, PostgreSQL, Azure or a developer checkout. The package carries its own runtime and a private local database.
Release artifacts are unsigned unless a release says otherwise, so Windows may show a reputation warning the first time you open the app.
First launch
- Extract the Windows x64 portable ZIP into a new folder.
- Open Analytical Ledger.exe.
- Ledger creates a private local database and opens a one-time setup link in its own window.
- Use the link to create your owner account, then follow onboarding. First-run setup walks through both.
Anyone who holds the link before an owner exists can claim your installation. Do not share it, and do not paste it into a chat. Once an owner exists, the app disables setup.
Close the app window to stop the local server and database. Opening Ledger again reuses the same data. Opening it twice focuses the window that is already open.
The app and the database listen only on your machine's loopback interface. This is a single-user desktop installation, not a server for other computers.
Where your data lives
All mutable state is in %LOCALAPPDATA%\Analytical Ledger. The folder's permissions are restricted to your Windows user.
| Path | What it holds |
|---|---|
postgres\ | The database cluster. |
documents\ | Uploaded documents. |
secrets.json | Generated local database and application keys. Keep it private. |
backups\ | Timestamped upgrade backups with verification receipts. |
logs\ | Launcher, database, application and browser diagnostics. |
edge-profile\ | The dedicated app browser profile. |
Keep the complete state folder, including secrets.json, together when you move or recover an installation. Losing the credentials key makes encrypted integration credentials unreadable.
Avoid network shares and cloud-synced live database directories. An advanced install can set LEDGER_STATE_HOME to another local directory; every launcher and stop command must then use the same value.
Upgrade safely
- Close Ledger, and close any local agent that is connected to it.
- Extract the new ZIP into a new folder. Never extract over the old version.
- Open the new Analytical Ledger.exe. It uses the same state folder.
- Keep the old application folder until you have confirmed the upgrade worked.
When the bundled app version changes, Ledger first runs a pg_dump backup and restores it into a scratch database. It checks that every posted entry has at least two lines and that debits equal credits. It migrates only that scratch copy, and activates it after a second balance check.
The backup gets a .dump.verified.json receipt with its hash and verification time. The previous database stays in the cluster as ledger_previous_*. Nothing is pruned automatically.
If verification or migration fails, Ledger stops and leaves your old database intact. Read the logs before you retry, and do not delete or reset the data folder.
Disk space must cover the backup and two database copies. PostgreSQL major-version upgrades are blocked until a separately verified migration exists. Do not run an older app against newer state: any version difference is treated as an upgrade attempt, not an automatic downgrade.
Upgrade backups cover the database only, not documents or the credentials key. For a complete manual backup, close Ledger, confirm it has stopped, and copy the entire state folder to encrypted offline storage. The Windows package has no scheduled or off-machine backup service. Backups and restore covers the rest.
Stop and troubleshoot
If the app does not start, read logs\supervisor.log and the matching database, application or browser log. Do not share secrets.json, the browser profile or a setup URL.
To request a graceful stop from PowerShell, run this in the extracted application folder:
& '.\runtime\node.exe' '.\app\windows\supervisor.mjs' --stopFor advanced headless use, start the app without a window and open a browser yourself. The selected port is in runtime.json in the state directory.
& '.\Analytical Ledger.exe' --headlessAfter an abrupt power loss the supervisor may refuse to adopt a database process it cannot prove is its own, because postgres\postmaster.pid is still present. Close Ledger and confirm that no process uses this exact state directory before you ask for help reconciling stale lock files. Never delete a live Postgres PID file.
To connect an agent to a local install, keep Ledger running and follow Connect your agent. The local port can change at each launch, so use the address shown in the app window. Preview
Installer and uninstall
When an installer is offered, it is per-user. It installs under %LOCALAPPDATA%\Programs\Analytical Ledger, adds a Start menu shortcut and an optional desktop shortcut, needs no elevation and creates no service. Close Ledger before you upgrade or uninstall.
Uninstalling removes the application files and shortcuts but keeps your data at %LOCALAPPDATA%\Analytical Ledger.
For the portable edition, close Ledger and remove the extracted application folder. Delete the separate state folder only when you mean to remove all accounts, documents, keys and backups for good.