Understand your personal finances. Forget Excels, try Whisper Money.
Go to file
Víctor Falcón 9dab6f4835 chore: release v0.1.3 2026-01-09 10:06:44 +01:00
.cursor Laravel boost: add instructions for claude 2025-12-16 11:53:38 +01:00
.github Add production Docker setup for easy self-hosting with the CI-built image (#42) 2025-12-30 07:22:19 +01:00
app feat: Send custom emails to users (#52) 2026-01-09 09:33:19 +01:00
bootstrap Demo Account Experience (#51) 2026-01-07 10:58:14 +01:00
config Demo Account Experience (#51) 2026-01-07 10:58:14 +01:00
database feat: Send custom emails to users (#52) 2026-01-09 09:33:19 +01:00
docker fix: auto-regenerate APP_KEY if invalid format (missing base64: prefix) 2025-12-30 07:22:19 +01:00
public landing: add encryption video 2025-12-30 15:35:10 +01:00
resources fix: scroll category combobox to top while searching 2026-01-09 10:02:25 +01:00
routes Demo Account Experience (#51) 2026-01-07 10:58:14 +01:00
src/lib/crypto E2E Encryption 2025-11-07 14:21:25 +00:00
storage Import CSV 2025-11-08 14:17:11 +00:00
templates/coolify fix: auto-regenerate APP_KEY if invalid format (missing base64: prefix) 2025-12-30 07:22:19 +01:00
tests feat: Send custom emails to users (#52) 2026-01-09 09:33:19 +01:00
traefik feat(traefik): Add secure headers middleware to WhisperMoney service 2025-11-14 09:17:09 +01:00
.editorconfig Set up a fresh Laravel app 2025-11-07 12:01:36 +00:00
.env.example Demo Account Experience (#51) 2026-01-07 10:58:14 +01:00
.env.production.example Add production Docker setup for easy self-hosting with the CI-built image (#42) 2025-12-30 07:22:19 +01:00
.gitattributes Set up a fresh Laravel app 2025-11-07 12:01:36 +00:00
.gitignore feat: Implement drip email campaign system (#35) 2025-12-30 07:22:18 +01:00
.mcp.json Laravel boost: add instructions for claude 2025-12-16 11:53:38 +01:00
.php-cs-fixer.dist.php Execute browser tests on CI (#10) 2025-12-03 16:26:30 +01:00
.prettierignore Set up a fresh Laravel app 2025-11-07 12:01:36 +00:00
.prettierrc Set up a fresh Laravel app 2025-11-07 12:01:36 +00:00
.release-it.json feat: add version tracking with git tags and changelog 2025-12-30 07:22:19 +01:00
CHANGELOG.md chore: release v0.1.3 2026-01-09 10:06:44 +01:00
CLAUDE.md Laravel boost: add instructions for claude 2025-12-16 11:53:38 +01:00
Dockerfile Add production Docker setup for easy self-hosting with the CI-built image (#42) 2025-12-30 07:22:19 +01:00
LICENSE.md Add Creative Commons license 2025-11-26 17:07:20 +01:00
README.md Add demo account link on the readme page 2026-01-07 11:26:01 +01:00
artisan Set up a fresh Laravel app 2025-11-07 12:01:36 +00:00
boost.json Laravel boost: add instructions for claude 2025-12-16 11:53:38 +01:00
bun.lock Push sourcemap to bugsink 2025-12-31 12:56:25 +01:00
components.json Set up a fresh Laravel app 2025-11-07 12:01:36 +00:00
compose.yaml feat: Implement drip email campaign system (#35) 2025-12-30 07:22:18 +01:00
composer.json Add Cashflow Analytics Feature (#49) 2026-01-05 13:06:50 +01:00
composer.lock Add Cashflow Analytics Feature (#49) 2026-01-05 13:06:50 +01:00
docker-compose.production.yml Add production Docker setup for easy self-hosting with the CI-built image (#42) 2025-12-30 07:22:19 +01:00
eslint.config.js Y3:0 2025-11-26 12:01:49 +01:00
package-lock.json chore: release v0.1.3 2026-01-09 10:06:44 +01:00
package.json chore: release v0.1.3 2026-01-09 10:06:44 +01:00
phpunit.xml Execute browser tests on CI (#10) 2025-12-03 16:26:30 +01:00
tsconfig.json Set up a fresh Laravel app 2025-11-07 12:01:36 +00:00
vite.config.ts Push sourcemap to bugsink 2025-12-31 12:56:25 +01:00
vitest.config.ts feat: add multiple chart view modes for net worth evolution (#37) 2025-12-30 07:22:19 +01:00
vitest.setup.ts feat: add multiple chart view modes for net worth evolution (#37) 2025-12-30 07:22:19 +01:00

README.md

Whisper Money

Deutsch | Español | français | 日本語 | 한국어 | Português | Русский | 中文

Whisper Money

CC BY-NC 4.0

The most secure way to understand your finances.

Whisper Money is a privacy-first personal finance application that helps you track, categorize, and understand your spending—all while keeping your financial data encrypted and secure.

🎮 Try the Demo: Experience Whisper Money with our demo account - no registration required!

💬 Join our Community: Whether you're a user looking for help or a developer wanting to contribute, we'd love to have you in our Discord server! Share feedback, ask questions, discuss new features, or just hang out with fellow privacy enthusiasts.

Features

  • 🔐 End-to-end encryption — Your financial data stays private
  • 🏦 Bank account management — Track multiple accounts in one place
  • 📊 Transaction categorization — Automatic and manual categorization
  • 🤖 Automation rules — Set up rules to auto-categorize transactions
  • 📈 Financial insights — Understand your spending patterns

Tech Stack

  • Backend: Laravel 12, PHP 8.4
  • Frontend: React 19, Inertia.js v2, TypeScript
  • Styling: Tailwind CSS v4
  • Database: MySQL
  • Cache/Queue: Redis
  • Testing: Pest v4

Running Locally

Prerequisites

  • Docker & Docker Compose
  • Composer
  • Node.js / Bun

Setup

  1. Clone the repository:
git clone https://github.com/whisper-money/whisper-money.git
cd whisper_money
  1. Copy the environment file:
cp .env.example .env
  1. Start the Docker services:
docker compose up -d
  1. Install dependencies and setup the application:
composer setup
  1. Start the development server:
composer run dev

This will concurrently start:

  • PHP development server
  • Queue worker
  • Log viewer (Pail)
  • Vite dev server

The application will be available at https://whispermoney.test.

Running with Docker (Production Image)

For testing the production Docker image locally:

  1. Copy the production environment file:
cp .env.production.example .env
  1. Start the services:
docker compose -f docker-compose.production.yml up -d

The application will be available at http://localhost:8080.

To use a different port, set APP_PORT:

APP_PORT=3000 docker compose -f docker-compose.production.yml up -d

Deploying to Coolify

Whisper Money can be easily deployed to Coolify using our Docker Compose template.

Quick Deploy

  1. In Coolify, create a new resource and select Docker Compose
  2. Choose Empty Compose File as the source
  3. Paste the contents from our template: 👉 whisper-money.yaml
  4. Deploy!

The template includes:

  • Whisper Money application container
  • MySQL 8.0 database with health checks
  • Persistent volumes for data and storage
  • Auto-generated database credentials

Required Environment Variables

Variable Description
RESEND_API_KEY Email service API key (for password resets, notifications)

Note: APP_KEY and APP_URL are auto-configured. The container generates an APP_KEY on first startup if not provided.

Optional Environment Variables

Variable Default Description
DRIP_EMAILS_ENABLED true Enable drip emails (welcome, onboarding, feedback)
HIDE_AUTH_BUTTONS false Hide login/register buttons on landing page
SUBSCRIPTIONS_ENABLED false Enable Stripe subscriptions
STRIPE_KEY - Stripe publishable key
STRIPE_SECRET - Stripe secret key
STRIPE_WEBHOOK_SECRET - Stripe webhook signing secret

License

This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.