【Docker】搭建安全可控的自定义通知推送服务 - Bark
【Docker】搭建安全可控的自定义通知推送服务 - Bark
前言
本教程基于绿联的NAS设备DX4600 Pro的docker功能进行搭建。
简介
Bark是一款为Apple设备用户设计的开源推送服务应用,它允许开发者、程序员以及一般用户将信息快速推送到他们自己的iPhone、iPad等设备上。
主要特点如下:
快速:Bark使用了苹果的推送服务,可以迅速无延迟地把信息推送到用户的设备上。
简单:Bark提供了简单的API接口,用户只需要通过简单的HTTP请求就可以实现信息的推送。
免费:Bark是完全免费的,用户可以无限制地使用它来推送信息。
多样化推送:Bark提供了多种推送方式,包括文本信息、链接、图片、音频等,可以满足不同用户的需求。
Bark的应用场景很多,如监控告警、打卡提醒、股票信息推送、日程提醒等。同时,对于开发者来说,Bark也是一种很好的调试工具,可以快速接收到服务器或程序的运行状态信息。
部署
打开Docker管理器,在“镜像管理”中选择“镜像仓库”,在右上角进行搜索“
finab/bark-server
”,找到如下图所示的镜像进行下载。下载完成以后,在“本地镜像”中找到它,点击“创建容器”。
勾选“创建后启动容器”,然后直接点击“下一步”。
将“基础设置”中的重启策略配置成“容器退出时总是重启容器”。
在NAS中创建一个目录,用于保存bark-server的配置和数据,在“存储空间”内与容器的
/data
目录建立映射,并配置为“读写”类型。在“端口设置”中进行端口配置,“本地端口”指的是我们实际访问时要用到的端口,可以根据自己喜好进行配置,只要不与其他服务的端口有冲突就行。
此处演示时使用的是“自动”端口,如不清楚端口是否被占用则默认自动即可。
完成以上步骤后,检查一下,确认无误后直接点击“完成”。
在“容器管理”中找到刚创建好的容器,点击“详情”。
演示时与“容器端口”绑定的“本地端口”使用的是
自动
,如果你不是使用的自动
,可以忽略此步骤,直接在浏览器中输入你的ip和你自定义的本地端口进行访问即可。点击“端口”,点击下图所示链接即可打开我们部署好的Bark-Server。
演示时与“容器端口”绑定的“本地端口”使用的是
自动
,如果你不是使用的自动
,可以忽略此步骤,直接在浏览器中输入你的ip和你自定义的本地端口进行访问即可。打开链接后,显示下图所示即表示搭建成功。
使用
使用iOS设备在“APP Store”中搜索“Bark”并下载。
允许“Bark”发送通知。
点击“注册设备”。
这里会生成一个设备唯一随机码,当卸载重装Bark的时候,需要重新进行注册设备。
点击右上角的“+”。
Bark默认提供了一个免费的服务器API,但是推送的消息会在该服务器日志中记录,如果你推送的消息不是特别重要,你也可以选择直接使用默认API接口。
将我们刚刚部署好的Bark-Server的地址使用反向代理并且添加HTTPS证书后,填入“服务器地址”栏处,然后点击右上角的“✓”。
反向代理可以选择Lucky或者Nginx,根据自己的喜好进行选择。
复制一个API模板,在浏览器的地址栏中直接请求。
在浏览器中请求API会收到以下结果表示成功。
设备上会收到以下结果表示成功。
文章出处:https://blog.uptoz.cn/archives/BrIXHeSN
作者原创:@小小笔记大大用处 https://blog.uptoz.cn
相关文章:
【Docker】搭建安全可控的自定义通知推送服务 - Bark
【Docker】搭建安全可控的自定义通知推送服务 - Bark 前言 本教程基于绿联的NAS设备DX4600 Pro的docker功能进行搭建。 简介 Bark是一款为Apple设备用户设计的开源推送服务应用,它允许开发者、程序员以及一般用户将信息快速推送到他们自己的iPhone、iPad等设备上…...
国内IP代理软件电脑版:深入解析与应用指南
随着互联网技术的快速发展,网络活动日益丰富多样,IP代理软件也因其独特的功能和优势,成为许多电脑用户不可或缺的工具。在国内,由于网络环境的复杂性和特殊性,选择一款稳定、高效的IP代理软件电脑版尤为重要。虎观代理…...
面向对象设计之开闭原则
设计模式专栏: http://t.csdnimg.cn/4Mt4u 目录 1.引言 2.如何理解“对扩展开放、对修改关闭” 3.修改代码就意味着违反开闭原则吗 4.如何做到“对扩展开放、对修改关闭” 5.如何在项目中灵活应用开闭原则 6.总结 1.引言 开闭原则(Open Closed Principle&…...
【项目技术介绍篇】若依项目代码文件结构介绍
作者介绍:本人笔名姑苏老陈,从事JAVA开发工作十多年了,带过大学刚毕业的实习生,也带过技术团队。最近有个朋友的表弟,马上要大学毕业了,想从事JAVA开发工作,但不知道从何处入手。于是࿰…...
实现DevOps需要什么?
实现DevOps需要什么? 硬性要求:工具上的准备 上文提到了工具链的打通,那么工具自然就需要做好准备。现将工具类型及对应的不完全列举整理如下: 代码管理(SCM):GitHub、GitLab、BitBucket、SubV…...
Linux小程序: 手写自己的shell
注意: 本文章只是为了理解shell内部的工作原理, 所以并没有完成shell的所有工作, 只是完成了shell里的一小部分工作 #include <stdio.h> #include <unistd.h> #include <string.h> #include <stdlib.h> #include &l…...
javaSwing租户管理系统
简介 欢迎阅读本篇博客,今天我将为大家介绍一个基于Java Swing开发的租户管理系统。该系统具有登录、注册、添加租户、查询租户信息、修改租户信息、删除租户、修改密码、退出登录等功能模块,旨在提供一个便捷的租户管理解决方案。 一、项目介绍 该租…...
cesium实现竖立的圆
cesium中的圆是平行于地面的,想实现竖起来的圆可以使用ellipsoid,设置其中一个轴的radii值为一个很小的值,比如0.00001,则这个轴上的宽度就会非常小,看起来就是一个圆面。 一、画圆ellipse,此处也把画圆的代…...
汽车电子行业知识:智能汽车电子架构
文章目录 3.智能汽车电子架构3.1.汽车电子概念及发展3.2.汽车电子架构类型3.2.1.博世汽车电子架构3.2.2.联合电子未来汽车电子架构3.2.3.安波福汽车电子架构3.2.4.丰田汽车电子架构3.2.5.华为汽车电子架构 3.智能汽车电子架构 3.1.汽车电子概念及发展 汽车电子是车体汽车电子…...
LeetCode146:LRU缓存
leetCode:146. LRU 缓存 题目描述 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存 int get(int key) 如果关键字 key 存在于缓存中&#x…...
【Unity音游制作】你玩过节奏大师吗?(Koreographe插件导入游戏主体)【一】
👨💻个人主页:元宇宙-秩沅 👨💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨💻 本文由 秩沅 原创 👨💻 收录于专栏:Uni…...
高效解决Ubuntu Server 18.04.1 LTS 64bit更新gdb8.1.1到gdb12.1
文章目录 问题解决步骤 问题 因为需要用到gdb一些指令,但是gdb8.x好像存在普遍的问题,实现不了某些指令,比方说set detach-on-fork on,升级版本也没有比较好的教程 经过我不断的试错,我终于升级成功了!&a…...
【公示】2023年度青岛市级科技企业孵化器拟认定名单
根据《青岛市科技企业孵化器管理办法》(青科规〔2023〕1号)(以下简称《管理办法》)、《关于开展2023年度市级科技企业孵化器认定申报工作的通知》,经申报受理、区市推荐、形式审查、专家评审及现场核查等程序ÿ…...
【软件安装】(十四)Ubuntu22.04安装Psensor硬件监视器
一个愿意伫立在巨人肩膀上的农民...... Ubuntu系统硬件运行查询输入指令太繁琐,终端展示不直观,因此这款具有可视化监控Ubuntu系统下当前电脑的硬件CPU(中央处理器)、GPU(显卡)和硬盘等温度等功能ÿ…...
数组合并小程序
题目: 输入有序数组a, b, 不使用排序算法,及额外数组,按大小顺序合并a, b数组,元素不重复; 思路: 1. 如果比插入的数组大,那么往后插入,如果继续有大的,就移动位置插入…...
python练习二
# Demo85def pai_xu(ls_test):#创建一个列表排序函数命名为pai_xu# 对创建的函数进行注释"""这是一个关于列表正序/倒序排列的函数:param ls_test: 需要排序的列表:return:"""ls1 [int(ls_test[i]) for i in range(len(ls_test))]#对input输入的…...
专升本-数字媒体
数字媒体 概念: 媒体:是信息的载体,传播信息的媒介,能为信息的传播提供平台 数字媒体:多重媒体,使用文字,数据,图像,声音等各种媒体 数字媒体技术:利用计…...
蓝桥杯算法题-发现环
问题描述 小明的实验室有N台电脑,编号1~N。原本这N台电脑之间有N-1条数据链接相连,恰好构成一个树形网络。在树形网络上,任意两台电脑之间有唯一的路径相连。 不过在最近一次维护网络时,管理员误操作使得某两台电脑之间增…...
Oracle存数字精度问题number、binary_double、binary_float类型
--表1 score是number(10,5)类型 create table TEST1 (score number(10,5) ); --表2 score是binary_double类型 create table TEST2 (score binary_double ); --表3 score是binary_float类型 create table TEST3 (score binary_float );实验一:分别往三张表插入 小数…...
Java封装最佳实践:打造高内聚、低耦合的优雅代码~
个人主页:秋风起,再归来~ 文章专栏:javaSE的修炼之路 个人格言:悟已往之不谏,知来者犹可追 克心守己,律己则安! 1、封装 1.1 封装的概念 面向对象程序三大…...
开源,微信小程序-超级计算器T3000 简介
笔者于四年前自学微信小程序开发,这个超级计算器T3000就是当时的练习作品。超级计算器T3000的功能有很多,其中的核心技术是矩阵计算,使用的工具库是math.js,其次是复杂运算和分式运算。关于math.js的使用,可以参考另一…...
Dimitra:基于区块链、AI 等前沿技术重塑传统农业
根据 2023 年联合国粮食及农业组织(FAO)、国际农业发展基金(IFAD)等组织联合发布的《世界粮食安全和营养状况》报告显示,目前全球约有 7.35 亿饥饿人口,远高于 2019 年的 6.13 亿,这意味着农业仍…...
降低项目延期概率的5大注意事项
降低项目延期概率对项目非常重要。因为项目延期往往会导致成本增加,降低客户满意度,影响企业在市场上的竞争力,造成资源浪费。因此,我们需要降低项目延期概率,实现企业长远发展。 而降低项目延期概率,一般来…...
在VUE页面调用Extjs中定义的方法
VUE版本:VUE2 EXTJS版本:4.2.6 1、在extjs页面上写监听事件(主要利用了window.addEventListener来监听message事件 window.addEventListener("message", function(event) {// 这里写监听到消息后的逻辑,event.data就是…...
【独立开发前线】Vol.32 能够坚持下去的人并没有你想象的那么多
如果你有一个博客,你就已经超过了80%的独立开发者; 如果你每周更新自己的博客,你就已经超过了90%的独立开发者; 如果你每天更新自己的博客,你就已经超过了99%的独立开发者; 能够坚持下去的人并没有你想象…...
Java 扫描某包下所有类的注解并获得注解值
背景 : 需求 需要获取某个包下的所有的注解 并不是全部项目的 所以 只用针对某个包 进行扫描 获取注解 数据就行 百度了一圈 spring boot 没有自带的 获取注解集合的方法 在看 php 中 hyperf 框架 看到了 这个方法 就是因为 我需求是 php 和java 合体 微服务开发 …...
根据实例逐行分析NIO到底在做什么
Selector(选择器)是 Channel 的多路复用器,它可以同时监控多个 Channel 的 IO 状况,允许单个线程来操作多个 Channel。Channel在从Buffer中获取数据。 选择器、通道、缓冲池是NIO的核心组件。 一、新建选择器 此时选择器内只包含…...
TypeScript-对象的类型(接口)
1.接口 说明:TypeScript 中的接口(Interfaces)是一种用来定义对象的结构或者契约的方式。通过接口,你可以定义对象应该具有哪些属性、方法以及它们的类型。 2.一致性 说明:接口的属性名和对象的属性名必须一致性。 …...
Windows服务器安全策略配置几个步骤,轻松加强服务器安全
Windows服务器安全策略怎么做?不要觉得这是一个非常深奥遥不可及的问题,其实也是从各个方面去加固系统的安全性而已,它没有一个定论,今天德迅云安全就跟用户们分享一下windows服务器基本安全策略保障服务器基本安全的一些简单实用…...
Hive详解(2)
Hive 表结构 分区表 多字段分区:需要使用多个字段来进行分区,那么此时字段之间会构成多层目录,前一个字段形成的目录会包含后一个字段形成的目录,从而形成多级分类的效果。例如商品的大类-小类-子类, 省市县、年…...
菏泽的给公司做网站的/外贸网站推广服务
启动容器A, A的端口映射是 80:8080外部的25000端口映射到服务内部的8080端口;有时候将容器关闭,重新构建镜像及启动容器时会出现一些报错,比如端口被占用的报错,但通过docker ps -a |grep 容器名, 会发现容器其实已经关…...
外行怎么做网站/网络平台运营是做什么的
Redis字典在redis中被广泛运用,作为redis字典底层实现的哈希表结构是怎样的呢,今天结合源码初步了解下typedef struct dictEntry {void *key;union {void *val;uint64_t u64;int64_t s64;double d;} v;struct dictEntry *next; } dictEntry;redis哈希表节…...
一流本科专业建设点网站/百度关键词价格怎么查询
图的独立集:寻找一个点集,其中任意两点在图中无对应边二分图的最大独立集图的点数-最大匹配数1 #include <iostream>2 #include <cstdio>3 #include <map>4 #include <cstring>5 6 using namespace std;7 8 struct people9 {10 …...
泰国网站的域名/黑科技引流软件是真的吗
以下为免安装版MySQL的配置步骤 版本号:mysql-5.7.23-winx64 第一步:进入官网下载免安装MySQL的压缩包 下载地址:点我跳转下载 点击红色框内不登录即可进行下载 第二步:将下载好的压缩包解压到自己创建的文件夹内 解压后点进去…...
阿里云服务器ecs建站教程/竞价推广托管
我们知道,cookie是有有效期的,cookie的默认有效期是在从cookie生成后一直到浏览器关闭,我们可以设置cookie的有效期来指定它的失效期,用户也可以禁止cookie也可以手动的删除cookie。cookie是一小段信息,以键/值对的信息…...
上海网站域名备案处/搜索词分析
京东商品爬取仅供学习一.使用seleniumfrom selenium import webdriverfrom selenium.webdriver.common.keys import Keys #键盘按键操作from selenium.webdriver.support import expected_conditions as ECimport timedef get_goods(driver):try:goodsdriver.find_elements_by_…...