ellite / wallos Goto Github PK
View Code? Open in Web Editor NEWWallos: Open-Source Personal Subscription Tracker
License: GNU General Public License v3.0
Wallos: Open-Source Personal Subscription Tracker
License: GNU General Public License v3.0
It would be nice being able to customize the number of columns of the main view.
(a slider maybe?)
Or could be done by grouping them by month/year, keeping them in order.
Tried to setup the email settings but when I press the test button it causes Wallos to freeze up (504 gateway error) and then it does nothing (sometimes I get the "Error sending notification" pop-up"). I confirmed my SMTP settings are correct.
When I add a subscription with a weekly Billing Cycle and access the Stats page, I get the following warnings:
Warning: Undefined property: DateInterval::$weeks in /var/www/html/stats.php on line 101
Warning: Undefined property: DateInterval::$weeks in /var/www/html/stats.php on line 102
Without a weekly Billing Cycle, the warnings are not shown.
Otherwise, everything seems to work.
Adding household members implies they could also be users this does not seem to be the case?
It would in a sense also open the door for gift subscriptions, i.e. subscriptions for 1 person paid for by another
Hi! Wonderful app. I'm wondering what's the "Billing Cycle". I have a subscription that I have to pay every 3 years. There is an option for this? Maybe it is a "Feature Request".
The ability to add more than one "scheduled" notification.
For example, a notification 1 day before and one 7 days before the expiry.
I'd say let us customize the time of the notifications.
Can be tied to my other issue #27
My docker-compose:
---
version: "3.7"
service:
wallos:
image: bellamy/wallos:latest
container_name: wallos
depends_on:
- traefik
#expose:
# - 8282
ports:
- 8282:8282
networks:
- service
volumes:
- /opt/docker/container/wallos/db:/var/www/html/db
- /opt/docker/container/wallos/logos:/var/www/html/images/uploads/logos
environment:
TZ: ${TZ}
labels:
# Watchtower:
com.centurylinklabs.watchtower.enable: true
com.centurylinklabs.watchtower.scope: mainScope
# Traefik:
traefik.enable: true
# Traefik rules for wallos:
traefik.http.services.wallos.loadbalancer.server.port: 8282
traefik.http.routers.wallos-local.entrypoints: 'http'
traefik.http.routers.wallos-local.rule: 'Host(`wallos.${DOMAIN_INTERNAL}`)'
restart: unless-stopped
I also used the example script in the readme
docker run -d --name wallos -v /opt/docker/container/wallos/db:/var/www/html/db \
-v /opt/docker/container/wallos/logos:/var/www/html/images/uploads/logos \
-e TZ=Europe/Berlin -p 8282:9999 --restart unless-stopped \
bellamy/wallos:latest
Output from the logs:
[12-Nov-2023 14:53:34] NOTICE: fpm is running, pid 6
[12-Nov-2023 14:53:34] NOTICE: ready to handle connections
Database already exist. Checking for upgrades...
Table 'notifications' already exists.
Column 'notify' already exists in table 'subscriptions'.
I tried the following:
When trying to reach the container:
Any idea where I could l start looking? All other containers usually work fine
I think an option to pause a subscription would be useful to not set it all up again.
Could be used in the future for data collection for nice graphs
Honestly being able to maybe just hit a checkbox on the side of a subscription and then its background go green and stop it from being shooting out an alert and upon the next "due date" it would reset would honestly make this perfect.
support for different Language would be awesome :)
Thank you for this great project! I have a request, I pay for some services every 2 years (Protonmail), is it possible to have more choices? Thank you
I attempted to rename a Category and it does not appear to save this change. I've tabbed out of the field and clicked to save changes in other sections. The renamed category is reverted when adding a new subscription or going back into settings.
The Paid by field value reflects the new username.
The Paid by field still uses the old username.
Manually update the household
table using sqlite3
and a query like this:
UPDATE household SET name = 'New Username' WHERE id = 1;
PS: Thanks for this handy little tool! I really like it, seems to be just the right thing for folks not looking for a full blown budgeting solution.
I'd like the ability to run the container under another user than root.
We could do this by leveraging environment variables:
-e PUID=1000 \
-e PGID=1000 \
or by using the user
argument from docker:
user: 1000:1000
Hello! I know the main install page suggests adding family members but from what I can see, anyone registered after the initial user just gets a name. I am not seeing any place to set a password for them, so they can sign in separately.
Assuming I'm right about that, consider this my request to enable logins for more users. I'd like to be able to share this with my SO and have her see her name on the screen, when she logs in.
Thanks for the great little app.
A useful feature would be the possibility to rate a subscription depending on usage or usefulness.
Maybe I am the only one who has subscriptions that, I thought, are needed, but rarely be used.
Such a feature (optional of course) could be extended to a form which could be filled ones a month/period to rate selected subscriptions for the users' utilization of the subscription. This could be used for an algorithm to suggest subscriptions which could be canceled or downgraded.
When attempting to change currency to update the exchange rates I get an unknown error, and the save button stays grey. On refreshing the page, it looks like it has changed, but the currencies stay exactly the same on the main subscriptions page.
The Response for save_user.php
gives this:
Warning: Undefined array key "rates" in /var/www/html/endpoints/user/save_user.php on line 34
Warning: Trying to access array offset on value of type null in /var/www/html/endpoints/user/save_user.php on line 34
{"success":true}
When an update is avaiable how to apply? Or is it automatic?
It would be a nice feature to be able to install the website as an app on Android and iOS.
Heroku blog about PWA
Firefox PWA explanation
(Thanks for making Wallos, great piece of software!)
Version 1.0
Plattform: Docker
OS: Unraid
Used Browser: Chrome Version 119.0.6045.124
Foremost, THANK YOU for this wonderful project and your efforts.
If I edit an existing subscription, after I added a new one, the logo will be replaced with the one from the subscription I added before.
I used the web search to and both logos. This also happens if I edit a logo in a subscription and edit another one, it always replaces the logo with the last set one.
Furthermore, I am able to reproduce this behavior every time. It is not happening after a page refresh.
Would be nice, if in the subscription editor there was an URL field, that allows to set a url for the service
Minor feature request:
For USD currency it displays the $ at the end of the total. Example 2.99$
Could the $ symbol be moved to the front of the currency to reflect the proper format of example $2.99
Greatly appreciate the project it shows great potential!
Hello,
I really like the project and wanted to ask if you could add open id connect support for login, so that I can use my SSO provider that I use for all my self hosted apps.
thanks and best wishes,
Timo
Add United Arab Emirates Dirham to the currency list
Would be useful to see statistics for every category separately.
Maybe via a dropdown above the normal statistics.
This is a great start - thank you!
I selected USD as my default currency. However, when I create a new subscription, it defaults to EUR. I would expect it to default to USD.
Perhaps it would also be helpful if the currency order could be manually sorted.
Would be useful to be able to track free trials including special email reminders when trials are running out and an ability to convert free trials to regular subscriptions
I propose as a feature the possibility of seeing renewals on a calendar and potentially supporting export to Google Calendar or similar calendars
Although emails are really handy, it would be nice to have more ways for notifications.
I suggest the use of apprise to handle a huge number of notification endpoints easily.
I think it'd be nice, so they'll stay at the top instead of being moved towards the bottom of the list.
It can be made that they become red (or something like that) if not marked as paid in X days.
I was unable to change my main currency in the settings ( #15 ), so instead I tried running docker exec wallos php /var/www/html/endpoints/cronjobs/updateexchange.php
to update the exchange rate, since my currency should have been set when I signed up anyway.
The exchange rates are updated and the changed values are shown on the subscription page, however they are wrong (actually they are backwards).
For example, My main currency is AUD, I have a subscription of $5USD. I would expect a converted result to be $7.86AUD. Instead, I get $3.18AUD (which would be $5AUD to $USD)
Environment: Fedora 39
I was trying to install Wallos on baremetal, but the initial registration fails.
dnf install nginx \
php \
php-curl \
php-gd \
php-imagick \
php-openssl \
php-pdo
/var/www/html/
and adjusted the crontab to /var/www/html/Wallos/endpoints/cronjobs/
./var/www/html/Wallos/
and restarted it.The registration page opens, but whatever value I entre in the form fails.
Can you help me with this?
Hey, running exact docker command (but with actual paths) results in the following error message:
[10-Nov-2023 13:46:28] NOTICE: fpm is running, pid 7
[10-Nov-2023 13:46:28] NOTICE: ready to handle connections
Database does not exist. Creating it...
sh: syntax error: unexpected "("
Fatal error: Uncaught TypeError: Unsupported operand types: SQLite3 - string in /var/www/html/endpoints/cronjobs/createdatabase.php:98
Stack trace:
#0 {main}
thrown in /var/www/html/endpoints/cronjobs/createdatabase.php on line 98
I get the registration page but the "Main Currency" drop down is empty and when registering I get these errors:
Warning: Undefined array key "main_currency" in /var/www/html/registration.php on line 30
Warning: SQLite3Stmt::execute(): Unable to execute statement: attempt to write a readonly database in /var/www/html/registration.php on line 44
image doesnt display for subscription
you add and save image....then when go back to home page only generic image (wallos)
but its in the image directory
Hey, I noticed "Productivity" is listed twice in the category drop down.
Lines 97 to 113 in eee998c
Thanks for the super cool app!
Sorry, me again. I can't seem to add a new subscription I get:
Using Firefox
docker-compose
services:
wallos:
image: 'bellamy/wallos:latest'
restart: unless-stopped
ports:
- '9050:80'
environment:
- TZ=America/Chicago
volumes:
- '/appdata/wallos/logos:/var/www/html/images/uploads/logos'
- '/appdata/wallos/db:/var/www/html/db'
container_name: wallos
network_mode: bridge
Nothing is showing in logs
mounted via portainer, docker-compose
version: '3.3'
services:
wallos:
container_name: wallos
volumes:
- wallos-db:/var/www/html/db
- wallos-logos:/var/www/html/images/uploads/logos
environment:
- TZ=Europe/Berlin
ports:
- 8282:80
restart: unless-stopped
image: 'bellamy/wallos:latest'
volumes:
wallos-db:
driver: local
wallos-logos:
driver: local
registration of first user works
login/logout works
adding subscriptions is working
can't edit subscriptions tho.
"Error
Failed to load subscription"
the get.php call returns a 200 with a valid json, example
{
"id": 2,
"name": "Spotify",
"logo": null,
"price": 14.99,
"currency_id": 1,
"next_payment": "2023-11-20",
"frequency": 1,
"cycle": 3,
"notes": "",
"payment_method_id": 1,
"payer_user_id": 1,
"category_id": 3,
"notify": 0
}
but thats it.
Would it be possible to get an image built for arm systems?
Great app. I have all my services behind a reverse proxy that handles authentication, and I want to use it to bypass the login screen and prevent having to login twice.
Are there any other methods of passing authentication information available now (such as headers)? If not, it is possible to use basic authentication, or disable authentication completely at the moment?
A Possibility to assign a Type, Bucket, or Area (I'm lacking the proper name) besides the categories to cluster the types of expenses.
For example, so a user can create a bucket for:
The main reason, of course, would be to get better stats on the individual buckets. Because the amount per month greatly differs, so the stats combining all subscriptions is pretty useless. Filters for this would be needed -> #56
And I know the direction of Wallos is for subs only, but one could argue rent and so on is just a bigger type of sub :)
A filter function beside the Sort function would be great.
To filter the fields within the subscriptions on the main page and the stats page.
Furthermore, the option to save a filter to a view.
On the stats page, the filter could update the “General Statistics” depending on the filter or saved view.
It would be good if the "General Statistics" updates depending on which category is crossed out /deselected on the split view.
Maybe saved views or favorite saved views could be displayed as a button to quick filter.
Hello,
I really like the app so far 👌
As an extension, I would find it useful to be able to differentiate between the categories or the persons paying for something directly on the main screen. For example, you could give the option to show or hide these columns or let me select background colors per user or per category or something like that.
Alternatively, you could make each element collapsible to show everything that is not normally shown. Going into edit mode to see categories, who is paying for something or notes is kind of impractical in my opinion.
Keep on the good work!
I'm running into a little hiccup while testing email notifications, and it seems like the snag might be due to using the sender's email address as the username.
Fatal error: Uncaught PHPMailer\PHPMailer\Exception: SMTP Error: data not accepted. in /var/www/html/libs/PHPMailer/PHPMailer.php:2055 Stack trace: #0 /var/www/html/libs/PHPMailer/PHPMailer.php(1682): PHPMailer\PHPMailer\PHPMailer->smtpSend('Date: Fri, 10 N...', 'This is a test ...') #1 /var/www/html/libs/PHPMailer/PHPMailer.php(1516): PHPMailer\PHPMailer\PHPMailer->postSend() #2 /var/www/html/endpoints/notifications/sendtestmail.php(56): PHPMailer\PHPMailer\PHPMailer->send() #3 {main} thrown in /var/www/html/libs/PHPMailer/PHPMailer.php on line 2055
Payload
{"smtpaddress":"smtp.sendgrid.net","smtpport":"587","smtpusername":"apikey","smtppassword":"SecurePassword"}
I have setup Wallos with docker compose. When i open the website and want to create an account i can't select a currency from the Combobox, it is just empty.
Firefox is my main browser, but i have also tried it with a clean Chrome install and there i have the same problem.
I would recommend, that the latest
tag docker for the image is only update with a new release.
This means:
dev
(or similar) which is updated on every commitThis would allow people to use the docker default latest tag and only update on new releases and not on new commit.
All of this is nice to have, but would be nice :)
BTW love this little tool, very helpful ❤️
Hi,
i have multiple services when i pay for mutiple years directly, like my vpn (i pay for 3 years each time), an option for that would be verry cool :)
Thanks.
Currently the only way to get a notification is to setup SMTP. While this is nice, I rather prefer to get notifications to my self hosted gotify application. Instead of implementing many many services, I would highly recommend to just use apprise. It is available for nearly any language and supports a lot of notifications channels:
https://github.com/caronc/apprise
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.