TurboWarp 部署云变量服务

从GitHub下载cloud-server代码

https://github.com/TurboWarp/cloud-serverg 

根据README文档部署云变量服务

cloud-server‌是一个为Scratch 3设计的云数据服务器,被forkphorus和TurboWarp使用。

它使用的协议与Scratch 3的云变量协议非常相似。更多详细信息请参阅doc/protocol.md。

限制‌
该服务器未实现长期变量存储功能。所有数据仅存储在内存中(从不写入磁盘),并且当房间清空或服务器重启时会被立即移除。

该服务器也未实现历史日志功能。

设置‌
需要Node.js和npm。

git clone https://github.com/TurboWarp/cloud-server
cd cloud-server
npm install
npm start

默认情况下,服务器监听地址为 ws://localhost:9080/。要更改端口或启用wss://,请阅读下文。

要在forkphorus中使用本地云变量服务器,您可以使用chost URL参数,例如:https://forkphorus.github.io/?chost=ws://localhost:9080/。

您可以在TurboWarp中通过cloud_host URL参数进行类似操作:https://turbowarp.org/?cloud_host=ws://localhost:9080/。

配置‌
HTTP请求将提供public目录中的静态文件。

src/config.js‌
src/config.js是cloud-server的配置文件。

port属性(或PORT环境变量)配置要监听的端口。

在类Unix系统上,端口也可以是Unix套接字的路径。默认情况下,cloud-server会将Unix套接字的权限设置为777。这可以通过unixSocketPermissions进行配置。

如果您使用反向代理,请将trustProxy属性(或TRUST_PROXY环境变量)设置为true,以便日志中包含用户的IP地址而不是您代理的IP地址。

如果您不希望记录IP地址,请将anonymizeAddresses设置为true。

将perMessageDeflate设置为一个对象以启用"permessage-deflate",它使用压缩来减少数据传输的带宽。在Linux上,这可能导致性能不佳和灾难性的内存碎片化 (nodejs/node#8871)。选项请参阅:https://github.com/websockets/ws/blob/master/doc/ws.md#new-websocketserveroptions-callback (查找perMessageDeflate)。

您可以通过src/config.js的logging属性配置日志记录。默认情况下,cloud-server会记录到stdout和logs文件夹中的文件。可以通过将logging.console设置为false来禁用stdout日志记录。文件日志记录通过logging.rotation配置,选项请参阅:https://github.com/winstonjs/winston-daily-rotate-file#options。设置为false以禁用。

生产环境设置‌
cloud-server被认为是生产就绪的,因为它已经在生产环境中使用了数月而没有出现问题。也就是说,不提供任何担保。如果cloud-server中的错误导致您损失数百万美元,那也只能自认倒霉。(更多详情请参阅LICENSE)

在生产环境中,您可能应该使用像nginx或caddy这样的反向代理。

在此设置中,cloud-server应监听一个高端口(例如9080)甚至是Unix套接字,您的代理将处理HTTP(S)连接并将请求转发到云服务器。您应确保cloud-server正在监听的端口没有对外开放。

以下是一个使用SSL保护连接的示例nginx配置:

server {
        listen 443 ssl http2;
        ssl_certificate /path/to/your/ssl/cert;
        ssl_certificate_key /path/to/your/ssl/key;
        server_name clouddata.yourdomain.com;
        location / {
                proxy_pass http://127.0.0.1:9080;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
}

  

PS:不想自己部署云变量服务,也能直接使用其他已部署云变量服务的平台。

例如:希妈阿Q 在线 Scratch平台 https://scratch.momq.tech/

https://scratch.momq.tech/

  

 

posted @ 2025-11-14 14:58  fengdong  阅读(5)  评论(0)    收藏  举报