Wealthfolio wealthfolio/wealthfolio:latest https://hub.docker.com/r/wealthfolio/wealthfolio bridge sh false https://forums.unraid.net/topic/198598-afadil-wealthfolio/ https://wealthfolio.app Wealthfolio is a beautiful, open-source, local-first personal finance and investment tracker that keeps all of your data in your own SQLite database with no cloud dependency. Productivity: http://[IP]:[PORT:8088]/ https://raw.githubusercontent.com/wealthfolio/wealthfolio-unraid/main/templates/wealthfolio.xml https://raw.githubusercontent.com/wealthfolio/wealthfolio/main/assets/brand/icon.png --user=99:100 --health-cmd="wget --quiet --tries=1 --spider http://127.0.0.1:8088/api/v1/healthz || exit 1" --health-interval=30s --health-timeout=10s --health-retries=3 --health-start-period=15s Buy me a coffee https://www.buymeacoffee.com/afadil Wealthfolio is a beautiful, open-source, local-first personal finance and investment tracker. Track investments, net worth, spending, and simulations across multiple accounts and asset types — all stored in your own SQLite database with no cloud dependency. **Image:** The official `wealthfolio/wealthfolio` image is multi-arch (`linux/amd64` and `linux/arm64`), so it runs on both x86 servers and ARM boards. For predictable upgrades, pin to a specific version tag (e.g. `wealthfolio/wealthfolio:3.4.0`) instead of `:latest`. ### Required configuration Three variables must be set before the app will start with auth enabled: 1. **WF_SECRET_KEY** — a 32-byte key used to encrypt secrets at rest and sign session tokens. Generate it ONCE and keep it safe: `openssl rand -base64 32` Losing this key means losing access to all stored API keys and broker credentials. 2. **WF_AUTH_PASSWORD_HASH** — an Argon2id PHC hash of your login password. Generate it with: `printf '%s' 'your-password' | argon2 yoursalt16chars -id -e` Use `printf`, not `echo -n`: `echo` behaves inconsistently across shells and can append a trailing newline, producing a hash that will never match your password. Paste the full `$argon2id$...` string. This is required unless you set `WF_AUTH_REQUIRED=false` (e.g. when a reverse proxy handles authentication). 3. **WF_CORS_ALLOW_ORIGINS** — the exact origin URL you will use to reach the app, matching scheme, host, and port (e.g. `http://192.168.1.10:8088` or `https://wealthfolio.example.com`). ### Permissions (UID override) The image runs as UID 1000 internally. The template adds `--user=99:100` so the process runs as Unraid's `nobody:users`, keeping files under `/mnt/user/appdata/wealthfolio` owned correctly. If you are upgrading from a version before v3.4.0, fix ownership once after updating: `chown -R 99:100 /mnt/user/appdata/wealthfolio` ### Backups Back up the entire `/mnt/user/appdata/wealthfolio` folder (it holds the SQLite database and the encrypted secrets file) together with your `WF_SECRET_KEY`. The database is useless without the key, and the key is useless without the database. ### Documentation Full Unraid self-hosting guide: https://wealthfolio.app/docs/guide/self-hosting/unraid https://assets.wealthfolio.app/images/landing/hero-light-v3.png https://assets.wealthfolio.app/images/landing/performance-dashboard.webp https://assets.wealthfolio.app/images/landing/investment-tracking.webp https://assets.wealthfolio.app/images/landing/net-worth.webp https://assets.wealthfolio.app/images/landing/portfolio-insights.webp https://assets.wealthfolio.app/images/landing/account-page.webp 8088 /mnt/user/appdata/wealthfolio true 60 300000 0.0.0.0:8088 /data/wealthfolio.db text