【Docker】搭建安全可控的自定义通知推送服务 - Bark

news2024/10/6 6:42:38

【Docker】搭建安全可控的自定义通知推送服务 - Bark

前言

本教程基于绿联的NAS设备DX4600 Pro的docker功能进行搭建。

简介

Bark是一款为Apple设备用户设计的开源推送服务应用,它允许开发者、程序员以及一般用户将信息快速推送到他们自己的iPhone、iPad等设备上。

主要特点如下:

  • 快速:Bark使用了苹果的推送服务,可以迅速无延迟地把信息推送到用户的设备上。

  • 简单:Bark提供了简单的API接口,用户只需要通过简单的HTTP请求就可以实现信息的推送。

  • 免费:Bark是完全免费的,用户可以无限制地使用它来推送信息。

  • 多样化推送:Bark提供了多种推送方式,包括文本信息、链接、图片、音频等,可以满足不同用户的需求。

Bark的应用场景很多,如监控告警、打卡提醒、股票信息推送、日程提醒等。同时,对于开发者来说,Bark也是一种很好的调试工具,可以快速接收到服务器或程序的运行状态信息。

部署

  1. 打开Docker管理器,在“镜像管理”中选择“镜像仓库”,在右上角进行搜索“finab/bark-server”,找到如下图所示的镜像进行下载。

  2. 下载完成以后,在“本地镜像”中找到它,点击“创建容器”。

  3. 勾选“创建后启动容器”,然后直接点击“下一步”。

  4. 将“基础设置”中的重启策略配置成“容器退出时总是重启容器”。

  5. 在NAS中创建一个目录,用于保存bark-server的配置和数据,在“存储空间”内与容器的/data​​目录建立映射,并配置为“读写”类型。

  6. 在“端口设置”中进行端口配置,“本地端口”指的是我们实际访问时要用到的端口,可以根据自己喜好进行配置,只要不与其他服务的端口有冲突就行。

    此处演示时使用的是“自动”端口,如不清楚端口是否被占用则默认自动即可。

  7. 完成以上步骤后,检查一下,确认无误后直接点击“完成”。

  8. 在“容器管理”中找到刚创建好的容器,点击“详情”。

    演示时与“容器端口”绑定的“本地端口”使用的是自动​​,如果你不是使用的自动​​,可以忽略此步骤,直接在浏览器中输入你的ip和你自定义的本地端口进行访问即可。

  9. 点击“端口”,点击下图所示链接即可打开我们部署好的Bark-Server。

    演示时与“容器端口”绑定的“本地端口”使用的是自动​​,如果你不是使用的自动​​,可以忽略此步骤,直接在浏览器中输入你的ip和你自定义的本地端口进行访问即可。

  10. 打开链接后,显示下图所示即表示搭建成功。

使用

  1. 使用iOS设备在“APP Store”中搜索“Bark​”并下载。

  2. 允许“Bark”发送通知。

  3. 点击“注册设备”。

    这里会生成一个设备唯一随机码,当卸载重装Bark的时候,需要重新进行注册设备。

  4. 点击右上角的“+”。

    Bark默认提供了一个免费的服务器API,但是推送的消息会在该服务器日志中记录,如果你推送的消息不是特别重要,你也可以选择直接使用默认API接口。

  5. 将我们刚刚部署好的Bark-Server的地址使用反向代理并且添加HTTPS证书后,填入“服务器地址”栏处,然后点击右上角的“”。

    反向代理可以选择Lucky或者Nginx,根据自己的喜好进行选择。

  6. 复制一个API模板,在浏览器的地址栏中直接请求。

  7. 在浏览器中请求API会收到以下结果表示成功。

  8. 设备上会收到以下结果表示成功。

文章出处:https://blog.uptoz.cn/archives/BrIXHeSN
作者原创:@小小笔记大大用处 https://blog.uptoz.cn

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

副业赚钱攻略:给工资低的你6个实用建议,闷声致富不是梦

经常有朋友向我咨询,哪些副业比较靠谱且能赚钱。实际上,对于大多数打工族而言,副业不仅是增加收入的途径,更是利用业余时间提升自我、实现价值的重要方式。 鉴于此,今天我想和大家分享六个值得尝试的副业,…

linux:生产者消费者模型

个人主页 : 个人主页 个人专栏 : 《数据结构》 《C语言》《C》《Linux》 文章目录 前言一、生产者消费者模型二、基于阻塞队列的生产者消费者模型代码实现 总结 前言 本文是对于生产者消费者模型的知识总结 一、生产者消费者模型 生产者消费者模型就是…

Java封装最佳实践:打造高内聚、低耦合的优雅代码~

​ 个人主页:秋风起,再归来~ 文章专栏:javaSE的修炼之路 个人格言:悟已往之不谏,知来者犹可追 克心守己,律己则安! 1、封装 1.1 封装的概念 面向对象程序三大…

数据类型和变量的深入理解

引言:C语言数据类型的意义,数据在内存中的存储情况,变量的声明与定义的区别,和一些关键字。 目录 1.变量的定义与声明 1.1定义与声明 1.2 变量的初始化与赋值 2.C语言常见的数据类型 3.变量的作用域与生命周期 4.signed 和 un…

SpringBoot mybatis-starter解析

