Sign inSign up

andrelppereira/subtracker-api

By andrelppereira

•Updated 8 months ago

Subscription tracking API built with .NET 10, FastEndpoints, SQLite, and Pushover notifications.

Image
0

1.6K

andrelppereira/subtracker-api repository overview

⁠SubTracker API

REST API for subscription management with multi-currency support and automatic push notifications.

⁠Features

  • CRUD operations for subscriptions
  • Multi-currency exchange rates (Frankfurter API with 24h cache)
  • User settings (base currency preference)
  • API key authentication (optional)
  • SQLite database with auto-migration
  • Pushover push notifications
  • Background jobs for renewal reminders and exchange rate refresh
  • Swagger documentation

⁠Quick Start

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

⁠With API Key Authentication

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

When ApiKey is set, all requests must include the X-Api-Key header. /health and /swagger are excluded.

⁠With Pushover Notifications

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

⁠Environment Variables

VariableDescriptionRequired
ConnectionStrings__DefaultSQLite connection stringYes
ApiKeyAPI key for endpoint protectionNo
Pushover__ApiTokenPushover app tokenNo
Pushover__UserKeyPushover user keyNo

⁠Endpoints

MethodEndpointDescription
GET/api/subscriptionsList all subscriptions
GET/api/subscriptions/{id}Get subscription by ID
POST/api/subscriptionsCreate a subscription
PUT/api/subscriptions/{id}Update a subscription
DELETE/api/subscriptions/{id}Delete a subscription
POST/api/subscriptions/importImport subscriptions (JSON)
GET/api/settingsGet user settings
PUT/api/settingsUpdate user settings
GET/api/exchange-ratesGet exchange rates (?base=EUR)
GET/swaggerAPI documentation
GET/healthHealth check

⁠License

MIT

Tag summary

Content type

Image

Digest

sha256:1d14336d8…

Size

111.6 MB

Last updated

8 months ago

docker pull andrelppereira/subtracker-api