浏览代码

docs: update deployment tutorial

JustSong 2 年之前
父节点
当前提交
9d77cc217b
共有 1 个文件被更改,包括 41 次插入10 次删除
  1. 41 10
      README.md

+ 41 - 10
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 分钟。