Deploy Wealthfolio
Personal finance and investment tracking with persistent SQLite storage.
Wealthfolio
Just deployed
/data
Deploy and Host Wealthfolio on Railway
What is Wealthfolio?
Wealthfolio is an open-source, local-first personal-finance application for tracking investments, net worth, spending, goals, and portfolio performance. Its self-hosted web mode combines a browser interface and REST API with a single SQLite database, keeping financial records in infrastructure controlled by the deployer.
About Hosting Wealthfolio
This template runs Wealthfolio 3.6.2 as one digest-pinned container with a persistent Railway volume for its SQLite database, encrypted integration secrets, and add-ons. Railway provides the public HTTPS endpoint while the application runs its embedded migrations at startup and exposes a dedicated health check. Portable settings are prefilled, including the fixed application port, database path, generated encryption key, public-origin reference, and secure cookie policy. The deployer supplies one Argon2id password hash for access control; no third-party API credentials or external database are required.
Common Use Cases
- Track investments, holdings, and portfolio performance.
- Maintain a private net-worth and spending dashboard.
- Model goals and financial scenarios from self-hosted data.
Dependencies for Wealthfolio Hosting
- Wealthfolio
3.6.2, pinned to its official multi-platform image digest. - One Railway persistent volume mounted at
/data. - An Argon2id PHC hash for the deployer's chosen web password.
Deployment Dependencies
- Wealthfolio v3.6.2 source
- Wealthfolio web and Docker configuration
- Railway volume guidance
- Railway health checks
Implementation Details
Wealthfolio listens on port 8088; PORT=8088 tells Railway to probe the same
port at /api/v1/healthz. The application database is
/data/wealthfolio.db, and the same volume also retains the encrypted
secrets.json file and add-ons directory. Embedded migrations run before the
server begins accepting traffic.
Railway mounts volumes as root, while the upstream image declares UID/GID 1000.
RAILWAY_RUN_UID=0 applies Railway's documented compatibility setting so the
process can write to /data. This is a platform compatibility tradeoff; use a
future upstream image with a privilege-dropping entrypoint when one becomes
available.
WF_SECRET_KEY is generated once per deployment and must remain stable because
it encrypts stored integration secrets and signs sessions. The required
WF_AUTH_PASSWORD_HASH must be an Argon2id PHC string for a password chosen by
the deployer. Generate it locally using the command in the upstream
authentication guide, then paste the complete value beginning with
$argon2id$. Authentication stays enabled, cookies automatically become
Secure behind Railway HTTPS, and the MCP endpoint remains disabled.
Before updating, back up /data, review Wealthfolio's release notes, and test
the new immutable image digest in an isolated project. Roll back to the prior
digest together with the matching volume backup if a new database migration is
not backward compatible. Do not rotate WF_SECRET_KEY unless encrypted stored
secrets can be re-entered.
This community template is maintained independently and does not imply affiliation with or endorsement by Wealthfolio.
Why Deploy Wealthfolio on Railway?
Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.
By deploying Wealthfolio on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.
Template Content
Wealthfolio
wealthfolio/wealthfolioWF_AUTH_PASSWORD_HASH
Argon2id PHC hash for the web password. Generate locally with the immutable upstream guide: https://github.com/wealthfolio/wealthfolio/blob/633d3a1be7a87e40fbb2d5d335bd60ba4219718b/README.md#password-authentication
