# moonraker-remote-manager **Repository Path**: cf3b5/moonraker-remote-manager ## Basic Information - **Project Name**: moonraker-remote-manager - **Description**: moonraker的component组件,通过该组件,可以远程连接服务器开启隧道暴露moonraker的服务端口 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: develop - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2022-02-10 - **Last Updated**: 2022-09-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # moonraker-remote-manager ## 介绍 moonraker的远程控制component组件,该组件利用printer.cf3b5.com网站的隧道及P2P点对点的通讯协议,将原本内网的moonraker服务API暴露至外网,并通过https://printer.cf3b5.com/fluidd 网站连接该API,从而通过可以通过外网直接访问和管理家中的打印机 _注意:printer.cf3b5.com服务只涉及隧道及P2P的信令交互,账号等功能,打印机的安全性由moonraker自己的账号和认证体系来保证,printer.cf3b5.com不对打印机本身安全负责_ ## 如何使用这个组件 ### 安装 先进入树莓派终端,执行下列命令,克隆组件的源代码仓库到本地,运行安装脚本 ``` cd ~/ git clone https://gitee.com/cf3b5/moonraker-remote-manager.git ./moonraker-remote-manager/install.sh ``` 安装完成后,应该会提示类似于下面的内容 ``` ------------------------------- Here is your key. Please copy it to printer.cf3b5.com for use ------------------------------- ssh-rsa AAAAB3........E5bn02e+ovl8SctgoCxF+vvNwT65GwjNgb pi@raspberrypi ------------------------------- ``` 这是第一次安装时,自动生成新的密钥,并主动显示其中公钥的信息。 复制ssh-rsa开头(包括ssh-rsa)这段公钥内容到printer.cf3b5.com中的新增打印机密钥 **如果需要再次更改密钥,可以重新执行`install.sh -f`** ### 注册并增加打印机 去网站 https://printer.cf3b5.com/ ,注册一个账号,添加打印机得时候,填写上面得密钥 ![输入图片说明](image3.png) ### 配置 安装完成并在printer.cf3b5.com上注册添加完打印机后,需要在moonraker中启用该组件 #### 启用组件 在moonraker.conf文件中增加下面的段落,以启用该组件 ```ini # moonraker.conf [remote_manager] # 摄像头视频串流得地址,要用内网地址 webcam: http://localhost:8080?action=stream ``` *** #### 自动更新 下面配置内容是模块的版本检查更新功能,非必要,建议增加,同样增加进moonraker.conf文件中 ```ini # moonraker.conf [update_manager remote_manager] type: git_repo primary_branch: develop path: ~/moonraker-remote-manager origin: https://gitee.com/cf3b5/moonraker-remote-manager.git ``` *** #### 安全配置 一旦开启远程访问功能,moonraker的接口安全性必须要重视起来,具体可以参考下面的配置内容说明 *** 打开强制登陆选项前一定要先用fluidd建立登陆账号和密码,否则打开后会没有密码账号登陆,如果忘记这个步骤,就手工修改配置文件关闭强制登陆功能后在建立 ```ini [authorization] # True = 强制登陆,打开后无论是否在trusted_clients可信客户端IP中的IP,都会强制要求登陆 # False = 不强制登陆,只有不在trusted_clients可信客户端IP列表中的IP,才会要求登陆 force_logins: False # 授权跨站域名列表,也就是允许这些域名下的网站连接API接口 cors_domains: # 需要同意printer.cf3b5.com域名的跨站请求,https://printer.cf3b5.com/fluidd 才能访问 *://printer.cf3b5.com *://app.fluidd.xyz *://my.mainsail.xyz # 重要:可信客户端IP列表,只有在列表中的客户端IP访问API接口时,可以不需要登陆(强制登陆未打开情况),所以请确保列表中的IP都是可信的内网IP trusted_clients: 192.168.0.0/24 10.0.0.0/8 127.0.0.0/8 169.254.0.0/16 172.16.0.0/12 FE80::/10 ::1/128 ``` 上述操作都确认完成无误后,记得重启moonraker完成后,这时候可以去 https://printer.cf3b5.com/printer/index 页面,查看打印机是否连接成功 ![输入图片说明](image.png) ## 使用 在登陆状态下,访问 https://printer.cf3b5.com/fluidd/ 就可以打开fluidd的打印机管理界面,或者提取 https://xxxx.printer.cf3b5.com/ 这个Moonraker API地址到你自己的安装的fluidd/mainsial网站上使用即可 ### 打开摄像头 只要moonraker.conf文件中的webcam的摄像头地址配置是正确的,remote-manager组件支持将摄像头的视频串流通过WebRTC的点对点的方式推送至访问的浏览器,但该功能fluidd官方版本客户端暂未支持,所以现阶段只有 https://printer.cf3b5.com/fluidd/ 这个网址中的fluidd客户端支持WebRTC视频直播功能。 去fluidd的设置页面,将摄像头类型改成WebRTC即可 ![输入图片说明](image2.png) ## 香橙派等非树莓派系统安装注意事项 在测试过程中,我发现非树莓派系统,有些第三方python的库需要Rust进行本地编译,所以如果出现“Can‘t find Rust compiler”这类的报错,尝试先安装一下Rust https://www.rust-lang.org/tools/install ,安装完rust之后,在重新执行install.sh安装脚本