streamdeck studio
streamdeck studio是一种Web应用程序,为您提供了为Elgato StreamDeck设备创建一致风格的图标的工具。
捐赠
托管并不便宜!如果您喜欢该项目并希望看到该项目,请考虑捐款以帮助照顾托管费用和咖啡因的费用。
用法
除非此存储库中另有说明,否则streamdeck studio的正式发行版将在https://www.s*trea*md*eck.studio/在线托管。除非托管费用变得不可行,否则该应用程序的这一实例将继续保持在线并接收更新。
创建图标
使用搜索字段找到您选择的字形。单击字形选择它,然后使用图标编辑器选项修改标签和颜色选项。完成后,您可以将图标的图像直接拖动到StreamDeck首选项中,单击下载按钮下载单个图标,或单击“收集”按钮将图标添加到您的集合中。
创建图标集合
使用上述步骤来创建图标,将任何数量的创建图标添加到您的集合中。如果您想调整图标的样式,请单击集合中的图标将其加载到编辑器中,然后进行更改,然后再次单击“收集”按钮。要从集合中删除图标,请悬停在图标的缩略图上,然后单击delete ()按钮。对收藏集满意后,您可以单击“下载集合”按钮将图标集合存档到磁盘作为ZIP压缩的存档。
安装
这是一个Web应用程序,不能作为桌面应用程序安装。如果您不安装贡献或自我托管,请在此处转弯,并在https://www.s**trea*mdeck.studio/上使用托管应用程序。否则,请继续…
先决条件
StreamDeck.studio旨在运行容器,因此需要在主机系统上安装Docker。对于开发环境,Docker桌面将有效。
Docker-Compose
从项目的根目录中运行./install.sh ,并从给定选项指定local或production 。这将创建与适当的docker-compose.${ENV}.yml在docker/ Directory中。完成后,查看您的.env文件,然后运行docker-compose up或docker-compose up -d以开始。
当地环境
本地开发人员环境是根据Laravel Sail设计的,Laravel Sail – Laravel的开发人员基于php artisan serve 。此环境可以通过HTTP或HTTPS提供服务,但不会为续订证书创建Letsencrypt Certbot容器,也不会为NGINX或Working流程创建其他容器。
由于主管在本地环境中未自动维护辅助过程,因此您的工作流程应包括一个为以下命令创建终端会话的过程:
-
docker-compose up或sail up -
sail artisan queue:work
生产环境
生产环境是使用Docker Hub的官方PHP,NGINX,MYSQL,REDIS和CERTBOT容器从头开始构建的。完整的.env文件应在docker-compose up或docker-compose up -d的第一次运行中成功启动。
重要的是要注意,生产环境确实包括自动维护的Certbot容器。将.env文件中的APP_ENV值设置为production将导致certbot在非分期模式下请求生产证书。如果您需要在请求生产证书之前测试证书请求,则可以修改.env文件以设置APP_ENV=local ,或使用APP_ENV=production ,设置CERTBOT_STAGING=true 。
CERTBOT自动续订
docker/certbot/scripts/maintain-cert.sh提供了您应用程序的LetSencrypt证书的自动续订,该证书被指定为官方Certbot容器映像上的Overriden入口点。该脚本将每天检查是否有续签资格并进行相应处理。
重新加载nginx
当发生证书更新时,Nginx有必要重新加载,以便可以将新证书推入内存。通过使用certbot上的--post-hook选项来调用脚本, docker/certbot/scripts/reload-cert.sh来自动处理此过程。
在成功的续订中,挂钩脚本将通过TCP发送消息到Nginx容器,该容器正在侦听netcat的消息。此NetCat侦听器由脚本docker/nginx/scripts/docker-entrypoint.d/31-listen-cert-reload.sh初始化,然后由容器的默认入门点脚本(一个例程(一种例行程序)(一个例行程序)(一个例行程序,它将轮询%nginx_container_root%/docker-entrypoint.d/按名称添加字母数字,然后运行每个脚本以按顺序)。在收到有效的重新加载消息时,NetCat侦听器将调用docker/nginx/scripts/opt/handle-cert-reload.sh ,使用容器的Default EntraultPoint脚本调用nginx reload 。
重要的是,使用容器入口点调用nginx reload为“包装器”,因为(尤其是在第一次运行中)这样做将确保docker/nginx/scripts/docker-entrypoint.d/11-mount-config.sh在nginx重新加载之前运行。这是负责检查证书是否可用于通过指定的APP_HOSTNAME为您的应用程序服务的脚本。没有有效的证书集,安装的配置将仅提供HTTP,仅允许足够的访问权限才能使certbot执行基于WebRoot的域验证。在此战略顺序上操作可以在域名转换时启用自动证书续订或批发修改APP_HOSTNAME 。
自动安装
app和worker容器均由supervisord维护。在每个启动时, app容器将运行docker/php/scripts/install.sh照顾更新数据库架构,构建CSS/JS资产,种子和其他任务。在工作过程可以调用php artisan queue:work之前,此过程必须成功完成。
为了处理该有序的执行, docker/php/scripts/worker.sh使用gnu read命令从storage/logs/queue_worker.fifo中的FIFO管道输入输入(由脚本自动生成 – 也是gitignignored)。这种阻止过程会导致主管In app voked worker.sh悬挂(指定超时为4分钟),直到通过install.sh将数据写入FIFO。
通过流行的waitforit.sh [https://g*i*t*hub.com/vishnubob/wait-for-it] shell shell脚本,通过这种方式,以这种方式进行跨服务过程阻止是一种最小但高度可用的方法。但是,阻止的进程没有测试TCP端口的可用性,而是等待来自另一个服务的IPC消息。受控的服务启动订单有助于减轻队列工人遇到的错误,这可能会导致致命错误,从而完全需要重新启动/重新启动应用程序。
贡献
请按照此读书我的安装部分中的说明进行操作,以设置开发环境。欢迎带有干净提交的拉请求!
让我们成为朋友
我需要更多的开发人员朋友!请在Twitter上关注我,或在LinkedIn上加我。
