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
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
/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
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