Sign inSign up

andrelppereira/subtracker

By andrelppereira

•Updated 8 months ago

Full-stack subscription tracker with Flutter frontend and .NET 10 API in a single container.

Image
0

10K+

andrelppereira/subtracker repository overview

⁠SubTracker

Full-stack subscription management app with Flutter web frontend and .NET 10 API.

⁠Features

  • Subscription tracking with categories, billing cycles, and multi-currency (EUR/USD/GBP)
  • Monthly/yearly spending overview with currency conversion (Frankfurter API)
  • Analytics dashboard with spending by category, monthly trends, and KPI cards
  • Permanent navigation: NavigationBar (mobile) + NavigationRail (desktop)
  • API key authentication (optional)
  • Push notifications via Pushover
  • Search, filter, sort, and swipe actions
  • Dark/light mode (Material 3)
  • Export/import subscriptions as JSON

⁠Quick Start

docker run -d \
  -p 80:80 \
  -v subtracker-data:/data \
  -e ConnectionStrings__Default="Data Source=/data/subtracker.db" \
  andrelppereira/subtracker:latest

Open http://localhost to access the app.

⁠With API Key Authentication

docker run -d \
  -p 80:80 \
  -v subtracker-data:/data \
  -e ConnectionStrings__Default="Data Source=/data/subtracker.db" \
  -e ApiKey=your-secret-api-key \
  -e SUBTRACKER_API_KEY=your-secret-api-key \
  andrelppereira/subtracker:latest

Both ApiKey and SUBTRACKER_API_KEY must match. ApiKey protects the backend; SUBTRACKER_API_KEY is injected into the frontend.

⁠With Pushover Notifications

docker run -d \
  -p 80:80 \
  -v subtracker-data:/data \
  -e ConnectionStrings__Default="Data Source=/data/subtracker.db" \
  -e Pushover__ApiToken=your_token \
  -e Pushover__UserKey=your_key \
  andrelppereira/subtracker:latest

⁠Environment Variables

VariableDescriptionRequired
ConnectionStrings__DefaultSQLite connection stringYes
ApiKeyAPI key for backend endpoint protectionNo
SUBTRACKER_API_KEYAPI key injected into frontend (must match ApiKey)No
Pushover__ApiTokenPushover app tokenNo
Pushover__UserKeyPushover user keyNo

⁠Ports

PortService
80Frontend + API

⁠Endpoints

  • / — Flutter web app
  • /api/subscriptions — REST API
  • /api/exchange-rates — Exchange rates
  • /api/settings — User settings
  • /swagger — API documentation
  • /health — Health check

⁠License

MIT

Tag summary

Content type

Image

Digest

sha256:1ac4d6377…

Size

126.4 MB

Last updated

8 months ago

docker pull andrelppereira/subtracker