Envelope budgeting inspired by YNAB and Monarch — self-hosted, no subscriptions, no data sharing.
Ready to Assign
$3,420.00
December 2024
Net Worth
$24,830
+$840 this month
Total Assets
$31,420
+$1,200 this month
Liabilities
$6,590
-$360 paid off
Saved This Month
$1,240
of $1,500 goal
Spending by Category
Income vs Expenses
Recent Transactions
View all
Whole Foods Market
Groceries · Dec 14
-$87.43
Direct Deposit — Salary
Income · Dec 13
+$4,200.00
Shell Gas Station
Transportation · Dec 12
-$62.18
$0
Forever free, no subscriptions
100%
Your data stays on your server
60s
Docker deploy in one command
Inspired by the best of YNAB and Monarch, purpose-built for self-hosting.
Give every dollar a job. Assign income to categories, see what's left, never overspend.
Spending breakdowns, income vs. expenses, and net worth tracking with interactive charts.
Compare avalanche vs. snowball strategies. See exactly when you'll be debt-free.
Checking, savings, credit cards, mortgages, auto loans, investments, CDs, retirement.
Set savings targets, track progress with visual bars, and quick-add contributions.
Runs on your hardware. No third-party access, no tracking, no ads. SQLite you own.
A time-tested approach to stop living paycheck to paycheck.
When money comes in, it shows up as "Ready to Assign" — dollars waiting for a purpose.
Distribute money into categories: rent, groceries, fun, savings. Every dollar gets a job.
Check your envelope before buying. When it's empty, stop — or move money from another envelope.
Why self-host?
Most budgeting apps want your bank credentials and charge monthly. They profit from your data. With Envelopes, your data never leaves your server.
Free forever
No subscription fees
Fully private
No data sharing
Your hardware
NAS, VPS, or Pi
Open source
MIT licensed
Getting started
All you need is Docker.
docker-compose.yml services:
envelopes:
image: lukevinskywynn/envelopes:latest
container_name: envelopes
restart: unless-stopped
ports:
- "4321:4321"
environment:
- JWT_SECRET=your-random-secret-here
- ENVELOPES_USERNAME=admin
- ENVELOPES_PASSWORD=your-secure-password
volumes:
- envelopes_data:/app/data
volumes:
envelopes_data: docker compose up -d http://your-server:4321 git clone https://github.com/kevin-wynn/envelopes.git
cd envelopes/app
cp .env.example .env # Edit with your settings
docker compose up -d --build | Variable | Default | Description |
|---|---|---|
| JWT_SECRET | — | Auth token signing secret (required) |
| ENVELOPES_USERNAME | admin | Login username |
| ENVELOPES_PASSWORD | changeme | Login password (bcrypt hashed) |
| DATABASE_URL | /app/data/envelopes.db | SQLite database path |