开源个人订阅跟踪器Wallos

在这里插入图片描述

本文软件由网友 P家单推人 推荐;

什么 Wallos ?

Wallos 是一款功能强大、开源且可自我托管的网络应用程序,旨在让您轻松管理财务。告别复杂的电子表格和昂贵的财务软件–Wallos简化了跟踪费用的过程,帮助您更好地控制财务生活。

软件的特点

  • 订阅管理:跟踪您的定期订阅和付款,确保您不会错过截止日期。
  • 类别管理:将您的支出组织成可自定义的类别,帮助您了解自己的消费习惯。
  • 多币种支持:Wallos 支持多种货币,让您可以以自己选择的货币管理财务。
  • 货币转换:与 Fixer API 集成,可以获取汇率并在主要货币中查看所有订阅。
  • 数据隐私:作为自托管应用程序,Wallos 确保您的财务数据在您自己的服务器上保持私密和安全。
  • 定制化:通过可自定义的类别、货币、主题和其他显示选项,将Wallos 调整为符合您的需求。
  • 排序选项:可以从不同的角度查看您的订阅。
  • Logo 搜索:如果您没有可用的 Logo 上传,Wallos 可以在网络上搜索您的订阅的 Logo
  • 移动视图:随时随地使用的 Wallos
  • 统计数据:对您的消费提供另一个角度。
  • 通知:通过电子邮件收到即将到期付款的通知。

在这里插入图片描述

Wallos 和一般的记账软件最大的区别在于,它比较适合那种固定缴费的情况,比如会员续费、购买云主机等

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 wallos ,选择第一个 bellamy/wallos,版本选择 latest

在这里插入图片描述

docker 文件夹中,创建一个新文件夹 wallos,并在其中建两个子文件夹 datalogos

在这里插入图片描述

文件夹装载路径说明
docker/wallos/data/var/www/html/db存放数据库
docker/wallos/logos/var/www/html/images/uploads/logos存放上传的 logo 文件

在这里插入图片描述

端口

本地端口不冲突就行,不确定的话可以用命令查一下

# 查看端口占用
netstat -tunlp | grep 端口号
本地端口容器端口
828180

默认有对外暴露了 2 个端口,从 Dockerfile 看,

  • 80 端口是 nginx 服务的
  • 9000 端口是 php-fpm

在这里插入图片描述

老苏只留下了 80 端口

在这里插入图片描述

环境

可变
TZ设为 Asia/Shanghai

在这里插入图片描述

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

# 新建文件夹 wallos 和 子目录
mkdir -p /volume1/docker/wallos/{data,logos}

# 进入 wallos 目录
cd /volume1/docker/wallos

# 运行容器
docker run -d \
   --restart unless-stopped \
   --name wallos \
   -p 8281:80 \
   -v $(pwd)/data:/var/www/html/db \
   -v $(pwd)/logos:/var/www/html/images/uploads/logos \
   -e TZ=Asia/Shanghai \
   bellamy/wallos:latest

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: '3'

services:
  wallos:
    image: bellamy/wallos:latest
    container_name: wallos
    restart: unless-stopped
    ports:
      - 8281:80
    volumes:
      - ./data:/var/www/html/db
      - ./logos:/var/www/html/images/uploads/logos
    environment:
      - TZ=Asia/Shanghai

然后执行下面的命令

# 新建文件夹 wallos 和 子目录
mkdir -p /volume1/docker/wallos/{data,logos}

# 进入 wallos 目录
cd /volume1/docker/wallos

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:8281 就能看到注册界面

在这里插入图片描述

语言选择 简体中文 后,会自动切换为中文界面

在这里插入图片描述

注册成功后还需要登录

在这里插入图片描述

登录成功后的主界面

在这里插入图片描述

添加首个订阅

logo 可以上传,也可以点后面的搜索

在这里插入图片描述

目前支付方式中支持 AlipayWeChat,也就是我们通常说的支付宝支付和微信支付,其他国内用户可能用到的估计还有下面👇几个

  • Credit Card:信用卡;
  • Money:估摸着应该是指现金;
  • Bank Trsnsfer:银行转账;
  • Union Pay:银联卡;

在这里插入图片描述

分类支持下面👇这些

  • No category:无类别
  • Entertainment:娱乐
  • Music:音乐
  • Utilities:实用工具
  • Food & Beverages:食品与饮料
  • Health & Wellbeing:健康与福利
  • Productivity:生产力
  • Banking:银行业务
  • Transport:交通运输
  • Education:教育
  • Insurance:保险
  • Gaming:游戏
  • News & Magazines:新闻与杂志
  • Software:软件
  • Technology:科技
  • Cloud Services:云服务
  • Charity & Donations:慈善和捐赠

