如何将Candy Machine指向自有域名完成部署?
自有域名部署Candy Machine操作流程
你找不到对应配置项的核心原因是:Candy Machine本身是部署在Solana链上的链上程序,本地启动时默认绑定localhost的是官方配套的前端脚手架,并非Candy Machine核心服务,相关配置分散在环境变量、构建配置、链上规则三个位置,按以下步骤操作即可:
- 第一步:修改环境变量中的站点地址配置
进入前端项目根目录,查找.env、.env.local、.env.production类的环境变量文件,把默认配置里的localhost地址替换为你的自有域名,注意要带HTTPS前缀、结尾不要加斜杠:
如果是基于Vite构建的旧版前端模板,对应的变量名为# Next.js 版本脚手架默认变量名 NEXT_PUBLIC_SITE_URL=https://你的自有域名.com NEXT_PUBLIC_RPC_HOST=你使用的Solana RPC节点地址VITE_SITE_URL,替换逻辑一致。 - 第二步:调整前端服务的监听规则
如果你是自主搭建服务器托管前端,而非使用静态站点托管平台,需要修改服务启动配置,避免服务默认仅监听本地回环地址:- Next.js框架的项目,直接修改根目录
package.json里的脚本字段:
"scripts": { "dev": "next dev -p 自定义服务端口 -H 0.0.0.0", "build": "next build", "start": "next start -p 自定义服务端口 -H 0.0.0.0" }- Vite框架的项目,在根目录
vite.config.js中添加服务监听配置:
export default defineConfig({ server: { host: '0.0.0.0', port: 自定义服务端口, allowedHosts: ['你的自有域名.com'] } }) - Next.js框架的项目,直接修改根目录
- 第三步:配置域名解析与反向代理
在域名服务商后台把域名A记录解析到托管服务器的公网IP,通过Nginx或Caddy配置反向代理,将443端口的HTTPS请求转发到上一步配置的前端服务端口即可,必须配置有效SSL证书,否则会出现钱包无法连接、铸造请求被拦截的问题。 - 第四步:更新链上Candy Guard配置
前端部署完成后,需要更新对应Candy Machine绑定的Candy Guard规则,把你的自有域名加入允许的铸造来源列表,否则链上会拦截非默认地址发起的铸造请求。直接调用Metaplex Candy Machine SDK的updateCandyGuard方法,在规则参数里加入你的域名即可。
注意:不要直接修改node_modules目录下的框架默认配置,这类修改会在重新安装依赖时被覆盖,所有自定义调整都要在项目根目录的配置文件中完成。
内容的提问来源于stack exchange,提问作者netsocket
相关产品推荐
相关产品推荐

