Skip to content

truenormis/savvy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

34 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Savvy Savvy

Savvy

Selfhosted expense tracker with full multi-currency support. One container โ€” done.

Docker Version License

๐ŸŽฎ Try it now!

Demo

๐Ÿ” demo@demo.com / demo


Savvy Screenshot

โšก Quick Start

docker run -d -p 3000:80 -v savvy-data:/data truenormis/savvy:latest

Open localhost:3000 and create your account.

โœจ Features

  • Multi-currency โ€” any fiat or crypto, transfers between them
  • Auto exchange rates โ€” currency rates updated automatically via API
  • Recurring transactions โ€” scheduled payments (daily, weekly, monthly, yearly)
  • Automation rules โ€” auto-categorize transactions based on conditions
  • Debts โ€” track loans and borrowings with payment history
  • Budgets โ€” set limits and track progress
  • Categories & tags โ€” flexible organization
  • Multi-user โ€” share with family or team, role-based access (admin/user)
  • Rich analytics โ€” Sankey diagrams, heatmaps, net worth tracking, expense pace
  • CSV import โ€” import transactions from bank exports with duplicate detection
  • Backups โ€” create, restore and download database backups
  • 2FA โ€” two-factor authentication via TOTP (Google Authenticator, etc.)

Savvy Reports

๐Ÿ“ฑ Mobile-Friendly

Fully responsive design built with ShadCN/UI โ€” track expenses from your phone right after purchase.

Mobile Dashboard ย ย ย 

๐Ÿš€ Deployment

Docker Compose (Recommended)

version: "3.8"

services:
  savvy:
    image: truenormis/savvy:latest
    container_name: savvy
    restart: unless-stopped
    ports:
      - "3000:80"
    volumes:
      - savvy-data:/data
    environment:
      - APP_URL=https://savvy.yourdomain.com
      - TZ=Europe/Kyiv

volumes:
  savvy-data:

Environment Variables

Variable Description Default
APP_URL Public URL of your instance http://localhost
TZ Timezone UTC

With Traefik (HTTPS)

version: "3.8"

services:
  savvy:
    image: truenormis/savvy:latest
    container_name: savvy
    restart: unless-stopped
    volumes:
      - savvy-data:/data
    environment:
      - APP_URL=https://savvy.yourdomain.com
      - TZ=Europe/Kyiv
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.savvy.rule=Host(`savvy.yourdomain.com`)"
      - "traefik.http.routers.savvy.entrypoints=websecure"
      - "traefik.http.routers.savvy.tls.certresolver=letsencrypt"
      - "traefik.http.services.savvy.loadbalancer.server.port=80"
    networks:
      - traefik

volumes:
  savvy-data:

networks:
  traefik:
    external: true

With Nginx Proxy Manager

  1. Run Savvy on internal port:
version: "3.8"

services:
  savvy:
    image: truenormis/savvy:latest
    container_name: savvy
    restart: unless-stopped
    expose:
      - "80"
    volumes:
      - savvy-data:/data
    environment:
      - APP_URL=https://savvy.yourdomain.com
    networks:
      - npm-network

volumes:
  savvy-data:

networks:
  npm-network:
    external: true
  1. In Nginx Proxy Manager, create proxy host pointing to savvy:80

Kubernetes

Savvy works out of the box on Kubernetes. Deploy as a single-pod Deployment with a PersistentVolumeClaim mounted at /data. Helm chart coming soon.

๐Ÿ”„ Updating

docker compose pull
docker compose up -d

Your data is safe in the /data volume.

๐Ÿ’พ Backups

Backups can be managed directly from the UI (Settings โ†’ Backups).

Manual backup:

docker cp savvy:/data/database.sqlite ./backup-$(date +%Y%m%d).sqlite

Restore:

docker cp ./backup.sqlite savvy:/data/database.sqlite
docker restart savvy

๐Ÿ”’ Privacy

Your data stays with you. SQLite database stored in /data volume โ€” no external services required.

๐Ÿ›  Stack

Laravel โ€ข SQLite โ€ข Docker โ€ข ShadCN/UI โ€ข Tailwind CSS

๐Ÿค Contributing

Contributions are welcome! Please open an issue first to discuss what you would like to change.

๐Ÿ“„ License

MIT


Made with โค๏ธ for people who want control over their finances