Getting Started¶
Use this section when you are taking BillTracker from “empty server” to
“ready to track bills.” The recommended install is Docker with one persistent
/data mount for the SQLite database, backups, and app-owned runtime files.
Which path should I follow?¶
-
New Docker install
Create the data directory, write a Compose file, seed the first admin, start the container, and verify the app is reachable.
-
First login
Rotate the seeded password, create a regular bill-tracking user, confirm security settings, and decide what to enable first.
-
Existing install
Back up
/data, pull the next image, run migrations, verify the app, and know how to roll back if the upgrade does not look right.
Fresh install checklist¶
- Pick the host path that will hold data, for example
/portainer/hosting/bill-tracker/data. - Create
data/dbanddata/backupson that host. - Generate a strong
TOKEN_ENCRYPTION_KEYbefore production use. - Set
INIT_ADMIN_USERandINIT_ADMIN_PASSfor the first start only. - Start the container and open the app at the published port.
- Log in as the bootstrap admin.
- Create a normal user for bill tracking.
- Remove or rotate seed credentials after the first successful login.
- Put the app behind HTTPS before exposing it beyond a trusted LAN.
- Create a first backup before entering real financial data.
What should I know before installing?¶
| Decision | Recommended choice | Why it matters |
|---|---|---|
| Runtime | Docker Compose | Keeps Node, the built frontend, migrations, and /data paths predictable. |
| Data path | A host directory mounted to /data |
Replacing the container must not delete the SQLite database or backups. |
| Admin account | Seed once with env vars | The app needs an admin before it can be managed. Remove seed credentials after setup. |
| Daily use account | Create a regular user | Admins manage the server; normal users own bill-tracking data. |
| HTTPS | Reverse proxy with trusted TLS | Secure cookies, WebAuthn, and mobile browser behavior are all cleaner over HTTPS. |
| Encryption key | TOKEN_ENCRYPTION_KEY outside the database |
Keeps encrypted SimpleFIN/OIDC/SMTP/TOTP secrets separate from a DB backup. |
What does a healthy first install look like?¶
After setup:
docker psshows the BillTracker container as running.- The web UI loads at your chosen URL.
- The bootstrap admin can open the Admin area.
- A regular user can log in and open Tracker, Bills, Calendar, and Settings.
/data/db/bills.dbexists on the host./data/backupsexists and is writable.- The Admin status page does not show migration or database errors.
How do I run it from source instead?¶
Source installs are useful for development. For production, prefer Docker.
For a production-style local build:
The server listens on PORT, defaulting to 3000.