Skip to content

[Add App] Wealthfolio — private, local-first AI personal finance tracker #3475

Description

@abidals

Please provide the basic information of the app

App name(Required)
Wealthfolio

Project URL(Required, Github preferred)
https://github.com/wealthfolio/wealthfolio (upstream site: https://wealthfolio.app)

Container image URL​(Optional but helpful)
wealthfolio/wealthfolio:latest on Docker Hub — multi-arch (linux/amd64, linux/arm64), so no rebuild is needed for either Olares node arch. Mirror also published at ghcr.io/wealthfolio/wealthfolio.

Reasons(Optional)
Local-first, privacy-first personal finance tracker (investments, net worth, spending, simulations) — a natural fit for Olares' self-hosted audience; upstream is actively developed and widely used (~9k stars), AGPL-3.0.
Single stateless container + SQLite on a data volume: maps cleanly onto the Olares userspace-storage model (appData hostPath mounted at /data, uid/gid 1000). No external database needed — no system middleware wiring required.
Built-in auth (Argon2id password hash) and a native MCP server for AI-agent access with scoped, revocable tokens — pairs well with Olares' AI/Router direction.

Additional context
I already built and run a working Olares chart for it on my own device (Olares 1.12.6). A reference implementation is public here: https://github.com/abidals/Wealthfolio-Olares. What the port does, in case it helps maintainers:

apiVersion: v3 manifest; image runs as uid/gid 1000 (spec.runAsUser: true) with a non-recursive init-permissions initContainer for the userspace mount.
Storage: single userspace appData volume mounted at /data; entrance on port 8088, CORS pinned to the app's own origin.
Secrets design (nothing baked into the chart):
WF_SECRET_KEY (master/JWT key) is generated once per install via Helm lookup + randAlphaNum, stored in a Secret with helm.sh/resource-policy: keep so reinstalls can still decrypt old data;
the login password is supplied at install as an Argon2id PHC hash (WF_AUTH_PASSWORD_HASH, type: password, editable: true, applyOnChange: true) — the app never accepts a plaintext password.
Optional AI-agent access: WF_MCP_ENABLED (bool, default false, editable + auto-restart) toggles the app's /mcp endpoint; tokens are scoped/revocable and audit logging is on by default upstream.
Entrance is authLevel: public deliberately — Wealthfolio's own password gate + PAT bearer auth is the access control for the MCP endpoint (the app refuses to start with MCP enabled but no auth configured).
Suggested Market category: Lifestyle (same as Firefly III). (There is no Finance category :) )

Happy to open a PR against this repo with the chart (I can adapt it to your review feedback), or hand it over as-is if you prefer.

Community voting & Contribution

📊Voting matters
If you want this update, vote with 👍 (thumbs up) on the issue. We prioritize requests with higher community interest.

🙌You can help!​
Already done — a working, lint-clean chart exists at https://github.com/abidals/Wealthfolio-Olares and runs on Olares 1.12.6 (install + upgrade verified). Happy to open the PR myself; please assign me to this issue.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    awaiting triageNew issue, awaiting initial review

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions