Self-hosted personal finance

Weave together your future.

Wicker Money is a self-hosted personal finance app you run yourself — a thin core plus installable plugins, and no one else holding your data.

Your server, your data

Runs on your own hardware over Docker and PostgreSQL. Every user, and every plugin’s tables, are isolated with row-level security enforced by Postgres itself — not just checked in app code.

No ads, no algorithm

No investors, no advertising business model, nothing to sell. The incentive to mine your transactions for anything other than showing them back to you doesn’t exist.

No lock-in

The app and bundled plugins are AGPL-3.0; the plugin SDK is Apache-2.0 so third-party plugins can pick their own license. Nothing about your install is proprietary.

The app

Designed to feel like today, not 2010

A dashboard, a ledger you can actually read, and category rules that don't fight you. This is the app's real navigation and the bundled budgets plugin, not a hosted demo.

Illustrative, built from the app's real design tokens and its actual nav (Dashboard, Accounts, Transactions, Categories) plus the bundled Budgets plugin — not a hosted demo, and not a feature list. Seewhat's shipped vs. planned for that.

Self-hosting, honestly

Harder than Mint. Easier than you think.

There's no cloud sign-up flow to hide the moving parts. You'll need Docker and a PostgreSQL 16+ server — Postgres specifically, since plugin isolation is enforced with row-level security, roles and schemas that only Postgres has.

  1. Pull the published image from GHCR and point it at your Postgres server.
  2. Run the migrations as the database owner role (the running app never gets owner privileges).
  3. docker compose up -d, then sign in at the port you configured.
docker pull ghcr.io/wickermoney/wicker-money:latest

docker network create wickermoney_default
docker volume create wickermoney_data

docker run --rm --env-file .env \
  wickermoney node dist/db/cli.js up

docker compose up -d

Where things stand

Pre-1.0, one maintainer, built in the open.

Auth, the ledger, the plugin shell and CSV import are shipped (milestones M1–M3). That's stated plainly, not as a disclaimer — it's why the roadmap moves in small, shipped pieces instead of promised dates.