Skip to content

Releases: zlimteck/subly_app

Subly v1.3.6

04 Dec 09:18

Choose a tag to compare

Subly v1.3.6 - Icon Search Feature

New Features

Icon Search with Dashboard Icons Integration

  • New: Search modal with 2,320+ curated icons from Dashboard Icons library
  • Added icon search button in subscription form alongside file upload
  • Real-time search by name, alias, or category
  • Smart auto-population: search automatically uses service name from form
  • Clean UI with automatic hiding of broken/missing icons

Technical Details

Icon Selection Methods

Users now have 3 ways to add subscription icons:

  1. Auto-detection - Automatic logo detection from service URL (existing)
  2. File upload - Upload custom image files (existing)
  3. Icon search - Browse and search 2,320+ icons (new)

What's Changed

Added:

  • IconSearchModal.jsx - New search modal component
  • IconSearchModal.css - Responsive styling for all themes
  • Search button in subscription form with responsive layout

Updated:

  • SubscriptionForm.jsx - Integrated icon search functionality
  • SubscriptionForm.css - Added responsive button layout
  • en.json / fr.json - Added new translation strings

GitHub: https://github.com/zlimteck/subly_app
Docker Hub: https://hub.docker.com/r/zlimteck/subly

Subly v1.3.5

01 Dec 09:45

Choose a tag to compare

Subly v1.3.5 - Critical Bugfix

Bug Fixes

Critical: Application Startup Crash

  • Fixed: Application no longer crashes when VAPID environment variables are empty strings
  • Improved validation to properly detect missing or empty VAPID credentials
  • Push notification service now gracefully disabled when credentials are not fully configured
  • Better error handling for optional service initialization

Technical Details

Previous behavior:

  • App crashed if VAPID_SUBJECT="" (empty string)
  • Web-push library threw error on invalid credentials

New behavior:

  • Validates that VAPID variables are not empty before initialization
  • Cleanly disables push notifications if any credential is missing or empty
  • Application starts successfully even with incomplete VAPID configuration

Important Notes

  • Hotfix release for v1.3.4 deployment issues
  • No functional changes or new features
  • Recommended immediate upgrade if experiencing startup crashes
  • Backward compatible with all 1.3.x versions

GitHub: https://github.com/zlimteck/subly_app
Docker Hub: https://hub.docker.com/r/zlimteck/subly

Subly v1.3.4

01 Dec 09:10

Choose a tag to compare

Subly v1.3.4 - Version Management System

New Features

Version Display & Tracking

  • App version now displayed in terminal header: root@subly-1.3.4:~$
  • Version automatically injected during Docker build via GitHub Actions
  • Real-time version visibility for administrators and users
  • Version info accessible from both main dashboard and admin panel

Updates Tab in Admin Panel

  • New dedicated "Updates" tab exclusively for administrators
  • One-click update checker that queries GitHub releases API
  • Visual update notifications with direct links to release pages
  • Comparison between current version and latest available version
  • Smart update detection system

Complete Release History

  • Display of last 10 releases directly in admin panel
  • Each release shows:
  • Version number with highlighted badge for current version
  • Release title and publication date
  • Full release notes from GitHub
  • Direct link to view release on GitHub
  • Current version prominently marked with green badge
  • Chronological ordering from newest to oldest

Improvements

User Experience

  • Clean terminal-style version display integrated into header
  • Mobile-responsive tabs with horizontal scrolling
  • Hidden scrollbar for seamless mobile experience

Backend Enhancements

  • New endpoint: GET /api/version - Returns current app version
  • New endpoint: GET /api/version/check-updates - Checks GitHub for updates
  • Automated release fetching from GitHub Releases API
  • Intelligent version comparison and update detection
  • Comprehensive error handling for offline scenarios

DevOps Improvements

  • GitHub Actions workflow enhanced to pass version to Docker builds
  • Version automatically extracted from git tags during CI/CD
  • Docker images tagged with specific version numbers
  • Seamless version propagation from repository to production

Important Notes

  • Admin-only feature (Updates tab visible only to administrators)
  • Requires internet connection to check for updates from GitHub
  • No automatic updates - manual deployment still required
  • Update notifications are informational only
  • Version persists across container restarts
  • Compatible with existing deployment methods (Docker Hub, Portainer, etc.)

GitHub: https://github.com/zlimteck/subly_app
Docker Hub: https://hub.docker.com/r/zlimteck/subly

Subly v1.3.3

30 Nov 15:27

Choose a tag to compare

Subly v1.3.3 - Dynamic Category Management

New Features

Custom Categories Support

  • Users can now create custom categories directly from the subscription form
  • Categories are dynamically loaded from the database instead of being hardcoded
  • Real-time category creation with inline UI (+Create new category...)
  • Support for unlimited custom categories
  • Categories are user-specific and fully customizable

