Gotify消息推送系统搭建

这篇具有很好参考价值的文章主要介绍了Gotify消息推送系统搭建。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

gotify,群晖,docker,消息推送

昨天网友 sincoslong 提到了一个很好的建议:


docker 注册表版本别选择 latest 选择具体版本号。

有的新版本,数据库、 php 各种依赖,都升级。小白如果选择最近更新的版本,估计写个 blog 都是记录如何失败的。

虽然有的人也会看看你发布日期,看看当时什么版本。但是有的没有历史版本了。基本就不能照葫芦画瓢操作了。


老苏虚心接受,其实老苏之前也想过这个问题,写 latest 主要是图个方便省事。

从本文开始改正,对于建议前已完成的稿件,老苏会添加版本说明;对于建议之后开始撰写的稿件,直接选择具体的版本号,感谢 sincoslong !

什么是 Gotify ?

Gotify 是一个简单的消息推送服务器,用于通过 WebSocket 实时发送和接收消息。(包括一个时尚的网络用户界面)

老苏之前写过推送系统 ntfy.sh,这两个都是使用 golang 开发的推送系统,老苏没有深入研究,直观感觉就是 Gotify 不需要像 ntfy.sh 去订阅 ,而且似乎也不支持 iOS 客户端

文章传送门:无需注册的通知服务ntfy

安装

在群晖上以 Docker 方式安装。

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

本文写作时, latest 版本对应为 2.2.2

gotify,群晖,docker,消息推送

docker 文件夹中,创建一个新文件夹 gotify,并在其中建一个子文件夹 data

文件夹 装载路径 说明
docker/gotify/data /app/data 存放数据库等

gotify,群晖,docker,消息推送

端口

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

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

gotify,群晖,docker,消息推送

环境

可变
GOTIFY_DEFAULTUSER_NAME 后台管理员账号
GOTIFY_DEFAULTUSER_PASS 后台管理员密码

gotify,群晖,docker,消息推送

更多的环境变量请看官方文档:https://gotify.net/docs/config#environment-variables

命令行安装

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

# 新建文件夹 gotify 和 子目录
mkdir -p /volume2/docker/gotify/data

# 进入目录
cd /volume2/docker/gotify

# 运行容器
docker run -d \
   --restart unless-stopped \
   --name gotify \
   -p 8385:80 \
   -v $(pwd)/data:/app/data \
   -e GOTIFY_DEFAULTUSER_NAME:laosu \
   -e GOTIFY_DEFAULTUSER_PASS:7uZFj9Ctf4 \
   gotify/server:2.2.2

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

version: "3"

services:
  gotify:
    image: gotify/server:2.2.2
    container_name: gotify
    restart: unless-stopped
    ports:
      - 8385:80
    environment:
      - GOTIFY_DEFAULTUSER_NAME=laosu
      - GOTIFY_DEFAULTUSER_PASS=7uZFj9Ctf4
    volumes:
      - "./data:/app/data"

然后执行下面的命令

# 新建文件夹 gotify 和 子目录
mkdir -p /volume2/docker/gotify/data

# 进入目录
cd /volume2/docker/gotify

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

# 一键启动
docker-compose up -d

运行

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

gotify,群晖,docker,消息推送

用前面设置的 GOTIFY_DEFAULTUSER_NAMEGOTIFY_DEFAULTUSER_PASS 登录,成功后的主界面

如果你没设置,可以用默认的 admin/admin

gotify,群晖,docker,消息推送

推送消息

从右上方的 apps --> Create Application,创建一个应用

gotify,群晖,docker,消息推送

创建成功之后,点眼睛按钮,可以看到 Token 的值,这个后面会用到

gotify,群晖,docker,消息推送

尝试发送一条消息,在 SSH 客户中直接执行下面的命令

# 格式
curl "https://yourdomain.com/message?token=<apptoken>" -F "title=my title" -F "message=my message" -F "priority=5"

# 示例
curl "http://192.168.0.197:8385/message?token=AdVPoP7WecontPA" -F "title=my title" -F "message=从web发送的消息" -F "priority=5"

gotify,群晖,docker,消息推送

回到网页

gotify,群晖,docker,消息推送

官方文档详细介绍及各个语言调用例子:https://gotify.net/docs/pushmsg

