自托管提醒平台Noted Reminders

什么是 Noted Reminders ?
Noted是一个简单的自托管应用程序,用于创建使用Apprise API推送到设备的提醒。您可以向几乎每个平台发送消息,包括定时电子邮件!
什么是 Apprise API ?
Apprise允许您向我们今天可用的几乎所有最流行的通知服务发送通知,例如:Telegram、Discord、Slack、Amazon SNS、Gotify等。此API提供了一个简单的网关,可以通过HTTP接口直接访问它。
Apprise 是老外开发的,所以支持的都是国外主流的 通信软件 和短信,微信肯定是不支持的
老苏之前写过 Apprise,当时选择的是邮件,但邮件的实时性太差了
文章传送门:几乎每个平台都可以使用的推送通知apprise
不过现在多了一个选择,就是 Gotify
文章传送门:Gotify消息推送系统搭建
安装
在群晖上以 Docker 方式安装。
在注册表中搜索 noted ,选择第二个 mrcas/noted,版本选择 latest。
本文写作时,
latest版本对应为v1.0.0,最新的v1.1.0测试也是OK的;

端口
本地端口不冲突就行,不确定的话可以用命令查一下
# 查看端口占用
netstat -tunlp | grep 端口号
| 本地端口 | 容器端口 |
|---|---|
8388 | 8080 |
默认没有暴露端口

需要点 + 号添加

环境
| 可变 | 值 |
|---|---|
TZ | 设为 Asia/Shanghai |

命令行安装
如果你熟悉命令行,可能用 docker cli 更快捷
# 运行容器
docker run -d \--restart unless-stopped \--name noted \-p 8388:8080 \-e TZ=Asia/Shanghai \mrcas/noted:latest
也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件
version: '3'services:noted:image: mrcas/noted:latestcontainer_name: notedrestart: unless-stoppedports:- 8388:8080environment: - TZ=Asia/Shanghai
然后执行下面的命令
# 新建文件夹 noted
mkdir -p /volume2/docker/noted# 进入 noted 目录
cd /volume2/docker/noted# 将 docker-compose.yml 放入当前目录# 一键启动
docker-compose up -d
从资源库,CPU 占用比较高

运行
在浏览器中输入 http://群晖IP:8388 就能看到登录界面

先要创建一个用户

登录成功之后的主界面\

但是现在还不能直接添加提醒,因为提醒依赖于 Apprise,而 Apprise 又依赖于 Gotify
获取 Gotify 的 token
打开 http://192.168.0.197:8385 ,登录 Gotify进入后台,选择 apps 后,能获取到 Token

设置 Apprise
这一步并不是必须的, 如果需要
Apprise转发才需要安装
在 https://github.com/caronc/apprise#productivity-based-notifications 能查到 Gotify 的消息格式

打开 http://192.168.0.197:8181,在 Configuration Manager --> Configuration 中填入 gotify://192.168.0.197:8385/AdxxxxxxxxxxxPA,然后保存即可

如果需要
Apprise转发,需要将协议改为apprise,即apprise://192.168.0.197:8181/apprise

进入 Notifications,做个简单测试

如果在 Gotify 很快就收到,说明设置是 OK 的

Noted Reminders 设置
现在回到 Noted Reminders,首先要添加 Notification Services

Apprise URL 中填入 gotify://192.168.0.197:8385/AdxxxxxxxxxxxPA

接下来新建提醒

虽然是英文界面,但是一看就懂

跟手机上设置定时提醒是差不多的

保存之后,会出现在主界面

Gotify 在设定的时间收到了消息

最后来张官方的图展示下效果

附录
数据库的备份
默认情况下,Noted.db 在容器的 /app 目录中,所以要备份的话需要执行下面的命令
# 进入 noted 目录
cd /volume2/docker/noted# 将数据库文件拷贝到容器外当前目录
docker cp noted:/app/Noted.db ./

