Skip to content

v4.0.0

Latest

Choose a tag to compare

@github-actions github-actions released this 05 Jun 09:53
bb768d6

4.0.0 (2025-06-05)

⚠ BREAKING CHANGES

  • simplified webhook notifications without iterator (might break your current webhook settings)
  • allow registration of multiple users (#340)

Features

  • ability to add custom css styles (50bd104)
  • add 2fa support (#525) (2f16ab3)
  • add alphanumeric sort order for subscriptions (#449) (775e6ee)
  • add apilayer as provider for fixer api (0f19dd6)
  • add apilayer as provider for fixer api (#127) (0f19dd6)
  • add brazilian portuguese to available languages (#198) (3ea9d98)
  • add button to clean up search field (da3ee78)
  • add calendar to pwa shortcuts (21ebf29)
  • add calendar view (#399) (369f1a2)
  • add cancelation reminders (#425) (c393146)
  • add custom avatar functionality (#248) (1dbebd3)
  • add czech translations (#701) (426fdfa)
  • add danish translation (0cfefc7)
  • add discord and pushover as notification agents (#300) (8994829)
  • add dutch translation (#655) (b5a9880)
  • add email for notifications to household members (26363dd)
  • add filter and sort dashboard by subscription state (5136048)
  • add filter and sort dashboard by subscription state (afff992)
  • add filter by renew type (1bec973)
  • add filters to statistics page (83234ab)
  • add hability to disable login (#378) (092be22)
  • add hint for mobile swipe action (#608) (49666f8)
  • add icalendar subscription (f5ddbff)
  • add italian translation (70e4234)
  • add korean translation (#314) (bc40320)
  • add maintenance tasks to admin page (9f7f47b)
  • add mobile menu navigation to experimental settings (1dbba18)
  • add monthly budget field and statistics (#329) (b622434)
  • add monthly statistics to the calendar page (f085f8a)
  • add multi email recipients (fed0192)
  • add new notification methods (telegram, webhooks, gotify) (#295) (a408031)
  • add ntfy as notification method (#377) (65edf09)
  • add option for also showing the original price on the dashboard (fed0192)
  • add option for manual/automatic renewals (6e44a26)
  • add option to clone subscription (8304ed7)
  • add option to list disabled subscriptions at the bottom (3281f0c)
  • add over budget warnings on the calendar (88eae10)
  • add payment cycle to csv/json export (5e6bc90)
  • add polish translation (#263) (c752761)
  • add purple theme (4d74c04)
  • add reset password functionality (e1006e5)
  • add russian translation (#305) (ae04d50)
  • add serbian translation (#268) (55089c0)
  • add slovenian translation (03ceb8a)
  • add some leeway for totp codes (6e44a26)
  • add sort by renew type (1bec973)
  • add start date to subscriptions (6e44a26)
  • add stats about inactive subscriptions (#146) (ccac17a)
  • add support to upload svg logos (9f7f47b)
  • add themes and custom color options (70e4234)
  • add total monthly cost trend graph to the statistics page (e7185f9)
  • add ukranian translation (#756) (1bec973)
  • add update notification and release notes to the about page (3e0e88d)
  • add url and notes as variables for the notifications webhook (790defb)
  • add vietnamese translation (#573) (45ff10f)
  • add workflow for building and publishing docker images (970c96a)
  • added custom payment methods (#173) (e739622)
  • admin can manually trigger cronjobs (1946ac9)
  • administration area (e1006e5)
  • allow deletion of the default payment methods (83234ab)
  • allow email notifications without authentication (e7185f9)
  • allow notifications on due date (87f148d)
  • allow registration of multiple users (#340) (e1006e5)
  • allow renaming / translation of payment methods (83234ab)
  • allow selecting tls or ssl for email notifications (#237) (2462435)
  • allow sorting of categories in settings (83234ab)
  • allow sorting payment methods (#217) (aef2d13)
  • allow to disable subscriptions (#144) (50056d9)
  • also show previous payments on the calendar for the current month (c2e85d6)
  • api endpoint to calculate monthly cost (a173d27)
  • backup and restore (#288) (7b509d2)
  • cache logos for offline use (50bd104)
  • change apple touch icon (21ebf29)
  • change filename of backup file (fa99a73)
  • convert wallos into a progressive web app (#151) (19e2058)
  • create users from the admin page (#409) (6d2ffa6)
  • disable display options checkbox when fixer key is not set (5f10525)
  • display error message on the statistics page when the fixer key is needed but is missing (5f10525)
  • don't allow to change currency code if in use (aef2d13)
  • edit and delete options now available directly on the subscription list (8304ed7)
  • enable deployment in subdirectory (e2af9af)
  • enable progressive web app (a2a315e)
  • export subscription as ics from the calendar view (#404) (f1360f7)
  • export subscriptions as csv (8f1e155)
  • export subscriptions as json (8f1e155)
  • filters on the subscriptions page (a396285)
  • fisrt api endpoint (a173d27)
  • frequency is now up to 366 (fa99a73)
  • get admin setting api endpoint (07d456a)
  • get categories endpoint (07d456a)
  • get currencies endpoint (07d456a)
  • get fixer api endpoint (07d456a)
  • get household api endpoint (07d456a)
  • get notifications api endpoint (07d456a)
  • get payment methods api endpoint (07d456a)
  • get settings api endpoint (07d456a)
  • get subscriptions api endpoint (07d456a)
  • get user api endpoint (07d456a)
  • handle webhook payload as string if it is not a json object (#583) (ee834d6)
  • increase privacy by not sending referrer to external urls (3e0e88d)
  • link version update banner to github release (f007adf)
  • more uniform and aligned styles on the settings page (50bd104)
  • new api endpoint that returns the version (ff13fcb)
  • new graph cost vs budget on statistics (#793) (6d67319)
  • new menu icons (28444ab)
  • new statistics per payment method (#124) (6200fa5)
  • notification for wallos version updates (3281f0c)
  • only show filters that are actually used (f007adf)
  • open edit form after cloning subscription (fed0192)
  • option to hide disabled subscriptions (#286) (b80ab4b)
  • option to show progress of subscription cycle (ff13fcb)
  • persist display and experimental settings on the db (f0a6f1a)
  • redesigned experimental mobile navigation menu (a173d27)
  • remove "Wallos" text from calendar export (1bec973)
  • replacement for disabled subscriptions, to more accurately calculate savings (5c92528)
  • rework styles of theme section on settings page (50bd104)
  • run db migration after importing db (5e6bc90)
  • run db migration after restoring database (5e6bc90)
  • search subscriptions by name (a396285)
  • select multiple filters on the dashboard (fed0192)
  • settings to allow to ignore certificates for some notification methods (2a0e665)
  • shorten date displayed on the list of subscriptions (68f1d47)
  • show name of most expensive subscription on statistics (#194) (ede08b1)
  • show name on mobile view when subscription has no logo (9eb2907)
  • show timezone on sendnotification cronjob on admin page (9eb2907)
  • simplified webhook notifications without iterator (might break your current webhook settings) (e0f2048)
  • small layout change on the about page (3e0e88d)
  • small styles changed (f0a6f1a)
  • sort disabled subscription at the bottom (ccac17a)
  • sorting by category or payment method respects order from the settings page (51b2272)
  • specify image stability type when triggering build (5b22cfd)
  • split settings page into settings and profile page (a173d27)
  • store weekly the total yearly cost of subscriptions (5e6bc90)
  • subscriptions have personalized notification times (#334) (c7146df)
  • support automatic dark mode (c2e85d6)
  • swipe subscription for actions on the experimental mobile navigation (28444ab)
  • theming engine custom colors now affect icons as well (83e2066)
  • uniformize layout and styles (+ checkboxes and radios) (#423) (c166c7e)
  • update exchange rate when saving api key (0f19dd6)
  • use brave search for the logos if google fails (#169) (fff783e)
  • use browsers locale to set dates on the dashboard (1dbba18)
  • use currencyConverter for notifications as well (9eb2907)
  • use mobile style toggles instead of checkboxes (e0f2048)
  • use symbol from db when currencyFormatter does not support the currency (9eb2907)
  • use user defined language for the date on the list of subscriptions (68f1d47)
  • user can delete their own account (8f1e155)
  • user has api key available on profile page (a173d27)
  • webhooks can now be used for cancelation notifications (e0f2048)

Bug Fixes

  • access to tmp folder by www-data (51b2272)
  • add ability to run container as an arbitrary user (#396) (86fe2f3)
  • add missing {{days_until}} variable to string version of the webhook (ebc7b83)
  • add missing assets to the service worker (#542) (0251da2)
  • add samesite directive to cookies (8b0325c)
  • add webp support to gd on the container (fa99a73)
  • allow redirects on logo search (ae73db7)
  • allow to clear the budget field (f6b8fb9)
  • allow usernames with capital letters (f241ba2)
  • background removal experimental setting (#307) (bb5ee2e)
  • barely readable placeholder text on textarea on dark the (e0f2048)
  • broken avatar upload when using the french language (cf0d5d3)
  • broken chinese language file (#192) (94c1a91)
  • broken discord form (#302) (b435d6a)
  • broken subscription update query (#431) (b00a985)
  • bug introduced on 2.38.0 on the subscriptions dashboard (#634) (f63c543)
  • bug on saving fixer api key (#142) (866eb28)
  • bug setting main currency for the first registered user (c43b08a)
  • bug when looping multiple subscriptions on the notifications webhook (790defb)
  • bump version (#546) (c5460bd)
  • calculation of monthly cost progress graph (#747) (77486ec)
  • calling htmlspecialchars_decode on null objects (#338) (5050a28)
  • cases where theme and sort cookies could be missing (da3ee78)
  • confusing wording for billing cycle (94ad0cb)
  • cronjob exchange update would not work with apilayer (#381) (b0b4b7a)
  • cronjobs running twice (#239) (00cbf8d)
  • currency conversion failing on the statistics page (03ceb8a)
  • Currency not preselected on registration (fc56cf6)
  • currency symbol for monthly budget (ff13fcb)
  • custom headers for webhook notifications (#375) (7217088)
  • dashboard scrolling to top when opening a subscription (#427) (cb03af8)
  • date comparison check on sendnotifications cronjob (9eb2907)
  • delete avatar would not work if wallos is on a subfolder (69c7d52)
  • delete button on subscription form (#460) (8cb4355)
  • deprecation message (c43b08a)
  • deprecation message for null value (#479) (0274b1d)
  • disable totp with backup code (0cfefc7)
  • disabled inputs on dark theme (#250) (11f0e7c)
  • display actual error message when email test fails (ebc7b83)
  • don't allow saving main and accent colors if they're the same (50bd104)
  • don't expose disabled notifications to ical feed (87f148d)
  • don't show budget alert when budget is 0 (f6b8fb9)
  • don't update next payment date for disabled subscriptions (e7185f9)
  • double encoding in statistics labels (5e6bc90)
  • duplicated messages on discord notifications (d44b40b)
  • edit / delete subscription menu not accessible (#689) (b668d37)
  • email notification test always sending to admins email (87f148d)
  • emails with encryption set to none not working without ssl (9eb2907)
  • encoding for url and notes (#273) (ad86eb5)
  • error on statistics page when budget = 0 (#800) (b7712dc)
  • error setting date of last exchange rates update (#699) (d2f68c4)
  • error when logos folder is empty (#439) (e2e5061)
  • error when not setting custom headers for ntfy (9eb2907)
  • export.php csv header typo (#499) (6e96c5d)
  • file name on ics export for subscriptions with non-ascii characters (4d74c04)
  • file upload bypass vulnerability (#181) (0f7853f)
  • filters for categories and payment method respect order from settings (f007adf)
  • force correct timezone on the cronjobs (88eae10)
  • gotify settings test (0cfefc7)
  • ical trigger to spec RFC5545 (1bec973)
  • import of translations for cronjobs was missing (#321) (a524419)
  • improve czech translation (e2dc269)
  • improve japanese translation (#713) (e2dc269)
  • improve localization (6480f87)
  • improve traditional chinese translation (e2dc269)
  • improve traditional chinese translations (19e2058)
  • incorrect headers on the api (#802) (af68c11)
  • inline items in subscription form out of place (#489) (3f33ba0)
  • issue listing prices when uah was added to the list of currencies (#823) (bd20b56)
  • Language sort order (884a8e5)
  • layout issue on the settings page (#598) (6480f87)
  • layout issue with subscriptions list during search (6e44a26)
  • limit name display, when sub has no logo to two lines (68f1d47)
  • load php calendar extension (#402) (c02ac77)
  • localization on date on browsers not in english (c7b3fb4)
  • logo search positioned below other elements (#637) (72f7e57)
  • menus checkmark position (#419) (4da5d47)
  • missing authentication check (#133) (b887d3a)
  • missing folders on baremetal installation (#554) (03f34d1)
  • missing fonts (03f34d1)
  • more deprecation warnings on image uploads (cf0d5d3)
  • most error messages of the notifications endpoints would not reach the frontend (8994829)
  • move display settings to the bottom (ec25d4b)
  • mysql injection vulnerability (3d6a8c3)
  • new profile page not being cached by service worker (3d6a8c3)
  • NEXT format (9a2d8e8)
  • next payment date not updating for disabled subscriptions (#243) (75a5672)
  • not every payment cycle was shown on the calendar (c2e85d6)
  • notifications being sent on the wrong day (f085f8a)
  • notifications would also be sent x days after subscription was due in some cases (ba912a3)
  • ntfy notifications (#394) (17722c3)
  • on initial registration page, logo can be cut off (#258) (dde8695)
  • only allow the system and admin to run the cronjobs (1946ac9)
  • only show swipe hint on mobile screens (#612) (bd5e351)
  • position of dropdown on rtl layout (da3ee78)
  • possible division by 0 on statistics page (d44b40b)
  • pwa not loading static files when offline (#241) (4e3376d)
  • redirects with the service worker (#183) (940bbbe)
  • reduce size of the log files of the cronjobs (1946ac9)
  • remove debug echo on stats page (#666) (d9a2488)
  • remove service worker (#157) (5ccadce)
  • rename category after adding and sort order of categories (ae73db7)
  • reorder subscription form (ec25d4b)
  • russian translations (#309) (8f890fc)
  • security issue with image upload (#175) (7b5e166)
  • service worker has redirections (4aca7bc)
  • service worker precaching logout.php causes user to be logged out (8b0325c)
  • service worker redirect not set to follow (3640b54)
  • setting pgid and puid for the container (e2dc269)
  • show email field on adding household member (ec25d4b)
  • show translated no category when sorting by category (#122) (330c061)
  • small fixes and typos (a173d27)
  • small icon size for payment icons (#253) (8998e23)
  • small layout inconsistencies on the dashboard (19d3067)
  • small layout issue on the settings page (0623ceb)
  • small layout issues (769f8a0)
  • some strings not using translations on the calendar page (69c7d52)
  • sort by price (8b0325c)
  • sort order after edit subscription in case the cookie is missing (87809fe)
  • special chars in subscriptions (#271) (2683a7c)
  • special chars on calendar exports (1bec973)
  • special chars on notifications (1bec973)
  • sql injection vulnerability when using filters (#214) (cbdc188)
  • state filter not cleared by clear button (1bec973)
  • subscription progress above 100% for disabled subscriptions (c43b08a)
  • svg error on calendar page (#650) (8ba79c0)
  • syntax error on svg logo (#417) (b82f750)
  • test ntfy without custom headers (#456) (8fcfc92)
  • timezone for cronjobs now comes from TZ env var first (#791) (66a1a45)
  • translate: "no category" (fa99a73)
  • trim fixer api key (fa99a73)
  • typo on czech translation (c43b08a)
  • typo on export subscriptions to csv (fed0192)
  • typo on webhook payload (8304ed7)
  • undefined var if sort cookie is not set (#207) (288c106)
  • undefined var on the statistics page (#211) (8b7a7b9)
  • unset sortOrder var (a1fab4d)
  • update exchange cron only working for one user (#384) (815eea7)
  • update packages to fix vulnerabilities (a2a315e)
  • update slovanian translations (fa99a73)
  • use 2 decimal places for price on the calendar (f241ba2)
  • use 2 decimal places for price when exporting ical in the calendar (f241ba2)
  • use first currency on the list of currencies if user has not selected a main currency (c43b08a)
  • use gd if imagick is not available (c43b08a)
  • use the same font for inputs (5136048)
  • use the same font for inputs (a539058)
  • use translations on the mobile menu (68f1d47)
  • verify correct path before creating logos folder (782ebcd)
  • version mismatch (#627) (c4a9b16)
  • version number (eade2d9)
  • version number (#610) (4bd40f1)
  • version number (#668) (683a366)
  • vulnerability adding logos from url (0cfefc7)
  • vulnerability on delete avatar (69c7d52)
  • vulnerability on the restore database endpoints (3b2de8b)
  • warning on top of dashboard page (#512) (9056722)
  • wrong folder for payment method logos (#227) (f6c1ff2)
  • wrong message when deleting payment methods (#202) (93a3d18)
  • xss issue on the dashboard (#568) (e642129)
  • xss security vulnerability with the avatar selection (e7185f9)