在这里插入图片描述

添加成功

在这里插入图片描述

老苏随便加了几个

关于 logo 的小技巧,像 煤气费,老苏是先输入 上海燃气,搜索到 logo 之后,再改为 煤气费

在这里插入图片描述

Wallos 其实并不适合水电煤这种费用不固定的订阅,老苏只是随便填的价格,所以费用统计也就不准了,要的只是后面提到的通知提醒

在这里插入图片描述

通知提醒

进入 设置 菜单

在这里插入图片描述

找到 通知 部分

在这里插入图片描述

填写完成后,点 测试,如果设置没问题的话会收到 成功 的通知,然后 保存 就可以了

在这里插入图片描述

个性化

Wallos 具有很强的个性化定制能力,货币种类、支付方式和分类都是可以按需修改的

分类

在设置界面下拉,找到 分类

可以添加、删除分类,灰色则表示当前正在订阅的分类,是不可以删除的

在这里插入图片描述

老苏没有删改,只做了汉化

记住,每个修改都是需要点后面的保存的

在这里插入图片描述

完成之后再去添加订阅中看看,已经变成中文了

在这里插入图片描述

货币

在设置界面下拉,找到 货币

在这里插入图片描述

虽然除了人民币其他的都用不上,但老苏还是留了几个

在这里插入图片描述

支付方式

在设置界面下拉到底部,找到 支付方式

在这里插入图片描述

不能删改,但是可以禁用

在这里插入图片描述

完成之后再去添加订阅中看看,支付方式已经只有你留下的几种了

在这里插入图片描述

最后留个版本信息

在这里插入图片描述

参考文档

ellite/Wallos: Wallos: Open-Source Personal Subscription Tracker
地址:https://github.com/ellite/Wallos

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/389952.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

neo4j下载安装最新教程 2024.02

文章目录 neo4j简介neo4j与jdk版本对应neo4j历史版本 下载地址配置环境变量命令行启动验证安装结果 neo4j简介 Neo4j 是一个高性能的 NoSQL 图形数据库,它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j 也可以被看作是一个高…

【动态规划初识】不同的二叉搜索树

每日一道算法题之不同二叉搜索树个数 一、题目描述二、思路三、C++代码一、题目描述 题目来源:LeetCode 给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。 C++程序要求输入输出格式如下: 示例1:…

MinIO 和 Apache Tika:文本提取模式

Tl;dr: 在这篇文章中,我们将使用 MinIO Bucket Notifications 和 Apache Tika 进行文档文本提取,这是大型语言模型训练和检索增强生成 LLM和RAG 等关键下游任务的核心。 前提 假设我想构建一个文本数据集,然后我可以用它来微调 LLM.为了做…

w28DVWA-csrf实例

DVWA-csrf实例 low级别 修改密码&#xff1a;修改的密码通过get请求&#xff0c;暴露在url上。 写一个简单的html文件&#xff0c;里面伪装修改密码的文字&#xff0c;代码如下&#xff1a; <html><body><a href"http://dvwa:7001/vulnerabilities/csr…

java-8组合式异步编程

11.1 Future 接口 Future接口在Java5中被引人&#xff0c;设计初衷是对将来某个时刻会发生的结果进行建模。它建模了一种异步计算&#xff0c;返回一个执行运算结果的引用&#xff0c;当运算结束后&#xff0c;这个引用被返回给调用方。在Future中触发那些潜在耗时的操作把调用…

Java微服务学习Day2

文章目录 Nacos配置管理统一配置管理配置热更新![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/c8a2d17baeef411980b44b432eb9692a.png)配置共享搭建Nacos集群 Feign远程调用介绍自定义配置性能优化最佳实践 Gateway服务网关介绍搭建网关服务路由断言工厂路由过滤器…

【c++】析构函数

1.特征 析构函数是特殊的成员函数&#xff0c;其特征如下&#xff1a; 1.析构函数名是在类名前加上字符~。 2.无参数无返回值类型。 3.一个类只能有一个析构函数。若未显式定义&#xff0c;系统会自动生成默认的析构函数。注意&#xff1a;析构函数不能重载。 4.对象生命周…

那些杠鸿蒙的现在怎么样了?

别杠&#xff0c;要杠就是你对。 一个纯血鸿蒙就已经打了那些杠精的嘴&#xff0c;以前是套壳Android&#xff0c;大家纷纷喷鸿蒙。现在鸿蒙已经全栈自研&#xff0c;并且已经展开各大企业生态合作。不管什么独立系统&#xff0c;都是一定要走一遍套壳Android的道路的&#xf…

Spring AMQP(3.1.1)设置ConfirmCallback和ReturnsCallback

