Wallos

Open-source subscription tracker and budgeter

Budgeting & Finance ★ 8.6k stars Easy setup GPL-3.0

Wallos is a free, open-source subscription tracking application. It helps you monitor recurring expenses, get renewal reminders, and visualize spending across all your subscriptions.

Key features

  • Tracks recurring subscriptions
  • Renewal notifications
  • Spending statistics and charts
  • Multi-currency support

Pros & cons

Strengths

  • Very lightweight
  • Simple to deploy

Trade-offs

  • Focused only on subscriptions
  • Manual entry required

Wallos replaces

Last reviewed Aug 26, 2026 · 757 words

Wallos does one job: tell you what you are paying for every month before the next renewal lands, and it does that job on 128 MB of RAM from a single container you can have running in 5 minutes. It will not read your bank account, it will not categorise a card statement, and it will not replace a budget. Read those three limits as scope, not shortcomings. The reason 8,405 people starred a project that only started in 2023 is that the scope is exactly the size of the problem.

Five minutes to running

One image, one volume pair, one environment variable:

services:
  wallos:
    image: bellamy/wallos:latest
    ports:
      - "8282:80"
    environment:
      - TZ=Europe/London
    volumes:
      - ./db:/var/www/html/db
      - ./logos:/var/www/html/images/uploads/logos
    restart: unless-stopped

Open port 8282, create the first account, and you are entering subscriptions. Wallos is PHP on SQLite, so there is no database container, no migration step, and the whole state lives in the db folder. The TZ value matters more than it looks: renewal reminders are computed in that zone, and a wrong one shifts every notification by hours.

A ledger, not a bank feed

Every subscription is typed in by hand: name, cost, currency, billing cycle, next payment date, payment method, category. There is no bank connection and no import from statements, which is the "manual entry required" in the catalogue and the thing that makes people compare it unfavourably with Rocket Money. That comparison misses the point. Rocket Money reads your bank because it is selling you cancellation services; Wallos does not need your bank because you already know what you subscribe to, you just do not know the total.

The first session takes about 30 minutes for a typical household: 15 to 25 entries covering streaming, cloud storage, domains, VPS bills, insurance, the gym. After that, maintenance is a minute a month, usually when a price rises or a trial you forgot to cancel turns into a charge. If you want transactions and budgets, that is Firefly III or Actual Budget, and Wallos sits comfortably alongside either.

The dashboard is the payoff

Once entries exist, the home screen shows monthly and yearly totals, spend per category, per payment method and per member, plus a list ordered by next renewal. Seeing "£214 per month" on one screen, rather than scattered across three cards, is the moment most users find two services to cancel. Multi-currency handles the mix of USD SaaS and local bills: set a main currency, add the others, and optionally paste a Fixer API key (the free tier is enough) so conversions update daily instead of using the rates you typed.

Notifications are where it earns its keep

The reminder is the product. Wallos sends "renews in N days" messages by email (SMTP), Telegram, Discord, Pushover, Gotify, ntfy or a generic webhook, with a configurable lead time. My advice is 3 days for anything monthly and 14 days for annual renewals, because 14 days is enough to cancel a domain or a yearly plan without an argument with support. If you already run ntfy for the homelab, it is one topic and a URL.

Each subscription can be marked as auto-renewing or not, and the ones that are not become a to-do rather than a warning: a hosting bill you pay by invoice, an insurance policy that needs a decision.

Backup is one directory, and that is the whole ops story

Copy the db and logos folders and you have everything; SQLite is a single file and Wallos keeps no other state. Put them in your existing backup job and forget about it. Updates are docker compose pull && docker compose up -d; the app migrates its own schema on start. There is no multi-user permission model beyond a household list, which is why it is tagged single-user, but that also means there is nothing to administer.

What I'd do

Deploy it behind the reverse proxy, spend one evening entering every recurring charge from the last 12 months of statements, wire ntfy with 3-day and 14-day reminders, and add the db folder to the nightly backup. Then leave it alone. Check the finance category if you find yourself wanting budgets or transaction import; that is a different tool for a different problem. For the narrow job of never paying for a forgotten subscription again, Wallos is the lightest thing that actually works.

Similar budgeting & finance apps