Wallos:开源个人订阅跟踪器
目录
简介
Wallos是一款功能强大、开源且可自主托管的Web应用程序,旨在帮助您轻松管理财务。告别复杂的电子表格和昂贵的财务软件 – Wallos简化了跟踪开支的过程,帮助您更好地控制您的财务生活。
功能特性
- 订阅管理:跟踪您的定期订阅和付款,确保您不会错过任何到期日。
- 类别管理:将您的开支组织成可自定义的类别,让您深入了解自己的消费习惯。
- 多币种支持:Wallos支持多种货币,允许您使用您选择的货币管理财务。
- 货币转换:集成Fixer API,以便您可以获取汇率并查看所有订阅的主要货币金额。
- 数据隐私:作为自托管应用程序,Wallos确保您的财务数据在您自己的服务器上保持私密和安全。
- 自定义:通过可定制的类别、货币、主题和其他显示选项,根据您的需求定制Wallos。
- 排序选项:允许您从不同角度查看您的订阅。
- 标志搜索:如果您没有可上传的订阅标志,Wallos可以在网上搜索。
- 移动视图:随时随地使用Wallos。
- 统计数据:从另一个角度查看您的支出。
- 通知:Wallos支持多种通知方式(电子邮件、Discord、Pushover、Telegram、Gotify和Webhooks)。获取即将到来的付款通知。
- 多语言支持。
入门指南
请参阅以下运行Wallos的说明。
前提条件
裸机
- 运行NGINX或APACHE网络服务器
- PHP 8.2,并启用以下模块:
- curl
- gd
- imagick
- intl
- openssl
- sqlite3
- zip
Docker
- Docker
安装
裸机
- 下载或克隆此仓库,并将文件移动到您的Web根目录 - 通常为
/var/www/html
- 将
/db/wallos.empty.db
重命名为/db/wallos.db
- 在浏览器中运行
http://domain.example/endpoints/db/migrate.php
- 使用
crontab -e
将以下脚本添加到您的计划任务中
0 1 * * * php /var/www/html/endpoints/cronjobs/updatenextpayment.php >> /var/log/cron/updatenextpayment.log 2>&1
0 2 * * * php /var/www/html/endpoints/cronjobs/updateexchange.php >> /var/log/cron/updateexchange.log 2>&1
0 8 * * * php /var/www/html/endpoints/cronjobs/sendcancellationnotifications.php >> /var/log/cron/sendcancellationnotifications.log 2>&1
0 9 * * * php /var/www/html/endpoints/cronjobs/sendnotifications.php >> /var/log/cron/sendnotifications.log 2>&1
*/2 * * * * php /var/www/html/endpoints/cronjobs/sendverificationemails.php >> /var/log/cron/sendverificationemail.log 2>&1
*/2 * * * * php /var/www/html/endpoints/cronjobs/sendresetpasswordemails.php >> /var/log/cron/sendresetpasswordemails.log 2>&1
0 */6 * * * php /var/www/html/endpoints/cronjobs/checkforupdates.php >> /var/log/cron/checkforupdates.log 2>&1
- 如果您的网站根目录不是
/var/www/html/
,请相应调整上述定时任务。
更新
- 重新下载仓库并将文件移动到正确的文件夹,或执行
git pull
(如果之前使用 git clone) - 检查先决条件并安装/启用缺少的项目(如果有)。
- 运行
http://domain.example/endpoints/db/migrate.php
Docker
docker run -d --name wallos -v /path/to/config/wallos/db:/var/www/html/db \
-v /path/to/config/wallos/logos:/var/www/html/images/uploads/logos \
-e TZ=Europe/Berlin -p 8282:80 --restart unless-stopped \
bellamy/wallos:latest
Docker Compose
version: '3.0'
services:
wallos:
container_name: wallos
image: bellamy/wallos:latest
ports:
- "8282:80/tcp"
environment:
TZ: 'America/Toronto'
# 卷存储在容器升级之间保留您的数据
volumes:
- './db:/var/www/html/db'
- './logos:/var/www/html/images/uploads/logos'
restart: unless-stopped
使用方法
只需打开浏览器,输入运行 wallos 的机器的 ip:端口
。
第一次运行 wallos 时必须创建一个用户账户。
进入设置并个性化您的头像,添加家庭成员。同时添加/删除任何类别和货币。
从 Fixer 获取免费的 API 密钥,并在设置中添加。
如果要触发汇率更新,请在添加 API 密钥后更改主要货币,然后再改回您喜欢的货币。
截图
贡献
欢迎提交包含错误修复和新功能的拉取请求。我会尽力关注这些请求。 欢迎提交错误报告或功能请求的问题。错误修复将优先处理。 我欢迎来自社区的贡献,并期待与您合作改进这个项目。
贡献者
翻译
如果您想为wallos的翻译做出贡献:
- 在
includes/i18n/languages.php
文件中以"en" => "English"的格式添加您的语言代码。请使用原始语言名称,而不是英语翻译。 - 复制
includes/i18n/en.php
文件并将其重命名为您上面使用的语言代码。例如:对于"pt" => "Português",重命名为pt.php。 - 将语言文件中的所有值翻译成新语言。(不完整的翻译将不被接受)。
- 复制
scripts/i18n/en.js
文件并将其重命名为您上面使用的语言代码。例如:对于"pt" => "Português",重命名为pt.js。 - 将语言文件中的所有值翻译成新语言。(不完整的翻译将不被接受)。
许可证
本项目采用GNU通用公共许可证,版本3授权 - 详情请参阅LICENSE.md文件。
为什么选择GPLv3?
我为这个项目选择GNU通用公共许可证版本3(GPLv3),因为它确保软件保持开源并可供社区自由使用。GPLv3要求任何衍生作品或修改也必须在相同的许可证下发布,从而促进软件自由的原则。
我坚信开源软件的重要性和开发的协作性质,我邀请贡献者帮助改进这个项目。
链接
- 作者:henrique.pt
- Wallos登陆页:wallosapp.com
- 加入讨论:Discord服务器