文章目录 一、起因二、代码1. 定义exchange和queue2. RabbitTemplate3. EnhancedCorrelationData4. 发送消息 环境如下 VersionSpringBoot3.2.1spring-amqp3.1.1RabbitMq3-management 一、起因 老版本的spring-amqp在CorrelationData上设置ConfirmCallback。但是今天却突然发…

《Go 简易速速上手小册》第1章:Go 语言基础(2024 最新版)

文章目录 1.1 Go 语言的安装与环境配置1.1.1 基础知识讲解案例 Demo&#xff1a;简单的 Go 程序 1.1.2 重点案例&#xff1a;搭建一个 Go Web 服务准备工作步骤 1&#xff1a;创建项目目录步骤 2&#xff1a;编写 Web 服务代码步骤 3&#xff1a;运行你的 Web 服务步骤 4&#…

为什么电路要设计得这么复杂?

首先提出这个问题就很不容易啊&#xff0c;我们看两个精彩回答。 From 骄建&#xff1a; 假设我们回到第一个实用放大电路诞生之前&#xff1a; 某天你开始做一个CS单管放大器&#xff0c;电阻负载&#xff0c;可是有一大堆问题&#xff0c;电阻做的不准&#xff0c;温度对器…

Kotlin基本语法 3 类

1.定义类 package classStudyclass Player {var name:String "jack"get() field.capitalize()set(value) {field value.trim()} }fun main() {val player Player()println(player.name)player.name " asdas "println(player.name)} 2.计算属性与防范…

jmeter遇到连接数据库的问题

jmeter连接mysql或者oracle简单&#xff0c;但是连接过inceptor吗&#xff1f; 上货 1、下载驱动inceptor 5.1.2.jar包 2、在添加驱动那里导入 3、在JBC request中的写法 PS:没什么可说的

【数据结构】10 广义表与多重链表

广义表 广义表不仅跟线性表一样可以表示简单是线性顺序关系&#xff0c;而且可以表达更复杂的非线性多元关系。 G L i s t ( a 1 , a 2 , . . . , a i − 1 , a i , a i 1 , . . . , a n ) GList (a_1, a_2,...,a_{i-1},a_i,a_{i1},...,a_n) GList(a1​,a2​,...,ai−1​,…

【机器学习笔记】7 KNN算法

距离度量 欧氏距离(Euclidean distance) 欧几里得度量&#xff08;Euclidean Metric&#xff09;&#xff08;也称欧氏距离&#xff09;是一个通常采用的距离定义&#xff0c;指在&#x1d45a;维空间中两个点之间的真实距离&#xff0c;或者向量的自然长度&#xff08;即该点…

分布式文件系统 SpringBoot+FastDFS+Vue.js【四】

分布式文件系统 SpringBootFastDFSVue.js【四】 八、文件的下载和删除功能8.1.FastDFSClient.java8.2.FileServerController.java8.3.Vue的fast.js8.4.fastdfsimg.vue8.5.效果 九、总结endl 八、文件的下载和删除功能 8.1.FastDFSClient.java Slf4j public class FastDFSClie…

websocket数据帧格式

客户端、服务端数据的交换&#xff0c;离不开数据帧格式的定义。因此&#xff0c;在实际讲解数据交换之前&#xff0c;我们先来看下WebSocket的数据帧格式。 WebSocket客户端、服务端通信的最小单位是帧&#xff08;frame&#xff09;&#xff0c;由1个或多个帧组成一条完整的消…

Atcoder ABC339 C - Perfect Bus

Perfect Bus&#xff08;完美的公交车&#xff09; 时间限制&#xff1a;2s 内存限制&#xff1a;1024MB 【原题地址】 所有图片源自Atcoder&#xff0c;题目译文源自脚本Atcoder Better! 点击此处跳转至原题 【问题描述】 【输入格式】 【输出格式】 【样例1】 【样例输…

排序算法---计数排序

原创不易&#xff0c;转载请注明出处。欢迎点赞收藏~ 计数排序&#xff08;Counting Sort&#xff09;是一种线性时间复杂度的排序算法&#xff0c;其核心思想是通过统计待排序元素的个数来确定元素的相对位置&#xff0c;从而实现排序。 具体的计数排序算法步骤如下&#xff…

Netty Review - 直接内存的应用及源码分析

文章目录 Pre概述应用访问效率&#xff1a; 堆内存 VS 直接内存申请效率&#xff1a; 堆内存 VS 直接内存数据存储结构&#xff1a; 堆内存 VS 直接内存结论 ByteBuffer.allocateDirect 源码分析unsafe.allocateMemory(size) ---> C方法 JVM参数 -XX:MaxDirectMemorySize直接…