SuperAPI AI 工具集

walrus-sites-portal

部署与运维

查看项目

更新于 10-16 01:33

技能介绍

用途:Walrus Sites 公共门户 wal.app 只服务 mainnet,要查看 testnet 站点必须自行托管门户;本技能用于搭建本地门户服务器,并排查 404、端口冲突等问题。

前提:Docker(运行门户容器)、Git(克隆仓库)。

推荐方式(Docker):镜像标签始终为 mainnet-<version>,服务的网络由环境变量决定而非标签;镜像版本需与已安装的 site-builder 版本一致。最快可用辅助脚本: git clone https://github.com/MystenLabs/walrus-sites.git cd walrus-sites git checkout mainnet scripts/local-docker-portal.sh testnet 也可手动运行:docker run -p 3000:3000 mysten/walrus-sites-server-portal:mainnet-<version> -e SUINS_CLIENT_NETWORK=testnet -e RPC_URL_LIST="https://fullnode.testnet.sui.io" -e AGGREGATOR_URL="https://aggregator.walrus-testnet.walrus.space"。门户默认端口 3000。

开发方式(Bun,仅用于改门户源码):克隆并 checkout mainnet 后进入 portal 目录执行 bun install、复制 server/portal-config.testnet.example.yaml 为 server/portal-config.yaml,再运行 bun -F server start。

访问站点:URL 使用 base36 编码的站点对象 ID 作为子域,形如 http://<base36-site-id>.localhost:3000;site-builder publish 输出会给出准确地址,也可用 site-builder convert <hex-id> 转换十六进制 ID。

关键配置:original_package_id 指 Walrus Sites 框架包(定义 site::Site 类型),不是你的应用 Move 包、不是 site-builder 部署包、也不是已发布站点对象 ID;示例配置已含正确值,不要修改。可用 sui client object <your-site-object-id> 查看 objType 前缀核对。

常见问题:404 可能因 blob 过期(用 site-builder sitemap <site-object-id> 查看最早过期日期,过期则提高 --epochs 重新部署)、original_package_id 错误、或重新发布后 URL 变化。端口 3000 被占用可执行 lsof -i :3000 -P | grep LISTEN 与 lsof -i :3000 -t | xargs kill 后重启。启动崩溃需确认 portal/server/portal-config.yaml 存在、bun install 成功、Bun 版本为 1.0+。

限制:testnet 站点无公共门户;testnet 可能重置,WAL 有水龙头、mainnet 为真实成本;门户无状态,每次请求都从 Sui 与 Walrus 读取(生产可选 Redis 缓存)。官方文档方法为 Docker,Bun 仅用于开发。