
chiefwigms/picobrew_pico允许全面控制PicoBrew Pico S/C/Pro及Zymatic型号设备。感谢@hotzenklotz、提供PicoFerm API的Brian Moineau、支持Z系列的@tmack8001。
演示服务器
参考发布页面获取在树莓派设备(推荐型号:Raspberry Pi Zero-W或Raspberry Pi 4)上搭建Pico服务器的步骤。
默认情况下,树莓派设备的主机名为"raspberrypi",可在本地网络中发现,同时提供"samba"(或网络共享)用于会话和配方文件。可通过这些共享查看服务器在与用户和连接设备交互时创建的文件。
有两种主要方式获取错误的详细信息:
浏览器调试:大多数现代浏览器都包含"开发工具"(Chrome中路径:"设置 > 更多工具 > 开发者工具"),其中通常有控制台日志和"网络"选项卡,可查看页面的所有网络请求。
应用日志:通过ssh或本地键盘+屏幕会话查看Python服务器日志:
sudo systemctl status rc.local -n <日志行数>
以下指南面向贡献者的开发环境搭建。
DNS转发(通过路由器、树莓派等实现)
address=/picobrew.com/<运行此代码的服务器IP>Docker v19.x([***]
创建以下目录结构供服务器使用:
recipes/ pico/ zymatic/ sessions/ brew/ active/ archive/ ferm/ active/ archive/
运行服务器并挂载上述目录结构。
(可选)步骤1:生成SSL证书
若需支持要求HTTP+SSL通信的ZSeries设备,需生成自签名证书用于nginx终止SSL连接(在请求转发给flask应用前)。
./scripts/docker/nginx/ssl_certificates.sh
在MacOS上,若使用Chrome和/或Safari,可永久信任证书颁发机构(自己),使生成的证书权威被信任(Firefox在浏览器中单独存储受信任CA列表):
sudo security add-trusted-cert -d -r trustAsRoot -k /Library/Keychains/System.keychain $(pwd)/scripts/docker/nginx/certs/bundle.crt
步骤2:运行Flask服务器(可选择docker run或docker-compose)
可直接向docker命令提供所有变量,或使用仓库的docker-compose.yml(若已通过./scripts/docker/nginx/ssl_certificates.sh正确设置证书,将包含启用SSL的nginx配置)。
选项1:Docker Run(无SSL支持或外部SSL终止)
直接使用docker适用于不需要SSL连接(即非ZSeries酿造设置)或使用其他系统处理SSL连接(如mitmproxy、nginx等)的简单场景。
docker run -d -it -p 80:80 --name picobrew_pico \ --mount type=bind,source=<绝对路径到recipes>,target=/picobrew_pico/app/recipes \ --mount type=bind,source=<绝对路径到sessions>,target=/picobrew_pico/app/sessions \ chiefwigms/picobrew_pico
查看日志:先列出运行中的容器,然后通过docker查看特定实例的日志:
docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3cfda85cd90c chiefwigms/picobrew_pico "/bin/sh -c 'python3…" 45 seconds ago Up 45 seconds 0.0.0.0:80->80/tcp picobrew_pico
docker logs -f 3cfda85cd90c WebSocket transport not available. Install eventlet or gevent and gevent-websocket for improved performance. * Serving Flask app "app" (lazy loading) * Environment: production WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. * Debug mode: off * Running on [***] (Press CTRL+C to quit)
选项2:Docker Compose(通过专用nginx容器支持SSL)
若需同时运行http和https并由内置nginx处理SSL终止,docker-compose是最简单的配置方式:
docker-compose up --build
或后台启动:
docker-compose up --build -d
查看日志(通过服务别名app):
docker-compose logs -f app
Python >= 3.6.9
克隆仓库,然后运行
*nix系统:sudo pip3 install -r requirements.txt
Windows系统(管理员权限):pip3 install -r requirements.txt
运行服务器:
*nix系统:sudo python3 server.py
Windows系统(管理员权限):python3 server.py
(默认主机接口为0.0.0.0,端口80,可通过命令行参数指定:python3 server.py <接口> <端口>)
除本协议所述外,开发者的所有工作成果均按“原样”提供。除本协议规定外,开发者不提供任何其他明示或暗示的保证,并在此声明不承担任何默示保证,包括任何适销性保证和特定用途适用性保证。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务