Apprise的安装
之前的文章中 Apprise是图形化安装的,如果你还没安装过,用命令行会更快捷
# 新建文件夹 apprise 和 子目录
mkdir -p /volume2/docker/apprise/config# 进入 apprise 目录
cd /volume2/docker/apprise# 修改目录权限
chmod 777 config# 运行 apprise 容器
docker run -d \--restart unless-stopped \--name apprise \-p 8181:8000 \-v $(pwd)/config:/config \caronc/apprise:latest
参考文档
Casvt/Noted: A simple self hosted reminder platform that uses push to send notifications to your device. Set the reminder and forget about it!
地址:https://github.com/Casvt/Noted
相关文章:
自托管提醒平台Noted Reminders
什么是 Noted Reminders ? Noted 是一个简单的自托管应用程序,用于创建使用 Apprise API 推送到设备的提醒。您可以向几乎每个平台发送消息,包括定时电子邮件! 什么是 Apprise API ? Apprise 允许您向我们今天可用的几乎所有最流…...
LockSupport常用方法源码分析
前言:本文将介绍LockSupport类中的方法和部分源码,以及面试常问到的一个小问题,感兴趣的大佬可以指点下。 希望能够加深自己的印象以及帮助到其他的小伙伴儿们😉😉。 如果文章有什么需要改进的地方还请大佬不吝赐教&am…...
Mybatis Notes
文章目录1 Mybatis 介绍1.1 快速入门2 JDBC2.1 JDBC介绍2.3 JDBC问题分析2.4 Mybatis与JDBC技术对比3 数据库连接池3.1 数据库连接池介绍3.2 数据库连接池产品产品3.3 Druid引入项目4lombok4.1 lombok介绍4.2 lombok使用4.2.1 在pom.xml文件中引入依赖4.2.2 pojo类代码引入1 My…...
MySQL 10:MySQL事务
MySQL 中的事务是由存储引擎实现的。在 MySQL 中,只有 InnoDB 存储引擎支持事务。事务处理可用于维护数据库的完整性,确保批处理的 SQL 语句要么执行要么根本不执行。事务用于管理 DDL、DML 和 DCL 操作,例如插入、更新和删除语句,…...
软件设计(十三)-原码、反码、补码、移码
软件设计(十二)数据结构(下)https://blog.csdn.net/ke1ying/article/details/129035300 下面把一个数转成二进制表达形式 原码: 数值1 : 0000 0001 数值-1 : 1000 0001 1 (- 1) : 1000 0010 这是8个…...
5.4 BGP地址聚合
5.3.1配置BGP地址聚合 1. 实验目的 熟悉BGP地址聚合的应用场景掌握BGP地址聚合的配置方法2. 实验拓扑 实验拓扑如图5-4所示: 图5-4:配置BGP地址聚合 3. 实验步骤 (1)配置IP地址 R1的配置 <Huawe…...
华为OD机试 - 数列还原(Python) | 机试题算法思路 【2023】
最近更新的博客 华为OD机试 - 自动曝光(Python) | 机试题算法思路 【2023】 华为OD机试 - 双十一(Python) | 机试题算法思路 【2023】 华为OD机试 - 删除最少字符(Python) | 机试题算法思路 【2023-02】 华为OD机试 - Excel 单元格数值统计(Python) | 机试题算法思路 …...
华为OD机试题 - 新工号系统(JavaScript)| 代码+思路+重要知识点
最近更新的博客 华为OD机试题 - 字符串加密(JavaScript) 华为OD机试题 - 字母消消乐(JavaScript) 华为OD机试题 - 字母计数(JavaScript) 华为OD机试题 - 整数分解(JavaScript) 华为OD机试题 - 单词反转(JavaScript) 使用说明 参加华为od机试,一定要注意不要完全背…...
Java-算法竞赛中常用的Java API之大数类
Java-算法竞赛中常用的Java API之大数类摘要BigInteger和BigDecimal创建赋值加法减法乘法除法*取余*求最大公因数求最值*(a^b)%mod比较大小*进制转化类型转化BigDecimal精度问题保留n位小数摘要 java中的基础数据类型能存储的最大的二进制数是 2 ^ 63 - 1, 对应的十进制数是92…...
了解Nginx,这一篇就够了
了解Nginx,这一篇就够了1.Nginx应用场景2.Nginx相关概念正向代理和反向代理负载均衡动静分离3.Nginx配置文件解析全局块events块http块1.Nginx应用场景 HTTP服务器:Nginx本身也是一个静态资源的服务器,当只有静态资源的时候,就可…...
k8s删除pod或deployment
查看pod或者deployment信息 deployment: kubectl get deployment -n 命名空间pod: kubectl get pod -n 命名空间删除pod或者deployment 删除pod: kubectl delete pod <pod名> -n <命名空间>可是,此时你会发现刚刚…...
Visual Studio 2022: 增加对虚幻引擎的支持
自 Visual Studio 2022 发布以来,我们一直专注于为游戏和大型项目开发人员提供一系列生产力和性能改进。今天,我们很高兴与大家分享下一组专门用来提高虚幻引擎开发效率的功能。我们听到并看到了来自你(我们的游戏开发人员)的大量…...
【Python】以邮件的方式定时发送一天的股票分析报告
【Python】以邮件的方式定时发送一天的股票分析报告 文章目录【Python】以邮件的方式定时发送一天的股票分析报告1、Python发送邮件1)EmailSender封装2)可能存在的问题2、jinja2动态渲染html页面3、阿里云OSS搭建图床1)Python上传图片到OSS中…...
mybatis条件构造器(二)
mybatis条件构造器(二) 1 准备工作 1.1 建表sql语句(Emp表) SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS 0;-- ---------------------------- -- Table structure for emp -- ---------------------------- DROP TABLE IF EXISTS emp; CREATE TABLE emp (EMPNO int NOT NU…...
C++【类与对象】
文章目录类与对象(1)类与对象一1.0.面向过程和面向对象初步认识1.1.类的引入1.2.类的定义1.3.类的访问限定符及封装1.4.类的作用域1.5.类的实例化1.6.类的对象大小的计算1.8.类成员函数的this指针(2)类与对象二2.0类的6个默认成员…...
假设检验选择统计量重点-----正态总体参数的假设检验
文章目录单个正态总体参数的假设检验单个正态总体N(μ,σ2)N(\mu,\sigma^2)N(μ,σ2)的均值μ\muμ的假设检验1.σ2\sigma^2σ2已知(U检验法)单个正态总体方差的假设检验单边检验简介--计算拒绝域两个正态总体参数的假设检验方差已知的两正态总体均值的假设检验均值未知的两正态…...
华为OD机试 - 通信误码(Python) | 机试题算法思路 【2023】
最近更新的博客 华为OD机试 - 自动曝光(Python) | 机试题算法思路 【2023】 华为OD机试 - 双十一(Python) | 机试题算法思路 【2023】 华为OD机试 - 删除最少字符(Python) | 机试题算法思路 【2023-02】 华为OD机试 - Excel 单元格数值统计(Python) | 机试题算法思路 …...
设计模式之装饰者模式
文章の目录一、什么是装饰者模式二、优势三、缺点四、应用场景五、示例参考写在最后一、什么是装饰者模式 装饰者模式也称为包装器模式,在不改变原有对象的基础上为其动态的添加上新的功能。 装饰者模式有以下特点: 添加功能时不改变原对象结构。装饰…...
【第31天】SQL进阶-写优化- 插入优化(SQL 小虚竹)
回城传送–》《31天SQL筑基》 文章目录零、前言一、练习题目二、SQL思路:SQL进阶-写优化-插入优化解法插入优化禁用索引语法如下适用数据库引擎非空表:禁用索引禁用唯一性检查语法如下适用数据库引擎禁用外键检查语法如下适用数据库引擎批量插入数据语法…...
SpringBoot自动装配的原理
前言 在开发SpringBoot项目时,当我们引入spring-boot-starter-xxx依赖后,想要使用依赖中的bean,直接就用Autowired拿来用了,不需要用xml或者注解的方式把它先注入到Spring容器中。这就是自动装配的特性,本文来讲述Spri…...
Java 语言特性(面试系列2)
一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...
家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...
uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机
这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机,因为在使用过程中发现 Airsim 对外部监控相机的描述模糊,而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置,最后在源码示例中找到了,所以感…...
STM32HAL库USART源代码解析及应用
STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...
【Linux系统】Linux环境变量:系统配置的隐形指挥官
。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量:setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...
如何应对敏捷转型中的团队阻力
应对敏捷转型中的团队阻力需要明确沟通敏捷转型目的、提升团队参与感、提供充分的培训与支持、逐步推进敏捷实践、建立清晰的奖励和反馈机制。其中,明确沟通敏捷转型目的尤为关键,团队成员只有清晰理解转型背后的原因和利益,才能降低对变化的…...
深入浅出Diffusion模型:从原理到实践的全方位教程
I. 引言:生成式AI的黎明 – Diffusion模型是什么? 近年来,生成式人工智能(Generative AI)领域取得了爆炸性的进展,模型能够根据简单的文本提示创作出逼真的图像、连贯的文本,乃至更多令人惊叹的…...
【UE5 C++】通过文件对话框获取选择文件的路径
目录 效果 步骤 源码 效果 步骤 1. 在“xxx.Build.cs”中添加需要使用的模块 ,这里主要使用“DesktopPlatform”模块 2. 添加后闭UE编辑器,右键点击 .uproject 文件,选择 "Generate Visual Studio project files",重…...
背包问题双雄:01 背包与完全背包详解(Java 实现)
一、背包问题概述 背包问题是动态规划领域的经典问题,其核心在于如何在有限容量的背包中选择物品,使得总价值最大化。根据物品选择规则的不同,主要分为两类: 01 背包:每件物品最多选 1 次(选或不选&#…...
