Skip to content

YakGravity/subvault

Repository files navigation

SubVault

Go License: AGPL-3.0 Docker Build Built with Claude

A self-hosted subscription management application built with Go and HTMX. Track recurring expenses, visualize spending analytics, and get renewal reminders — all on your own server.

Deutsche Version

Screenshots

Dashboard

Dashboard Light Dashboard Dark

Subscriptions

Subscriptions Grid Light Subscriptions List Dark

Calendar

Calendar Light Calendar Dark

Settings

Settings Light Settings Dark

Features

  • Dashboard — Monthly/annual spending overview with category breakdown
  • Subscription Tracking — Manage all recurring expenses with automatic logo fetching
  • Calendar View — Visual renewal calendar with iCal export (RFC 7986 colors)
  • Analytics — Spending trends by category, monthly projections, savings tracking
  • Notifications — Email (SMTP) and push notifications via Shoutrrr
  • Multi-Currency — 30+ currencies with automatic exchange rates from the European Central Bank (daily XML feed, EUR-based cross-rates, cached locally with offline fallback)
  • 12 Themes — 6 color palettes with light/dark mode, accent colors, collapsible sidebar
  • Data Export — CSV, JSON, iCal, and encrypted backup format
  • REST API — Full CRUD API with key-based authentication
  • i18n — English and German built-in, custom languages via locale files
  • Mobile Responsive — Optimized for all screen sizes
  • Self-Hosted — SQLite database, no external dependencies

Quick Start

# docker-compose.yml
services:
  subvault:
    image: ghcr.io/yakgravity/subvault:latest
    ports:
      - "8080:8080"
    volumes:
      - subvault_data:/app/data
    restart: unless-stopped

volumes:
  subvault_data:
docker compose up -d

Open http://localhost:8080 — no initial setup required.

Documentation

Topic Description
Configuration Environment variables, Docker setup, notifications, reverse proxy
API REST API endpoints, authentication, examples
Development Local setup, building, project structure, code style
Migration Migrating from SubTrackr

Tech Stack

Component Technology
Backend Go 1.24, Gin
Database SQLite (via GORM)
Frontend HTMX, custom CSS design system
Auth Session-based + API keys, CSRF protection
i18n go-i18n (English, German + custom locales)
Container Multi-arch Docker (amd64, arm64)

Built with AI

This project is primarily developed using Claude Code (Anthropic's Claude). Architecture, implementation, debugging, and documentation are AI-generated with human direction and review. Every commit is co-authored by Claude — check the git history for full transparency.

Attribution

SubVault is a fork of SubTrackr by Brian Scott. This fork extends the original with multi-currency support, an extended theme system, internationalization, encrypted backups, push notifications, calendar integration, and a production-ready Docker setup.

License

GNU Affero General Public License v3.0 (AGPL-3.0)