mybatis-starter使用指南 自动检测工程中的DataSource创建并注册SqlSessionFactory实例创建并注册SqlSessionTemplate实例自动扫描mappers mybatis-starter原理解析 注解类引入原理 查看对应的autoconfigure包 MybatisLanguageDriverAutoConfiguration 主要是协助使用注解来…

Leetcode 4.1

LeetCode 热题 100 贪心算法1.买卖股票的最佳时机2.跳跃游戏3.跳跃游戏 II4.划分字母区间 区间合并1.合并区间 贪心算法 1.买卖股票的最佳时机 买卖股票的最佳时机 买的那天一定是卖的那天之前的最小值。 每到一天,维护那天之前的最小值即可。 在题目中&#xff0…

红米手机Redmi 不会自动弹出USB调试选项,如何处理?(红米小米均适用)

参考: 红米手机Redmi 不会自动弹出USB调试选项,如何处理?(红米小米均适用) - 知乎 以红米9A为例; 【设置】菜单进入后,找到【我的设备】, 选择【全部参数】, 对准miui版…

npm ERR! code CERT_HAS_EXPIRED 淘宝镜像失效

近期vue安装失败,具体如下: 1.先npm cache clean --force 再下载 插件后缀加上 --legacy-peer-deps 2.certificate has expired npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED npm ERR! request to https://registry.npm.taobao.o…

【面试题】RocketMQ怎么处理消息积压?

如图,消息积压主要是因为,消费能力不足: 在RocketMQ中,处理消息积压的方法可以采取以下几种策略: 增加消费者数量:可以通过增加消费者数量来提高消息的消费速度。通过增加消费者实例或者消费者组的数量,可…

【Consul】Linux安装Consul保姆级教程

【Consul】Linux安装Consul保姆级教程 大家好 我是寸铁👊 总结了一篇【Consul】Linux安装Consul保姆级教程✨ 喜欢的小伙伴可以点点关注 💝 前言 今天要把编写的go程序放到linux上进行测试Consul服务注册与发现,那怎么样才能实现这一过程&am…

Layui三级联动插件使用方法

Layui高版本中没有在提供三级联动这个动画了,而是封装成了一个插件,使用方式也很简单 官网 省市县区三级联动下拉选择器 layarea - Layui 第三方扩展组件平台 (layuion.com)https://dev.layuion.com/extend/layarea/#doc html页面约束 整个选择器需要…

【二叉树】Leetcode 101. 对称二叉树【简单】

对称二叉树 给你一个二叉树的根节点 root , 检查它是否轴对称。 示例1: 输入:root [1,2,2,3,4,4,3] 输出:true 解题思路 判断一棵二叉树是否是轴对称的,可以通过递归方式进行判断。 1、定义一个递归函数isMirr…

【C++】C++入门第二课(函数重载 | 引用 | 内联函数 | auto关键字 | 指针空值nullptr)

目录 前言 函数重载 概念 重载函数的条件 C支持重载函数的原理--名字修饰 引用 概念 特性 常引用(const引用) 使用场景 传值,传引用效率比较 引用和指针的区别 内联函数 概念 特性 auto关键字(C11) a…

javaWeb项目-家政服务管理系统功能介绍

项目关键技术 开发工具:IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架:ssm、Springboot 前端:Vue、ElementUI 关键技术:springboot、SSM、vue、MYSQL、MAVEN 数据库工具:Navicat、SQLyog 1、B/S结构简介 B/S…

OpenHarmony实战:使用宏、std::bind 巧妙实现进出函数日志打印

背景 我们始终渴望了解模块的调用、时序逻辑,每个人都会轻易地想到在函数的入口打印一条进入 enter 相关的日志,在函数的出口打印一条离开 leave 相关的日志。不能有遗漏,我们会复制这条日志到所有关心的函数中,为了表明是哪个模…

网络以太网之(1)基础概念

网络以太网之(1)基础概念 Author: Once Day Date: 2024年4月1日 一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦… 漫漫长路,有人对你微笑过嘛… 全系列文档可参考专栏:通信网络技术_Once-Day的…

EI会议相当于国内什么期刊?

EI工程索引收录类型有EI期刊和EI会议,EI会议水平是比较高的,也有的作者喜欢将EI会议与国内刊物作比较,那么EI会议相当于国内什么期刊?这主要看是什么级别的会议,顶尖学术会议相当于国内北大核心期刊。 EI会议应用范围和…

python怎么处理txt

导入文件处理模块 import os 检测路径是否存在,存在则返回True,不存在则返回False os.path.exists("demo.txt") 如果你要创建一个文件并要写入内容 #如果demo.txt文件存在则会覆盖,并且demo.txt文件里面的内容被清空,如…

系统架构图怎么画

画架构图是架构师的一门必修功课。 对于架构图是什么这个问题,我们可以按以下等式进行概括: 架构图 架构的表达 架构在不同抽象角度和不同抽象层次的表达,这是一个自然而然的过程。 不是先有图再有业务流程、系统设计和领域模型等&#…

哈希表(Hash Table) -- 用数组模拟--字符串前缀哈希

本文用于个人算法竞赛学习,仅供参考 目录 一.什么是哈希表 二.哈希函数中的取模映射 三.拉链法(数组实现) 四.拉链法模板 五.开放寻址法 六.开放寻址法模板 七.字符串前缀哈希 九.字符串前缀哈希 模板 十.题目 一.什么是哈希表 哈希表&…