Backend Enhancements

  • New Category model and API endpoints (/api/categories)
  • Migration script to initialize default categories from legacy system
  • Automatic category creation with validation
  • Improved category management and organization

Improvements

User Experience

  • Enhanced category dropdown with inline creation option
  • Smooth transition between category selection and creation
  • Better error handling for category operations
  • Improved i18n support for dynamic categories

Important Notes

Migration Required

First-time setup or upgrade from previous versions:
node /app/backend/scripts/migrateCategories.js

This script will:

  • Create default categories in the database
  • Preserve existing subscription categories
  • Only needs to be run once

GitHub: https://github.com/zlimteck/subly_app
Docker Hub: https://hub.docker.com/r/zlimteck/subly

v1.3.2

28 Nov 13:23

Choose a tag to compare

Subly v1.3.2 - Optional Notifications & Stability Fix

Bug Fixes

Critical: Application Crash Prevention

  • Fixed: Application no longer crashes when VAPID/email credentials are not configured
  • Push and email notifications are now completely optional
  • Better error messages for missing optional services

Configuration Improvements

  • Simplified docker-compose.yml with optional services commented by default
  • Minimal required configuration: only MONGODB_URI and JWT_SECRET
  • Updated .env.example with clear optional sections
  • Improved generateVapidKeys.js script output

Important Notes

  • Backward-compatible bugfix release
  • Existing deployments continue to work
  • Generate VAPID keys when needed: node backend/scripts/generateVapidKeys.js

GitHub: https://github.com/zlimteck/subly_app
Docker Hub: https://hub.docker.com/r/zlimteck/subly

v1.3.0

11 Nov 13:38

Choose a tag to compare

Subly v1.3.0 - Calendar Integration & Multi-Device Synchronization

New Features

Calendar Integration (iCal)

  • Calendar subscription: Unique token-secured URL to sync your payments with Apple Calendar, Google Calendar, Outlook, etc.
  • Manual download: Export an .ics file for one-time import into your calendar
  • Automatic synchronization: Your calendar updates automatically when you modify your subscriptions
  • Recurring events: Monthly and annual subscriptions appear as recurring events
  • Smart reminders: Alarms configured according to your notification preferences (1, 3, or 7 days before)

Multi-Device Preference Synchronization

  • Currency: Your choice between EUR and USD is saved in the database and synced across all your devices
  • Theme: Your preferred theme (dark, light, dracula, nord, solarized) is preserved between sessions
  • Automatic loading: Your preferences are automatically restored at each login
  • Real-time synchronization: Changes are immediately saved and applied

Docker Improvements

Simplified Deployment

  • Docker Hub image: Use the pre-built image zlimteck/subly:latest directly
  • MongoDB 8.0 included: Local MongoDB service in docker-compose.yml for deployment without cloud account
  • MongoDB Atlas support: Option to use MongoDB cloud if you prefer
  • Bind mounts: Ability to specify your own paths for MongoDB volumes
  • Optimized Docker Compose: Simplified configuration with a single service for frontend + backend

CI/CD

  • Faster builds: Removed Docker Hub description step that was causing failures
  • ARM64 optimization: ARM64 architecture disabled to speed up builds (from 2h+ to ~5min)
  • GitHub Actions cache: Cache usage for even faster builds

Bug Fixes and Improvements

Bootstrap & Installation

  • Improved generateInvite.js script: Automatic bootstrap mode to create the first invitation without a user
  • Docker compatible: The script works correctly in Docker containers
  • Complete documentation: Detailed instructions for execution in Docker

User Interface

  • Consistent spacing: Fixed button spacing in the ProfileModal
  • Calendar URLs: Correct configuration for development and production
  • Calendar descriptions: Fixed line breaks in events

Documentation

  • Docker Hub guide: Instructions for using the pre-built image
  • Docker Compose: Complete guide with local MongoDB and Atlas options
  • Docker scripts: Documentation for running generateInvite.js and promoteAdmin.js in containers
  • Environment variables: Updated examples

Update

From Docker Hub (Recommended)

docker pull zlimteck/subly:1.3.0
docker stop subly-app
docker rm subly-app

Restart with the new version

From Docker Compose

Edit docker-compose.yml and change:

image: zlimteck/subly:1.3.0
docker-compose down
docker-compose up -d

Manual Installation

git pull origin main
git checkout v1.3.0
npm install
npm run dev

Requirements

No new dependencies required. Existing environment variables are sufficient. MongoDB 8.0 is recommended but compatible with earlier versions.

Important Notes

  • Existing preferences will be automatically migrated on first login
  • Calendar URL is unique per user and does not change
  • Calendar tokens are persistent and do not require regeneration

Full installation: https://github.com/zlimteck/subly_app
Docker image: https://hub.docker.com/r/zlimteck/subly

