diff --git a/README.md b/README.md index abd6e18..6cbcaa7 100644 --- a/README.md +++ b/README.md @@ -80,6 +80,47 @@ _✨ 搭建专属于你的消息推送服务,支持多种消息推送方式, 4. 为[其他系统](https://github.com/songquanpeng/personal-assistant#个人助理应用)提供消息推送功能。 ## 部署 +### 通过 Docker 部署 +部署:`docker run -d --restart always --name message-pusher -p 3000:3000 -e TZ=Asia/Shanghai -v /home/ubuntu/data/message-pusher:/data justsong/message-pusher` + +更新:`docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower -cR` + +开放的端口号为 3000,之后用 Nginx 配置域名,反代以及 SSL 证书即可,具体参考[详细部署教程](https://iamazing.cn/page/how-to-deploy-a-website)。 + +数据将会保存在宿主机的 `/home/ubuntu/data/message-pusher` 目录(只有一个 SQLite 数据库文件),请确保该目录存在且具有写入权限,或者更改为合适的目录。 + +Nginx 的参考配置: +``` +server{ + server_name msgpusher.com; # 请根据实际情况修改你的域名 + + location / { + client_max_body_size 64m; + proxy_http_version 1.1; + proxy_pass http://localhost:3000; # 请根据实际情况修改你的端口 + proxy_set_header Host $host; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_cache_bypass $http_upgrade; + proxy_set_header Accept-Encoding gzip; + proxy_buffering off; # 重要:关闭代理缓冲 + } +} +``` + +注意,为了 SSE 正常工作,需要关闭 Nginx 的代理缓冲。 + +之后使用 Let's Encrypt 的 certbot 配置 HTTPS: +```bash +# Ubuntu 安装 certbot: +sudo snap install --classic certbot +sudo ln -s /snap/bin/certbot /usr/bin/certbot +# 生成证书 & 修改 Nginx 配置 +sudo certbot --nginx +# 根据指示进行操作 +# 重启 Nginx +sudo service nginx restart +``` + ### 手动部署 1. 从 [GitHub Releases](https://github.com/songquanpeng/message-pusher/releases/latest) 下载可执行文件或者从源码编译: ```shell @@ -97,16 +138,6 @@ _✨ 搭建专属于你的消息推送服务,支持多种消息推送方式, 如果服务需要长久运行,只是单纯地启动是不够的,[详细部署教程](https://iamazing.cn/page/how-to-deploy-a-website)。 -### 通过 Docker 部署 -部署:`docker run -d --restart always --name message-pusher -p 3000:3000 -e TZ=Asia/Shanghai -v /home/ubuntu/data/message-pusher:/data justsong/message-pusher` - -更新:`docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower -cR` - -开放的端口号为 3000,之后用 Nginx 配置域名,反代以及 SSL 证书即可,具体参考[详细部署教程](https://iamazing.cn/page/how-to-deploy-a-website)。 - -数据将会保存在宿主机的 `/home/ubuntu/data/message-pusher` 目录(只有一个 SQLite 数据库文件)。 - - ### 注意 如果需要使用 WebSocket 客户端推送功能,则 Nginx 的配置文件中 `proxy_read_timeout` 和 `proxy_send_timeout` 务必设置超过 1 分钟。