反向代理

如果要远程使用,需要做反代处理,还是以 npm 为例

gotify,群晖,docker,消息推送

老苏还是习惯全部勾选

gotify,群晖,docker,消息推送

除了上面的,还需要在 Advanced 中添加下面的代码,否则网页端会不能登录

  location / {
    # We set up the reverse proxy
    proxy_pass         http://192.168.0.197:8385;
    proxy_http_version 1.1;

    # Ensuring it can use websockets
    proxy_set_header   Upgrade $http_upgrade;
    proxy_set_header   Connection "upgrade";
    proxy_set_header   X-Real-IP $remote_addr;
    proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header   X-Forwarded-Proto http;
    proxy_redirect     http:// $scheme://;

    # The proxy must preserve the host because gotify verifies the host with the origin
    # for WebSocket connections
    proxy_set_header   Host $http_host;

    # These sets the timeout so that the websocket can stay alive
    proxy_connect_timeout   1m;
    proxy_send_timeout      1m;
    proxy_read_timeout      1m;
  }

gotify,群晖,docker,消息推送

现在你可以尝试用域名发消息了

# 域名示例 
curl "https://mess.laosu.ml:444/message?token=AdVPoP7WecontPA" -F "title=my title" -F "message=从web域名发送的消息" -F "priority=5"

如果出现下面👇这样的问题

gotify,群晖,docker,消息推送

添加 -k 参数,用于忽略证书验证就可以了

# 域名示例(忽略证书验证)
curl -k "https://mess.laosu.ml:444/message?token=AdVPoP7WecontPA" -F "title=my title" -F "message=从web通过域名发送的消息" -F "priority=5"

gotify,群晖,docker,消息推送

想深入了解 SSL 证书验证,可以看:https://curl.se/docs/sslcerts.html

启用 https 协议后访问 Web 后台 ,可以设置网页消息提醒

移动端

似乎只有 Android 客户端,可以在下面两个地址下载:

  • https://github.com/gotify/android/releases
  • https://f-droid.org/zh_Hans/packages/com.github.gotify

gotify,群晖,docker,消息推送

包非常小,跟现在动则几百兆的应用形成了鲜明的对比

gotify,群晖,docker,消息推送

输入服务器地址,点 CHECK URL,如果连接成功会显示服务端的版本,并需要登录

gotify,群晖,docker,消息推送

如果有问题,可以尝试在设置中勾选 Disble SSL Validation

gotify,群晖,docker,消息推送

设置完客户端名称后,就可以看到之前发送的消息了

gotify,群晖,docker,消息推送

Android 端还可以发送消息

gotify,群晖,docker,消息推送

参数是一样的

gotify,群晖,docker,消息推送

发送成功

gotify,群晖,docker,消息推送

回到网页

gotify,群晖,docker,消息推送

接口文档

Gotify 提供了完善的 REST-API 文档:https://gotify.github.io/api-docs

spec.json 导入 apifox,可以测试收消息

gotify,群晖,docker,消息推送

也可以发

gotify,群晖,docker,消息推送

回到网页

gotify,群晖,docker,消息推送

参考文档

gotify/server: A simple server for sending and receiving messages in real-time per WebSocket. (Includes a sleek web-ui)
地址:https://github.com/gotify/server

Gotify · a simple server for sending and receiving messages
地址:https://gotify.net/

Installation · Gotify
地址:https://gotify.net/docs/install文章来源地址https://www.toymoban.com/news/detail-821638.html