v1.2.2

11 Nov 12:25

Choose a tag to compare

v1.2.2 - Docker Build Optimization

Optimizations

  • Faster Docker builds: Disabled ARM64 platform to avoid slow QEMU emulation on GitHub Actions
  • Deterministic builds: Replaced npm install with npm ci for faster and more reliable dependency installation
  • Improved caching: Optimized Docker layer caching for faster subsequent builds

Technical Details

Build time improvement: Reduced build time from 2+ hours to approximately 5-10 minutes by removing ARM64 cross-compilation.

Breaking changes: Docker images are now only available for linux/amd64 platform. ARM64 support may be re-enabled in the future with dedicated ARM runners.

Files Changed

  • .github/workflows/docker-publish.yml - Removed ARM64 platform
  • Dockerfile.prod - Updated to use npm ci instead of npm install

Full Changelog: v1.2.1...v1.2.2

v1.2.1

11 Nov 07:55

Choose a tag to compare

Version 1.2.1 - Docker Production Build Fix

Fixed

Docker Single Container Deployment:

  • Fixed Dockerfile.prod build failure due to missing package-lock.json files
  • Replaced npm ci with npm install in Docker build steps
  • Created dedicated nginx.prod.conf for single container architecture
  • Fixed nginx proxy configuration to use localhost:5071 instead of docker-compose service name

Technical Details

This patch release fixes the production Docker image build that was failing with the following error: npm error The npm ci command can only install with an existing package-lock.json

Changes:

  • Added nginx.prod.conf specifically for Dockerfile.prod (single container)
  • Kept frontend/nginx.conf for docker-compose.yml (multi-container)
  • Both deployment methods (single container and docker-compose) are now fully functional

Deployment:

The single container production image can now be built successfully:
docker build -f Dockerfile.prod -t subly:prod .

Notes

  • Image size: ~150 MB
  • No breaking changes
  • Existing docker-compose deployments are unaffected

Full Changelog: v1.2.0...v1.2.1

v1.2.0

09 Nov 14:14

Choose a tag to compare

Version 1.2.0 - Web Push Notifications & PWA Enhancements

New Features

Web Push Notifications

  • Browser push notifications for upcoming trial expirations
  • Payment reminders with configurable timing (1, 3, or 7 days before)
  • Multi-language support (English/French) based on user preference
  • Service Worker implementation for offline capability
  • Automatic language synchronization with backend
  • Compatible with: iOS 16.4+ PWA, Android Chrome, Desktop Chrome/Firefox/Edge

PWA Enhancements

  • App shortcuts in context menu (Dashboard, Add Subscription)
  • Badge API showing trial count on app icon
  • Add Subscription shortcut opens form directly

Configurable Timezone

  • Environment variable TZ for cron job scheduling
  • Support for all IANA timezones (Europe/Paris, America/New_York, etc.)
  • Automatic handling of daylight saving time changes
  • Configuration in .env, docker-compose.yml, and Dockerfile

UI/UX Improvements

  • Payment reminder days selector now adapts to theme with calendar icon
  • Fixed notification description text alignment
  • Corrected email notification description (trial-only)
  • Enhanced profile modal notification preferences

Backend

  • Web Push service with web-push library
  • VAPID key generation script (generateVapidKeys.js)
  • Push subscription storage in MongoDB
  • Notification translations (EN/FR) in backend
  • Cron jobs for automated push notifications
  • Payment reminder service with user-configurable timing

Documentation

  • README updated with Web Push setup instructions
  • .env.example includes VAPID keys and timezone configuration
  • Complete API documentation for push notification endpoints
  • Docker deployment examples with new environment variables

Environment Variables Added:

  • VAPID_PUBLIC_KEY - Public key for Web Push
  • VAPID_PRIVATE_KEY - Private key for Web Push
  • VAPID_SUBJECT - Contact info for push service
  • TZ - Timezone for cron jobs (default: UTC)

Full Changelog: v1.1.1...v1.2.0

v1.1.1

07 Nov 23:20

Choose a tag to compare

Version 1.1.1 - Date Calculation Bugfix

Bug Fixes

Fixed date calculation bug where notifications and trial badges showed incorrect number of days remaining.

What was fixed:

  • Trial badges on subscription cards now show accurate days remaining
  • Notification panel "days until" text displays correct countdown
  • Header notification badge count uses accurate date calculations

Technical details:

  • Now uses startOfDay() to normalize dates before calculating differenceInDays
  • Fixes issue where hour/minute components caused off-by-one errors
  • Applied fix across 3 components: NotificationPanel.jsx, Header.jsx, SubscriptionList.jsx

Example:

Before: Payment due on Nov 10 showed "2 days" when current date was Nov 7
After: Same scenario now correctly shows "3 days"

Full Changelog: v1.1.1...v1.1.1