Sure is the Smithflix self-hosted personal finance application. It runs as a dedicated Rails service with Sidekiq, PostgreSQL, Redis, and a logical-backup sidecar in the Sure Stack.
This page documents the live sure-web, sure-worker, sure-db, sure-redis, and sure-backup services, the current image pin, the current database attachment, and the operational guardrails for changing or debugging the deployment.
sure-web, sure-worker, sure-db, sure-redis, sure-backupsure:workspace-dirty-7756f5d3-20260422ghcr.io/we-promise/sure:stable7756f5d30236c9fb9079cbcc8361d5202a1ecfdc-workspace-dirty-20260422/opt/stacks/sure/compose.yaml and /opt/stacks/sure/compose.override.yaml2026-04-22: live containers now point only at the stack-local compose files and no longer depend on /home/adam/compose.override.sure.*.yamlsure_defaultopen2026-04-23: sure-web, sure-worker, and sure-backup now boot with POSTGRES_DB=sure_restore_verify_202604232026-04-23: live Rails reports Account.count=18, Entry.count=9102, Transaction.count=4708, Balance.count=14483, and Category.count=672026-04-22: the old sure_production database still exists separately and still contains only 10 demo accounts2026-04-23: the previous live recovery database sure_recovery_preview_20260420 is still intact and now remains as a fallback snapshot with Entry.count=4948, Transaction.count=4679, Balance.count=10244, Holding.count=40423, and Category.count=642026-04-22: the live image contains Account::Chartable#chart_period and #oldest_chart_date, which is the account-specific All Time chart fix for single-account history2026-04-22: the live app now includes Ford Credit - 2025 Ford T350 (8506) and the Ford all-time chart series resolves from 2025-07-03 to 2026-04-232026-04-22: the current recovery dataset does not contain Ford PDF imports or family_documents, so the Ford loan history is live but the statement PDFs would need a separate re-import2026-04-23: scratch database sure_restore_verify_20260423 was restored from /srv/docker/sure/backups/daily/sure_production-20260423.sql.gz for comparison without touching live2026-04-23: scratch sure_restore_verify_20260423 is materially fuller than live sure_recovery_preview_20260420 despite the same 18 accounts2026-04-23: the promoted live dataset includes the fuller account histories that were missing from the old recovery DB, including Thrift Savings Plan - Uniformed Services (1573 entries), Robinhood individual (5855) (1684), Robinhood Roth IRA (5835) (735), Robinhood traditional IRA (3765) (434), Green Card (5007) (221), and Businessolver 401-K Plan (_000) (40)2026-04-23: the running sure-web and sure-worker containers also include an in-container hotfix to /rails/app/models/account.rb and /rails/app/models/account/chartable.rb; that fix is live but not yet baked into sure:workspace-dirty-7756f5d3-20260422/srv/docker/sure/app-storage mounted at /rails/storage/srv/docker/sure/postgres/srv/docker/sure/redis/srv/docker/sure/backupspostgres:16, redis:7-alpine, prodrigestivill/postgres-backup-local0.0.0.0:18100 -> 3000http://192.168.0.113:18100curl http://127.0.0.1:18100/2026-04-22/opt/stacks/sure/.envSURE_SECRET_KEY_BASE, SURE_POSTGRES_PASSWORDcd /opt/stacks/sure && docker compose configcd /opt/stacks/sure && docker compose up -dcd /opt/stacks/sure && docker compose up -d sure-web sure-workerdocker inspect sure-web --format '{{.Config.Image}} {{index .Config.Labels "com.docker.compose.project.config_files"}}'docker exec sure-web sh -lc 'printf "POSTGRES_DB=%s\n" "$POSTGRES_DB"'docker exec sure-web sh -lc 'bin/rails runner "puts Account.count"'docker logs sure-webdocker logs sure-workerbin/rails test inside sure-web or sure-worker; use an isolated container or disposable database instead/home/adam/scripts/sure-codex-categorizer.sh2026-05-23: the helper is intended for recurring host cron use, but it delegates the actual categorization work to codex exec, which is prompted to use the Gmail connector plus the local Sure/wiki skills rather than a standalone parser or local mail CLI2026-05-23: the current prompt reviews recent uncategorized purchases across accounts. The van wiki inventory and purchase tracker are consulted only when the evidence suggests a van-related purchase, not as a global filter on the automation.sure-backup writes compressed logical dumps for the configured database into /srv/docker/sure/backups2026-04-23: because the stack env now points at sure_restore_verify_20260423, the backup sidecar is now backing up the promoted 2026-04-23 dataset rather than sure_recovery_preview_20260420/opt/stacks/sure/.env aligned with the intended database name before relying on new restores or importssure_recovery_preview_20260420 is still available as a fallback and was not overwritten during the 2026-04-23 cutover2026-04-23: a read-write scratch restore now exists as sure_restore_verify_20260423 for validation against the local 2026-04-23 daily backupSET transaction_timeout = 0; because the backup was produced by pg_dump 18 and the live server is PostgreSQL 16.13/home/adam/sure-recovery/2026-04-23-scratch-restore/home/adam/sure-recovery/2026-04-23-pre-cutover2026-04-23