docs/self-host/README.md
Wealthfolio ships an official Docker image so you can run the web edition on your own hardware. Full self-hosting guides live on the website:
š wealthfolio.app/docs/guide/self-hosting
This directory only holds in-repo artifacts (the Unraid CA template) and short pointers per platform.
Multi-arch (linux/amd64, linux/arm64), published on every v*.*.* tag:
| Registry | Image |
|---|---|
| Docker Hub | wealthfolio/wealthfolio:latest (primary) |
| Docker Hub | afadil/wealthfolio:latest (legacy mirror) |
| GHCR | ghcr.io/wealthfolio/wealthfolio:latest |
docker pull wealthfolio/wealthfolio:latest
Existing deployments that pin afadil/wealthfolio:latest keep working ā both
Docker Hub repos receive the same multi-arch build from CI. New deployments
should prefer wealthfolio/wealthfolio.
The container runs as a non-root user (UID/GID 1000:1000).
Fresh install: Docker named volumes work out of the box. For a bind mount, make the host directory writable by UID 1000:
mkdir -p ./data && sudo chown -R 1000:1000 ./data
Upgrading from an older image: existing data is owned by root and must be
chowned once. Pick the line that matches your setup:
# named volume
docker run --rm -v <your-volume>:/data alpine chown -R 1000:1000 /data
# bind mount
sudo chown -R 1000:1000 /path/to/your/data
unraid/template.xml.