消息推送
这里将介绍 PushDeer 、ntfy 、bark 三款消息推送服务,这三种消息推送服务都是开源应用,可以很方便的直接试用官方的api,为保证数据安全这三款应用都可以自己搭建服务端。
写在前面(关于镜像源)
近期对多个镜像源开展整治活动,使得大部分镜像源无法使用,如无法正常拉取镜像,尝试以下源
1 | sudo mkdir -p /etc/docker |
先了解一点
目前可用的DockerHub Proxy站点
1 | https://registry.devops-engineer.com.cn/ |
正文开始
PushDeer除了可以试用官方架设的服务器端,也可以搭建自己的服务端,以下是试用docker部署服务端
PushDeer
- 安装docker-compose
- 目录结构:
1
2
3
4
5
6
7
8
9
10root@linux:/etc/docker/pushdeer# tree -L 2 /etc/docker/
/etc/docker/
├── daemon.json
└── pushdeer
├── app
├── data
└── docker-compose.yml
3 directories, 2 files
root@linux:/etc/docker/pushdeer# - 编辑docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49version: '2.1'
services:
mariadb:
image: mariadb:10.6
container_name: pushdeer_mariadb
healthcheck:
test: ["CMD", "mysqladmin", "ping", "--silent","--password=$$MYSQL_ROOT_PASSWORD"]
timeout: 10s
retries: 3
volumes:
- ./data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=theVeryp@ssw0rd
- MYSQL_DATABASE=pushdeer
- MYSQL_USER=pushdeer
- MYSQL_PASSWORD=123456
redis:
image: redis:6.2
container_name: pushdeer_redis
healthcheck:
test: ["CMD", "redis-cli","ping"]
environment:
- ALLOW_EMPTY_PASSWORD=yes
app:
image: wbsu2003/pushdeer:latest
#build: './docker/web/'
container_name: pushdeer_app
ports:
- 8820:80
volumes:
- ./app:/app
depends_on:
mariadb:
condition: service_healthy
redis:
condition: service_healthy
environment:
- DB_HOST=mariadb
- DB_PORT=3306
- DB_USERNAME=pushdeer
- DB_DATABASE=pushdeer
- DB_PASSWORD=123456
- GO_PUSH_IOS_TOPIC=com.pushdeer.self.ios
- GO_PUSH_IOS_CLIP_TOPIC=com.pushdeer.self.ios.Clip
- APP_DEBUG=true - 执行
1
docker-compose up -d
ntfy
ntfy是什么
ntfy允许您通过任何计算机的脚本、使用简单的HTTP PUT或Post请求将推送通知发送到您的手机或桌面。
支持的移动终端
ntfy doc
服务端安装
选择合适的方式进行安装(没有适合你的?移步官网查看)
ntfy的文档是最详细最全面的,从消息发送、消息订阅、自托管下的安装、配置等说明文档极其详细,在这里我们只以docker作为示例:
1 | mkdir /etc/ntfy /var/cache/ntfy |
你可能会遇到的问题
clock_gettime
在Armbian 20.11中启动该容器可能会出现无法通过宿主机联网的情况
现象
在容器中通过ping 127.0.0.1 报错:docker ping: clock_gettime(MONOTONIC) failed
确认问题
查看镜像的系统时间是否异常
1 | docker run --rm alpine:3.13 date |
如果打印出来的时间和当前真实时间相差较大,则该容器无法正常使用。
例如:
如果是这样应该就是 libseccomp 的版本问题
解决方案
1 | wget http://ftp.us.debian.org/debian/pool/main/libs/libseccomp/libseccomp2_2.5.1-1~bpo10+1_armhf.deb |
校验是否解决
可以看到时间已经正常了
如果是其他发行版点击这里寻找自己适合的版本:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 雅!
评论