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日
    浏览(59)
  • 使用群晖Docker搭建HomeAssistant并实现异地公网访问家中智能设备

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

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

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

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

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

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

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

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

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

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

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

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

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

    2024年02月16日
    浏览(52)
  • Docker -- 镜像仓库(搭建私有镜像仓库、向镜像仓库推送镜像、从镜像仓库拉取镜像)

    搭建镜像仓库可以基于Docker官方提供的DockerRegistry来实现。 官网地址 Docker 官方的 Docker Registry 是一个基础版本的 Docker 镜像仓库,具备仓库管理的完整功能,但是没有图形化界面。 搭建方式比较简单,命令如下: 命令中挂载了一个数据卷 registry-data 到容器内的 /var/lib/regist

    2024年02月04日
    浏览(75)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包