Docs · Install
Install SteadyPlan
Most people run SteadyPlan on Docker or Unraid with a host-mounted data directory. The only hard requirement is that /app/data persists — that’s where your database and keys live.
Evaluate safely first
Best order: screenshots/tour first, then your own local install on LAN or VPN if you want hands-on evaluation. Public demo access can be useful, but only as a deliberate read-only setup by the host — not as the default trust path for real use.
Quick install (Docker)
Pull the image, run the container, and map a host folder to /app/data.
docker pull ghcr.io/jahumac/steadyplan:latest
docker run -d \ --name steadyplan \ --restart unless-stopped \ -p 8000:8000 \ -v /path/to/steadyplan-data:/app/data \ ghcr.io/jahumac/steadyplan:latest
On Unraid, a common host path is /mnt/user/appdata/steadyplan.
Older installs may still reference the historical shelly-finance name (image or data folder). You can switch images without wiping data as long as you keep the same /app/data mount.
Docker Compose (optional)
If you prefer Compose, this is the minimal shape:
services:
steadyplan:
image: ghcr.io/jahumac/steadyplan:latest
container_name: steadyplan
ports:
- "8000:8000"
volumes:
- ./data:/app/data
restart: unless-stopped
Then:
docker compose up -d
Developer install (from source)
If you are cloning the repo or building locally:
# 1. Clone and enter the repo git clone https://github.com/Jahumac/steadyplan cd steadyplan # 2. Create a virtual environment python -m venv .venv source .venv/bin/activate # Windows: .venv\Scripts\activate # 3. Install dependencies (locked, with hashes) pip install -r requirements.txt --require-hashes # 4. Run python run.py
Dependencies are locked via pip-tools. If you add or update a dependency, see CONTRIBUTING.md.
Then open http://localhost:8000.
First run
- Open
http://YOUR_SERVER:8000. - On first visit you’ll be prompted to create an admin account.
- Your database is created under the mounted data directory (typically
finance.db).
Where your data lives
Your persistent app data is in the host path you mounted to /app/data. It typically includes:
finance.db(SQLite database)secret_key.txt(Flask secret key; keep this with the database)backups/(optional whole-instance SQLite backups created from the app)
Use from phone
SteadyPlan runs on your server/NAS/desktop. Your phone does not host the app — it just connects to your instance in a browser.
- Use it from desktop, tablet, or phone browser on your LAN/VPN.
- Where supported, you can install it as a web app (PWA) from the browser “Add to Home Screen” / “Install app” menu.
Update
Before updating, take a backup (see Backups & restore).
docker compose pull docker compose up -d
If you run SteadyPlan with a plain docker run command instead of Compose, pull the new image and recreate the container with the same /app/data mount. A plain restart on its own will keep the old image.
GitHub (secondary)
GitHub is the source-of-truth for releases and development: Releases, Issues, Source.
Next: Backups · Reverse proxy · Privacy