Repository navigation
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)