Skip to main content

01-wallos.md

kstack: book: Centerpoint Home Lab chapter: Finance page: Wallos tags: [wallos, subscriptions, finance, sqlite]

Overview

emptyWallos is a self-hosted subscription and recurring payment tracker. It tracks monthly, annual, and custom-interval subscriptions, calculates total spending, and provides a visual dashboard of recurring costs. Data is stored in a SQLite database. Authentication is Wallos' own built-in user system — no Authentik integration. External-only route.

Access

Type URL Auth External https://wallos.jeevesconsults.ca GeoBlock + CrowdSec (own auth)

No internal home.local route configured.

Configuration

Image: bellamy/wallos:latest
Runtime: PHP 8.3

Traefik Labels

traefik.http.routers.wallos.rule: Host(`wallos.jeevesconsults.ca`)
traefik.http.routers.wallos.entrypoints: websecure
traefik.http.routers.wallos.tls.certresolver: letsencrypt
traefik.http.routers.wallos.middlewares: plex-geoblock@file,crowdsec-bouncer@file,wallos-headers
traefik.http.middlewares.wallos-headers.headers.customrequestheaders.X-Forwarded-Proto: https
traefik.http.services.wallos.loadbalancer.server.port: 80

Volumes / Bind Mounts

Host Path Container Path Purpose /home/jeeves/docker/wallos/db /var/www/html/db SQLite database /home/jeeves/docker/wallos/logos /var/www/html/images/uploads/logos Subscription logos

Wallos stores all data in a SQLite file within the db bind mount. No external database dependency.

Notes / Gotchas

    Wallos manages its own user accounts — no SSO or Authentik integration. Credentials are stored in the SQLite database. The X-Forwarded-Proto: https middleware is required for PHP to detect HTTPS correctly when behind a reverse proxy. Service logos are persisted in the logos bind mount. Both db/ and logos/ must be backed up together to fully restore the instance. No currency exchange rate API key is required by default — Wallos supports manual rate entry.

    Last Updated: 2026-06-17