到了这里,关于Gotify消息推送系统搭建的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 分布式WebSocket消息推送系统设计与实现

    作者:禅与计算机程序设计艺术 现如今,随着物联网、云计算、移动互联网、大数据等新技术的兴起,分布式系统成为越来越多企业面临的挑战。在分布式系统中,服务间通信是一个重要且复杂的课题,基于TCP/IP协议族的传输层协议之上的应用层协议比如HTTP协议、RPC(Remo

    2024年02月05日
    浏览(41)
  • 【黑群晖】搭建共享存储云盘系统

    文章链接 https://blog.csdn.net/was172/article/details/106176930/ https://www.openos.org/threads/dsm-6-2-3-2020-12-27.29/ https://post.smzdm.com/p/aqx07xmk/ https://www.huakings.cn/post/130.html 视频链接: https://www.bilibili.com/video/BV1LB4y1A7GZ?spm_id_from=333.880.my_history.page.click https://www.bilibili.com/video/av50996211/ 黑群晖限制条件

    2024年02月08日
    浏览(64)
  • 搭建自己的 new bing网站----nginx反代(群晖,全docker版)

    本篇教程全萌新向,即便新手也可以看懂 (希望大家点个赞)。 演示效果如图。 本篇文章以nginx反代为题带来一次new bing 的反代实践,可以搭建在自己的服务器上自用,使用起来更方便一点。 我们首先感谢 adams549659584大佬贡献的项目。 项目地址: go-proxy-bing bing项目演示(

    2024年02月09日
    浏览(41)
  • 使用群晖Docker搭建HomeAssistant并实现异地公网访问家中智能设备

    最近,我发现了一个超级强大的人工智能学习网站。它以通俗易懂的方式呈现复杂的概念,而且内容风趣幽默。我觉得它对大家可能会有所帮助,所以我在此分享。点击这里跳转到网站。 HomeAssistant 是一个可以控制 苹果 、 小米 、MQTT等设备的智能家居平台。本文首先介绍如

    2024年02月05日
    浏览(60)
  • 微信小程序客服系统-对接消息推送-对接模板订阅消息-嵌入webview客服链接

    想要给自己的小程序增加客服系统功能 小程序客服对接导自己的系统等需求,可以参照我开发的客服系统,实现私有化部署搭建对接的微信小程序 首先登录小程序后台 在小程序后台==开发管理==开发设置==服务器域名部分,配置好自己的域名 再往上翻,开发者ID部分,把App

    2024年02月15日
    浏览(50)
  • 桥接模式:如何实现支持不同类型和渠道的消息推送系统?

            上一节课我们学习了第一种结构型模式:代理模式。它在不改变原始类(或者叫被代理类)代码的情况下,通过引入代理类来给原始类附加功能。代理模式在平时的开发经常被用到,常用在业务系统中开发一些非功能性需求,比如:监控、统计、鉴权、限流、事务

    2024年02月15日
    浏览(41)
  • 在校园跑腿系统小程序中,如何设计高效的实时通知与消息推送系统?

    在校园跑腿系统小程序中,选择一个适合的消息推送服务。例如,使用WebSocket技术、Firebase Cloud Messaging (FCM)、或第三方推送服务如Pusher或OneSignal等。注册并获取相关的API密钥或访问令牌。 使用选定的服务提供商的文档,将其集成到小程序后端。这通常涉及使用相应的SDK或AP

    2024年02月05日
    浏览(53)
  • 群晖Docker搭建HomeAssistant,结合内网穿透实现远程访问智能家居控制中心

    HomeAssistant 是一个可以控制 苹果 、 小米 、MQTT等设备的智能家居平台。本文首先介绍如何使用 群晖NAS 的 Docker 套件来安装 HomeAssistant平台 ,安装成功后,如何结合cpolar内网穿透工具实现 公网访问。 基本条件: 有正版群晖或黑群辉,可以装docker。 打开群晖 容器 管理 套件(

    2024年02月05日
    浏览(205)
  • 使用群晖NAS Mail Server搭建个性化邮件系统

    一个顶级域名 可以获取公网IP的宽带 路由使用DDNS功能,或使用群晖自带DDNS,解析顶级域名 可以做“端口映射”的路由器 step1:安装套件 登录群晖NAS,打开[套件中心],搜索“mail”,安装如下两个套件:“MailPlus server”、“MailPlus”; step2:安装MailPlus server服务端 打开“M

    2024年02月16日
    浏览(54)
  • 【Docker篇】从0到1搭建自己的镜像仓库并且推送镜像到自己的仓库中

    Docker私有仓库的存在为用户提供了更高的灵活性、控制和安全性。与使用公共镜像仓库相比,私有仓库使用户能够完全掌握自己的镜像生命周期。 首先,私有仓库允许用户在本地或云服务器上部署和管理自己的镜像存储库。这意味着用户可以根据自己的需求和规模进行扩展和

    2024年01月19日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包